Don't exit on dirauths for some config transitions

This commit is contained in:
Sebastian Hahn
2011-11-08 12:44:12 +01:00
parent e26f5553ec
commit 4ccc8d0292
2 changed files with 21 additions and 4 deletions
+6
View File
@@ -0,0 +1,6 @@
o Minor bugfixes:
- Fix a dirauth-only exit on sighup that could happen during some
configuration state transitions. We now don't treat it as a fatal
error when the new descriptor we just generated in init_keys
isn't accepted. Fixes bug 4438; bugfix on FIXME.
+15 -4
View File
@@ -646,15 +646,26 @@ init_keys(void)
return -1;
}
if (mydesc) {
was_router_added_t added;
ri = router_parse_entry_from_string(mydesc, NULL, 1, 0, NULL);
if (!ri) {
log_err(LD_GENERAL,"Generated a routerinfo we couldn't parse.");
return -1;
}
if (!WRA_WAS_ADDED(dirserv_add_descriptor(ri, &m, "self"))) {
log_err(LD_GENERAL,"Unable to add own descriptor to directory: %s",
m?m:"<unknown error>");
return -1;
added = dirserv_add_descriptor(ri, &m, "self");
if (!WRA_WAS_ADDED(added)) {
if (WRA_WAS_REJECTED(added)) {
log_err(LD_GENERAL, "Unable to add own descriptor to directory: %s",
m?m:"<unknown error>");
return -1;
} else {
/* If the descriptor wasn't rejected, that's ok. This can happen
* when some config options are toggled that affect workers, but
* we don't really need new keys yet so the descriptor doesn't
* change and the old one is still fresh. */
log_info(LD_GENERAL, "Couldn't add own descriptor to directory: %s",
m?m:"unknown error>");
}
}
}
}