[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [stem/master] Version checks for new hidden service features



commit 60eccbc9008c8f08c8a6e973980884e6a90f442f
Author: Damian Johnson <atagar@xxxxxxxxxxxxxx>
Date:   Mon May 11 12:46:12 2015 -0700

    Version checks for new hidden service features
    
    Now that tor bumped its version to 0.2.7.1-alpha in its codebase we can
    uncomment version checks for these new features.
---
 stem/control.py                  |   35 +++++++++++++----------------------
 stem/response/events.py          |    3 +--
 test/integ/control/controller.py |   20 +++++---------------
 3 files changed, 19 insertions(+), 39 deletions(-)

diff --git a/stem/control.py b/stem/control.py
index 44a0b7d..1c31dda 100644
--- a/stem/control.py
+++ b/stem/control.py
@@ -1741,11 +1741,6 @@ class Controller(BaseController):
       An exception is only raised if we weren't provided a default response.
     """
 
-    # TODO: It would be great to add support for v3 router status entries. This
-    # is pending...
-    #
-    # https://trac.torproject.org/7953
-
     if relay is None:
       try:
         relay = self.get_info('fingerprint')
@@ -1804,16 +1799,16 @@ class Controller(BaseController):
       default was provided
     """
 
-    if self.get_conf('UseMicrodescriptors', '0') == '1':
-      desc_class = stem.descriptor.router_status_entry.RouterStatusEntryMicroV3
-    else:
-      desc_class = stem.descriptor.router_status_entry.RouterStatusEntryV3
-
     # TODO: We should iterate over the descriptors as they're read from the
     # socket rather than reading the whole thing into memory.
     #
     # https://trac.torproject.org/8248
 
+    if self.get_conf('UseMicrodescriptors', '0') == '1':
+      desc_class = stem.descriptor.router_status_entry.RouterStatusEntryMicroV3
+    else:
+      desc_class = stem.descriptor.router_status_entry.RouterStatusEntryV3
+
     desc_content = self.get_info('ns/all', get_bytes = True)
 
     if not desc_content:
@@ -1865,9 +1860,8 @@ class Controller(BaseController):
     if not stem.util.tor_tools.is_valid_hidden_service_address(address):
       raise ValueError("'%s.onion' isn't a valid hidden service address" % address)
 
-    # TODO: Uncomment the below when tor makes its 0.2.7.1 release.
-    # if self.get_version() < stem.version.Requirement.HSFETCH:
-    #   raise stem.UnsatisfiableRequest(message = 'HSFETCH was added in tor version %s' % stem.version.Requirement.HSFETCH)
+    if self.get_version() < stem.version.Requirement.HSFETCH:
+      raise stem.UnsatisfiableRequest(message = 'HSFETCH was added in tor version %s' % stem.version.Requirement.HSFETCH)
 
     hs_desc_queue, hs_desc_listener = queue.Queue(), None
     hs_desc_content_queue, hs_desc_content_listener = queue.Queue(), None
@@ -2560,9 +2554,8 @@ class Controller(BaseController):
       provided a default response
     """
 
-    # TODO: Uncomment the below when tor makes its 0.2.7.1 release.
-    # if self.get_version() < stem.version.Requirement.ADD_ONION:
-    #   raise stem.UnsatisfiableRequest(message = 'Ephemeral hidden services were added in tor version %s' % stem.version.Requirement.ADD_ONION)
+    if self.get_version() < stem.version.Requirement.ADD_ONION:
+      raise stem.UnsatisfiableRequest(message = 'Ephemeral hidden services were added in tor version %s' % stem.version.Requirement.ADD_ONION)
 
     result = []
 
@@ -2627,9 +2620,8 @@ class Controller(BaseController):
     :raises: :class:`stem.ControllerError` if the call fails
     """
 
-    # TODO: Uncomment the below when tor makes its 0.2.7.1 release.
-    # if self.get_version() < stem.version.Requirement.ADD_ONION:
-    #   raise stem.UnsatisfiableRequest(message = 'Ephemeral hidden services were added in tor version %s' % stem.version.Requirement.ADD_ONION)
+    if self.get_version() < stem.version.Requirement.ADD_ONION:
+      raise stem.UnsatisfiableRequest(message = 'Ephemeral hidden services were added in tor version %s' % stem.version.Requirement.ADD_ONION)
 
     hs_desc_queue, hs_desc_listener = queue.Queue(), None
 
@@ -2708,9 +2700,8 @@ class Controller(BaseController):
     :raises: :class:`stem.ControllerError` if the call fails
     """
 
-    # TODO: Uncomment the below when tor makes its 0.2.7.1 release.
-    # if self.get_version() < stem.version.Requirement.ADD_ONION:
-    #   raise stem.UnsatisfiableRequest(message = 'Ephemeral hidden services were added in tor version %s' % stem.version.Requirement.ADD_ONION)
+    if self.get_version() < stem.version.Requirement.ADD_ONION:
+      raise stem.UnsatisfiableRequest(message = 'Ephemeral hidden services were added in tor version %s' % stem.version.Requirement.ADD_ONION)
 
     response = self.msg('DEL_ONION %s' % service_id)
     stem.response.convert('SINGLELINE', response)
diff --git a/stem/response/events.py b/stem/response/events.py
index e03f269..9c38649 100644
--- a/stem/response/events.py
+++ b/stem/response/events.py
@@ -674,8 +674,7 @@ class HSDescContentEvent(Event):
   :var stem.descriptor.hidden_service_descriptor.HiddenServiceDescriptor descriptor: descriptor that was retrieved
   """
 
-  # TODO: Uncomment the below when tor makes its 0.2.7.1 release.
-  # _VERSION_ADDED = stem.version.Requirement.EVENT_HS_DESC_CONTENT
+  _VERSION_ADDED = stem.version.Requirement.EVENT_HS_DESC_CONTENT
   _POSITIONAL_ARGS = ('address', 'descriptor_id', 'directory')
 
   def _parse(self):
diff --git a/test/integ/control/controller.py b/test/integ/control/controller.py
index 7890dcc..82da71b 100644
--- a/test/integ/control/controller.py
+++ b/test/integ/control/controller.py
@@ -578,10 +578,8 @@ class TestController(unittest.TestCase):
           except:
             pass
 
-  # TODO: Uncomment the below when tor makes its 0.2.7.1 release.
-  # @require_version(Requirement.ADD_ONION)
-
   @require_controller
+  @require_version(Requirement.ADD_ONION)
   def test_without_ephemeral_hidden_services(self):
     """
     Exercises ephemeral hidden service methods when none are present.
@@ -592,10 +590,8 @@ class TestController(unittest.TestCase):
       self.assertEqual([], controller.list_ephemeral_hidden_services(detached = True))
       self.assertEqual(False, controller.remove_ephemeral_hidden_service('gfzprpioee3hoppz'))
 
-  # TODO: Uncomment the below when tor makes its 0.2.7.1 release.
-  # @require_version(Requirement.ADD_ONION)
-
   @require_controller
+  @require_version(Requirement.ADD_ONION)
   def test_with_ephemeral_hidden_services(self):
     """
     Exercises creating ephemeral hidden services and methods when they're
@@ -646,10 +642,8 @@ class TestController(unittest.TestCase):
         self.assertEqual(2, len(controller.list_ephemeral_hidden_services()))
         self.assertEqual(0, len(second_controller.list_ephemeral_hidden_services()))
 
-  # TODO: Uncomment the below when tor makes its 0.2.7.1 release.
-  # @require_version(Requirement.ADD_ONION)
-
   @require_controller
+  @require_version(Requirement.ADD_ONION)
   def test_with_detached_ephemeral_hidden_services(self):
     """
     Exercises creating detached ephemeral hidden services and methods when
@@ -684,11 +678,9 @@ class TestController(unittest.TestCase):
       self.assertEqual([response.service_id], controller.list_ephemeral_hidden_services(detached = True))
       controller.remove_ephemeral_hidden_service(response.service_id)
 
-  # TODO: Uncomment the below when tor makes its 0.2.7.1 release.
-  # @require_version(Requirement.ADD_ONION)
-
   @require_online
   @require_controller
+  @require_version(Requirement.ADD_ONION)
   def test_using_ephemeral_hidden_services(self):
     """
     Create and use a live ephemeral hidden service.
@@ -1277,11 +1269,9 @@ class TestController(unittest.TestCase):
         if count > 10:
           break
 
-  # TODO: Uncomment the below when tor makes its 0.2.7.1 release.
-  # @require_version(Requirement.HSFETCH)
-
   @require_controller
   @require_online
+  @require_version(Requirement.HSFETCH)
   def test_get_hidden_service_descriptor(self):
     """
     Fetches a few descriptors via the get_hidden_service_descriptor() method.

_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits