commit 3d0e999f8073bed67d84bb863560078e923a8b57 Author: Damian Johnson atagar@torproject.org Date: Tue Sep 13 09:26:38 2016 -0700
Support non-anonymous ADD_ONION services
Adding support for ADD_ONION's new NonAnonymous flag. --- docs/change_log.rst | 1 + stem/control.py | 11 ++++++++++- stem/version.py | 2 ++ 3 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/docs/change_log.rst b/docs/change_log.rst index 4857b04..7ae3466 100644 --- a/docs/change_log.rst +++ b/docs/change_log.rst @@ -50,6 +50,7 @@ The following are only available within Stem's `git repository * :class:`~stem.exit_policy.ExitPolicy` support for *accept6/reject6* and **4/6* wildcards (:trac:`16053`) * Added `support for NETWORK_LIVENESS events <api/response.html#stem.response.events.NetworkLivenessEvent>`_ (:spec:`44aac63`) * Added support for basic authentication to :func:`~stem.control.Controller.create_ephemeral_hidden_service` (:spec:`c2865d9`) + * Added support for non-anonymous services to :func:`~stem.control.Controller.create_ephemeral_hidden_service` (:spec:`b8fe774`) * Added :func:`~stem.control.event_description` for getting human-friendly descriptions of tor events (:trac:`19061`) * Added :func:`~stem.control.Controller.reconnect` to the :class:`~stem.control.Controller` * Added :func:`~stem.control.Controller.is_set` to the :class:`~stem.control.Controller` diff --git a/stem/control.py b/stem/control.py index 9b98758..dfa5add 100644 --- a/stem/control.py +++ b/stem/control.py @@ -2827,6 +2827,9 @@ class Controller(BaseController): .. versionchanged:: 1.5.0 Added the basic_auth argument.
+ .. versionchanged:: 1.5.0 + Added support for non-anonymous services. + :param int,list,dict ports: hidden service port(s) or mapping of hidden service ports to their targets :param str key_type: type of key being provided, generates a new key if @@ -2873,6 +2876,10 @@ class Controller(BaseController):
flags.append('BasicAuth')
+ if self.get_version() >= stem.version.Requirement.ADD_ONION_NON_ANONYMOUS: + if self.get_conf('HiddenServiceSingleHopMode', None) == '1' and self.get_conf('HiddenServiceNonAnonymousMode', None) == '1': + flags.append('NonAnonymous') + if flags: request += ' Flags=%s' % ','.join(flags)
@@ -3533,7 +3540,9 @@ class Controller(BaseController):
:param stem.Signal signal: type of signal to be sent
- :raises: :class:`stem.InvalidArguments` if signal provided wasn't recognized + :raises: + * :class:`stem.ControllerError` if sending the signal failed + * :class:`stem.InvalidArguments` if signal provided wasn't recognized """
response = self.msg('SIGNAL %s' % signal) diff --git a/stem/version.py b/stem/version.py index e13c420..6f7e514 100644 --- a/stem/version.py +++ b/stem/version.py @@ -59,6 +59,7 @@ easily parsed and compared, for instance... **HSPOST** HSPOST requests **ADD_ONION** ADD_ONION and DEL_ONION requests **ADD_ONION_BASIC_AUTH** ADD_ONION supports basic authentication + **ADD_ONION_NON_ANONYMOUS** ADD_ONION supports non-anonymous mode **LOADCONF** LOADCONF requests **MICRODESCRIPTOR_IS_DEFAULT** Tor gets microdescriptors by default rather than server descriptors **TAKEOWNERSHIP** TAKEOWNERSHIP requests @@ -366,6 +367,7 @@ Requirement = stem.util.enum.Enum( ('HSPOST', Version('0.2.7.1-alpha')), ('ADD_ONION', Version('0.2.7.1-alpha')), ('ADD_ONION_BASIC_AUTH', Version('0.2.9.1-alpha')), + ('ADD_ONION_NON_ANONYMOUS', Version('0.2.9.3-alpha')), ('LOADCONF', Version('0.2.1.1')), ('MICRODESCRIPTOR_IS_DEFAULT', Version('0.2.3.3')), ('TAKEOWNERSHIP', Version('0.2.2.28-beta')),
tor-commits@lists.torproject.org