Browse Source

put our fingerprint into the descriptor, so we can match a
desc to a running-routers entry


svn:r2100

Roger Dingledine 21 years ago
parent
commit
f355a9c9f1
1 changed files with 9 additions and 0 deletions
  1. 9 0
      src/or/router.c

+ 9 - 0
src/or/router.c

@@ -573,6 +573,7 @@ int router_dump_router_to_string(char *s, int maxlen, routerinfo_t *router,
   char digest[20];
   char signature[128];
   char published[32];
+  char fingerprint[FINGERPRINT_LEN+1];
   struct in_addr in;
   int onion_pkeylen, identity_pkeylen;
   int written;
@@ -590,6 +591,12 @@ int router_dump_router_to_string(char *s, int maxlen, routerinfo_t *router,
     return -1;
   }
 
+  /* record our fingerprint, so we can include it in the descriptor */
+  if (crypto_pk_get_fingerprint(router->identity_pkey, fingerprint)<0) {
+    log_fn(LOG_ERR, "Error computing fingerprint");
+    return -1;
+  }
+
   /* PEM-encode the onion key */
   if(crypto_pk_write_public_key_to_string(router->onion_pkey,
                                           &onion_pkey,&onion_pkeylen)<0) {
@@ -613,6 +620,7 @@ int router_dump_router_to_string(char *s, int maxlen, routerinfo_t *router,
                     "router %s %s %d %d %d\n"
                     "platform %s\n"
                     "published %s\n"
+                    "opt fingerprint %s\n"
                     "opt uptime %ld\n"
                     "bandwidth %d %d %d\n"
                     "onion-key\n%s"
@@ -627,6 +635,7 @@ int router_dump_router_to_string(char *s, int maxlen, routerinfo_t *router,
     router->is_trusted_dir ? router->dir_port : 0,
     router->platform,
     published,
+    fingerprint,
     stats_n_seconds_uptime,
     (int) router->bandwidthrate,
     (int) router->bandwidthburst,