[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[or-cvs] r15444: class SelectionManager has been updated to include the varia (torflow/branches/gsoc2008/TorCtl)
Author: fallon
Date: 2008-06-24 04:48:28 -0400 (Tue, 24 Jun 2008)
New Revision: 15444
Modified:
torflow/branches/gsoc2008/TorCtl/PathSupport.py
Log:
class SelectionManager has been updated to include the variable 'restrict_guards_only'. When this is equal to True, PercentileRestriction will only apply to entry nodes. This is achieved through changes to SelectionManager.reconfigure().
class Connection has been updated to include an __init__ function. It calls the init function for TorCtl.Connection.
Modified: torflow/branches/gsoc2008/TorCtl/PathSupport.py
===================================================================
--- torflow/branches/gsoc2008/TorCtl/PathSupport.py 2008-06-24 08:00:30 UTC (rev 15443)
+++ torflow/branches/gsoc2008/TorCtl/PathSupport.py 2008-06-24 08:48:28 UTC (rev 15444)
@@ -163,6 +163,8 @@
class Connection(TorCtl.Connection):
"""Extended Connection class that provides a method for building circuits"""
+ def __init__(self, sock):
+ TorCtl.Connection.__init__(self,sock)
def build_circuit(self, pathlen, path_sel):
"Tell Tor to build a circuit chosen by the PathSelector 'path_sel'"
circ = Circuit()
@@ -724,7 +726,7 @@
"""
def __init__(self, pathlen, order_exits,
percent_fast, percent_skip, min_bw, use_all_exits,
- uniform, use_exit, use_guards, geoip_config=None):
+ uniform, use_exit, use_guards,restrict_guards, geoip_config=None):
self.__ordered_exit_gen = None
self.pathlen = pathlen
self.order_exits = order_exits
@@ -737,6 +739,8 @@
self.use_guards = use_guards
self.geoip_config = geoip_config
+ self.restrict_guards_only = restrict_guards
+
def reconfigure(self, sorted_r):
"""This function is called after a configuration change,
to rebuild the RestrictionLists."""
@@ -748,24 +752,35 @@
if self.use_guards: entry_flags = ["Guard", "Valid", "Running"]
else: entry_flags = ["Valid", "Running"]
-
+
+
+ if self.restrict_guards_only:
+ entry_flags = ["Guard","Valid","Running"]
+ nonentry_skip = 0
+ nonentry_fast = 100
+ else:
+ entry_flags = ["Valid","Running"]
+ nonentry_skip = self.percent_skip
+ nonentry_fast = self.percent_fast
+
entry_rstr = NodeRestrictionList(
[PercentileRestriction(self.percent_skip, self.percent_fast, sorted_r),
ConserveExitsRestriction(),
FlagsRestriction(entry_flags, [])]
)
mid_rstr = NodeRestrictionList(
- [PercentileRestriction(self.percent_skip, self.percent_fast, sorted_r),
+ [PercentileRestriction(nonentry_skip, nonentry_fast, sorted_r),
ConserveExitsRestriction(),
- FlagsRestriction(["Running"], [])]
+ FlagsRestriction(["Running","Fast"], [])]
+
)
if self.use_all_exits:
self.exit_rstr = NodeRestrictionList(
- [FlagsRestriction(["Valid", "Running"], ["BadExit"])])
+ [FlagsRestriction(["Valid", "Running","Fast"], ["BadExit"])])
else:
self.exit_rstr = NodeRestrictionList(
- [PercentileRestriction(self.percent_skip, self.percent_fast, sorted_r),
- FlagsRestriction(["Valid", "Running"], ["BadExit"])])
+ [PercentileRestriction(nonentry_skip, nonentry_fast, sorted_r),
+ FlagsRestriction(["Valid", "Running","Fast"], ["BadExit"])])
if self.exit_name:
self.exit_rstr.del_restriction(IdHexRestriction)
@@ -875,6 +890,7 @@
self.path = [] # routers
self.exit = None
self.built = False
+ self.failed = False
self.dirty = False
self.closed = False
self.detached_cnt = 0