]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Merge remote branch 'origin/maint-0.2.2'
authorNick Mathewson <nickm@torproject.org>
Sat, 12 Mar 2011 04:34:46 +0000 (23:34 -0500)
committerNick Mathewson <nickm@torproject.org>
Sat, 12 Mar 2011 04:34:46 +0000 (23:34 -0500)
1  2 
src/or/dirserv.c
src/or/dirvote.c
src/or/rephist.c
src/or/rephist.h

index 4f06de1e90ca5bf6c199860fb1bf5ea7290d31eb,40136a18e382ff980cad6d446eee4ab9fe6117b1..cbf8c3685a99d32af3ac996e40ad6819907f50a6
@@@ -1800,10 -1775,24 +1802,25 @@@ dirserv_thinks_router_is_unreliable(tim
   * been set.
   */
  static int
 -dirserv_thinks_router_is_hs_dir(routerinfo_t *router, time_t now)
 +dirserv_thinks_router_is_hs_dir(const routerinfo_t *router,
 +                                const node_t *node, time_t now)
  {
-   long uptime = real_uptime(router, now);
+   long uptime;
+   /* If we haven't been running for at least
+    * get_options()->MinUptimeHidServDirectoryV2 seconds, we can't
+    * have accurate data telling us a relay has been up for at least
+    * that long. We also want to allow a bit of slack: Reachability
+    * tests aren't instant. If we haven't been running long enough,
+    * trust the relay. */
+   if (stats_n_seconds_working >
+       get_options()->MinUptimeHidServDirectoryV2 * 1.1)
+     uptime = MIN(rep_hist_get_uptime(router->cache_info.identity_digest, now),
+                  real_uptime(router, now));
+   else
+     uptime = real_uptime(router, now);
  
    /* XXX We shouldn't need to check dir_port, but we do because of
     * bug 1693. In the future, once relays set wants_to_be_hs_dir
Simple merge
Simple merge
Simple merge