diff options
Diffstat (limited to 'src/or/router.c')
-rw-r--r-- | src/or/router.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/or/router.c b/src/or/router.c index 28a801bf9e..3bd8d41f8f 100644 --- a/src/or/router.c +++ b/src/or/router.c @@ -319,6 +319,7 @@ init_keys(void) mydesc = router_get_my_descriptor(); if (authdir_mode(options)) { const char *m; + routerinfo_t *ri; /* We need to add our own fingerprint so it gets recognized. */ if (dirserv_add_own_fingerprint(options->Nickname, get_identity_key())) { log_err(LD_GENERAL,"Error adding own fingerprint to approved set"); @@ -328,7 +329,13 @@ init_keys(void) log_err(LD_GENERAL,"Error initializing descriptor."); return -1; } - if (dirserv_add_descriptor(router_get_my_routerinfo(), &m) < 0) { + ri = router_parse_entry_from_string(mydesc, NULL, 1); + if (!ri) { + log_err(LD_GENERAL,"Generated a routerinfo we couldn't parse."); + return -1; + } + if (dirserv_add_descriptor(ri, &m) + < 0) { log_err(LD_GENERAL,"Unable to add own descriptor to directory: %s", m?m:"<unknown error>"); return -1; |