]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Merge remote-tracking branch 'origin/maint-0.2.2'
authorNick Mathewson <nickm@torproject.org>
Wed, 7 Sep 2011 18:51:55 +0000 (14:51 -0400)
committerNick Mathewson <nickm@torproject.org>
Wed, 7 Sep 2011 18:51:55 +0000 (14:51 -0400)
Conflicts:
src/or/dirserv.c
src/or/networkstatus.c

Conflicts were related to routerinfo->node shift.

1  2 
doc/tor.1.txt
src/or/config.c
src/or/dirserv.c
src/or/dirvote.h
src/or/networkstatus.c
src/or/or.h

diff --cc doc/tor.1.txt
Simple merge
diff --cc src/or/config.c
Simple merge
index 0ea1ef6489c6ca680e1d858861d855720a357fdb,66079018abe137f44ac69e3898e27e6eeba6ce9d..d22a0538dfb05edabd43651fd5ef7536524adb74
@@@ -2297,11 -2260,9 +2297,11 @@@ get_possible_sybil_list(const smartlist
   */
  void
  set_routerstatus_from_routerinfo(routerstatus_t *rs,
 -                                 routerinfo_t *ri, time_t now,
 +                                 node_t *node,
 +                                 routerinfo_t *ri,
 +                                 time_t now,
                                   int naming, int listbadexits,
-                                  int listbaddirs)
+                                  int listbaddirs, int vote_on_hsdirs)
  {
    int unstable_version =
      !tor_version_as_new_as(ri->platform,"0.1.1.16-rc-cvs");
    } else {
      rs->is_possible_guard = 0;
    }
 -  rs->is_bad_directory = listbaddirs && ri->is_bad_directory;
 -  rs->is_bad_exit = listbadexits && ri->is_bad_exit;
 -  ri->is_hs_dir = dirserv_thinks_router_is_hs_dir(ri, now);
 -  rs->is_hs_dir = vote_on_hsdirs && ri->is_hs_dir;
++
 +  rs->is_bad_directory = listbaddirs && node->is_bad_directory;
 +  rs->is_bad_exit = listbadexits && node->is_bad_exit;
 +  node->is_hs_dir = dirserv_thinks_router_is_hs_dir(ri, node, now);
-   rs->is_hs_dir = node->is_hs_dir;
++  rs->is_hs_dir = vote_on_hsdirs && node->is_hs_dir;
    rs->is_v2_dir = ri->dir_port != 0;
  
    if (!strcasecmp(ri->nickname, UNNAMED_ROUTER_NICKNAME))
@@@ -2628,8 -2601,9 +2630,9 @@@ dirserv_generate_networkstatus_vote_obj
  
        vrs = tor_malloc_zero(sizeof(vote_routerstatus_t));
        rs = &vrs->status;
 -      set_routerstatus_from_routerinfo(rs, ri, now,
 +      set_routerstatus_from_routerinfo(rs, node, ri, now,
-                                        naming, listbadexits, listbaddirs);
+                                        naming, listbadexits, listbaddirs,
+                                        vote_on_hsdirs);
  
        if (digestmap_get(omit_as_sybil, ri->cache_info.identity_digest))
          clear_status_flags_on_sybil(rs);
@@@ -2868,13 -2849,10 +2874,14 @@@ generate_v2_networkstatus_opinion(void
      if (ri->cache_info.published_on >= cutoff) {
        routerstatus_t rs;
        char *version = version_from_platform(ri->platform);
 -
 -      set_routerstatus_from_routerinfo(&rs, ri, now,
 +      node_t *node = node_get_mutable_by_id(ri->cache_info.identity_digest);
 +      if (!node) {
 +        tor_free(version);
 +        continue;
 +      }
 +      set_routerstatus_from_routerinfo(&rs, node, ri, now,
-                                        naming, listbadexits, listbaddirs);
+                                        naming, listbadexits, listbaddirs,
+                                        vote_on_hsdirs);
  
        if (digestmap_get(omit_as_sybil, ri->cache_info.identity_digest))
          clear_status_flags_on_sybil(&rs);
index b6746c65570637de165c7e0f06061780f5a4af43,de11fcf997725a87def077d26b7f3f8fbd9a889c..d19635173f70572668bc5a8b940d54346576a002
@@@ -60,10 -60,9 +60,10 @@@ const char *dirvote_get_pending_detache
  #define DGV_INCLUDE_PREVIOUS 4
  const cached_dir_t *dirvote_get_vote(const char *fp, int flags);
  void set_routerstatus_from_routerinfo(routerstatus_t *rs,
 +                                      node_t *node,
                                        routerinfo_t *ri, time_t now,
                                        int naming, int listbadexits,
-                                       int listbaddirs);
+                                       int listbaddirs, int vote_on_hsdirs);
  void router_clear_status_flags(routerinfo_t *ri);
  networkstatus_t *
  dirserv_generate_networkstatus_vote_obj(crypto_pk_env_t *private_key,
index 398f041532cf306bef9909b72e66f069649198cd,b0ef74b02ec12866ab772770e2fe6c18ad6b83a7..7cd9d02c3f28c3b06964e1d91153c4a59e592148
@@@ -2133,7 -2105,7 +2133,7 @@@ networkstatus_getinfo_by_purpose(const 
      if (bridge_auth && ri->purpose == ROUTER_PURPOSE_BRIDGE)
        dirserv_set_router_is_running(ri, now);
      /* then generate and write out status lines for each of them */
-     set_routerstatus_from_routerinfo(&rs, node, ri, now, 0, 0, 0);
 -    set_routerstatus_from_routerinfo(&rs, ri, now, 0, 0, 0, 0);
++    set_routerstatus_from_routerinfo(&rs, node, ri, now, 0, 0, 0, 0);
      smartlist_add(statuses, networkstatus_getinfo_helper_single(&rs));
    });
  
diff --cc src/or/or.h
Simple merge