This now shares the _compose() decorator with wormhole.cli.cli, and removes
the arguments_to_config() function in favor of just copying all kwargs into
the Config object.
The previous behavior was to throw an Automat exception, when a state machine
was given a LOST event from the initial non-connected state, and it didn't
have a handler for it. This version throws ServerConnectionError instead.
Still needs a test
refs #180
"wormhole-server restart" was broken by the addition of --disallow-list,
because the Click parser wasn't update to include the argument. This test
should exercise that a basic no-argv invocation of both "start" and "restart"
can at least build the Service object successfully.
refs #151
This adds no additional dependencies (txtorcon only depends on things that we
already depend upon anyways), and txtorcon itself is only 300kB. This removes
the need for using `pip install magic-wormhole[tor]` to get Tor support:
instead, just dod `pip install magic-wormhole`.
closes#174
This provides a clear error in case the user doesn't have an internet
connection at all, or something is so broken with their DNS or routing that
they can't reach the server. I think this is better than waiting and
retrying (silently) forever.
If the first connection succeeds, but is then lost, subsequent retries occur
without fanfare.
closes#68
Versioneer wants git cli installed so it can ask about git revision
info. So, install it.
Versioneer also cares about the name of the source directory. So,
change it.
This gets us a version number like "0.9.2+257.g48b1f02" which is at
least better than "0+unknown".
This shifts most reponsibility to the new txtorcon "Controller" object, where
it belongs. We no longer need a list of likely control-port locations, nor do
we need to keep track of the SOCKS port ourselves.
The one downside is that if a control-port is not reachable, then this does
not fall back to using a plain SOCKS port (usually tcp:localhost:9050).
txtorcon no longer uses txsocksx, so it no longer advertises a simple way to
use Tor without the control port. This shouldn't affect users who run the
TorBrowserBundle, or who are running a tor daemon which they can control
directly, but it may break for users who want to use a pre-existing tor
daemon that they don't have permissions to speak control-port to.
We used to avoid this on py3, but now that txtorcon (0.19.2) is compatible
with it, we can use it on both. This also means tests can rely on having
txtorcon available.