Browse Source

(size_t)-1 is never < 0; fix an XXXX008 by changing the interface for dirserv_get_runningrouters

svn:r2165
Nick Mathewson 21 years ago
parent
commit
3ca2728eb2
2 changed files with 4 additions and 4 deletions
  1. 1 1
      src/or/directory.c
  2. 3 3
      src/or/dirserv.c

+ 1 - 1
src/or/directory.c

@@ -533,7 +533,7 @@ directory_handle_command_get(connection_t *conn, char *headers,
       return 0;
     }
     dlen = dirserv_get_runningrouters(&cp);
-    if(dlen < 0) { /* we failed to create cp */
+    if(!dlen) { /* we failed to create cp */
       connection_write_to_buf(answer503, strlen(answer503), conn);
       return 0;
     }

+ 3 - 3
src/or/dirserv.c

@@ -741,14 +741,14 @@ static int generate_runningrouters(crypto_pk_env_t *private_key)
 }
 
 /** Set *<b>rr</b> to the most recently generated encoded signed
- * running-routers list, generating a new one as necessary. */
+ * running-routers list, generating a new one as necessary.  Return the
+ * size of the directory on success, and 0 on failure. */
 size_t dirserv_get_runningrouters(const char **rr)
-/* XXX008 Bug: size_t is unsigned, but we're returning -1 to mean error */
 {
   if (runningrouters_is_dirty) {
     if(generate_runningrouters(get_identity_key())) {
       log_fn(LOG_ERR, "Couldn't generate running-routers list?");
-      return -1;
+      return 0;
     }
   }
   *rr = runningrouters_string;