Commit e033d98f authored by juga's avatar juga Committed by Nick Mathewson
Browse files

Check descriptor bandwidth changed if not hibernating

There should be a separate check to update descriptor when start
or end hibernating.
parent 1066fdd8
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -2440,17 +2440,18 @@ check_descriptor_bandwidth_changed(time_t now)
{
  static time_t last_changed = 0;
  uint64_t prev, cur;
  int hibernating = we_are_hibernating();

  /* 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)
  if (get_uptime() > MAX_UPTIME_BANDWIDTH_CHANGE && !hibernating)
    return;

  if (!router_get_my_routerinfo())
    return;

  prev = router_get_my_routerinfo()->bandwidthcapacity;
  cur = we_are_hibernating() ? 0 : rep_hist_bandwidth_assess();
  cur = hibernating ? 0 : rep_hist_bandwidth_assess();
  if ((prev != cur && (!prev || !cur)) ||
      cur > (prev * BANDWIDTH_CHANGE_FACTOR) ||
      cur < (prev / BANDWIDTH_CHANGE_FACTOR) ) {