Browse Source

Merge remote-tracking branch 'dgoulet/ticket23480_032_01'

Nick Mathewson 6 years ago
parent
commit
d71a00e91f
3 changed files with 14 additions and 8 deletions
  1. 2 4
      src/or/hs_cache.c
  2. 8 2
      src/or/hs_service.c
  3. 4 2
      src/or/nodelist.c

+ 2 - 4
src/or/hs_cache.c

@@ -234,8 +234,7 @@ cache_clean_v3_as_dir(time_t now, time_t global_cutoff)
     /* Logging. */
     {
       char key_b64[BASE64_DIGEST256_LEN + 1];
-      base64_encode(key_b64, sizeof(key_b64), (const char *) key,
-                    DIGEST256_LEN, 0);
+      digest256_to_base64(key_b64, (const char *) key);
       log_info(LD_REND, "Removing v3 descriptor '%s' from HSDir cache",
                safe_str_client(key_b64));
     }
@@ -655,8 +654,7 @@ cache_clean_v3_as_client(time_t now)
     /* Logging. */
     {
       char key_b64[BASE64_DIGEST256_LEN + 1];
-      base64_encode(key_b64, sizeof(key_b64), (const char *) key,
-                    DIGEST256_LEN, 0);
+      digest256_to_base64(key_b64, (const char *) key);
       log_info(LD_REND, "Removing hidden service v3 descriptor '%s' "
                         "from client cache",
                safe_str_client(key_b64));

+ 8 - 2
src/or/hs_service.c

@@ -3023,8 +3023,14 @@ hs_service_lists_fnames_for_sandbox(smartlist_t *file_list,
 void
 hs_service_dir_info_changed(void)
 {
-  log_info(LD_REND, "New dirinfo arrived: consider reuploading descriptor");
-  consider_republishing_hs_descriptors = 1;
+  if (hs_service_get_num_services() > 0) {
+    /* New directory information usually goes every consensus so rate limit
+     * every 30 minutes to not be too conservative. */
+    static struct ratelim_t dir_info_changed_ratelim = RATELIM_INIT(30 * 60);
+    log_fn_ratelim(&dir_info_changed_ratelim, LOG_INFO, LD_REND,
+                   "New dirinfo arrived: consider reuploading descriptor");
+    consider_republishing_hs_descriptors = 1;
+  }
 }
 
 /* Called when we get an INTRODUCE2 cell on the circ. Respond to the cell and

+ 4 - 2
src/or/nodelist.c

@@ -300,14 +300,16 @@ node_set_hsdir_index(node_t *node, const networkstatus_t *ns)
   tor_assert(ns);
 
   if (!networkstatus_is_live(ns, now)) {
-    log_info(LD_GENERAL, "Not setting hsdir index with a non-live consensus.");
+    static struct ratelim_t live_consensus_ratelim = RATELIM_INIT(30 * 60);
+    log_fn_ratelim(&live_consensus_ratelim, LOG_INFO, LD_GENERAL,
+                   "Not setting hsdir index with a non-live consensus.");
     goto done;
   }
 
   node_identity_pk = node_get_ed25519_id(node);
   if (node_identity_pk == NULL) {
     log_debug(LD_GENERAL, "ed25519 identity public key not found when "
-              "trying to build the hsdir indexes for node %s",
+                          "trying to build the hsdir indexes for node %s",
               node_describe(node));
     goto done;
   }