[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [stem/master] Moving attribute enums to top level module
commit c96c76ce16d42aeef6641bfeaaf937673934dc5c
Author: Damian Johnson <atagar@xxxxxxxxxxxxxx>
Date: Sun Nov 18 12:55:52 2012 -0800
Moving attribute enums to top level module
Enumerations for our event attributes don't really belong in the control
module. They're a bit more like our exceptions in that they're a data type that
might be used in multiple spots. Hence moving the enums to live with them.
---
docs/api/control.rst | 4 +-
stem/__init__.py | 285 ++++++++++++++++++++++++++++++++++++++++++
stem/control.py | 274 ----------------------------------------
stem/response/events.py | 41 +++---
test/unit/response/events.py | 10 +--
5 files changed, 309 insertions(+), 305 deletions(-)
diff --git a/docs/api/control.rst b/docs/api/control.rst
index 0a17d9e..4301374 100644
--- a/docs/api/control.rst
+++ b/docs/api/control.rst
@@ -3,8 +3,8 @@ Controller
.. automodule:: stem.control
-Exceptions
-----------
+Exceptions and Attribute Enums
+------------------------------
.. automodule:: stem
diff --git a/stem/__init__.py b/stem/__init__.py
index 961bc48..c27df43 100644
--- a/stem/__init__.py
+++ b/stem/__init__.py
@@ -13,6 +13,179 @@ Library for working with the tor process.
| +- InvalidArguments - Invalid request parameters.
+- SocketError - Communication with the socket failed.
+- SocketClosed - Socket has been shut down.
+
+.. data:: CircStatus (enum)
+
+ Statuses that a circuit can be in. Tor may provide statuses not in this enum.
+
+ ============ ===========
+ CircStatus Description
+ ============ ===========
+ **LAUNCHED** new circuit was created
+ **BUILT** circuit finished being created and can accept traffic
+ **EXTENDED** circuit has been extended by a hop
+ **FAILED** circuit construction failed
+ **CLOSED** circuit has been closed
+ ============ ===========
+
+.. data:: CircBuildFlag (enum)
+
+ Attributes about how a circuit is built. These were introduced in tor version
+ 0.2.3.11. Tor may provide flags not in this enum.
+
+ ================= ===========
+ CircBuildFlag Description
+ ================= ===========
+ **ONEHOP_TUNNEL** single hop circuit to fetch directory information
+ **IS_INTERNAL** circuit that won't be used for client traffic
+ **NEED_CAPACITY** circuit only includes high capacity relays
+ **NEED_UPTIME** circuit only includes relays with a high uptime
+ ================= ===========
+
+.. data:: CircPurpose (enum)
+
+ Description of what a circuit is intended for. These were introduced in tor
+ version 0.2.1.6. Tor may provide purposes not in this enum.
+
+ ==================== ===========
+ CircPurpose Description
+ ==================== ===========
+ **GENERAL** client traffic or fetching directory information
+ **HS_CLIENT_INTRO** client side introduction point for a hidden service circuit
+ **HS_CLIENT_REND** client side hidden service rendezvous circuit
+ **HS_SERVICE_INTRO** server side introduction point for a hidden service circuit
+ **HS_SERVICE_REND** server side hidden service rendezvous circuit
+ **TESTING** testing to see if we're reachable, so we can be used as a relay
+ **CONTROLLER** circuit that was built by a controller
+ ==================== ===========
+
+.. data:: CircClosureReason (enum)
+
+ Reason that a circuit is being closed or failed to be established. Tor may
+ provide purposes not in this enum.
+
+ ========================= ===========
+ CircClosureReason Description
+ ========================= ===========
+ **NONE** no reason given
+ **TORPROTOCOL** violation in the tor protocol
+ **INTERNAL** internal error
+ **REQUESTED** requested by the client via a TRUNCATE command
+ **HIBERNATING** relay is presently hibernating
+ **RESOURCELIMIT** relay is out of memory, sockets, or circuit IDs
+ **CONNECTFAILED** unable to contact the relay
+ **OR_IDENTITY** relay had the wrong OR identification
+ **OR_CONN_CLOSED** connection failed after being established
+ **FINISHED** circuit has expired (see tor's MaxCircuitDirtiness config option)
+ **TIMEOUT** circuit construction timed out
+ **DESTROYED** circuit unexpectedly closed
+ **NOPATH** not enough relays to make a circuit
+ **NOSUCHSERVICE** requested hidden service does not exist
+ **MEASUREMENT_EXPIRED** unknown (https://trac.torproject.org/7506)
+ ========================= ===========
+
+.. data:: HiddenServiceState (enum)
+
+ State that a hidden service circuit can have. These were introduced in tor
+ version 0.2.3.11. Tor may provide states not in this enum.
+
+ Enumerations fall into four groups based on their prefix...
+
+ ======= ===========
+ Prefix Description
+ ======= ===========
+ HSCI_* client-side introduction-point
+ HSCR_* client-side rendezvous-point
+ HSSI_* service-side introduction-point
+ HSSR_* service-side rendezvous-point
+ ======= ===========
+
+ ============================= ===========
+ HiddenServiceState Description
+ ============================= ===========
+ **HSCI_CONNECTING** connecting to the introductory point
+ **HSCI_INTRO_SENT** sent INTRODUCE1 and awaiting a reply
+ **HSCI_DONE** received a reply, circuit is closing
+ **HSCR_CONNECTING** connecting to the introductory point
+ **HSCR_ESTABLISHED_IDLE** rendezvous-point established, awaiting an introduction
+ **HSCR_ESTABLISHED_WAITING** introduction received, awaiting a rend
+ **HSCR_JOINED** connected to the hidden service
+ **HSSI_CONNECTING** connecting to the introductory point
+ **HSSI_ESTABLISHED** established introductory point
+ **HSSR_CONNECTING** connecting to the introductory point
+ **HSSR_JOINED** connected to the rendezvous-point
+ ============================= ===========
+
+.. data:: StreamStatus (enum)
+
+ State that a stream going through tor can have. Tor may provide states not in
+ this enum.
+
+ ================= ===========
+ StreamStatus Description
+ ================= ===========
+ **NEW** request for a new connection
+ **NEWRESOLVE** request to resolve an address
+ **REMAP** address is being re-mapped to another
+ **SENTCONNECT** sent a connect cell along a circuit
+ **SENTRESOLVE** sent a resolve cell along a circuit
+ **SUCCEEDED** stream has been established
+ **FAILED** stream is detached, and won't be re-established
+ **DETACHED** stream is detached, but might be re-established
+ **CLOSED** stream has closed
+ ================= ===========
+
+.. data:: StreamClosureReason (enum)
+
+ Reason that a stream is being closed or failed to be established. Tor may
+ provide purposes not in this enum.
+
+ ===================== ===========
+ StreamClosureReason Description
+ ===================== ===========
+ **MISC** none of the following reasons
+ **RESOLVEFAILED** unable to resolve the hostname
+ **CONNECTREFUSED** remote host refused the connection
+ **EXITPOLICY** rejected by the exit due to its exit policy
+ **DESTROY** circuit is being shut down
+ **DONE** connection has been closed
+ **TIMEOUT** connection timed out
+ **NOROUTE** routing error while contacting the destinaiton
+ **HIBERNATING** relay is hibernating
+ **INTERNAL** internal error
+ **RESOURCELIMIT** relay has insufficient resources to service the request
+ **CONNRESET** connection has been reset
+ **TORPROTOCOL** violation in the tor protocol
+ **NOTDIRECTORY** directory information requested from a relay that isn't mirroring it
+ **END** endpoint has sent a RELAY_END cell
+ **PRIVATE_ADDR** endpoint was a private address (127.0.0.1, 10.0.0.1, etc)
+ ===================== ===========
+
+.. data:: StreamSource (enum)
+
+ Cause of a stream being remapped to another address.
+
+ ============= ===========
+ StreamSource Description
+ ============= ===========
+ **CACHE** tor is remapping because of a cached answer
+ **EXIT** exit relay requested the remap
+ ============= ===========
+
+.. data:: StreamPurpose (enum)
+
+ Purpsoe of the stream. This is only provided with new streams and tor may
+ provide purposes not in this enum.
+
+ ================= ===========
+ StreamPurpose Description
+ ================= ===========
+ **DIR_FETCH** unknown (https://trac.torproject.org/7508)
+ **UPLOAD_DESC** unknown (https://trac.torproject.org/7508)
+ **DNS_REQUEST** unknown (https://trac.torproject.org/7508)
+ **USER** unknown (https://trac.torproject.org/7508)
+ **DIRPORT_TEST** unknown (https://trac.torproject.org/7508)
+ ================= ===========
"""
__version__ = '0.0.1'
@@ -40,8 +213,19 @@ __all__ = [
"InvalidArguments",
"SocketError",
"SocketClosed",
+ "CircStatus",
+ "CircBuildFlag",
+ "CircPurpose",
+ "CircClosureReason",
+ "HiddenServiceState",
+ "StreamStatus",
+ "StreamClosureReason",
+ "StreamSource",
+ "StreamPurpose",
]
+import stem.util.enum
+
class ControllerError(Exception):
"Base error for controller communication issues."
@@ -92,3 +276,104 @@ class SocketError(ControllerError):
class SocketClosed(SocketError):
"Control socket was closed before completing the message."
+CircStatus = stem.util.enum.UppercaseEnum(
+ "LAUNCHED",
+ "BUILT",
+ "EXTENDED",
+ "FAILED",
+ "CLOSED",
+)
+
+CircBuildFlag = stem.util.enum.UppercaseEnum(
+ "ONEHOP_TUNNEL",
+ "IS_INTERNAL",
+ "NEED_CAPACITY",
+ "NEED_UPTIME",
+)
+
+CircPurpose = stem.util.enum.UppercaseEnum(
+ "GENERAL",
+ "HS_CLIENT_INTRO",
+ "HS_CLIENT_REND",
+ "HS_SERVICE_INTRO",
+ "HS_SERVICE_REND",
+ "TESTING",
+ "CONTROLLER",
+)
+
+CircClosureReason = stem.util.enum.UppercaseEnum(
+ "NONE",
+ "TORPROTOCOL",
+ "INTERNAL",
+ "REQUESTED",
+ "HIBERNATING",
+ "RESOURCELIMIT",
+ "CONNECTFAILED",
+ "OR_IDENTITY",
+ "OR_CONN_CLOSED",
+ "FINISHED",
+ "TIMEOUT",
+ "DESTROYED",
+ "NOPATH",
+ "NOSUCHSERVICE",
+ "MEASUREMENT_EXPIRED",
+)
+
+HiddenServiceState = stem.util.enum.UppercaseEnum(
+ "HSCI_CONNECTING",
+ "HSCI_INTRO_SENT",
+ "HSCI_DONE",
+ "HSCR_CONNECTING",
+ "HSCR_ESTABLISHED_IDLE",
+ "HSCR_ESTABLISHED_WAITING",
+ "HSCR_JOINED",
+ "HSSI_CONNECTING",
+ "HSSI_ESTABLISHED",
+ "HSSR_CONNECTING",
+ "HSSR_JOINED",
+)
+
+StreamStatus = stem.util.enum.UppercaseEnum(
+ "NEW",
+ "NEWRESOLVE",
+ "REMAP",
+ "SENTCONNECT",
+ "SENTRESOLVE",
+ "SUCCEEDED",
+ "FAILED",
+ "DETACHED",
+ "CLOSED",
+)
+
+StreamClosureReason = stem.util.enum.UppercaseEnum(
+ "MISC",
+ "RESOLVEFAILED",
+ "CONNECTREFUSED",
+ "EXITPOLICY",
+ "DESTROY",
+ "DONE",
+ "TIMEOUT",
+ "NOROUTE",
+ "HIBERNATING",
+ "INTERNAL",
+ "RESOURCELIMIT",
+ "CONNRESET",
+ "TORPROTOCOL",
+ "NOTDIRECTORY",
+ "END",
+ "PRIVATE_ADDR",
+)
+
+StreamSource = stem.util.enum.UppercaseEnum(
+ "CACHE",
+ "EXIT",
+)
+
+StreamPurpose = stem.util.enum.UppercaseEnum(
+ "DIR_FETCH",
+ "UPLOAD_DESC",
+ "DNS_REQUEST",
+ "USER",
+ "DIRPORT_TEST",
+)
+
diff --git a/stem/control.py b/stem/control.py
index d0e8462..0ddc63c 100644
--- a/stem/control.py
+++ b/stem/control.py
@@ -80,179 +80,6 @@ providing its own for interacting at a higher level.
**BW** :class:`stem.response.events.BandwidthEvent`
**CIRC** :class:`stem.response.events.CircuitEvent`
=========== ===========
-
-.. data:: CircStatus (enum)
-
- Statuses that a circuit can be in. Tor may provide statuses not in this enum.
-
- ============ ===========
- CircStatus Description
- ============ ===========
- **LAUNCHED** new circuit was created
- **BUILT** circuit finished being created and can accept traffic
- **EXTENDED** circuit has been extended by a hop
- **FAILED** circuit construction failed
- **CLOSED** circuit has been closed
- ============ ===========
-
-.. data:: CircBuildFlag (enum)
-
- Attributes about how a circuit is built. These were introduced in tor version
- 0.2.3.11. Tor may provide flags not in this enum.
-
- ================= ===========
- CircBuildFlag Description
- ================= ===========
- **ONEHOP_TUNNEL** single hop circuit to fetch directory information
- **IS_INTERNAL** circuit that won't be used for client traffic
- **NEED_CAPACITY** circuit only includes high capacity relays
- **NEED_UPTIME** circuit only includes relays with a high uptime
- ================= ===========
-
-.. data:: CircPurpose (enum)
-
- Description of what a circuit is intended for. These were introduced in tor
- version 0.2.1.6. Tor may provide purposes not in this enum.
-
- ==================== ===========
- CircPurpose Description
- ==================== ===========
- **GENERAL** client traffic or fetching directory information
- **HS_CLIENT_INTRO** client side introduction point for a hidden service circuit
- **HS_CLIENT_REND** client side hidden service rendezvous circuit
- **HS_SERVICE_INTRO** server side introduction point for a hidden service circuit
- **HS_SERVICE_REND** server side hidden service rendezvous circuit
- **TESTING** testing to see if we're reachable, so we can be used as a relay
- **CONTROLLER** circuit that was built by a controller
- ==================== ===========
-
-.. data:: CircClosureReason (enum)
-
- Reason that a circuit is being closed or failed to be established. Tor may
- provide purposes not in this enum.
-
- ========================= ===========
- CircClosureReason Description
- ========================= ===========
- **NONE** no reason given
- **TORPROTOCOL** violation in the tor protocol
- **INTERNAL** internal error
- **REQUESTED** requested by the client via a TRUNCATE command
- **HIBERNATING** relay is presently hibernating
- **RESOURCELIMIT** relay is out of memory, sockets, or circuit IDs
- **CONNECTFAILED** unable to contact the relay
- **OR_IDENTITY** relay had the wrong OR identification
- **OR_CONN_CLOSED** connection failed after being established
- **FINISHED** circuit has expired (see tor's MaxCircuitDirtiness config option)
- **TIMEOUT** circuit construction timed out
- **DESTROYED** circuit unexpectedly closed
- **NOPATH** not enough relays to make a circuit
- **NOSUCHSERVICE** requested hidden service does not exist
- **MEASUREMENT_EXPIRED** unknown (https://trac.torproject.org/7506)
- ========================= ===========
-
-.. data:: HiddenServiceState (enum)
-
- State that a hidden service circuit can have. These were introduced in tor
- version 0.2.3.11. Tor may provide states not in this enum.
-
- Enumerations fall into four groups based on their prefix...
-
- ======= ===========
- Prefix Description
- ======= ===========
- HSCI_* client-side introduction-point
- HSCR_* client-side rendezvous-point
- HSSI_* service-side introduction-point
- HSSR_* service-side rendezvous-point
- ======= ===========
-
- ============================= ===========
- HiddenServiceState Description
- ============================= ===========
- **HSCI_CONNECTING** connecting to the introductory point
- **HSCI_INTRO_SENT** sent INTRODUCE1 and awaiting a reply
- **HSCI_DONE** received a reply, circuit is closing
- **HSCR_CONNECTING** connecting to the introductory point
- **HSCR_ESTABLISHED_IDLE** rendezvous-point established, awaiting an introduction
- **HSCR_ESTABLISHED_WAITING** introduction received, awaiting a rend
- **HSCR_JOINED** connected to the hidden service
- **HSSI_CONNECTING** connecting to the introductory point
- **HSSI_ESTABLISHED** established introductory point
- **HSSR_CONNECTING** connecting to the introductory point
- **HSSR_JOINED** connected to the rendezvous-point
- ============================= ===========
-
-.. data:: StreamStatus (enum)
-
- State that a stream going through tor can have. Tor may provide states not in
- this enum.
-
- ================= ===========
- StreamStatus Description
- ================= ===========
- **NEW** request for a new connection
- **NEWRESOLVE** request to resolve an address
- **REMAP** address is being re-mapped to another
- **SENTCONNECT** sent a connect cell along a circuit
- **SENTRESOLVE** sent a resolve cell along a circuit
- **SUCCEEDED** stream has been established
- **FAILED** stream is detached, and won't be re-established
- **DETACHED** stream is detached, but might be re-established
- **CLOSED** stream has closed
- ================= ===========
-
-.. data:: StreamClosureReason (enum)
-
- Reason that a stream is being closed or failed to be established. Tor may
- provide purposes not in this enum.
-
- ===================== ===========
- StreamClosureReason Description
- ===================== ===========
- **MISC** none of the following reasons
- **RESOLVEFAILED** unable to resolve the hostname
- **CONNECTREFUSED** remote host refused the connection
- **EXITPOLICY** rejected by the exit due to its exit policy
- **DESTROY** circuit is being shut down
- **DONE** connection has been closed
- **TIMEOUT** connection timed out
- **NOROUTE** routing error while contacting the destinaiton
- **HIBERNATING** relay is hibernating
- **INTERNAL** internal error
- **RESOURCELIMIT** relay has insufficient resources to service the request
- **CONNRESET** connection has been reset
- **TORPROTOCOL** violation in the tor protocol
- **NOTDIRECTORY** directory information requested from a relay that isn't mirroring it
- **END** endpoint has sent a RELAY_END cell
- **PRIVATE_ADDR** endpoint was a private address (127.0.0.1, 10.0.0.1, etc)
- ===================== ===========
-
-.. data:: StreamSource (enum)
-
- Cause of a stream being remapped to another address.
-
- ============= ===========
- StreamSource Description
- ============= ===========
- **CACHE** tor is remapping because of a cached answer
- **EXIT** exit relay requested the remap
- ============= ===========
-
-.. data:: StreamPurpose (enum)
-
- Purpsoe of the stream. This is only provided with new streams and tor may
- provide purposes not in this enum.
-
- ================= ===========
- StreamPurpose Description
- ================= ===========
- **DIR_FETCH** unknown (https://trac.torproject.org/7508)
- **UPLOAD_DESC** unknown (https://trac.torproject.org/7508)
- **DNS_REQUEST** unknown (https://trac.torproject.org/7508)
- **USER** unknown (https://trac.torproject.org/7508)
- **DIRPORT_TEST** unknown (https://trac.torproject.org/7508)
- ================= ===========
"""
from __future__ import with_statement
@@ -303,107 +130,6 @@ EventType = stem.util.enum.UppercaseEnum(
"CIRC_MINOR",
)
-CircStatus = stem.util.enum.UppercaseEnum(
- "LAUNCHED",
- "BUILT",
- "EXTENDED",
- "FAILED",
- "CLOSED",
-)
-
-CircBuildFlag = stem.util.enum.UppercaseEnum(
- "ONEHOP_TUNNEL",
- "IS_INTERNAL",
- "NEED_CAPACITY",
- "NEED_UPTIME",
-)
-
-CircPurpose = stem.util.enum.UppercaseEnum(
- "GENERAL",
- "HS_CLIENT_INTRO",
- "HS_CLIENT_REND",
- "HS_SERVICE_INTRO",
- "HS_SERVICE_REND",
- "TESTING",
- "CONTROLLER",
-)
-
-CircClosureReason = stem.util.enum.UppercaseEnum(
- "NONE",
- "TORPROTOCOL",
- "INTERNAL",
- "REQUESTED",
- "HIBERNATING",
- "RESOURCELIMIT",
- "CONNECTFAILED",
- "OR_IDENTITY",
- "OR_CONN_CLOSED",
- "FINISHED",
- "TIMEOUT",
- "DESTROYED",
- "NOPATH",
- "NOSUCHSERVICE",
- "MEASUREMENT_EXPIRED",
-)
-
-HiddenServiceState = stem.util.enum.UppercaseEnum(
- "HSCI_CONNECTING",
- "HSCI_INTRO_SENT",
- "HSCI_DONE",
- "HSCR_CONNECTING",
- "HSCR_ESTABLISHED_IDLE",
- "HSCR_ESTABLISHED_WAITING",
- "HSCR_JOINED",
- "HSSI_CONNECTING",
- "HSSI_ESTABLISHED",
- "HSSR_CONNECTING",
- "HSSR_JOINED",
-)
-
-StreamStatus = stem.util.enum.UppercaseEnum(
- "NEW",
- "NEWRESOLVE",
- "REMAP",
- "SENTCONNECT",
- "SENTRESOLVE",
- "SUCCEEDED",
- "FAILED",
- "DETACHED",
- "CLOSED",
-)
-
-StreamClosureReason = stem.util.enum.UppercaseEnum(
- "MISC",
- "RESOLVEFAILED",
- "CONNECTREFUSED",
- "EXITPOLICY",
- "DESTROY",
- "DONE",
- "TIMEOUT",
- "NOROUTE",
- "HIBERNATING",
- "INTERNAL",
- "RESOURCELIMIT",
- "CONNRESET",
- "TORPROTOCOL",
- "NOTDIRECTORY",
- "END",
- "PRIVATE_ADDR",
-)
-
-StreamSource = stem.util.enum.UppercaseEnum(
- "CACHE",
- "EXIT",
-)
-
-StreamPurpose = stem.util.enum.UppercaseEnum(
- "DIR_FETCH",
- "UPLOAD_DESC",
- "DNS_REQUEST",
- "USER",
- "DIRPORT_TEST",
-)
-
# Constant to indicate an undefined argument default. Usually we'd use None for
# this, but users will commonly provide None as the argument so need something
# else fairly unique...
diff --git a/stem/response/events.py b/stem/response/events.py
index 8a0e428..1b28eb3 100644
--- a/stem/response/events.py
+++ b/stem/response/events.py
@@ -1,5 +1,6 @@
import re
+import stem
import stem.control
import stem.response
@@ -86,17 +87,17 @@ class CircuitEvent(Event):
version 0.1.2.2.
:var str id: circuit identifier
- :var stem.control.CircStatus status: reported status for the circuit
+ :var stem.CircStatus status: reported status for the circuit
:var tuple path: relays involved in the circuit, these are
**(fingerprint, nickname)** tuples
- :var tuple build_flags: :data:`~stem.control.CircBuildFlag` attributes
+ :var tuple build_flags: :data:`~stem.CircBuildFlag` attributes
governing how the circuit is built
- :var stem.control.CircPurpose purpose: purpose that the circuit is intended for
- :var stem.control.HiddenServiceState hs_state: status if this is a hidden service circuit
+ :var stem.CircPurpose purpose: purpose that the circuit is intended for
+ :var stem.HiddenServiceState hs_state: status if this is a hidden service circuit
:var str rend_query: circuit's rendezvous-point if this is hidden service related
:var datetime created: time when the circuit was created or cannibalized
- :var stem.control.CircClosureReason reason: reason for the circuit to be closed
- :var stem.control.CircClosureReason remote_reason: remote side's reason for the circuit to be closed
+ :var stem.CircClosureReason reason: reason for the circuit to be closed
+ :var stem.CircClosureReason remote_reason: remote side's reason for the circuit to be closed
"""
_POSITIONAL_ARGS = ("id", "status", "path")
@@ -130,29 +131,29 @@ class CircuitEvent(Event):
unrecognized_msg = "CIRC event had an unrecognised %%s (%%s). Maybe a new addition to the control protocol? Full Event: '%s'" % self
- if self.status and (not self.status in stem.control.CircStatus):
+ if self.status and (not self.status in stem.CircStatus):
log_id = "event.circ.unknown_status.%s" % self.status
log.log_once(log_id, log.INFO, unrecognized_msg % ('status', self.status))
if self.build_flags:
for flag in self.build_flags:
- if not flag in stem.control.CircBuildFlag:
+ if not flag in stem.CircBuildFlag:
log_id = "event.circ.unknown_build_flag.%s" % flag
log.log_once(log_id, log.INFO, unrecognized_msg % ('build flag', flag))
- if self.purpose and (not self.purpose in stem.control.CircPurpose):
+ if self.purpose and (not self.purpose in stem.CircPurpose):
log_id = "event.circ.unknown_purpose.%s" % self.purpose
log.log_once(log_id, log.INFO, unrecognized_msg % ('purpose', self.purpose))
- if self.hs_state and (not self.hs_state in stem.control.HiddenServiceState):
+ if self.hs_state and (not self.hs_state in stem.HiddenServiceState):
log_id = "event.circ.unknown_hs_state.%s" % self.hs_state
log.log_once(log_id, log.INFO, unrecognized_msg % ('hidden service state', self.hs_state))
- if self.reason and (not self.reason in stem.control.CircClosureReason):
+ if self.reason and (not self.reason in stem.CircClosureReason):
log_id = "event.circ.unknown_reason.%s" % self.reason
log.log_once(log_id, log.INFO, unrecognized_msg % ('reason', self.reason))
- if self.remote_reason and (not self.remote_reason in stem.control.CircClosureReason):
+ if self.remote_reason and (not self.remote_reason in stem.CircClosureReason):
log_id = "event.circ.unknown_remote_reason.%s" % self.remote_reason
log.log_once(log_id, log.INFO, unrecognized_msg % ('remote reason', self.remote_reason))
@@ -161,18 +162,18 @@ class StreamEvent(Event):
Event that indicates that a stream has changed.
:var str id: stream identifier
- :var stem.control.StreamStatus status: reported status for the stream
+ :var stem.StreamStatus status: reported status for the stream
:var str circ_id: circuit that the stream is attached to
:var str target: destination of the stream
:var str target_address: destination address (ip or hostname)
:var int target_port: destination port
- :var stem.control.StreamClosureReason reason: reason for the stream to be closed
- :var stem.control.StreamClosureReason remote_reason: remote side's reason for the stream to be closed
- :var stem.control.StreamSource source: origin of the REMAP request
+ :var stem.StreamClosureReason reason: reason for the stream to be closed
+ :var stem.StreamClosureReason remote_reason: remote side's reason for the stream to be closed
+ :var stem.StreamSource source: origin of the REMAP request
:var str source_addr: requester of the connection
:var str source_address: requester address (ip or hostname)
:var int source_port: requester port
- :var stem.control.StreamPurpose purpose: purpose for the stream
+ :var stem.StreamPurpose purpose: purpose for the stream
"""
_POSITIONAL_ARGS = ("id", "status", "circ_id", "target")
@@ -224,15 +225,15 @@ class StreamEvent(Event):
unrecognized_msg = "STREAM event had an unrecognised %%s (%%s). Maybe a new addition to the control protocol? Full Event: '%s'" % self
- if self.reason and (not self.reason in stem.control.StreamClosureReason):
+ if self.reason and (not self.reason in stem.StreamClosureReason):
log_id = "event.stream.reason.%s" % self.reason
log.log_once(log_id, log.INFO, unrecognized_msg % ('reason', self.reason))
- if self.remote_reason and (not self.remote_reason in stem.control.StreamClosureReason):
+ if self.remote_reason and (not self.remote_reason in stem.StreamClosureReason):
log_id = "event.stream.remote_reason.%s" % self.remote_reason
log.log_once(log_id, log.INFO, unrecognized_msg % ('remote reason', self.remote_reason))
- if self.purpose and (not self.purpose in stem.control.StreamPurpose):
+ if self.purpose and (not self.purpose in stem.StreamPurpose):
log_id = "event.stream.purpose.%s" % self.purpose
log.log_once(log_id, log.INFO, unrecognized_msg % ('purpose', self.purpose))
diff --git a/test/unit/response/events.py b/test/unit/response/events.py
index ac4a22f..3fe22de 100644
--- a/test/unit/response/events.py
+++ b/test/unit/response/events.py
@@ -10,15 +10,7 @@ import stem.response
import stem.response.events
import test.mocking as mocking
-from stem import ProtocolError
-from stem.control import CircStatus,\
- CircBuildFlag,\
- CircPurpose,\
- CircClosureReason,\
- StreamStatus,\
- StreamClosureReason,\
- StreamSource,\
- StreamPurpose
+from stem import * # enums and exceptions
# CIRC events from tor v0.2.3.16
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits