443d248972
This should fix the immediate issue of the remote side opening a subchannel (and sending data on it) before the local side even sees the Endpoints, so before it can register a listening factory to receive the OPEN. We were already buffering early OPENs in the SubchannelListenerEndpoint, but this makes sure that endpoint is available (for the manager's Inbound half to deliver) them as soon as the dilation connection is established. The downside to buffering OPENs (and all data written to inbound subchannels) is that the application has no way to reject or pause them, until it registers the listening factory. If the application never calls `listen_ep.listen()`, we'll buffer this data forever (or until the wormhole is closed). The upside is that we don't lose a roundtrip waiting for an ack on the OPEN. See ticket #335 for more details. refs #335 |
||
---|---|---|
docs | ||
misc | ||
pyi | ||
src/wormhole | ||
.appveyor.yml | ||
.coveragerc | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
LICENSE | ||
MANIFEST.in | ||
NEWS.md | ||
README.md | ||
setup.cfg | ||
setup.py | ||
snapcraft.yaml | ||
tox.ini | ||
versioneer.py |
Magic Wormhole
Get things from one computer to another, safely.
This package provides a library and a command-line tool named wormhole
,
which makes it possible to get arbitrary-sized files and directories
(or short pieces of text) from one computer to another. The two endpoints are
identified by using identical "wormhole codes": in general, the sending
machine generates and displays the code, which must then be typed into the
receiving machine.
The codes are short and human-pronounceable, using a phonetically-distinct wordlist. The receiving side offers tab-completion on the codewords, so usually only a few characters must be typed. Wormhole codes are single-use and do not need to be memorized.
For complete documentation, please see https://magic-wormhole.readthedocs.io or the docs/ subdirectory.
License, Compatibility
This library is released under the MIT license, see LICENSE for details.
This library is compatible with python2.7, 3.5, 3.6, and 3.7.