rendered paste bodyIndex: src/or/control.c===================================================================--- src/or/control.c (revision 10933)+++ src/or/control.c (working copy)@@ -3096,7 +3096,7 @@ if (expires < 3 || expires == TIME_MAX) send_control_event_extended(EVENT_ADDRMAP, ALL_NAMES, "650 ADDRMAP %s %s NEVER@%s\r\n", from, to,- error);+ error?error:""); else { char buf[ISO_TIME_LEN+1]; char buf2[ISO_TIME_LEN+1];@@ -3106,7 +3106,7 @@ "650 ADDRMAP %s %s \"%s\"" "@%s%sEXPIRES=\"%s\"\r\n", from, to, buf,- error, error?" ":"",+ error?error:"", error?" ":"", buf2); } Index: doc/spec/control-spec.txt===================================================================--- doc/spec/control-spec.txt (revision 10933)+++ doc/spec/control-spec.txt (working copy)@@ -512,8 +512,8 @@ Sent from the client to the server. The format is: "EXTENDCIRCUIT" SP CircuitID SP- ServerSpec *("," ServerSpec) SP- ("purpose=" Purpose) CRLF+ ServerSpec *("," ServerSpec)+ [SP "purpose=" Purpose] CRLF This request takes one of two forms: either the CircuitID is zero, in which case it is a request for the server to build a new circuit according@@ -585,7 +585,7 @@ 3.14. POSTDESCRIPTOR Sent from the client to the server. The syntax is:- "+POSTDESCRIPTOR" ("purpose=" Purpose) CRLF Descriptor CRLF "." CRLF+ "+POSTDESCRIPTOR" [SP "purpose=" Purpose] CRLF Descriptor CRLF "." CRLF This message informs the server about a new descriptor. If Purpose is specified, it must be either "general" or "controller", else we@@ -603,7 +603,7 @@ 3.15. REDIRECTSTREAM Sent from the client to the server. The syntax is:- "REDIRECTSTREAM" SP StreamID SP Address (SP Port) CRLF+ "REDIRECTSTREAM" SP StreamID SP Address [SP Port] CRLF Tells the server to change the exit address on the specified stream. If Port is specified, changes the destination port as well. No remapping@@ -913,7 +913,7 @@ The syntax is: "650" SP "ORCONN" SP (ServerID / Target) SP ORStatus [ SP "REASON="- Reason ] [ SP "NCIRCS=" NumCircuits ]+ Reason ] [ SP "NCIRCS=" NumCircuits ] CRLF ORStatus = "NEW" / "LAUNCHED" / "CONNECTED" / "FAILED" / "CLOSED" @@ -939,7 +939,7 @@ 4.1.4. Bandwidth used in the last second The syntax is:- "650" SP "BW" SP BytesRead SP BytesWritten *(SP Type "=" Num)+ "650" SP "BW" SP BytesRead SP BytesWritten *(SP Type "=" Num) CRLF BytesRead = 1*DIGIT BytesWritten = 1*DIGIT Type = "DIR" / "OR" / "EXIT" / "APP" / ...@@ -952,7 +952,7 @@ 4.1.5. Log messages The syntax is:- "650" SP Severity SP ReplyText+ "650" SP Severity SP ReplyText CRLF or "650+" Severity CRLF Data @@ -961,15 +961,18 @@ 4.1.6. New descriptors available Syntax:- "650" SP "NEWDESC" 1*(SP ServerID)+ "650" SP "NEWDESC" 1*(SP ServerID) CRLF 4.1.7. New Address mapping Syntax:- "650" SP "ADDRMAP" SP Address SP Address SP Expiry SP Error SP GMTExpiry+ "650" SP "ADDRMAP" SP Address SP NewAddress SP Expiry+ [SP Error] SP GMTExpiry CRLF++ NewAddress = Address / "<error>" Expiry = DQUOTE ISOTime DQUOTE / "NEVER" - Error = / "error=" ErrorCode+ Error = "error=" ErrorCode GMTExpiry = "EXPIRES=" DQUOTE IsoTime DQUOTE Error and GMTExpiry are only provided if extended events are enabled.@@ -992,7 +995,7 @@ 4.1.9. Our descriptor changed Syntax:- "650" SP "DESCCHANGED"+ "650" SP "DESCCHANGED" CRLF [First added in 0.1.2.2-alpha.] @@ -1323,7 +1326,7 @@ 4.1.13. Bandwidth used on an application stream The syntax is:- "650" SP "STREAM_BW" SP StreamID SP BytesRead SP BytesWritten+ "650" SP "STREAM_BW" SP StreamID SP BytesRead SP BytesWritten CRLF BytesRead = 1*DIGIT BytesWritten = 1*DIGIT