瀏覽代碼

choose exit nodes by bandwidth too

svn:r2274
Roger Dingledine 21 年之前
父節點
當前提交
b294a037a4
共有 3 個文件被更改,包括 4 次插入3 次删除
  1. 2 2
      src/or/circuitbuild.c
  2. 1 0
      src/or/or.h
  3. 1 1
      src/or/routerlist.c

+ 2 - 2
src/or/circuitbuild.c

@@ -909,7 +909,7 @@ static routerinfo_t *choose_good_exit_server_general(routerlist_t *dir)
     smartlist_subtract(sl,excludedexits);
     if (options.StrictExitNodes || smartlist_overlap(sl,preferredexits))
       smartlist_intersect(sl,preferredexits);
-    router = smartlist_choose(sl);
+    router = routerlist_sl_choose_by_bandwidth(sl);
   } else {
     /* Either there are no pending connections, or no routers even seem to
      * possibly support any of them.  Choose a router at random. */
@@ -923,7 +923,7 @@ static routerinfo_t *choose_good_exit_server_general(routerlist_t *dir)
     smartlist_subtract(sl,excludedexits);
     if (options.StrictExitNodes || smartlist_overlap(sl,preferredexits))
       smartlist_intersect(sl,preferredexits);
-    router = smartlist_choose(sl);
+    router = routerlist_sl_choose_by_bandwidth(sl);
   }
 
   smartlist_free(preferredexits);

+ 1 - 0
src/or/or.h

@@ -1396,6 +1396,7 @@ int all_directory_servers_down(void);
 struct smartlist_t;
 void add_nickname_list_to_smartlist(struct smartlist_t *sl, const char *list);
 int router_nickname_matches(routerinfo_t *router, const char *nickname);
+routerinfo_t *routerlist_sl_choose_by_bandwidth(smartlist_t *sl);
 routerinfo_t *router_choose_random_node(char *preferred, char *excluded,
                                         struct smartlist_t *excludedsmartlist,
                                         int preferuptime, int preferbandwidth,

+ 1 - 1
src/or/routerlist.c

@@ -236,7 +236,7 @@ routerlist_sl_remove_unreliable_routers(smartlist_t *sl)
   }
 }
 
-static routerinfo_t *
+routerinfo_t *
 routerlist_sl_choose_by_bandwidth(smartlist_t *sl)
 {
   int i;