]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
r13972@catbus: nickm | 2007-07-29 00:01:38 -0400
authorNick Mathewson <nickm@torproject.org>
Sun, 29 Jul 2007 04:03:25 +0000 (04:03 +0000)
committerNick Mathewson <nickm@torproject.org>
Sun, 29 Jul 2007 04:03:25 +0000 (04:03 +0000)
 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

ChangeLog
doc/spec/control-spec.txt
src/or/control.c

index 260593708a5c60f69d6752e5c89f7ef7d4e822b4..7246908b8e2875737c5265ba469fce867b45b709 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -91,6 +91,8 @@ Changes in version 0.2.0.3-alpha - 2007-07-29
       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
index df1d8752e70df49ef37eaed88f9ef057bba539be..d6564dce968056f4c0432206eecfa219b50e97bf 100644 (file)
@@ -64,7 +64,7 @@ $Id$
 
     Reply = SyncReply / AsyncReply
     SyncReply = *(MidReplyLine / DataReplyLine) EndReplyLine
-    AsyncReply = *MidReplyLine EndReplyLine / DataReplyLine
+    AsyncReply = *(MidReplyLine / DataReplyLine) EndReplyLine
 
     MidReplyLine = StatusCode "-" ReplyLine
     DataReplyLine = StatusCode "+" ReplyLine Data
@@ -954,7 +954,7 @@ $Id$
   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"
 
@@ -985,7 +985,7 @@ $Id$
 
   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
 
@@ -1316,7 +1316,7 @@ $Id$
 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]
 
index 45ef63be7303e10bc6471d2e7c2f86e2881a7ac0..61f642df050b460fa6309f8865b29383fc37ccba 100644 (file)
@@ -3145,8 +3145,9 @@ control_event_or_authdir_new_descriptor(const char *action,
   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);
 
@@ -3178,6 +3179,9 @@ control_event_networkstatus_changed(smartlist_t *statuses)
   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;
 }