Commit 78f53267 authored by Roger Dingledine's avatar Roger Dingledine
Browse files

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
parent 52363d23
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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
Original line number Diff line number Diff line
@@ -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
Original line number Diff line number Diff line
@@ -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"))