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

[or-cvs] if you"re an auth dir server, always publish your dirport,



Update of /home2/or/cvsroot/tor/src/or
In directory moria:/home/arma/work/onion/cvs/tor/src/or

Modified Files:
	router.c 
Log Message:
if you're an auth dir server, always publish your dirport,
even if you haven't yet found yourself to be reachable.

this is the cause of Jan Tore Morken's recent or-talk bug.


Index: router.c
===================================================================
RCS file: /home2/or/cvsroot/tor/src/or/router.c,v
retrieving revision 1.182
retrieving revision 1.183
diff -u -d -r1.182 -r1.183
--- router.c	1 Jul 2005 02:01:21 -0000	1.182
+++ router.c	15 Jul 2005 18:49:35 -0000	1.183
@@ -830,6 +830,7 @@
   const char *cp;
   routerinfo_t *ri_tmp;
 #endif
+  or_options_t *options = get_options();
 
   /* Make sure the identity key matches the one in the routerinfo. */
   if (crypto_pk_cmp_keys(ident_key, router->identity_pkey)) {
@@ -888,7 +889,8 @@
     router->nickname,
     router->address,
     router->or_port,
-    check_whether_dirport_reachable() ? router->dir_port : 0,
+    (authdir_mode(options) || check_whether_dirport_reachable()) ?
+      router->dir_port : 0,
     router->platform,
     published,
     fingerprint,
@@ -909,9 +911,9 @@
   /* From now on, we use 'written' to remember the current length of 's'. */
   written = result;
 
-  if (get_options()->ContactInfo && strlen(get_options()->ContactInfo)) {
+  if (options->ContactInfo && strlen(options->ContactInfo)) {
     result = tor_snprintf(s+written,maxlen-written, "contact %s\n",
-                      get_options()->ContactInfo);
+                          options->ContactInfo);
     if (result<0)
       return -1;
     written += result;