[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[or-cvs] Clean up last patch; implement (mostly) proper handling for...
- To: or-cvs@freehaven.net
- Subject: [or-cvs] Clean up last patch; implement (mostly) proper handling for...
- From: nickm@seul.org (Nick Mathewson)
- Date: Tue, 17 Aug 2004 02:06:08 -0400 (EDT)
- Delivered-to: archiver@seul.org
- Delivered-to: or-cvs-outgoing@seul.org
- Delivered-to: or-cvs@seul.org
- Delivery-date: Tue, 17 Aug 2004 02:06:20 -0400
- Reply-to: or-dev@freehaven.net
- Sender: owner-or-cvs@freehaven.net
Update of /home/or/cvsroot/src/or
In directory moria.mit.edu:/tmp/cvs-serv22560/src/or
Modified Files:
or.h routerlist.c routerparse.c
Log Message:
Clean up last patch; implement (mostly) proper handling for verified/unverified name collisions.
Index: or.h
===================================================================
RCS file: /home/or/cvsroot/src/or/or.h,v
retrieving revision 1.407
retrieving revision 1.408
diff -u -d -r1.407 -r1.408
--- or.h 17 Aug 2004 05:13:58 -0000 1.407
+++ or.h 17 Aug 2004 06:06:05 -0000 1.408
@@ -588,7 +588,7 @@
uint32_t bandwidthcapacity;
struct exit_policy_t *exit_policy; /**< What streams will this OR permit
* to exit? */
- int uptime; /**< How many seconds the router claims to have been up */
+ long uptime; /**< How many seconds the router claims to have been up */
/* local info */
int is_running; /**< As far as we know, is this OR currently running? */
time_t status_set_at; /**< When did we last update is_running? */
Index: routerlist.c
===================================================================
RCS file: /home/or/cvsroot/src/or/routerlist.c,v
retrieving revision 1.122
retrieving revision 1.123
diff -u -d -r1.122 -r1.123
--- routerlist.c 17 Aug 2004 02:00:36 -0000 1.122
+++ routerlist.c 17 Aug 2004 06:06:05 -0000 1.123
@@ -565,6 +565,23 @@
routerinfo_free(router);
return -1;
}
+ } else if (!strcmp(router->nickname, r->nickname)) {
+ /* nicknames match, keys don't. */
+ if (router->is_verified) {
+ /* The new verified router replaces the old one; remove the
+ * old one. and carry on to the end of the list, in case
+ * there are more old unverifed routers with this nickname
+ */
+ routerinfo_free(r);
+ smartlist_del_keeporder(routerlist->routers, i--);
+ /* XXXX What do we do about any connections using the old key? */
+ } else if (r->is_verified) {
+ /* Can't replace a verified router with an unverified one. */
+ log_fn(LOG_DEBUG, "Skipping unverified entry for verified router '%s'",
+ router->nickname);
+ routerinfo_free(router);
+ return -1;
+ }
}
}
/* We haven't seen a router with this name before. Add it to the end of
Index: routerparse.c
===================================================================
RCS file: /home/or/cvsroot/src/or/routerparse.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -d -r1.33 -r1.34
--- routerparse.c 17 Aug 2004 05:29:41 -0000 1.33
+++ routerparse.c 17 Aug 2004 06:06:05 -0000 1.34
@@ -644,7 +644,6 @@
smartlist_t *tokens = NULL, *exit_policy_tokens = NULL;
directory_token_t *tok;
int t;
- long lng;
int ports_set, bw_set;
if (!end) {