]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Never use time(NULL) as assumed publication time for a directory.
authorNick Mathewson <nickm@torproject.org>
Thu, 22 Jul 2004 20:30:02 +0000 (20:30 +0000)
committerNick Mathewson <nickm@torproject.org>
Thu, 22 Jul 2004 20:30:02 +0000 (20:30 +0000)
svn:r2105

src/or/or.h
src/or/routerlist.c
src/or/routerparse.c

index 47ff398995a91a43b8e96e04d4b5bf817fd82309..ae5ae26a8a787b5b2a12f2850b3942b18918f312 100644 (file)
@@ -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);
index bb645049302719ac2ac8d706ccac40313793b96b..bd445602ad520b47d2a3a8fd6ffb263657665513 100644 (file)
@@ -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;
   }
index 96cf1c3deecb685f5604de84d4e0877c72d7bf94..277178f638adafbfc30a568a888f0cca8188ef5c 100644 (file)
@@ -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 */