[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;
}