mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 22:03:31 +01:00
Never use time(NULL) as assumed publication time for a directory.
svn:r2105
This commit is contained in:
parent
0536b853fd
commit
33fe5e362f
@ -1415,7 +1415,8 @@ int router_get_dir_hash(const char *s, char *digest);
|
||||
int router_get_runningrouters_hash(const char *s, char *digest);
|
||||
int router_parse_list_from_string(const char **s,
|
||||
routerlist_t **dest,
|
||||
smartlist_t *good_nickname_list);
|
||||
smartlist_t *good_nickname_list,
|
||||
time_t published);
|
||||
int router_parse_routerlist_from_directory(const char *s,
|
||||
routerlist_t **dest,
|
||||
crypto_pk_env_t *pkey);
|
||||
|
@ -561,7 +561,7 @@ int router_load_routerlist_from_string(const char *s, int trusted)
|
||||
{
|
||||
routerlist_t *new_list=NULL;
|
||||
|
||||
if (router_parse_list_from_string(&s, &new_list, NULL)) {
|
||||
if (router_parse_list_from_string(&s, &new_list, NULL, 0)) {
|
||||
log(LOG_WARN, "Error parsing router file");
|
||||
return -1;
|
||||
}
|
||||
|
@ -393,14 +393,15 @@ router_parse_routerlist_from_directory(const char *str,
|
||||
{
|
||||
routerinfo_t *me = router_get_my_routerinfo();
|
||||
if(me)
|
||||
router_update_status_from_smartlist(me, time(NULL), good_nickname_list);
|
||||
router_update_status_from_smartlist(me, published_on,
|
||||
good_nickname_list);
|
||||
}
|
||||
|
||||
/* Read the router list from s, advancing s up past the end of the last
|
||||
* router. */
|
||||
str = end;
|
||||
if (router_parse_list_from_string(&str, &new_dir,
|
||||
good_nickname_list)) {
|
||||
good_nickname_list, published_on)) {
|
||||
log_fn(LOG_WARN, "Error reading routers from directory");
|
||||
goto err;
|
||||
}
|
||||
@ -576,7 +577,8 @@ static int check_directory_signature(const char *digest,
|
||||
*/
|
||||
int
|
||||
router_parse_list_from_string(const char **s, routerlist_t **dest,
|
||||
smartlist_t *good_nickname_list)
|
||||
smartlist_t *good_nickname_list,
|
||||
time_t published_on)
|
||||
{
|
||||
routerinfo_t *router;
|
||||
smartlist_t *routers;
|
||||
@ -607,7 +609,7 @@ router_parse_list_from_string(const char **s, routerlist_t **dest,
|
||||
}
|
||||
|
||||
if (good_nickname_list) {
|
||||
router_update_status_from_smartlist(router, time(NULL),
|
||||
router_update_status_from_smartlist(router, published_on,
|
||||
good_nickname_list);
|
||||
} else {
|
||||
router->is_running = 1; /* start out assuming all dirservers are up */
|
||||
|
Loading…
Reference in New Issue
Block a user