[or-cvs] r11181: Fix a bug in ADDRMAP controller replies that would sometimes (in tor/trunk: . doc/spec src/or)

arma at seul.org arma at seul.org
Sun Aug 19 04:58:56 UTC 2007


Author: arma
Date: 2007-08-19 00:58:55 -0400 (Sun, 19 Aug 2007)
New Revision: 11181

Modified:
   tor/trunk/ChangeLog
   tor/trunk/doc/spec/control-spec.txt
   tor/trunk/src/or/control.c
Log:
Fix a bug in ADDRMAP controller replies that would sometimes
try to print a NULL. Patch from tup.


Modified: tor/trunk/ChangeLog
===================================================================
--- tor/trunk/ChangeLog	2007-08-19 04:34:56 UTC (rev 11180)
+++ tor/trunk/ChangeLog	2007-08-19 04:58:55 UTC (rev 11181)
@@ -65,6 +65,8 @@
     - Fix a bug with AutomapHostsOnResolve that would always cause
       the second request to fail. Bug reported by Kate. Bugfix on
       0.2.0.3-alpha.
+    - Fix a bug in ADDRMAP controller replies that would sometimes
+      try to print a NULL. Patch from tup.
     - Read v3 directory authority keys from the right location.
     - Numerous bugfixes to directory voting code.
 

Modified: tor/trunk/doc/spec/control-spec.txt
===================================================================
--- tor/trunk/doc/spec/control-spec.txt	2007-08-19 04:34:56 UTC (rev 11180)
+++ tor/trunk/doc/spec/control-spec.txt	2007-08-19 04:58:55 UTC (rev 11181)
@@ -762,7 +762,7 @@
     PIVERSION: 1*DIGIT
 
   Tor MAY give its InfoLines in any order; controllers MUST ignore InfoLines
-  with keywords it does not recognize.  Controllers MUST ignore extraneous
+  with keywords they do not recognize.  Controllers MUST ignore extraneous
   data on any InfoLine.
 
   PIVERSION is there in case we drastically change the syntax one day. For
@@ -1044,10 +1044,14 @@
 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
+     ErrorCode = XXXX
      GMTExpiry = "EXPIRES=" DQUOTE IsoTime DQUOTE
 
   Error and GMTExpiry are only provided if extended events are enabled.

Modified: tor/trunk/src/or/control.c
===================================================================
--- tor/trunk/src/or/control.c	2007-08-19 04:34:56 UTC (rev 11180)
+++ tor/trunk/src/or/control.c	2007-08-19 04:58:55 UTC (rev 11181)
@@ -3174,7 +3174,7 @@
 
 /** Called whenever an address mapping on <b>from<b> from changes to <b>to</b>.
  * <b>expires</b> values less than 3 are special; see connection_edge.c.  If
- * <b>error</b> is nonempty, it is an error code describing the failure
+ * <b>error</b> is non-NULL, it is an error code describing the failure
  * mode of the mapping.
  */
 int
@@ -3187,7 +3187,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];
@@ -3197,7 +3197,7 @@
                                 "650 ADDRMAP %s %s \"%s\""
                                 "@%s%sEXPIRES=\"%s\"\r\n",
                                 from, to, buf,
-                                error, error?" ":"",
+                                error?error:"", error?" ":"",
                                 buf2);
   }
 



More information about the tor-commits mailing list