Browse Source

Relays were publishing their server descriptor to v1 and v2
directory authorities, but they didn't try publishing to v3-only
authorities. Fix this; and also stop publishing to v1 authorities.


svn:r12759

Roger Dingledine 16 years ago
parent
commit
78f532678c
3 changed files with 7 additions and 4 deletions
  1. 3 0
      ChangeLog
  2. 1 1
      doc/tor.1.in
  3. 3 3
      src/or/config.c

+ 3 - 0
ChangeLog

@@ -20,6 +20,9 @@ Changes in version 0.2.0.13-alpha - 2007-12-??
       crashing or mis-answering these requests.
     - Stop being so aggressive about fetching v2 dir info if your
       DirPort is on but your ORPort is off.
+    - Relays were publishing their server descriptor to v1 and v2
+      directory authorities, but they didn't try publishing to v3-only
+      authorities. Fix this; and also stop publishing to v1 authorities.
 
   o Major features:
     - Bridges now behave like clients with respect to time intervals for

+ 1 - 1
doc/tor.1.in

@@ -853,7 +853,7 @@ descriptor to the directory authorities. (This is useful if you're
 testing out your server, or if you're using a Tor controller that handles
 directory publishing for you.) Otherwise, Tor will publish its descriptor
 to all directory authorities of the type(s) specified. The value "1" is
-treated as a synonym for the default, which is currently "v1,v2".
+treated as a synonym for the default, which is currently "v2,v3".
 .LP
 .TP
 \fBRedirectExit \fR\fIpattern target\fP

+ 3 - 3
src/or/config.c

@@ -234,7 +234,7 @@ static config_var_t _option_vars[] = {
   V(PidFile,                     STRING,   NULL),
   V(PreferTunneledDirConns,      BOOL,     "0"),
   V(ProtocolWarnings,            BOOL,     "0"),
-  V(PublishServerDescriptor,     CSV,      "v1,v2"),
+  V(PublishServerDescriptor,     CSV,      "v2,v3"),
   V(PublishHidServDescriptors,   BOOL,     "1"),
   V(ReachableAddresses,          LINELIST, NULL),
   V(ReachableDirAddresses,       LINELIST, NULL),
@@ -2420,7 +2420,7 @@ ensure_bandwidth_cap(uint64_t *value, const char *desc, char **msg)
 }
 
 /** Parse an authority type from <b>list</b> and write it to *<b>auth</b>.  If
- * <b>compatible</b> is non-zero, treat "1" as "v1,v2" and treat "0" as "".
+ * <b>compatible</b> is non-zero, treat "1" as "v2,v3" and treat "0" as "".
  * Return 0 on success or -1 if not a recognized authority type (in which
  * case the value of *<b>auth</b> is undefined). */
 static int
@@ -2435,7 +2435,7 @@ parse_authority_type_from_list(smartlist_t *list, authority_type_t *auth,
     if (!strcasecmp(string, "v1"))
       *auth |= V1_AUTHORITY;
     else if (compatible && !strcmp(string, "1"))
-      *auth |= V1_AUTHORITY | V2_AUTHORITY;
+      *auth |= V2_AUTHORITY | V3_AUTHORITY;
     else if (!strcasecmp(string, "v2"))
       *auth |= V2_AUTHORITY;
     else if (!strcasecmp(string, "v3"))