Brian Warner
39fed50071
add no_listen=False to Manager and Dilator
...
This is only used by tests so far (and will simplify the integration test
that hasn't landed yet), but is not yet wired up to Boss, so there's no way
for applications to enable it yet.
2019-02-10 11:51:54 -08:00
Brian Warner
64618bcb64
manager: tidy up repr, leave out keys and some other fields
2019-02-10 11:51:54 -08:00
Brian Warner
b538dd6758
dilation.outbound: registerProducer goes on transport, not Protocol
2019-02-10 11:51:54 -08:00
Brian Warner
53ffbe1632
fix Noise handshake ordering
...
I mistakenly believed that Noise handshakes are simultaneous. In fact, the
Responder waits until it sees the Initiator's handshake before sending its
own. I had to update the Connection state machines to work this way (the
Record machine now has set_role_leader and set_role_follower), and update the
tests to match.
For debugging I added a `_role` property to Record, but it should probably be
removed.
2019-02-10 11:51:54 -08:00
Brian Warner
d1ff97f988
make some dilation objects hashable
...
necessary to include them in a set like _pending_connectors
2019-02-10 11:51:54 -08:00
Brian Warner
29c269ac8d
get tests to work on py2.7
...
only install 'noiseprotocol' (which is necessary for dilation to work) if the
"dilate" feature is requested (e.g. `pip install magic-wormhole[dilate]`)
2018-12-24 00:07:06 -05:00
Brian Warner
a458fe9ab9
finish test coverage/fixes for connector.py
2018-12-23 15:23:27 -05:00
Brian Warner
6ad6f8f40f
test and fix half of connector.py
...
still to do:
* relay delays
* connection race
* cancellation of losing connections
* shutdown of all connections when abandoned
2018-12-23 15:23:27 -05:00
Brian Warner
e7cb1df785
factor out HKDF
2018-12-23 15:23:27 -05:00
Brian Warner
b4c90b40a2
move parse_hint/encode_hint into _hints.py, add tests
2018-12-23 15:23:27 -05:00
Brian Warner
7720312c8f
factor out parse_tcp_v1_hint
2018-12-23 15:23:27 -05:00
Brian Warner
2f4e4d3031
factor out describe_hint_obj and endpoint_from_hint_obj
2018-12-23 15:23:27 -05:00
Brian Warner
bd1a199f3e
start factoring Hints out to separate file
...
shared between old transit.py and new _dilation/connector.py
2018-12-23 15:23:27 -05:00
Brian Warner
3b7c9831f6
appease flake8 somewhat
2018-12-23 15:23:27 -05:00
Brian Warner
40dadfeb71
finish fixing/testing manager.py
2018-12-23 15:23:27 -05:00
Brian Warner
e55787c693
get most of Manager working and tested
...
still need to test the subchannel interfaces, and ping/pong/kcm
2018-12-23 15:23:27 -05:00
Brian Warner
78358358bc
manager: hush flake8
2018-12-23 15:23:27 -05:00
Brian Warner
8a1a8b1f9c
manager: factor out make_side for testing and override
2018-12-23 15:23:27 -05:00
Brian Warner
7e168b819e
manager: clean up versions, merge state machines
2018-12-23 15:23:27 -05:00
Brian Warner
74e5d9948b
move old-follower.py out of src, kept for temporary reference
2018-12-23 15:23:27 -05:00
Brian Warner
bf0c93eddc
more flake8 fixes
2018-12-23 15:22:57 -05:00
Brian Warner
05900bd08b
fix some flake8 complaints
2018-12-23 15:22:57 -05:00
Brian Warner
34686a346a
add dilation code
...
(this compresses several months of false starts and rearchitecting)
2018-12-23 15:21:08 -05:00