]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Check bandwidth changes only if small uptime
authorjuga0 <juga@riseup.net>
Sun, 3 Jun 2018 09:31:19 +0000 (09:31 +0000)
committerjuga0 <juga@riseup.net>
Sun, 3 Jun 2018 18:24:27 +0000 (18:24 +0000)
to upload a new descriptor.

src/or/router.c

index 31f2ff00d2edaecb08a259ae8f3bfdebc1964b65..ab916fb6e61de17bd73377a674f91cccc13ee8af 100644 (file)
@@ -2425,13 +2425,24 @@ mark_my_descriptor_dirty(const char *reason)
  * if our previous bandwidth estimate was exactly 0. */
 #define MAX_BANDWIDTH_CHANGE_FREQ (3*60*60)
 
+/** Maximum uptime to republish our descriptor because of large shifts in
+ * estimated bandwidth. */
+#define MAX_UPTIME_BANDWIDTH_CHANGE (24*60*60)
+
 /** Check whether bandwidth has changed a lot since the last time we announced
- * bandwidth. If so, mark our descriptor dirty. */
+ * bandwidth while the uptime is smaller than MAX_UPTIME_BANDWIDTH_CHANGE.
+ * If so, mark our descriptor dirty. */
 void
 check_descriptor_bandwidth_changed(time_t now)
 {
   static time_t last_changed = 0;
   uint64_t prev, cur;
+
+  /* If the relay uptime is bigger than MAX_UPTIME_BANDWIDTH_CHANGE,
+   * the next regularly scheduled descriptor update (18h) will be enough */
+  if (get_uptime() > MAX_UPTIME_BANDWIDTH_CHANGE)
+    return;
+
   if (!router_get_my_routerinfo())
     return;