[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[or-cvs] r10303: Do not send a warning when somebody uploads an extrainfo tha (in tor/trunk: . src/or)



Author: nickm
Date: 2007-05-24 13:12:54 -0400 (Thu, 24 May 2007)
New Revision: 10303

Modified:
   tor/trunk/
   tor/trunk/src/or/dirserv.c
   tor/trunk/src/or/routerlist.c
Log:
 r12915@catbus:  nickm | 2007-05-24 12:12:34 -0400
 Do not send a warning when somebody uploads an extrainfo that we will reject, if it happens to be newer than our current routerdesc.



Property changes on: tor/trunk
___________________________________________________________________
 svk:merge ticket from /tor/trunk [r12915] on 8246c3cf-6607-4228-993b-4d95d33730f1

Modified: tor/trunk/src/or/dirserv.c
===================================================================
--- tor/trunk/src/or/dirserv.c	2007-05-24 17:11:12 UTC (rev 10302)
+++ tor/trunk/src/or/dirserv.c	2007-05-24 17:12:54 UTC (rev 10303)
@@ -34,11 +34,9 @@
 static void directory_remove_invalid(void);
 static cached_dir_t *dirserv_regenerate_directory(void);
 static char *format_versions_list(config_line_t *ln);
-/* Should be static; exposed for testing */
-/* XXXX020 not actually tested. */
 struct authdir_config_t;
-int add_fingerprint_to_dir(const char *nickname, const char *fp,
-                           struct authdir_config_t *list);
+static int add_fingerprint_to_dir(const char *nickname, const char *fp,
+                                  struct authdir_config_t *list);
 static uint32_t dirserv_router_get_status(const routerinfo_t *router,
                                           const char **msg);
 static uint32_t
@@ -75,8 +73,7 @@
 } authdir_config_t;
 
 /** Should be static; exposed for testing. */
-/* XXXX020 not actually tested. */
-authdir_config_t *fingerprint_list = NULL;
+static authdir_config_t *fingerprint_list = NULL;
 
 /** Allocate and return a new, empty, authdir_config_t. */
 static authdir_config_t *
@@ -621,6 +618,7 @@
 dirserv_add_extrainfo(extrainfo_t *ei, const char **msg)
 {
   routerinfo_t *ri;
+  int r;
   tor_assert(msg);
   *msg = NULL;
 
@@ -630,9 +628,9 @@
     extrainfo_free(ei);
     return -1;
   }
-  if (routerinfo_incompatible_with_extrainfo(ri, ei, msg)) {
+  if ((r = routerinfo_incompatible_with_extrainfo(ri, ei, msg))) {
     extrainfo_free(ei);
-    return -1;
+    return r < 0 ? 0 : -1;
   }
   router_add_extrainfo_to_routerlist(ei, msg, 0, 0);
   return 2;

Modified: tor/trunk/src/or/routerlist.c
===================================================================
--- tor/trunk/src/or/routerlist.c	2007-05-24 17:11:12 UTC (rev 10302)
+++ tor/trunk/src/or/routerlist.c	2007-05-24 17:12:54 UTC (rev 10303)
@@ -4964,7 +4964,8 @@
   return 1;
 }
 
-/** DOCDOC */
+/** DOCDOC  Returns 1 for "reject with message"; -1 for "reject silently",
+ * 0 for "accept". */
 int
 routerinfo_incompatible_with_extrainfo(routerinfo_t *ri, extrainfo_t *ei,
                                        const char **msg)
@@ -4972,8 +4973,10 @@
   tor_assert(ri);
   tor_assert(ei);
 
-  if (ei->bad_sig)
+  if (ei->bad_sig) {
+    if (msg) *msg = "Extrainfo signature was bad, or signed with wrong key.";
     return 1;
+  }
 
   /* The nickname must match exactly to have been generated at the same time
    * by the same rotuer.  */
@@ -4999,10 +5002,10 @@
     tor_free(ei->pending_sig);
   }
 
-  if (ei->cache_info.published_on < ei->cache_info.published_on) {
+  if (ei->cache_info.published_on < ri->cache_info.published_on) {
     if (msg) *msg = "Extrainfo published time did not match routerdesc";
     return 1;
-  } else if (ei->cache_info.published_on > ei->cache_info.published_on) {
+  } else if (ei->cache_info.published_on > ri->cache_info.published_on) {
     if (msg) *msg = "Extrainfo published time did not match routerdesc";
     return -1;
   }