[or-cvs] r13401: If the networkstatus consensus lists no recommended versions (tor/trunk/src/or)

arma at seul.org arma at seul.org
Wed Feb 6 12:45:04 UTC 2008


Author: arma
Date: 2008-02-06 07:45:04 -0500 (Wed, 06 Feb 2008)
New Revision: 13401

Modified:
   tor/trunk/src/or/control.c
   tor/trunk/src/or/networkstatus.c
   tor/trunk/src/or/or.h
   tor/trunk/src/or/routerparse.c
Log:
If the networkstatus consensus lists no recommended versions, don't
complain to the user and demand that they upgrade to one of "".


Modified: tor/trunk/src/or/control.c
===================================================================
--- tor/trunk/src/or/control.c	2008-02-06 12:39:25 UTC (rev 13400)
+++ tor/trunk/src/or/control.c	2008-02-06 12:45:04 UTC (rev 13401)
@@ -1706,6 +1706,7 @@
           case VS_NEW: *answer = tor_strdup("new"); break;
           case VS_NEW_IN_SERIES: *answer = tor_strdup("new in series"); break;
           case VS_UNRECOMMENDED: *answer = tor_strdup("unrecommended"); break;
+          case VS_EMPTY: *answer = tor_strdup("none recommended"); break;
           case VS_UNKNOWN: *answer = tor_strdup("unknown"); break;
           default: tor_fragile_assert();
           }

Modified: tor/trunk/src/or/networkstatus.c
===================================================================
--- tor/trunk/src/or/networkstatus.c	2008-02-06 12:39:25 UTC (rev 13400)
+++ tor/trunk/src/or/networkstatus.c	2008-02-06 12:45:04 UTC (rev 13401)
@@ -1577,6 +1577,9 @@
 
     if (status == VS_RECOMMENDED) {
       log_info(LD_GENERAL, "The directory authorities say my version is ok.");
+    } else if (status == VS_EMPTY) {
+      log_info(LD_GENERAL,
+               "The directory authorities don't recommend any versions.");
     } else if (status == VS_NEW || status == VS_NEW_IN_SERIES) {
       if (!have_warned_about_new_version) {
         log_notice(LD_GENERAL, "This version of Tor (%s) is newer than any "

Modified: tor/trunk/src/or/or.h
===================================================================
--- tor/trunk/src/or/or.h	2008-02-06 12:39:25 UTC (rev 13400)
+++ tor/trunk/src/or/or.h	2008-02-06 12:45:04 UTC (rev 13401)
@@ -3317,6 +3317,7 @@
                        * in its series, but later recommended versions exist.
                        */
   VS_UNRECOMMENDED=4, /**< This version is not recommended (general case). */
+  VS_EMPTY=5, /**< The version list was empty; no agreed-on versions. */
   VS_UNKNOWN, /**< We have no idea. */
 } version_status_t;
 

Modified: tor/trunk/src/or/routerparse.c
===================================================================
--- tor/trunk/src/or/routerparse.c	2008-02-06 12:39:25 UTC (rev 13400)
+++ tor/trunk/src/or/routerparse.c	2008-02-06 12:45:04 UTC (rev 13401)
@@ -280,7 +280,7 @@
   END_OF_TABLE
 };
 
-/** List of tokens allowable in v1 diectory headers/footers. */
+/** List of tokens allowable in v1 directory headers/footers. */
 static token_rule_t dir_token_table[] = {
   /* don't enforce counts; this is obsolete. */
   T( "network-status",      K_NETWORK_STATUS,      NO_ARGS, NO_OBJ ),
@@ -538,7 +538,8 @@
 }
 
 /** Return VS_RECOMMENDED if <b>myversion</b> is contained in
- * <b>versionlist</b>.  Else, return VS_OLD if every member of
+ * <b>versionlist</b>.  Else, return VS_EMPTY if versionlist has no
+ * entries. Else, return VS_OLD if every member of
  * <b>versionlist</b> is newer than <b>myversion</b>.  Else, return
  * VS_NEW_IN_SERIES if there is at least one member of <b>versionlist</b> in
  * the same series (major.minor.micro) as <b>myversion</b>, but no such member
@@ -569,6 +570,11 @@
   version_sl = smartlist_create();
   smartlist_split_string(version_sl, versionlist, ",", SPLIT_SKIP_SPACE, 0);
 
+  if (!strlen(versionlist)) { /* no authorities cared or agreed */
+    ret = VS_EMPTY;
+    goto done;
+  }
+
   SMARTLIST_FOREACH(version_sl, const char *, cp, {
     if (!strcmpstart(cp, "Tor "))
       cp += 4;



More information about the tor-commits mailing list