[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[or-cvs] r19122: {torflow} Fix issue with wrong Circuit class being used after reorg. A (torflow/trunk/CircuitAnalysis/OPAddon)
Author: mikeperry
Date: 2009-03-25 04:08:12 -0400 (Wed, 25 Mar 2009)
New Revision: 19122
Modified:
torflow/trunk/CircuitAnalysis/OPAddon/op-addon.py
Log:
Fix issue with wrong Circuit class being used after reorg.
Also fix startup code to allow us to use pychecker, and fix
some pychecker warns.
Modified: torflow/trunk/CircuitAnalysis/OPAddon/op-addon.py
===================================================================
--- torflow/trunk/CircuitAnalysis/OPAddon/op-addon.py 2009-03-25 08:07:52 UTC (rev 19121)
+++ torflow/trunk/CircuitAnalysis/OPAddon/op-addon.py 2009-03-25 08:08:12 UTC (rev 19122)
@@ -18,6 +18,7 @@
import ConfigParser
sys.path.append("../../")
+sys.path.append("../../NetworkScanners/libs/")
from TorCtl import *
from TorCtl.TorUtil import plog, sort_list
@@ -33,22 +34,26 @@
# Simulation modus
SIMULATE = False
+CONFIG_FILE = "pathrc.example"
+
+# XXX: this is pretty bad.. this should all be in a main()
+# or something -MP
# Try to get the config-file from the commandline first
-if len(sys.argv) == 1:
- CONFIG_FILE = "pathrc.example"
-elif len(sys.argv) == 2:
- CONFIG_FILE = sys.argv[1]
-# Check if '--simulate' is given
-elif len(sys.argv) == 3 or len(sys.argv) == 4:
- if sys.argv[2] == "--simulate":
- CONFIG_FILE = sys.argv[1]
- SIMULATE = True
- else:
- plog("ERROR", "Unknown argument: '" + sys.argv[2] + "' exiting.")
- sys.exit(0)
-else:
- plog("ERROR", "Too many arguments, exiting.")
- sys.exit(0)
+#if len(sys.argv) == 1:
+# CONFIG_FILE = "pathrc.example"
+#elif len(sys.argv) == 2:
+# CONFIG_FILE = sys.argv[1]
+## Check if '--simulate' is given
+#elif len(sys.argv) == 3 or len(sys.argv) == 4:
+# if sys.argv[2] == "--simulate":
+# CONFIG_FILE = sys.argv[1]
+# SIMULATE = True
+# else:
+# plog("ERROR", "Unknown argument: '" + sys.argv[2] + "' exiting.")
+# sys.exit(0)
+#else:
+# plog("ERROR", "Too many arguments, exiting.")
+# sys.exit(0)
# Set some defaults for string-variables that can be None
string_defaults = {"use_exit":None, "entry_country":None,
@@ -74,7 +79,7 @@
ping_circs = config.getboolean(RTT, "ping_circs")
network_model = False
if ping_circs:
- import socks
+ from SocksiPy import socks
# Hosts and ports to use for ping streams
socks_host = config.get(RTT, "socks_host")
socks_port = config.getint(RTT, "socks_port")
@@ -91,7 +96,7 @@
# also enables circuit creation from the model
network_model = config.getboolean(MODEL, "network_model")
if network_model:
- import networkx
+ import networkx # XXX: What is this?? -MP
# RTT-threshold when creating circs from the model
max_rtt = config.getfloat(MODEL, "max_rtt")
# Minimum number of proposals to choose from
@@ -296,6 +301,17 @@
self.hop = None # Save hop if this is a ping, hop=None is complete circ
self.bw_timestamp = None # Timestamp of the last stream_bw event
+## Connection (needed to make use of Circuit above ####
+
+class Connection(PathSupport.Connection):
+ def build_circuit(self, path):
+ "Tell Tor to build a circuit chosen by the PathSelector 'path_sel'"
+ circ = Circuit()
+ circ.path = path
+ circ.exit = circ.path[len(path)-1]
+ circ.circ_id = self.extend_circuit(0, circ.id_path())
+ return circ
+
## NetworkModel ###############################################################
class TorLink:
@@ -498,7 +514,7 @@
else:
plog("INFO", "We do not know about a router having ID " + id)
try:
- self.model.delete_node(id)
+ self.delete_node(id)
except:
plog("ERROR", "Could not delete router with ID " + id)
if len(routers) == len(keys):
@@ -786,7 +802,7 @@
self.close_stream(s.strm_id, 5)
else:
# Go to next test if circuit is gone or we get an ErrorReply
- plog("WARN", "Circuit " + str(circ_id) +
+ plog("WARN", "Circuit " + str(circ.circ_id) +
" does not exist anymore --> closing stream")
# Close stream, XXX: Reason?
self.close_stream(s.strm_id, 5)
@@ -1029,7 +1045,7 @@
""" Count the circuits with rtt_created == False """
trad_circs = 0
for c in self.circuits.values():
- if c.rtt_created == False:
+ if not c.rtt_created:
trad_circs += 1
return trad_circs
@@ -1124,7 +1140,7 @@
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((config.get(GENERAL, "control_host"),
config.getint(GENERAL, "control_port")))
- conn = PathSupport.Connection(sock)
+ conn = Connection(sock)
conn.authenticate()
#conn.debug(file("control.log", "w"))
except socket.error, e: