Kaynağa Gözat

rebuild directory before uploading

svn:r528
Nick Mathewson 20 yıl önce
ebeveyn
işleme
91cf86d8da
3 değiştirilmiş dosya ile 6 ekleme ve 5 silme
  1. 2 1
      src/or/main.c
  2. 1 0
      src/or/or.h
  3. 3 4
      src/or/routers.c

+ 2 - 1
src/or/main.c

@@ -274,7 +274,8 @@ static int prepare_for_poll(void) {
     if(time_to_fetch_directory < now.tv_sec) {
       /* it's time to fetch a new directory and/or post our descriptor */
       if(options.OnionRouter) {
-           router_upload_desc_to_dirservers();
+        router_rebuild_descriptor();
+        router_upload_desc_to_dirservers();
       }
       if(!options.DirPort) {
         /* NOTE directory servers do not currently fetch directories.

+ 1 - 0
src/or/or.h

@@ -694,6 +694,7 @@ int router_dump_router_to_string(char *s, int maxlen, routerinfo_t *router,
                                  crypto_pk_env_t *ident_key);
 const routerinfo_t *router_get_desc_routerinfo(void);
 const char *router_get_my_descriptor(void);
+int router_rebuild_descriptor(void);
 
 /********************************* dirserv.c ***************************/
 int dirserv_add_own_fingerprint(const char *nickname, crypto_pk_env_t *pk);

+ 3 - 4
src/or/routers.c

@@ -39,7 +39,6 @@ static void router_free_exit_policy(routerinfo_t *router);
 static int router_add_exit_policy(routerinfo_t *router, 
                                   directory_token_t *tok);
 static int router_resolve_directory(directory_t *dir);
-static int init_descriptor(void);
 
 /****************************************************************************/
 
@@ -1100,7 +1099,7 @@ static char descriptor[8192];
 static routerinfo_t *desc_routerinfo = NULL; 
 const char *router_get_my_descriptor(void) {
   if (!desc_routerinfo) {
-    if (init_descriptor())
+    if (router_rebuild_descriptor())
       return NULL;
   }
   log_fn(LOG_DEBUG,"my desc is '%s'",descriptor);
@@ -1108,13 +1107,13 @@ const char *router_get_my_descriptor(void) {
 }
 const routerinfo_t *router_get_desc_routerinfo(void) {
   if (!desc_routerinfo) {
-    if (init_descriptor()) 
+    if (router_rebuild_descriptor()) 
       return NULL;
   }
   return desc_routerinfo;
 }
 
-static int init_descriptor(void) {
+int router_rebuild_descriptor(void) {
   routerinfo_t *ri;
   char localhostname[256];
   char *address = options.Address;