[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [arm/master] Stem calls lacked an isAlive() check
commit edc2447b4b3a2b01ef2b2314edf72478d8f7ac0c
Author: Damian Johnson <atagar@xxxxxxxxxxxxxx>
Date: Sun Dec 16 11:32:12 2012 -0800
Stem calls lacked an isAlive() check
When arm's controller is detached its 'conn' and 'controller' attributes are
None. This means that all of our function calls need an isAlive() check before
using them...
atagar@morrigan:~/Desktop/arm$ ./arm
Traceback (most recent call last):
File "./src/starter.py", line 566, in <module>
_loadConfigurationDescriptions(pathPrefix)
File "./src/starter.py", line 162, in _loadConfigurationDescriptions
util.torConfig.loadOptionDescriptions(descriptorPath)
File "/home/atagar/Desktop/arm/src/util/torConfig.py", line 137, in loadOptionDescriptions
torVersion = torTools.getConn().getInfo("version", "")
File "/home/atagar/Desktop/arm/src/util/torTools.py", line 725, in getInfo
return self.controller.get_info(param, default)
AttributeError: 'NoneType' object has no attribute 'get_info'
Ideally we'd just drop arm's controller and use stem's (which has its own
locks and check for this), but that'll need to come later.
---
src/util/torTools.py | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/src/util/torTools.py b/src/util/torTools.py
index 92d2cf0..79b4e70 100644
--- a/src/util/torTools.py
+++ b/src/util/torTools.py
@@ -721,6 +721,12 @@ class Controller(TorCtl.PostEventListener):
self.connLock.acquire()
try:
+ if not self.isAlive():
+ if default != UNDEFINED:
+ return default
+ else:
+ raise stem.SocketClosed()
+
if default != UNDEFINED:
return self.controller.get_info(param, default)
else:
@@ -748,6 +754,12 @@ class Controller(TorCtl.PostEventListener):
self.connLock.acquire()
try:
+ if not self.isAlive():
+ if default != UNDEFINED:
+ return default
+ else:
+ raise stem.SocketClosed()
+
if default != UNDEFINED:
return self.controller.get_conf(param, default, multiple)
else:
@@ -790,6 +802,9 @@ class Controller(TorCtl.PostEventListener):
self.connLock.acquire()
try:
+ if not self.isAlive():
+ raise stem.SocketClosed()
+
# clears our exit policy chache if it's changing
if "exitpolicy" in [k.lower() for (k, v) in paramList]:
self._exitPolicyChecker = self.getExitPolicy()
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits