]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Have dirctory authorites note which servers make good V2 directory caches in publishe...
authorNick Mathewson <nickm@torproject.org>
Mon, 12 Dec 2005 01:03:28 +0000 (01:03 +0000)
committerNick Mathewson <nickm@torproject.org>
Mon, 12 Dec 2005 01:03:28 +0000 (01:03 +0000)
svn:r5574

src/or/dirserv.c
src/or/or.h
src/or/routerparse.c

index a92c4f7bae8cf6815d8f29eb3a2e808b06ee2337..dba82a127664d4f9192baafb3b2f3d185f9cd670 100644 (file)
@@ -1299,6 +1299,8 @@ generate_v2_networkstatus(void)
                                       ri->cache_info.identity_digest);
       int f_named = naming && ri->is_named;
       int f_valid = ri->is_verified;
+      int f_v2_dir = ri->dir_port &&
+        tor_version_as_new_as(ri->platform,"0.1.1.9-alpha");
       char identity64[BASE64_DIGEST_LEN+1];
       char digest64[BASE64_DIGEST_LEN+1];
       if (options->AuthoritativeDir) {
@@ -1316,7 +1318,7 @@ generate_v2_networkstatus(void)
 
       if (tor_snprintf(outp, endp-outp,
                        "r %s %s %s %s %s %d %d\n"
-                       "s%s%s%s%s%s%s%s\n",
+                       "s%s%s%s%s%s%s%s%s\n",
                        ri->nickname,
                        identity64,
                        digest64,
@@ -1330,7 +1332,8 @@ generate_v2_networkstatus(void)
                        f_named?" Named":"",
                        f_stable?" Stable":"",
                        f_running?" Running":"",
-                       f_valid?" Valid":"")<0) {
+                       f_valid?" Valid":"",
+                       f_v2_dir?" V2Dir":"")<0) {
         warn(LD_BUG, "Unable to print router status.");
         goto done;
       }
index e7edaa33a3574b6e74781a45ddd9d93ffc7da39c..8d9d92697b80f4a0cc9a9d192c3aa217b11b6a75 100644 (file)
@@ -827,6 +827,9 @@ typedef struct routerstatus_t {
   unsigned int is_running:1; /**< True iff this router is up. */
   unsigned int is_named:1; /**< True iff "nickname" belongs to this router. */
   unsigned int is_valid:1; /**< True iff this router is validated. */
+  unsigned int is_v2_dir:1; /**< True iff this router can serve router
+                             * information with v2 of the directory
+                             * protocol */
 } routerstatus_t;
 
 /** DOCDOC */
index 667d379ac1030c5dea1960d9616d3cbcd4bb2eca..e0f679b6df25eaedfd2e81dd860c3d6900090b10 100644 (file)
@@ -1057,6 +1057,8 @@ routerstatus_parse_entry_from_string(const char **s, smartlist_t *tokens)
         rs->is_named = 1;
       else if (!strcmp(tok->args[i], "Valid"))
         rs->is_valid = 1;
+      else if (!strcmp(tok->args[i], "V2Dir"))
+        rs->is_v2_dir = 1;
     }
   }