Commit Graph

862 Commits

Author SHA1 Message Date
Brian Warner
33370bb1b3 transit: mention tor when describing connections that use it 2017-01-15 17:03:40 -05:00
Brian Warner
2d949f23c6 setup.py: refactor slightly 2017-01-15 16:26:23 -05:00
Brian Warner
9a4de44cb0 tox: clean up, install with [dev] 2017-01-15 16:23:23 -05:00
Brian Warner
bcac0c74f3 codes: don't assume 'readline' has a __doc__
This fixes cygwin, which (for some reason) doesn't include docstrings in the
readline module.

closes #111
2017-01-14 17:56:49 -05:00
Brian Warner
d1c3c621e8 Merge branch '15-advise-tab' 2017-01-12 16:24:59 -08:00
Brian Warner
b3763f9e78 show "you can use tabs" reminder if code was input without completion
refs #15
2017-01-12 16:14:42 -08:00
Brian Warner
62b069dea6 Wormhole: control stderr 2017-01-12 16:14:42 -08:00
Brian Warner
174b56debd Merge PR131: add snapcraft.io packaging
closes #131
2017-01-12 15:34:42 -08:00
Leo Arias
6ecb4a9868 Add the packaging metadata to build the wormhole snap 2017-01-12 15:34:28 -08:00
Brian Warner
f1a72aa4a4 travis: 3.6 is supported now
Also add 'nightly' to look for problems with the upcoming python
release (currently 3.7-dev).
2017-01-12 15:14:20 -08:00
Atul Varma
cfc6e44d68 Make footnotes section an HTML comment
I noticed that the footnotes section appears as a visible heading when rendered as HTML (e.g. in GitHub), which looks odd because there's nothing below it, so I thought it might be useful to wrap it in an HTML comment so it's only seen by those who view it in its text form.  Feel free to close this PR if you disagree though!
2017-01-04 18:58:58 -05:00
Brian Warner
2e3a0d4a1d change URL of public relay to new DNS names
These point to the same host (same IP address) as before, but the new names
are tied to the project's official domain (magic-wormhole.io), rather than my
personal one, so they can be managed independently.
2017-01-02 23:42:44 -05:00
Brian Warner
7f2edeeb11 document some attacks
closes #107
2017-01-01 14:29:48 -05:00
Brian Warner
92f8c60b31 upgrade to versioneer-0.18 2017-01-01 14:10:57 -05:00
Brian Warner
7393f1e80d NEWS: update for 0.9.1 release 2017-01-01 13:15:04 -05:00
Brian Warner
7d995ca1d5 transit server: respect --blur-usage= by not logging connections 2017-01-01 13:00:35 -05:00
Brian Warner
af79897fc2 NEWS: reflow previous entry 2017-01-01 11:29:12 -05:00
Brian Warner
822fb212c4 Merge branch '103-transit-priority' 2016-12-31 00:59:20 -05:00
Brian Warner
b2fd899ac9 prioritize relay connections
closes #103
2016-12-31 00:33:00 -05:00
Brian Warner
8b864c3eae parse/transmit/record hint priorities
Use --transit-helper=tcp:HOST:PORT:priority=1.3 to override the default 0.0 .
Larger (positive) priority numbers will be attempted first.
2016-12-31 00:32:42 -05:00
Brian Warner
bc17047983 test_transit: refactor, simplify 2016-12-31 00:31:23 -05:00
Brian Warner
1abe733a81 more coverage: parse_hint_argv 2016-12-31 00:25:15 -05:00
Brian Warner
fe6ff466d8 more coverage: parse_tcp_v1_hint 2016-12-31 00:21:34 -05:00
Brian Warner
511a73c491 improve coverage: Transit._endpoint_from_hint_obj 2016-12-31 00:09:58 -05:00
Brian Warner
7f54d810eb remove unused+uncovered code 2016-12-31 00:08:26 -05:00
Brian Warner
361952fdd9 README: improve Fedora-specific installation hints
refs #120
2016-12-29 13:52:25 -05:00
Brian Warner
1882e51a3b README: note py3.6 compatibility 2016-12-29 13:51:40 -05:00
Brian Warner
ff619c073e turn on python3.6 builds for tox and travis
Python3.6 was just released a few days ago, and travis hasn't yet added it
for real, so we use "3.6-dev" until they get it deployed completely.
2016-12-27 00:39:58 -05:00
Brian Warner
d74b16486e Merge branch 'pr120'
Closes #120
2016-12-26 16:19:36 -05:00
Brian Warner
636fc94840 README: rewrap, update windows/py3 note. 2016-12-26 16:19:29 -05:00
xloem
2b049ac7c6 Missing build dependency 2016-12-26 16:19:29 -05:00
Brian Warner
cb72f8f606 Merge branch 'rx-dedup' 2016-12-26 15:58:53 -05:00
Brian Warner
e500f4a100 rx: tolerate duplicate peer messages
closes #121
2016-12-26 15:27:14 -05:00
Brian Warner
8b5d884636 add (failing/hanging) test of receiving duplicate messages
it's a pity this causes a hang, rather than a cleaner exception
2016-12-26 15:21:45 -05:00
Brian Warner
8d3832aa3e Merge branch '118-release'
This improves the websocket-based Rendezvous Server protocol, making it
possible for a future client to maintain a Wormhole connection despite the
individual websocket connection being temporarily dropped, or the server
being restarted.

closes #118
2016-12-25 23:25:39 -05:00
Brian Warner
7ddf0d3c2d server: forbid reclaiming previously-closed nameplates
at least by the same side. This forces the contour of claims (by any given
side) to be strictly unclaimed -> claimed -> released. The "claim"
action (unclaimed -> claimed) is idempotent and can be repeated arbitrarily,
as long as they happen on separate websocket connections. Likewise for the
"release" action (unclaimed -> released). But once a side releases a
nameplate, it should never roll so far back that it tries to claim it again,
especially because the first claim causes a mailbox to be allocated, and if
we manage to allocate two different mailboxes for a single nameplate, then
we've thrown idempotency out the window.
2016-12-25 20:09:55 -05:00
Brian Warner
3a4a3f544f server: make close() idempotent
refs #118
2016-12-25 20:09:52 -05:00
Brian Warner
2c8d00e436 rendezvous_websocket.py: make release() idempotent
and make it possible to call release() even though you haven't called claim()
on that particular socket (releasing a claim that was made on some previous
websocket).

This should enable reconnecting clients, as well as intermittently-connected
"offline" clients.

refs #118
2016-12-25 20:09:48 -05:00
Brian Warner
b44fcf77da test_server: improve debug message 2016-12-25 20:00:05 -05:00
Brian Warner
a746ca726a test_server: factor out common utils 2016-12-25 19:13:00 -05:00
Brian Warner
3ad29379b5 server: fix comment 2016-12-25 14:36:50 -05:00
Brian Warner
9f72b72b76 split Transit out of test_server.py 2016-12-24 17:44:40 -05:00
Brian Warner
e8d3bc9d3a NEWS: update for 0.9.0 release 2016-12-24 14:06:02 -05:00
Brian Warner
9f208ddf20 MANIFEST.in: include new files 2016-12-24 14:06:01 -05:00
Brian Warner
72dfb6eb1c write progress/status messages to stderr, not stdout
This should leave stdout clean for use in `foo | wormhole send --text=-` and
`wormhole rx CODE >foo`, although the forms that want interactive code entry
probably won't work that way.

closes #99
2016-12-24 00:03:32 -05:00
Brian Warner
64cdd426c0 README: remove the py3-daemon-is-broken message
It seems to work now, with the current Twisted (at least 16.6.0, possibly
older ones too).

closes #67
2016-12-23 23:05:46 -05:00
Brian Warner
d0830e709f Merge branch '115-transit': fix transit-relay handling
* correctly handles two peers which offer different transit relays
* handles two transit relays that actually point to the same server

closes #115
2016-12-23 22:32:17 -05:00
Brian Warner
fde98b7c7e more coverage 2016-12-23 22:22:39 -05:00
Brian Warner
db968900d9 test_server: improve coverage 2016-12-23 22:22:39 -05:00
Brian Warner
b8313b4595 dedup relays, include our own relay when connecting
* Previously, we only connected to the relay supplied by our partner, which
  meant that if our relay differed from theirs, we'd never connect
* But we must de-duplicate the relays because when our relay *is* the same as
  theirs, we'd have two copies, which means two connections. Now that we
  deliver sided handshakes, we can tolerate that (previously, our two
  connections would be matched with each other), but it's still wasteful.

This also fixes our handling of relay hints to accept multiple specific
endpoints in each RelayHint. The idea here is that we might know multiple
addresses for a single relay (maybe one IPv4, one IPv6, a Tor .onion, and an
I2P address). Any one connection is good enough, and the connections we can
try depend upon what local interfaces we discover. So a clever implementation
could refrain from making some of those connections when it knows the sibling
hints are just as good. However we might still have multiple relays entirely,
for which it is *not* sufficient to connect to just one.

The change is to create and process RelayV1Hint objects properly, and to set
the connection loop to try every endpoint inside each RelayV1Hint. This is
not "clever" (we could nominally make fewer connection attempts), but it's
plenty good for now.

refs #115

fix relay hints
2016-12-23 22:22:39 -05:00