]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
r13905@catbus: nickm | 2007-07-25 18:48:44 -0400
authorNick Mathewson <nickm@torproject.org>
Wed, 25 Jul 2007 22:56:54 +0000 (22:56 +0000)
committerNick Mathewson <nickm@torproject.org>
Wed, 25 Jul 2007 22:56:54 +0000 (22:56 +0000)
 ADDRMAP events should never have specified local time.  Extend them to have the proper gmt time, and make GETINFO address-mappings always do the right thing (since it is new in this version).

svn:r10930

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

index 0ff5a21f2f6cead616270201f37ea2cb72637c3f..6e9aeb83a4a9d0318c41112409c8aedc6ee79d39 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -77,6 +77,11 @@ Changes in version 0.2.0.3-alpha - 2007-??-??
       can time them out correctly. (Bug found by mwenge) [Bugfix on
       0.2.0.2-alpha]
 
+  o Minor bugfixes (controller)
+    - Provide DNS expiry times in GMT, not in local time.  For backward
+      compatibility, ADDRMAP events only provide GMT expiry in an extended
+      field.  "GETINFO address-mappings" always does the right thing.
+
 
 Changes in version 0.1.2.15 - 2007-07-17
   o Major bugfixes (compilation):
index 2c3e961e40d2f596a690eb420108cb5c900dcf8d..e7131cceeed0f80cebb3187d9c0f1e87a7b2824f 100644 (file)
@@ -387,7 +387,8 @@ $Id$
       client-side DNS cache; the 'control' key returns the mappings set
       via the control interface; the 'all' target returns the mappings
       set through any mechanism.
-      Expiry is formatted as with ADDRMAP events; see section 4.1.7.
+      Expiry is formatted as with ADDRMAP events, except that "expiry" is
+      always a time in GMT or the string "NEVER"; see section 4.1.7.
       First introduced in 0.2.0.3-alpha.
 
     "addr-mappings/*" -- as for address-mappings/*, but without the
@@ -925,7 +926,7 @@ $Id$
 
   If extended events are enabled (see 3.19), optional reason and
   circuit counting information is provided for CLOSED and FAILED
-  events. 
+  events.
 
       Reason = "MISC" / "DONE" / "CONNECTREFUSED" /
                "IDENTITY" / "CONNECTRESET" / "TIMEOUT" / "NOROUTE" /
@@ -963,10 +964,17 @@ $Id$
 4.1.7. New Address mapping
 
   Syntax:
-     "650" SP "ADDRMAP" SP Address SP Address SP Expiry
+     "650" SP "ADDRMAP" SP Address SP Address SP Expiry SP Error SP GMTExpiry
      Expiry = DQUOTE ISOTime DQUOTE / "NEVER"
 
-  Expiry is expressed as the local time (rather than GMT).
+     Error = / "error=" ErrorCode
+     GMTExpiry = "EXPIRES=" DQUOTE IsoTime DQUOTE
+
+  Error and GMTExpiry are only provided if extended events are enabled.
+
+  Expiry is expressed as the local time (rather than GMT).  This is a bug,
+  left in for backward compatibility; new code should look at GMTExpiry
+  instead.
 
   These events are generated when a new address mapping is entered in the
   cache, or when the answer for a RESOLVE command is found.
index 95f2536ef103b3eceb3a94b94209da133d0eb414..f310d9289b736f2d35fbd57763f5c969b88df7be 100644 (file)
@@ -1161,7 +1161,7 @@ addressmap_get_mappings(smartlist_t *sl, time_t min_expires,
              tor_snprintf(line, len, "%s %s NEVER", key, val->new_address);
            else {
              char time[ISO_TIME_LEN+1];
-             format_local_iso_time(time, val->expires);
+             format_iso_time(time, val->expires);
              tor_snprintf(line, len, "%s %s \"%s\"", key, val->new_address,
                           time);
            }
index fc4c002d05027eac5662886560671daff7400119..d99fb4b8c6021efab3ba153761da5e27e0d4a260 100644 (file)
@@ -3099,10 +3099,15 @@ control_event_address_mapped(const char *from, const char *to, time_t expires,
                                 error);
   else {
     char buf[ISO_TIME_LEN+1];
+    char buf2[ISO_TIME_LEN+1];
     format_local_iso_time(buf,expires);
+    format_iso_time(buf2,expires);
     send_control_event_extended(EVENT_ADDRMAP, ALL_NAMES,
-                                "650 ADDRMAP %s %s \"%s\"@%s\r\n",
-                                from, to, buf, error);
+                                "650 ADDRMAP %s %s \"%s\""
+                                "@%s%sEXPIRES=\"%s\"\r\n",
+                                from, to, buf,
+                                error, error?" ":"",
+                                buf2);
   }
 
   return 0;