Browse Source

dump exit policies correctly to descriptor

svn:r815
Roger Dingledine 21 years ago
parent
commit
b5e84e24ae
1 changed files with 11 additions and 3 deletions
  1. 11 3
      src/or/routers.c

+ 11 - 3
src/or/routers.c

@@ -1198,6 +1198,10 @@ static void get_platform_str(char *platform, int len)
   return;
 }
 
+/* XXX need to audit this thing and count fenceposts. maybe
+ *     refactor so we don't have to keep asking if we're
+ *     near the end of maxlen?
+ */
 #define DEBUG_ROUTER_DUMP_ROUTER_TO_STRING
 int router_dump_router_to_string(char *s, int maxlen, routerinfo_t *router,
                                  crypto_pk_env_t *ident_key) {
@@ -1251,7 +1255,7 @@ int router_dump_router_to_string(char *s, int maxlen, routerinfo_t *router,
                     "onion-key\n%s"
                     "link-key\n%s"
                     "signing-key\n%s",
-    router->nickname,             
+    router->nickname,
     router->address,
     router->or_port,
     router->socks_port,
@@ -1294,11 +1298,15 @@ int router_dump_router_to_string(char *s, int maxlen, routerinfo_t *router,
         return -1;
       written += result;
     } else {
-      if (written > maxlen-3)
+      if (written > maxlen-4)
         return -1;
       strcat(s+written, ":*");
     }
-  }
+    if(written > maxlen-1)
+      return -1;
+    strcat(s+written, "\n");
+    written++;
+  } /* end for */
   if (written > maxlen-256) /* Not enough room for signature. */
     return -1;