Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-txtorcon for openSUSE:Factory checked in at 2024-01-03 12:23:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-txtorcon (Old)
and /work/SRC/openSUSE:Factory/.python-txtorcon.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-txtorcon"
Wed Jan 3 12:23:32 2024 rev:15 rq:1135604 version:23.11.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-txtorcon/python-txtorcon.changes 2023-09-20 13:34:01.889053198 +0200
+++ /work/SRC/openSUSE:Factory/.python-txtorcon.new.28375/python-txtorcon.changes 2024-01-03 12:23:34.792390100 +0100
@@ -1,0 +2,10 @@
+Fri Dec 29 09:02:35 UTC 2023 - Dirk Müller
+
+- update to 23.11.0:
+ * Fix test-failures on Python 3.12
+ * Particular GETINFO hanging
+ (ultra-long lines over 16KiB caused problems in the protocol)
+ * Use built-in `mock` only
+ * Remove `incremental`
+
+-------------------------------------------------------------------
Old:
----
txtorcon-23.5.0.tar.gz
New:
----
txtorcon-23.11.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-txtorcon.spec ++++++
--- /var/tmp/diff_new_pack.rnRzrE/_old 2024-01-03 12:23:35.600419632 +0100
+++ /var/tmp/diff_new_pack.rnRzrE/_new 2024-01-03 12:23:35.600419632 +0100
@@ -17,7 +17,7 @@
Name: python-txtorcon
-Version: 23.5.0
+Version: 23.11.0
Release: 0
Summary: Twisted-based asynchronous Tor control protocol implementation
License: MIT
@@ -29,7 +29,6 @@
Requires: python-Automat
Requires: python-Twisted-tls >= 15.5.0
Requires: python-cryptography
-Requires: python-incremental
Requires: python-six
Requires: python-zope.interface >= 3.6.1
BuildArch: noarch
@@ -38,7 +37,6 @@
BuildRequires: %{python_module Automat}
BuildRequires: %{python_module Twisted-tls >= 15.5.0}
BuildRequires: %{python_module cryptography}
-BuildRequires: %{python_module incremental}
BuildRequires: %{python_module six}
BuildRequires: %{python_module zope.interface >= 3.6.1}
%python_subpackages
@@ -62,8 +60,6 @@
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
-# https://github.com/meejah/txtorcon/issues/368
-sed -i 's:from mock:from unittest.mock:' test/*.py
# looks more like integration tests
# Async tests don't work with pytest gh#crossbario/autobahn-python#1235
%{python_expand export PYTHONPATH=%{buildroot}%{$python_sitelib}
++++++ txtorcon-23.5.0.tar.gz -> txtorcon-23.11.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/Makefile new/txtorcon-23.11.0/Makefile
--- old/txtorcon-23.5.0/Makefile 2023-05-19 03:13:45.000000000 +0200
+++ new/txtorcon-23.11.0/Makefile 2023-11-20 08:48:37.000000000 +0100
@@ -1,6 +1,6 @@
.PHONY: test html counts coverage sdist clean install doc integration diagrams
default: test
-VERSION = 23.5.0
+VERSION = 23.11.0
test:
PYTHONPATH=. trial --reporter=text test
@@ -124,7 +124,7 @@
venv:
- virtualenv venv
+ python -m venv venv
./venv/bin/pip install -r requirements.txt
./venv/bin/pip install -r dev-requirements.txt
@echo "created venv"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/PKG-INFO new/txtorcon-23.11.0/PKG-INFO
--- old/txtorcon-23.5.0/PKG-INFO 2023-05-19 03:21:31.507377600 +0200
+++ new/txtorcon-23.11.0/PKG-INFO 2023-11-20 08:48:41.153334100 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: txtorcon
-Version: 23.5.0
+Version: 23.11.0
Summary: Twisted-based Tor controller client, with state-tracking and configuration abstractions. https://txtorcon.readthedocs.org https://github.com/meejah/txtorcon
Home-page: https://github.com/meejah/txtorcon
Author: meejah
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/dev-requirements.txt new/txtorcon-23.11.0/dev-requirements.txt
--- old/txtorcon-23.5.0/dev-requirements.txt 2020-04-20 04:58:02.000000000 +0200
+++ new/txtorcon-23.11.0/dev-requirements.txt 2023-11-20 07:11:22.000000000 +0100
@@ -10,7 +10,6 @@
twine
pyflakes
pycodestyle
-mock
ipaddress>=1.0.16
geoip
readme_renderer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/docs/conf.py new/txtorcon-23.11.0/docs/conf.py
--- old/txtorcon-23.5.0/docs/conf.py 2022-06-17 21:32:04.000000000 +0200
+++ new/txtorcon-23.11.0/docs/conf.py 2023-08-11 09:41:38.000000000 +0200
@@ -165,7 +165,7 @@
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
-html_title = 'timaq4ygg2iegci7.onion: txtorcon documentation'
+html_title = 'fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion: txtorcon documentation'
# A shorter title for the navigation bar. Default is the same as html_title.
html_short_title = 'txtorcon docs'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/docs/guide.rst new/txtorcon-23.11.0/docs/guide.rst
--- old/txtorcon-23.5.0/docs/guide.rst 2020-04-20 04:58:02.000000000 +0200
+++ new/txtorcon-23.11.0/docs/guide.rst 2023-08-11 09:41:38.000000000 +0200
@@ -361,7 +361,7 @@
registers a ``tor:`` plugin. This also implies that any Twisted-using
program that supports configuring endpoint strings gets Tor support
"for free". For example, passing a string like
-``tor:timaq4ygg2iegci7.onion:80`` to `clientFromString`_ will return
+``tor:fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion:80`` to `clientFromString`_ will return
an endpoint that will connect to txtorcon's onion-service
website. Note that these endpoints will use the "global to txtorcon"
Tor instance (available from :meth:`.get_global_tor`). Thus,
@@ -428,7 +428,7 @@
part);
- these keys can be on disk (in the "hidden service directory");
- or, they can be "ephemeral" (only in memory);
-- the "host name" is a hash of the public-key (e.g. ``timaq4ygg2iegci7.onion``);
+- the "host name" is a hash of the public-key (e.g. ``fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion``);
- a "Descriptor" (which tells clients how to connect) must be
published (to a "Hidden Service Directory", or HSDir);
- a service has a list of port-mappings (public -> local):
@@ -534,7 +534,7 @@
Factors to consider when deciding whether to use "authenticated"
service or not:
- - if you want anyone with e.g. the URL http://timaq4ygg2iegci7.onion
+ - if you want anyone with e.g. the URL http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion
to be able to put it in `Tor Browser Bundle
https://www.torproject.org/download/download.html.en`_ and see a
Web site, you **do not want** authentication;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/docs/installing.rst new/txtorcon-23.11.0/docs/installing.rst
--- old/txtorcon-23.5.0/docs/installing.rst 2018-05-31 20:59:02.000000000 +0200
+++ new/txtorcon-23.11.0/docs/installing.rst 2023-08-11 09:41:38.000000000 +0200
@@ -89,11 +89,11 @@
-----------
Most people will use the code from https://github.com/meejah/txtorcon
-The canonical URI is http://timaq4ygg2iegci7.onion
+The canonical URI is http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion
I sign tags with my public key (:download:`meejah.asc <../meejah.asc>`)
- ``git clone https://github.com/meejah/txtorcon.git``
-- ``torsocks git clone git://timaq4ygg2iegci7.onion/meejah/txtorcon.git``
+- ``torsocks git clone git://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/meejah/txtorcon.git``
Rendered documentation for the latest release is at `txtorcon.readthedocs.org https://txtorcon.readthedocs.org/en/latest/`_.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/docs/introduction.rst new/txtorcon-23.11.0/docs/introduction.rst
--- old/txtorcon-23.5.0/docs/introduction.rst 2022-04-12 00:21:37.000000000 +0200
+++ new/txtorcon-23.11.0/docs/introduction.rst 2023-08-11 09:41:38.000000000 +0200
@@ -99,6 +99,14 @@
.. literalinclude:: ../examples/readme.py
+.. _testimonials:
+
+Testimonials
+------------
+
+- `@thegrugq https://twitter.com/thegrugq/status/359495805025001472`_: "Holy fucking shit, the awesomeness of this project cannot be denied!" (July 2013)
+
+
.. _known_users:
Known Users
@@ -112,7 +120,7 @@
- `foolscap https://github.com/warner/foolscap/`_ RPC system inspired by Twisted's built-in "Perspective Broker" package.
- `bwscanner https://github.com/TheTorProject/bwscanner`_ next-gen bandwidth scanner for Tor network
- `unmessage https://github.com/AnemoneLabs/unmessage`_ Privacy enhanced instant messenger
-- `APAF https://github.com/globaleaks/APAF`_ anonymous Python application framework
+- `GlobaLeaks https://github.com/globaleaks/GlobaLeaks`_ Free and open source software enabling anyone to easily set up and maintain a secure whistleblowing platform
- `OONI https://ooni.torproject.org/`_ the Open Observatory of Network Interference
- `exitaddr https://github.com/arlolra/exitaddr`_ scan Tor exit addresses
- `txtorhttpproxy https://github.com/david415/txtorhttpproxy`_ simple HTTP proxy in Twisted
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/docs/release-checklist.rst new/txtorcon-23.11.0/docs/release-checklist.rst
--- old/txtorcon-23.5.0/docs/release-checklist.rst 2023-05-19 03:20:48.000000000 +0200
+++ new/txtorcon-23.11.0/docs/release-checklist.rst 2023-08-11 09:41:38.000000000 +0200
@@ -21,7 +21,6 @@
* update docs/releases.rst to reflect upcoming reality
* blindly make links to the signatures
* update heading, date
- * commit it all
* on both signing-machine and build-machine shells:
* export VERSION=22.0.0
@@ -74,8 +73,8 @@
Releases are also available from the hidden service:
- http://timaq4ygg2iegci7.onion/txtorcon-0.12.0.tar.gz
- http://timaq4ygg2iegci7.onion/txtorcon-0.12.0.tar.gz.asc
+ http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...
+ http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...
Or via a "version 3" service:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/docs/releases.rst new/txtorcon-23.11.0/docs/releases.rst
--- old/txtorcon-23.5.0/docs/releases.rst 2023-05-19 03:18:27.000000000 +0200
+++ new/txtorcon-23.11.0/docs/releases.rst 2023-11-20 08:34:46.000000000 +0100
@@ -15,8 +15,18 @@
See also :ref:`api_stability`.
-`git main https://github.com/meejah/txtorcon`_ *will likely become v23.6.0*
+`git main https://github.com/meejah/txtorcon`_ *will likely become v24.1.0*
+v23.11.0
+--------
+
+November 20, 2023
+
+ * Fix test-failures on Python 3.12
+ * Particular GETINFO hanging (`#389 https://github.com/meejah/txtorcon/issues/389`_)
+ (ultra-long lines over 16KiB caused problems in the protocol)
+ * Use built-in `mock` only (from `jelly https://github.com/jelly`_)
+ * Remove `incremental` (from `gdrosos https://github.com/gdrosos`_)
v23.5.0
@@ -88,7 +98,7 @@
September 10, 2019
- * `txtorcon-19.1.0.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-19.1.0.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/19.1.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-19.1.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v19.1.0.tar.gz`_)
+ * `txtorcon-19.1.0.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/19.1.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-19.1.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v19.1.0.tar.gz`_)
* `TorControlProtocol.on_disconnect` is deprecated in favour of
:func:`TorControlProtocol.when_disconnected`
@@ -107,7 +117,7 @@
January 15, 2019
- * `txtorcon-19.0.0.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-19.0.0.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/19.0.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-19.0.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v19.0.0.tar.gz`_)
+ * `txtorcon-19.0.0.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/19.0.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-19.0.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v19.0.0.tar.gz`_)
* add :func:`TorControlProtocol.when_disconnected` (will replace `.on_disconnect`)
* add `detach=` kwarg to :func:`Tor.create_onion_service`
* add `purpose=` kwarg to :func:`TorState.build_circuit`
@@ -116,14 +126,14 @@
v18.3.0
-------
- * `txtorcon-18.3.0.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-18.3.0.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/18.3.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-18.3.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v18.3.0.tar.gz`_)
+ * `txtorcon-18.3.0.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/18.3.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-18.3.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v18.3.0.tar.gz`_)
* add `singleHop={true,false}` for endpoint-strings as well
v18.2.0
-------
- * `txtorcon-18.2.0.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-18.2.0.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/18.2.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-18.2.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v18.2.0.tar.gz`_)
+ * `txtorcon-18.2.0.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/18.2.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-18.2.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v18.2.0.tar.gz`_)
* add `privateKeyFile=` option to endpoint parser (ticket 313)
* use `privateKey=` option properly in endpoint parser
* support `NonAnonymous` mode for `ADD_ONION` via `single_hop=` kwarg
@@ -134,7 +144,7 @@
September 26, 2018
- * `txtorcon-18.1.0.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-18.1.0.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/18.1.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-18.1.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v18.1.0.tar.gz`_)
+ * `txtorcon-18.1.0.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/18.1.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-18.1.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v18.1.0.tar.gz`_)
* better error-reporting (include REASON and REMOTE_REASON if
available) when circuit-builds fail (thanks `David Stainton
https://github.com/david415`_)
@@ -153,7 +163,7 @@
July 2, 2018
- * `txtorcon-18.0.2.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-18.0.2.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/18.0.2`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-18.0.2.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v18.0.2.tar.gz`_)
+ * `txtorcon-18.0.2.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/18.0.2`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-18.0.2.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v18.0.2.tar.gz`_)
* Python3.4 doesn't support async-def or await
@@ -162,7 +172,7 @@
June 30, 2018
- * `txtorcon-18.0.1.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-18.0.1.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/18.0.1`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-18.0.1.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v18.0.1.tar.gz`_)
+ * `txtorcon-18.0.1.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/18.0.1`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-18.0.1.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v18.0.1.tar.gz`_)
* fix a Python2/3 regression when parsing onion services
@@ -171,7 +181,7 @@
June 21, 2018
- * `txtorcon-18.0.0.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-18.0.0.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/18.0.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-18.0.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v18.0.0.tar.gz`_)
+ * `txtorcon-18.0.0.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/18.0.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-18.0.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v18.0.0.tar.gz`_)
* `await_all_uploads` options when creating Onions
* properly re-map progress percentages (including descriptor uploads)
@@ -245,7 +255,7 @@
February 22, 2018
- * `txtorcon-0.20.0.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-0.20.0.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.20.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.20.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.20.0.tar.gz`_)
+ * `txtorcon-0.20.0.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.20.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.20.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.20.0.tar.gz`_)
* doc fixes from `hotelzululima https://twitter.com/hotelzululima`_
* fix endpoints so `.connect` on them works properly more than once
@@ -266,7 +276,7 @@
May 24, 2017
- * `txtorcon-0.19.3.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-0.19.3.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.19.3`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.19.3.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.19.3.tar.gz`_)
+ * `txtorcon-0.19.3.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.19.3`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.19.3.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.19.3.tar.gz`_)
* Incorrect parsing of SocksPort options (see `Issue 237 https://github.com/meejah/txtorcon/issues/237`_)
@@ -276,7 +286,7 @@
May 11, 2017
- * `txtorcon-0.19.2.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-0.19.2.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.19.2`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.19.2.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.19.2.tar.gz`_)
+ * `txtorcon-0.19.2.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.19.2`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.19.2.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.19.2.tar.gz`_)
* Work around a bug in `incremental` (see `Issue 233 https://github.com/meejah/txtorcon/issues/233`_)
* Fix for `Issue 190 https://github.com/meejah/txtorcon/issues/190`_ from Felipe Dau.
@@ -288,7 +298,7 @@
April 26, 2017
- * `txtorcon-0.19.1.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-0.19.1.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.19.1`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.19.1.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.19.1.tar.gz`_)
+ * `txtorcon-0.19.1.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.19.1`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.19.1.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.19.1.tar.gz`_)
* Fix a regression in ``launch_tor``, see `Issue 227 https://github.com/meejah/txtorcon/issues/227`_
@@ -298,7 +308,7 @@
April 20, 2017
- * `txtorcon-0.19.0.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-0.19.0.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.19.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.19.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.19.0.tar.gz`_)
+ * `txtorcon-0.19.0.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.19.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.19.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.19.0.tar.gz`_)
* Full Python3 support
* Drop `txsocksx` and use a custom implementation (this also
@@ -342,7 +352,7 @@
January 11, 2017
- * `txtorcon-0.18.0.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-0.18.0.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.18.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.18.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.18.0.tar.gz`_)
+ * `txtorcon-0.18.0.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.18.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.18.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.18.0.tar.gz`_)
* `issue 200 https://github.com/meejah/txtorcon/issues/200`_: better feedback if the cookie data can't be read
@@ -351,7 +361,7 @@
*October 4, 2016*
- * `txtorcon-0.17.0.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-0.17.0.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.17.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.17.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.17.0.tar.gz`_)
+ * `txtorcon-0.17.0.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.17.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.17.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.17.0.tar.gz`_)
* `issue 187 https://github.com/meejah/txtorcon/issues/187`_: fix unix-socket control endpoints
* sometimes mapping streams to hostnames wasn't working properly
* backwards-compatibility API for `socks_hostname` was incorrectly named
@@ -362,7 +372,7 @@
*August 31, 2016*
- * `txtorcon-0.16.1.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-0.16.1.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.16.1`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.16.1.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.16.1.tar.gz`_)
+ * `txtorcon-0.16.1.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.16.1`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.16.1.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.16.1.tar.gz`_)
* `issue 172 https://github.com/meejah/txtorcon/issues/172`_: give `TorProcessProtocol` a `.quit` method
* `issue 181 https://github.com/meejah/txtorcon/issues/181`_: enable SOCKS5-over-unix-sockets for TorClientEndpoint (thanks to `david415 https://github.com/david415`_
@@ -376,7 +386,7 @@
v0.15.1
-------
- * `txtorcon-0.15.1.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-0.15.1.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.15.1`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.15.1.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.15.1.tar.gz`_)
+ * `txtorcon-0.15.1.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.15.1`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.15.1.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.15.1.tar.gz`_)
* fix `issue 179 https://github.com/meejah/txtorcon/issues/179`_ with `Circuit.age`.
@@ -385,7 +395,7 @@
*July 26, 2016*
- * `txtorcon-0.15.0.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-0.15.0.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.15.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.15.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.15.0.tar.gz`_)
+ * `txtorcon-0.15.0.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.15.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.15.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.15.0.tar.gz`_)
* added support for NULL control-port-authentication which is often
appropriate when used with a UNIX domain socket
* switched to `ipaddress
@@ -422,7 +432,7 @@
*December 2, 2015*
- * `txtorcon-0.14.2.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-0.14.2.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.14.2`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.14.2.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.14.2.tar.gz`_)
+ * `txtorcon-0.14.2.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.14.2`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.14.2.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.14.2.tar.gz`_)
* compatibility for Twisted 15.5.0 (released on 0.14.x for `OONI http://ooni.io/`_)
@@ -440,14 +450,14 @@
*September 26, 2015*
- * `txtorcon-0.14.0.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-0.14.0.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.14.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.14.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.14.0.tar.gz`_)
+ * `txtorcon-0.14.0.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.14.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.14.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.14.0.tar.gz`_)
* :class:`txtorcon.interface.IStreamAttacher` handling was missing ``None`` and ``DO_NOT_ATTACH`` cases if a Deferred was returned.
* add ``.is_built`` Deferred to :class:`txtorcon.Circuit` that gets `callback()`d when the circuit becomes BUILT
* `david415 https://github.com/david415`_ ported his ``tor:``
endpoint parser so now both client and server endpoints are
supported. This means **any** Twisted program using endpoints can
use Tor as a client. For example, to connect to txtorcon's Web site:
- ``ep = clientFromString("tor:timaq4ygg2iegci7.onion:80")``.
+ ``ep = clientFromString("tor:fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion:80")``.
(In the future, I'd like to automatically launch Tor if required, too).
* Python3 fixes from `isis https://github.com/isislovecruft`_ (note: needs Twisted 15.4.0+)
@@ -457,7 +467,7 @@
*May 10, 2015*
- * `txtorcon-0.13.0.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-0.13.0.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.13.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.13.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.13.0.tar.gz`_)
+ * `txtorcon-0.13.0.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.13.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.13.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.13.0.tar.gz`_)
* support ``basic`` and ``stealth`` hidden service authorization, and parse ``client_keys`` files.
* 2x speedup for TorState parsing (mostly by lazy-parsing timestamps)
* can now parse ~75000 microdescriptors/second per core of 3.4GHz Xeon E3
@@ -474,7 +484,7 @@
*February 3, 2015*
- * `txtorcon-0.12.0.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-0.12.0.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.12.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.12.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.12.0.tar.gz`_)
+ * `txtorcon-0.12.0.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.12.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.12.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.12.0.tar.gz`_)
* doc, code and import cleanups from `Kali Kaneko https://github.com/kalikaneko`_
* HiddenServiceDirGroupReadable support
* Issue #80: honour ``ControlPort 0`` in incoming TorConfig
@@ -501,9 +511,9 @@
*August 16, 2014*
- * September 6, 2015. bugfix release: `txtorcon-0.11.1.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-0.11.1.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.11.1`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.11.1.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.11.1.tar.gz`_)
+ * September 6, 2015. bugfix release: `txtorcon-0.11.1.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.11.1`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.11.1.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.11.1.tar.gz`_)
* fixed Debian bug `797261 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=797261`_ causing 3 tests to fail
- * `txtorcon-0.11.0.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-0.11.0.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.11.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.11.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.11.0.tar.gz`_)
+ * `txtorcon-0.11.0.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.11.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.11.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.11.0.tar.gz`_)
* More control for ``launch_tor``: access stdout, stderr in real-time
and control whether we kill Tor on and stderr output. See issue #79.
* Warning about ``build_circuit`` being called without a guard first
@@ -518,7 +528,7 @@
*July 20, 2014*
- * `txtorcon-0.10.1.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-0.10.1.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.10.1`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.10.1.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.10.1.tar.gz`_)
+ * `txtorcon-0.10.1.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.10.1`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.10.1.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.10.1.tar.gz`_)
* fix bug incorrectly issuing RuntimeError in brief window of time on event-listeners
* issue #78: Add tox tests and fix for Twisted 12.0.0 (and prior), as this is what Debian squeeze ships
* issue #77: properly expand relative and tilde paths for ``hiddenServiceDir`` via endpoints
@@ -529,7 +539,7 @@
*June 15, 2014*
- * `txtorcon-0.10.0.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-0.10.0.tar.gz`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.10.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.10.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.10.0.tar.gz`_)
+ * `txtorcon-0.10.0.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (`PyPI https://pypi.python.org/pypi/txtorcon/0.10.0`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.10.0.tar.g...`_) (`source https://github.com/meejah/txtorcon/archive/v0.10.0.tar.gz`_)
* In collaboration with `David Stainton https://github.com/david415`_ after a pull-request, we
have endpoint parser plugins for Twisted! This means code like
``serverFromString("onion:80").listen(...)`` is enough to start a
@@ -544,7 +554,7 @@
*April 23, 2014*
- * `txtorcon-0.9.2.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-0.9.2.tar.gz`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.9.2.tar.gz...`_) (`source https://github.com/meejah/txtorcon/archive/v0.9.2.tar.gz`_)
+ * `txtorcon-0.9.2.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.9.2.tar.gz...`_) (`source https://github.com/meejah/txtorcon/archive/v0.9.2.tar.gz`_)
* add ``on_disconnect`` callback for TorControlProtocol (no more monkey-patching Protocol API)
* add ``age()`` method to Circuit
* add ``time_created`` property to Circuit
@@ -567,7 +577,7 @@
*January 20, 2014*
- * `txtorcon-0.9.1.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-0.9.1.tar.gz`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.9.1.tar.gz...`_) (`source https://github.com/meejah/txtorcon/archive/v0.9.1.tar.gz`_)
+ * `txtorcon-0.9.1.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.9.1.tar.gz...`_) (`source https://github.com/meejah/txtorcon/archive/v0.9.1.tar.gz`_)
* put test/ directory at the top level
* using "`coverage http://nedbatchelder.com/code/coverage/`_" tool instead of custom script
* using `coveralls.io https://coveralls.io/r/meejah/txtorcon`_ and `travis-ci https://travis-ci.org/meejah/txtorcon`_ for test coverage and continuous integration
@@ -591,7 +601,7 @@
*November 22, 2013*
- * `txtorcon-0.8.2.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-0.8.2.tar.gz`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.8.2.tar.gz...`_) (`source https://github.com/meejah/txtorcon/archive/v0.8.2.tar.gz`_)
+ * `txtorcon-0.8.2.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (:download:`local-sig ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.8.2.tar.gz...`_) (`source https://github.com/meejah/txtorcon/archive/v0.8.2.tar.gz`_)
* ensure hidden service server-side endpoints listen only on 127.0.0.1
@@ -600,7 +610,7 @@
*May 13, 2013*
- * `txtorcon-0.8.1.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-0.8.1.tar.gz`_ (:download:`local-sign ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.8.1.tar.gz...`_) (`source https://github.com/meejah/txtorcon/archive/v0.8.1.tar.gz`_)
+ * `txtorcon-0.8.1.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (:download:`local-sign ` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.8.1.tar.gz...`_) (`source https://github.com/meejah/txtorcon/archive/v0.8.1.tar.gz`_)
* fixed improper import in setup.py preventing 0.8.0 from installing
* signatures with proper subkey this time
* Proper file-flushing in tests and PyPy fixes from Lukas Lueg
@@ -631,7 +641,7 @@
*November 21, 2012*
- * `txtorcon-0.7.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-0.7.tar.gz`_ (:download:`local-sig <../signatues/txtorcon-0.7.tar.gz.sig>` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.7.tar.gz.s...`_) (`source https://github.com/meejah/txtorcon/tarball/v0.7`_)
+ * `txtorcon-0.7.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (:download:`local-sig <../signatues/txtorcon-0.7.tar.gz.sig>` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.7.tar.gz.s...`_) (`source https://github.com/meejah/txtorcon/tarball/v0.7`_)
* `issue #20 https://github.com/meejah/txtorcon/issues/20`_ config object now hooked up correctly after launch_tor();
* `patch https://github.com/meejah/txtorcon/pull/22`_ from hellais for properly handling data_dir given to TCPHiddenServiceEndpoint;
* `.tac example https://github.com/meejah/txtorcon/pull/19`_ from mmaker;
@@ -642,7 +652,7 @@
*October 10, 2012*
- * `txtorcon-0.6.tar.gz http://timaq4ygg2iegci7.onion/txtorcon-0.6.tar.gz`_ (:download:`local-sig <../signatues/txtorcon-0.6.tar.gz.sig>` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.6.tar.gz.s...`_) (`source https://github.com/meejah/txtorcon/tarball/v0.6`_)
+ * `txtorcon-0.6.tar.gz http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/txtorc...`_ (:download:`local-sig <../signatues/txtorcon-0.6.tar.gz.sig>` or `github-sig https://github.com/meejah/txtorcon/blob/main/signatues/txtorcon-0.6.tar.gz.s...`_) (`source https://github.com/meejah/txtorcon/tarball/v0.6`_)
* debian packaging (mmaker);
* psutil fully gone;
* *changed API* for launch_tor() to use TorConfig instead of args;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/examples/launch_onion.py new/txtorcon-23.11.0/examples/launch_onion.py
--- old/txtorcon-23.5.0/examples/launch_onion.py 1970-01-01 01:00:00.000000000 +0100
+++ new/txtorcon-23.11.0/examples/launch_onion.py 2023-08-10 21:30:17.000000000 +0200
@@ -0,0 +1,48 @@
+#!/usr/bin/env python
+
+from twisted.internet import defer, task, endpoints, error
+from twisted.web import server, resource
+
+import txtorcon
+import sys
+
+class Simple(resource.Resource):
+ """
+ A really simple Web site.
+ """
+ isLeaf = True
+
+ def render_GET(self, request):
+ return b"<html>Hello, world! I'm a hidden service!</html>"
+
+
+async def main(reactor):
+ print("main", reactor)
+ tor = await txtorcon.launch(
+ reactor,
+ stdout=sys.stdout,
+ stderr=sys.stderr,
+ progress_updates=print,
+ control_port="unix:/tmp/testing/torcontrolfoo",
+ data_directory="/tmp/tordatatmp",
+ )
+ print(tor)
+
+ # create ephemeral service listening on "80" publically, and a
+ # random local port.
+ for _ in range(2):
+ onion_service = await tor.create_onion_service([80], progress=print) # , await_all_uploads=True,
+ print(f"service: http://{onion_service.hostname}")
+ for port in onion_service.ports:
+ print(" ", port)
+ ep = endpoints.serverFromString(reactor, "tcp:{}".format(port.split()[1].split(":")[1]))
+ port = await ep.listen(server.Site(Simple()))
+ print(port)
+
+ await defer.Deferred() # wait forever
+
+
+if __name__ == "__main__":
+ def run(reactor):
+ return defer.ensureDeferred(main(reactor))
+ task.react(run)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/examples/web_client.py new/txtorcon-23.11.0/examples/web_client.py
--- old/txtorcon-23.5.0/examples/web_client.py 2018-05-31 20:59:02.000000000 +0200
+++ new/txtorcon-23.11.0/examples/web_client.py 2023-08-11 09:41:38.000000000 +0200
@@ -32,7 +32,7 @@
agent = tor.web_agent()
uri = b'http://surely-this-has-not-been-registered-and-is-invalid.com'
uri = b'https://www.torproject.org'
- uri = b'http://timaq4ygg2iegci7.onion/' # txtorcon documentation
+ uri = b'http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/' # txtorcon documentation
print("Downloading {}".format(uri))
resp = yield agent.request(b'GET', uri)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/requirements.txt new/txtorcon-23.11.0/requirements.txt
--- old/txtorcon-23.5.0/requirements.txt 2023-05-19 03:11:14.000000000 +0200
+++ new/txtorcon-23.11.0/requirements.txt 2023-08-29 17:13:24.000000000 +0200
@@ -3,6 +3,5 @@
##GeoIP>=1.2.9
Twisted[tls]>=15.5.0
zope.interface>=3.6.1
-incremental
automat
cryptography
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/test/py3_test_controller.py new/txtorcon-23.11.0/test/py3_test_controller.py
--- old/txtorcon-23.5.0/test/py3_test_controller.py 2018-05-31 20:59:02.000000000 +0200
+++ new/txtorcon-23.11.0/test/py3_test_controller.py 2023-11-20 07:11:22.000000000 +0100
@@ -1,4 +1,4 @@
-from mock import Mock
+from unittest.mock import Mock
from twisted.trial import unittest
from twisted.internet.defer import ensureDeferred
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/test/test_attacher.py new/txtorcon-23.11.0/test/test_attacher.py
--- old/txtorcon-23.5.0/test/test_attacher.py 2018-05-31 20:59:02.000000000 +0200
+++ new/txtorcon-23.11.0/test/test_attacher.py 2023-11-20 07:11:22.000000000 +0100
@@ -1,4 +1,4 @@
-from mock import Mock
+from unittest.mock import Mock
from zope.interface import directlyProvides
from twisted.trial import unittest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/test/test_circuit.py new/txtorcon-23.11.0/test/test_circuit.py
--- old/txtorcon-23.5.0/test/test_circuit.py 2018-05-31 20:59:02.000000000 +0200
+++ new/txtorcon-23.11.0/test/test_circuit.py 2023-11-20 07:11:22.000000000 +0100
@@ -1,6 +1,6 @@
import datetime
import ipaddress
-from mock import patch
+from unittest.mock import patch
from twisted.trial import unittest
from twisted.internet import defer
@@ -21,7 +21,7 @@
from txtorcon.interface import CircuitListenerMixin
from txtorcon.interface import ITorControlProtocol
-from mock import Mock
+from unittest.mock import Mock
@implementer(IRouterContainer)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/test/test_controller.py new/txtorcon-23.11.0/test/test_controller.py
--- old/txtorcon-23.5.0/test/test_controller.py 2020-04-20 04:58:02.000000000 +0200
+++ new/txtorcon-23.11.0/test/test_controller.py 2023-11-20 07:11:22.000000000 +0100
@@ -2,7 +2,7 @@
import six
import functools
from os.path import join
-from mock import Mock, patch
+from unittest.mock import Mock, patch
from io import BytesIO
from twisted.internet.interfaces import IReactorCore
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/test/test_endpoints.py new/txtorcon-23.11.0/test/test_endpoints.py
--- old/txtorcon-23.5.0/test/test_endpoints.py 2023-02-16 06:25:43.000000000 +0100
+++ new/txtorcon-23.11.0/test/test_endpoints.py 2023-11-20 07:11:22.000000000 +0100
@@ -2,8 +2,8 @@
import os
import sys
-from mock import patch
-from mock import Mock, MagicMock
+from unittest.mock import patch
+from unittest.mock import Mock, MagicMock
from unittest import skipIf
from binascii import b2a_base64
@@ -1593,9 +1593,9 @@
)
def test_parser_basic(self):
- ep = clientFromString(None, 'tor:host=timaq4ygg2iegci7.onion:port=80:socksPort=9050')
+ ep = clientFromString(None, 'tor:host=fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion:port=80:socksPort=9050')
- self.assertEqual(ep.host, 'timaq4ygg2iegci7.onion')
+ self.assertEqual(ep.host, 'fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion')
self.assertEqual(ep.port, 80)
# XXX what's "the Twisted way" to get the port out here?
self.assertEqual(ep._socks_endpoint._port, 9050)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/test/test_onion.py new/txtorcon-23.11.0/test/test_onion.py
--- old/txtorcon-23.5.0/test/test_onion.py 2019-05-19 14:35:02.000000000 +0200
+++ new/txtorcon-23.11.0/test/test_onion.py 2023-11-20 07:11:22.000000000 +0100
@@ -2,7 +2,7 @@
import os
import sys
-from mock import Mock
+from unittest.mock import Mock
from os.path import join
from unittest import skipIf
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/test/test_router.py new/txtorcon-23.11.0/test/test_router.py
--- old/txtorcon-23.5.0/test/test_router.py 2018-05-31 20:59:02.000000000 +0200
+++ new/txtorcon-23.11.0/test/test_router.py 2023-11-20 07:11:22.000000000 +0100
@@ -1,6 +1,6 @@
import json
from datetime import datetime
-from mock import Mock
+from unittest.mock import Mock
from twisted.trial import unittest
from twisted.internet import defer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/test/test_socks.py new/txtorcon-23.11.0/test/test_socks.py
--- old/txtorcon-23.5.0/test/test_socks.py 2018-05-31 20:59:02.000000000 +0200
+++ new/txtorcon-23.11.0/test/test_socks.py 2023-11-20 07:11:22.000000000 +0100
@@ -1,5 +1,5 @@
from six import BytesIO, text_type
-from mock import Mock, patch
+from unittest.mock import Mock, patch
from twisted.trial import unittest
from twisted.internet import defer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/test/test_stream.py new/txtorcon-23.11.0/test/test_stream.py
--- old/txtorcon-23.5.0/test/test_stream.py 2018-05-31 20:59:02.000000000 +0200
+++ new/txtorcon-23.11.0/test/test_stream.py 2023-08-11 09:41:38.000000000 +0200
@@ -365,7 +365,7 @@
for address in [
'1.2.3.4:80',
'1.2.3.4.315D5684D5343580D409F16119F78D776A58AEFB.exit:80',
- 'timaq4ygg2iegci7.onion:80']:
+ 'fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion:80']:
line = "316 %s 1 %s REASON=FOO"
for state in ['NEW', 'SUCCEEDED', 'REMAP',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/test/test_torconfig.py new/txtorcon-23.11.0/test/test_torconfig.py
--- old/txtorcon-23.5.0/test/test_torconfig.py 2019-05-19 14:35:02.000000000 +0200
+++ new/txtorcon-23.11.0/test/test_torconfig.py 2023-11-20 07:11:22.000000000 +0100
@@ -6,7 +6,7 @@
import functools
import warnings
from six import StringIO
-from mock import Mock, patch
+from unittest.mock import Mock, patch
from os.path import join
from zope.interface import implementer, directlyProvides
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/test/test_torcontrolprotocol.py new/txtorcon-23.11.0/test/test_torcontrolprotocol.py
--- old/txtorcon-23.5.0/test/test_torcontrolprotocol.py 2019-05-19 14:35:02.000000000 +0200
+++ new/txtorcon-23.11.0/test/test_torcontrolprotocol.py 2023-10-04 21:25:18.000000000 +0200
@@ -74,7 +74,7 @@
self.transport = proto_helpers.StringTransport()
def send(self, line):
- assert type(line) == bytes
+ assert isinstance(line, bytes)
self.protocol.dataReceived(line.strip() + b"\r\n")
def test_authenticate_cookie(self):
@@ -226,7 +226,7 @@
it_was_called.yes = False
d = self.protocol.when_disconnected()
- d.addCallback(it_was_called)
+ d.addBoth(it_was_called)
f = failure.Failure(error.ConnectionDone("It's all over"))
self.protocol.connectionLost(f)
self.assertTrue(it_was_called.yes)
@@ -284,6 +284,31 @@
self.protocol.connectionLost(f)
self.assertEqual(it_was_called.count, 2)
+ def test_disconnect_subsequent_commands(self):
+ """
+ commands issued after disconnect should errback
+ """
+
+ def it_was_called(f):
+ str(f)
+ it_was_called.count += 1
+ return None
+ it_was_called.count = 0
+
+ # one outstanding command
+ d0 = self.protocol.queue_command("some command0")
+ d0.addErrback(it_was_called)
+ self.protocol.on_disconnect.addErrback(lambda _: None)
+
+ f = failure.Failure(RuntimeError("The thing didn't do the stuff."))
+ self.protocol.connectionLost(f)
+
+ # one command issued _after_ we've disconnected
+ d1 = self.protocol.queue_command("some command1")
+ d1.addErrback(it_was_called)
+
+ self.assertEqual(it_was_called.count, 2)
+
class ProtocolTests(unittest.TestCase):
@@ -297,7 +322,7 @@
self.protocol = None
def send(self, line):
- assert type(line) == bytes
+ assert isinstance(line, bytes)
self.protocol.dataReceived(line.strip() + b"\r\n")
def test_statemachine_broadcast_no_code(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/test/test_torstate.py new/txtorcon-23.11.0/test/test_torstate.py
--- old/txtorcon-23.5.0/test/test_torstate.py 2023-02-16 06:25:43.000000000 +0100
+++ new/txtorcon-23.11.0/test/test_torstate.py 2023-11-20 07:11:22.000000000 +0100
@@ -12,7 +12,7 @@
from ipaddress import IPv4Address
-from mock import patch, Mock
+from unittest.mock import patch, Mock
from txtorcon import TorControlProtocol
from txtorcon import TorProtocolError
@@ -1293,7 +1293,14 @@
self.assertEqual(self.transport.value(), b'EXTENDCIRCUIT 0 0000000000000000000000000000000000000000,0000000000000000000000000000000000000001,0000000000000000000000000000000000000002\r\n')
# should have gotten a warning about this not being an entry
# guard
- self.assertEqual(len(self.flushWarnings()), 1)
+ self.assertEqual(
+ 1,
+ len([
+ warn
+ for warn in self.flushWarnings()
+ if "Circuit doesn't start with a guard" in warn["message"]
+ ])
+ )
def test_build_circuit_no_routers(self):
self.state.build_circuit()
@@ -1329,7 +1336,14 @@
self.send(b"250 EXTENDED 1234")
# should have gotten a warning about this not being an entry
# guard
- self.assertEqual(len(self.flushWarnings()), 1)
+ self.assertEqual(
+ 1,
+ len([
+ warn
+ for warn in self.flushWarnings()
+ if "Circuit doesn't start with a guard" in warn["message"]
+ ])
+ )
return d
def test_build_circuit_error(self):
@@ -1477,7 +1491,14 @@
self.state.circuits[1234].update(['1234', 'BUILT'])
# should have gotten a warning about this not being an entry
# guard
- self.assertEqual(len(self.flushWarnings()), 1)
+ self.assertEqual(
+ 1,
+ len([
+ warn
+ for warn in self.flushWarnings()
+ if "Circuit doesn't start with a guard" in warn["message"]
+ ])
+ )
return d
def test_build_circuit_failure(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/test/test_util.py new/txtorcon-23.11.0/test/test_util.py
--- old/txtorcon-23.5.0/test/test_util.py 2021-08-16 22:24:40.000000000 +0200
+++ new/txtorcon-23.11.0/test/test_util.py 2023-11-20 07:11:22.000000000 +0100
@@ -1,7 +1,7 @@
import os
import tempfile
import ipaddress
-from mock import patch
+from unittest.mock import patch
from unittest import skip as _skip
from os.path import exists
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/test/test_web.py new/txtorcon-23.11.0/test/test_web.py
--- old/txtorcon-23.5.0/test/test_web.py 2023-05-19 03:11:14.000000000 +0200
+++ new/txtorcon-23.11.0/test/test_web.py 2023-11-20 07:11:22.000000000 +0100
@@ -1,5 +1,5 @@
-from mock import Mock
+from unittest.mock import Mock
from twisted.web.client import BrowserLikePolicyForHTTPS
from twisted.trial import unittest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/txtorcon/_metadata.py new/txtorcon-23.11.0/txtorcon/_metadata.py
--- old/txtorcon-23.5.0/txtorcon/_metadata.py 2023-05-19 03:13:53.000000000 +0200
+++ new/txtorcon-23.11.0/txtorcon/_metadata.py 2023-11-20 07:12:18.000000000 +0100
@@ -1,4 +1,4 @@
-__version__ = '23.5.0'
+__version__ = '23.11.0'
__author__ = 'meejah'
__contact__ = 'meejah@meejah.ca'
__url__ = 'https://github.com/meejah/txtorcon'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/txtorcon/controller.py new/txtorcon-23.11.0/txtorcon/controller.py
--- old/txtorcon-23.5.0/txtorcon/controller.py 2023-05-19 03:11:14.000000000 +0200
+++ new/txtorcon-23.11.0/txtorcon/controller.py 2023-08-30 01:34:05.000000000 +0200
@@ -692,9 +692,9 @@
add and remove onion authentication. For example, inside an
`async def` method that's had `ensureDeferred` called on it::
- async with tor.onion_authentication("timaq4ygg2iegci7.onion", "seekrit token"):
+ async with tor.onion_authentication("fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion", "seekrit token"):
agent = tor.web_agent()
- resp = await agent.request(b'GET', "http://timaq4ygg2iegci7.onion/")
+ resp = await agent.request(b'GET', "http://fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion/")
body = await readBody(resp)
# after the "async with" the token will be removed from Tor's configuration
@@ -1032,6 +1032,8 @@
control-connection goes away (this means the service will
appear in `GETINFO onions/detached` to all other
controllers)
+
+ :returns EphemeralOnionService:
"""
if version not in (2, 3):
raise ValueError(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/txtorcon/endpoints.py new/txtorcon-23.11.0/txtorcon/endpoints.py
--- old/txtorcon-23.5.0/txtorcon/endpoints.py 2021-08-16 22:24:37.000000000 +0200
+++ new/txtorcon-23.11.0/txtorcon/endpoints.py 2023-08-11 09:41:38.000000000 +0200
@@ -203,7 +203,7 @@
:class:`txtorcon.IAuthenticatedOnionClients` instance (and from
which you can recover private keys, the hostname, etc)
- :ivar onion_uri: the public key, like ``timaq4ygg2iegci7.onion``
+ :ivar onion_uri: the public key, like ``fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion``
which came from the hidden_service_dir's ``hostname`` file
:ivar onion_private_key: the contents of ``hidden_service_dir/private_key``
@@ -1193,11 +1193,11 @@
:api:`twisted.internet.endpoints.clientFromString
<clientFromString>` with a string argument like:
- ``tor:host=timaq4ygg2iegci7.onion:port=80:socksPort=9050``
+ ``tor:host=fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion:port=80:socksPort=9050``
...or simply:
- ``tor:host=timaq4ygg2iegci7.onion:port=80``
+ ``tor:host=fjblvrw2jrxnhtg67qpbzi45r7ofojaoo3orzykesly2j3c2m3htapid.onion:port=80``
You may also include a username + password. By default, Tor will
not put two streams that provided different authentication on the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/txtorcon/torcontrolprotocol.py new/txtorcon-23.11.0/txtorcon/torcontrolprotocol.py
--- old/txtorcon-23.5.0/txtorcon/torcontrolprotocol.py 2019-05-19 14:35:02.000000000 +0200
+++ new/txtorcon-23.11.0/txtorcon/torcontrolprotocol.py 2023-10-04 21:25:18.000000000 +0200
@@ -232,6 +232,12 @@
:class:`txtorcon.TorState`, which is also the place to go if you
wish to add your own stream or circuit listeners.
"""
+ # override Twisted's LineOnlyReceiver maximum line-length. At
+ # least "GETINFO md/id/X" for some Xse exceeds 16384 (2**14, the
+ # default) and thus causes the control connection to
+ # fail. control.c defines MAX_COMMAND_LINE_LENGTH as 1024*1024 so
+ # we use that
+ MAX_LENGTH = 2 ** 20
def __init__(self, password_function=None):
"""
@@ -276,11 +282,6 @@
self._when_disconnected = SingleObserver()
"""
- Internal use. A :class:`SingleObserver` for when_disconnected()
- """
-
- self._when_disconnected = SingleObserver()
- """
Private. See :func:`.when_disconnected`
"""
@@ -356,7 +357,7 @@
self.stop_debug()
def start_debug(self):
- self.debuglog = open('txtorcon-debug.log', 'w')
+ self.debuglog = open('txtorcon-debug.log', 'wb')
def stop_debug(self):
def noop(*args, **kw):
@@ -692,10 +693,14 @@
def connectionLost(self, reason):
"Protocol API"
txtorlog.msg('connection terminated: ' + str(reason))
- if reason.check(ConnectionDone):
- self._when_disconnected.fire(self)
- else:
- self._when_disconnected.fire(reason)
+ self._when_disconnected.fire(
+ Failure(
+ TorDisconnectError(
+ text="Tor connection terminated",
+ error=reason,
+ )
+ )
+ )
# ...and this is why we don't do on_disconnect = Deferred() :(
# and instead should have had on_disconnect() method that
@@ -712,8 +717,10 @@
else:
self.on_disconnect.errback(reason)
self.on_disconnect = None
- self._when_disconnected.fire(self)
+
outstanding = [self.command] + self.commands if self.command else self.commands
+ self.command = None
+ self.defer = None
for d, cmd, cmd_arg in outstanding:
if not d.called:
d.errback(
@@ -754,6 +761,10 @@
if len(self.commands):
self.command = self.commands.pop(0)
(d, cmd, cmd_arg) = self.command
+
+ if self._when_disconnected.already_fired(d):
+ return
+
self.defer = d
self.debuglog.write(cmd + b'\n')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/txtorcon/torstate.py new/txtorcon-23.11.0/txtorcon/torstate.py
--- old/txtorcon-23.5.0/txtorcon/torstate.py 2020-04-20 04:58:02.000000000 +0200
+++ new/txtorcon-23.11.0/txtorcon/torstate.py 2023-08-11 09:41:38.000000000 +0200
@@ -477,7 +477,7 @@
(e.g. "SomeFlag=True"). Currently there are none that Tor accepts.
"""
- if type(stream) != int:
+ if not isinstance(stream, int):
# assume it's a Stream instance
stream = stream.id
try:
@@ -513,7 +513,7 @@
:meth:`Circuit.close `
"""
- if type(circid) != int:
+ if not isinstance(circid, int):
# assume it's a Circuit instance
circid = circid.id
flags = flags_from_dict(kwargs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/txtorcon/util.py new/txtorcon-23.11.0/txtorcon/util.py
--- old/txtorcon-23.5.0/txtorcon/util.py 2019-05-19 14:35:02.000000000 +0200
+++ new/txtorcon-23.11.0/txtorcon/util.py 2023-10-04 21:25:18.000000000 +0200
@@ -473,6 +473,19 @@
self._observers = []
self._fired = self._NotFired
+ def has_fired(self):
+ return self._fired is not self._NotFired
+
+ def already_fired(self, d):
+ """
+ If we have already fired, callback `d` with our result.
+ :returns bool: True if we already fired, False otherwise
+ """
+ if self.has_fired():
+ d.callback(self._fired)
+ return True
+ return False
+
def when_fired(self):
d = defer.Deferred()
if self._fired is not self._NotFired:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/txtorcon.egg-info/PKG-INFO new/txtorcon-23.11.0/txtorcon.egg-info/PKG-INFO
--- old/txtorcon-23.5.0/txtorcon.egg-info/PKG-INFO 2023-05-19 03:21:31.000000000 +0200
+++ new/txtorcon-23.11.0/txtorcon.egg-info/PKG-INFO 2023-11-20 08:48:41.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: txtorcon
-Version: 23.5.0
+Version: 23.11.0
Summary: Twisted-based Tor controller client, with state-tracking and configuration abstractions. https://txtorcon.readthedocs.org https://github.com/meejah/txtorcon
Home-page: https://github.com/meejah/txtorcon
Author: meejah
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/txtorcon.egg-info/SOURCES.txt new/txtorcon-23.11.0/txtorcon.egg-info/SOURCES.txt
--- old/txtorcon-23.5.0/txtorcon.egg-info/SOURCES.txt 2023-05-19 03:21:31.000000000 +0200
+++ new/txtorcon-23.11.0/txtorcon.egg-info/SOURCES.txt 2023-11-20 08:48:41.000000000 +0100
@@ -50,6 +50,7 @@
examples/disallow_streams_by_port.py
examples/dns_lookups.py
examples/hidden_echo.py
+examples/launch_onion.py
examples/launch_tor.py
examples/launch_tor2web.py
examples/launch_tor_endpoint.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txtorcon-23.5.0/txtorcon.egg-info/requires.txt new/txtorcon-23.11.0/txtorcon.egg-info/requires.txt
--- old/txtorcon-23.5.0/txtorcon.egg-info/requires.txt 2023-05-19 03:21:31.000000000 +0200
+++ new/txtorcon-23.11.0/txtorcon.egg-info/requires.txt 2023-11-20 08:48:41.000000000 +0100
@@ -1,6 +1,5 @@
Twisted[tls]>=15.5.0
zope.interface>=3.6.1
-incremental
automat
cryptography
@@ -17,7 +16,6 @@
twine
pyflakes
pycodestyle
-mock
ipaddress>=1.0.16
geoip
readme_renderer