Browse Source

dirauth: Return a distinct status when formatting annotations fails

Adds ROUTER_AUTHDIR_BUG_ANNOTATIONS to was_router_added_t.

The out-of-order numbering is deliberate: it will be fixed by later commits
for 16564.

Fixes bug 30780; bugfix on 0.2.0.8-alpha.
teor 5 years ago
parent
commit
19bf5806ad
3 changed files with 8 additions and 4 deletions
  1. 3 0
      changes/bug30780
  2. 1 3
      src/feature/dirauth/process_descs.c
  3. 4 1
      src/feature/nodelist/routerlist.h

+ 3 - 0
changes/bug30780

@@ -0,0 +1,3 @@
+  o Minor bugfixes (directory authorities):
+    - Return a distinct status when formatting annotations fails.
+      Fixes bug 30780; bugfix on 0.2.0.8-alpha.

+ 1 - 3
src/feature/dirauth/process_descs.c

@@ -556,9 +556,7 @@ dirserv_add_multiple_descriptors(const char *desc, size_t desclen,
                    !general ? router_purpose_to_string(purpose) : "",
                    !general ? "\n" : "")<0) {
     *msg = "Couldn't format annotations";
-    /* XXX Not cool: we return -1 below, but (was_router_added_t)-1 is
-     * ROUTER_BAD_EI, which isn't what's gone wrong here. :( */
-    return -1;
+    return ROUTER_AUTHDIR_BUG_ANNOTATIONS;
   }
 
   s = desc;

+ 4 - 1
src/feature/nodelist/routerlist.h

@@ -39,7 +39,10 @@ typedef enum was_router_added_t {
    * OLD_ROUTER_DESC_MAX_AGE. */
   ROUTER_WAS_TOO_OLD = -7, /* note contrast with 'ROUTER_IS_ALREADY_KNOWN' */
   /* Some certs on this router are expired. */
-  ROUTER_CERTS_EXPIRED = -8
+  ROUTER_CERTS_EXPIRED = -8,
+  /* We couldn't format the annotations for this router. This is a directory
+   * authority bug. */
+  ROUTER_AUTHDIR_BUG_ANNOTATIONS = -10
 } was_router_added_t;
 
 /** How long do we avoid using a directory server after it's given us a 503? */