Make our control events for multi-line async replies conform to our old grammar. Change back to the old grammar (which got "corrected" in r10931).
svn:r10964
compatibility, ADDRMAP events only provide GMT expiry in an extended
field. "GETINFO address-mappings" always does the right thing.
- Use CRLF line endings properly in NS events.
+ - Terminate multi-line control events properly. (Original patch from tup.)
+ [Bugfix on 0.1.2.x-alpha]
o Minor bugfixes (misc):
- Choose perfectly fairly among routers when choosing by bandwidth and
Reply = SyncReply / AsyncReply
SyncReply = *(MidReplyLine / DataReplyLine) EndReplyLine
- AsyncReply = *MidReplyLine EndReplyLine / DataReplyLine
+ AsyncReply = *(MidReplyLine / DataReplyLine) EndReplyLine
MidReplyLine = StatusCode "-" ReplyLine
DataReplyLine = StatusCode "+" ReplyLine Data
The syntax is:
"650" SP Severity SP ReplyText
or
- "650+" Severity CRLF Data
+ "650+" Severity CRLF Data 650 SP "OK" CRLF
Severity = "DEBUG" / "INFO" / "NOTICE" / "WARN"/ "ERR"
Syntax:
"650" "+" "AUTHDIR_NEWDESCS" CRLF Action CRLF Message CRLF
- Descriptor CRLF "." CRLF
+ Descriptor CRLF "." CRLF "650" SP "OK" CRLF
Action = "ACCEPTED" / "DROPPED" / "REJECTED"
Message = Text
4.1.12. Network status has changed
Syntax:
- "650" "+" "NS" CRLF 1*NetworkStatus "." CRLF
+ "650" "+" "NS" CRLF 1*NetworkStatus "." CRLF "650" SP "OK" CRLF
[First added in 0.1.2.3-alpha]
strlcpy(buf, firstline, totallen);
strlcpy(buf+strlen(firstline), esc, totallen);
send_control_event_string(EVENT_AUTHDIR_NEWDESCS, ALL_NAMES|ALL_FORMATS,
- buf);
-
+ buf);
+ send_control_event_string(EVENT_AUTHDIR_NEWDESCS, ALL_NAMES|ALL_FORMATS,
+ "650 OK\r\n");
tor_free(esc);
tor_free(buf);
smartlist_free(strs);
tor_free(s);
send_control_event_string(EVENT_NS, ALL_NAMES|ALL_FORMATS, esc);
+ send_control_event_string(EVENT_NS, ALL_NAMES|ALL_FORMATS,
+ "650 OK\r\n");
+
tor_free(esc);
return 0;
}