Brian Warner
88775d7f50
states.py: remove old file
2017-04-06 12:21:00 -07:00
Brian Warner
825370fdd2
cleanups, remove misc.py
2017-04-06 12:21:00 -07:00
Brian Warner
d4bedeafbf
general fixes
2017-04-06 12:21:00 -07:00
Brian Warner
20814a65f4
rename Wormhole (machine) to Boss, leave room for higher-level thing
2017-04-06 12:21:00 -07:00
Brian Warner
92f2b89d3e
journal: fix syntax
2017-04-06 12:21:00 -07:00
Brian Warner
a2ed35ceb8
remove old files, lots of type work
2017-04-06 12:21:00 -07:00
Brian Warner
3101ca51db
name cleanup
2017-04-06 12:21:00 -07:00
Brian Warner
80661392b6
build out all state machines
...
still early: automat is happy (they're syntactically valid), but the Outputs
are not implemented, and there are plenty of type mismatches
2017-04-06 12:21:00 -07:00
Brian Warner
9ae8091ec3
delete old files
2017-04-06 12:21:00 -07:00
Brian Warner
21cb62a4cf
move _c2.py out of the way, I might want it later
2017-04-06 12:21:00 -07:00
Brian Warner
b179e66d08
start on machine implementation: _key.py and _send.py
2017-04-06 12:21:00 -07:00
Brian Warner
40e0d6b663
more work, feels better now
2017-04-06 12:21:00 -07:00
Brian Warner
16c477424c
more demo work
2017-04-06 12:21:00 -07:00
Brian Warner
693e215d8b
sketching out a journal-based demo app
2017-04-06 12:21:00 -07:00
Brian Warner
20b80be342
remove stale machines
2017-04-06 12:21:00 -07:00
Brian Warner
3af375b173
finish Mailbox state machine, including close
2017-04-06 12:21:00 -07:00
Brian Warner
b934192f20
work on Mailbox machine
2017-04-06 12:21:00 -07:00
Brian Warner
11a80f0018
moving to separate machine class
2017-04-06 12:21:00 -07:00
Brian Warner
3bf762b4f7
try coding top-level WormholeMachine
2017-04-06 12:21:00 -07:00
Brian Warner
faab1e87d0
split _machine.py out
2017-04-06 12:21:00 -07:00
Brian Warner
17a90d87ac
tweaks
2017-04-06 12:21:00 -07:00
Brian Warner
35324a7911
my StateMachine can now render .dot
2017-04-06 12:21:00 -07:00
Brian Warner
0fe6cfd994
tweaks
2017-04-06 12:21:00 -07:00
Brian Warner
0b05c9ca5a
new experimental state-machine language
...
I think I want to express actions as transient states. _c2.py matches w4.dot
2017-04-06 12:21:00 -07:00
Brian Warner
057f616765
more experimentation
2017-04-06 12:21:00 -07:00
Brian Warner
18f7ab9308
more state-machine work
2017-04-06 12:21:00 -07:00
Brian Warner
63ae3c63fc
notes
2017-04-06 12:21:00 -07:00
Brian Warner
9e5bf452e3
rename
2017-04-06 12:21:00 -07:00
Brian Warner
3c9c0e58ab
move to _connection.py, add more state machines
...
Starting on defining manager state machines for nameplates, mailboxes, the
PAKE key-establishment process, and the bit that knows it can drop the
connection when both nameplates and mailboxes have been released.
2017-04-06 12:21:00 -07:00
Brian Warner
14c8e76364
onConnect, start manual tests, doesn't work yet
2017-04-06 12:21:00 -07:00
Brian Warner
b826e8c73c
hack args till they work, add ALLOW_CLOSE
...
the diagram is a lot simpler if the only way to shut things down is to
terminate the whole process
2017-04-06 12:21:00 -07:00
Brian Warner
d136028fa8
try adding args
2017-04-06 12:21:00 -07:00
Brian Warner
73f3d86107
state machine should be complete, I think
2017-04-06 12:21:00 -07:00
Brian Warner
94b1ed8739
starting to draw new state machines
2017-04-06 12:21:00 -07:00
Brian Warner
65db4729cd
rendezvous_websocket.py: add idempotency docs
2017-03-03 05:55:39 -08:00
Brian Warner
8d5770d8cc
tor_manager: allow port to be a 'long'
2017-03-03 05:49:36 -08:00
Brian Warner
b7ff5f05d5
transit: allow port to be a 'long'
2017-03-03 05:49:30 -08:00
Brian Warner
cf9053637c
test_util: free-space can be a 'long'
2017-03-03 05:49:25 -08:00
Brian Warner
71f34e4f5b
test/run_trial.py: protect run() with __name__
...
Without this, any import (e.g. when running "automat-visualize") caused the
tests to be run as a side-effect.
2017-02-22 18:03:33 -08:00
Brian Warner
6889ba088c
remove server/runner.py, no longer used
2017-02-22 17:52:14 -08:00
Shannon Mulloy
ffefb5ebdc
improve coverage with input mock
2017-02-05 15:42:49 -08:00
Shannon Mulloy
33526b2180
rx: _remove_existing after accept
2017-02-05 13:29:20 -08:00
Shannon Mulloy
56a0a1f584
rx: allow overwrite with --output-file= #73
2017-02-04 19:27:09 -08:00
Brian Warner
20619bcce7
send: set allowZip64=True, to handle large (>2GB) directories
...
refs #138
2017-02-02 11:40:24 -08:00
Brian Warner
ed674e5ffe
transit: increase connection timeout from 15s to 60s
...
I haven't seen any timeouts yet, but I'm thinking ahead to .onion connections
that might take longer than 15 seconds to establish.
2017-01-16 17:56:16 -05:00
Brian Warner
862820679c
don't hang when asked to send a zero-length file
...
closes #98
2017-01-16 17:29:40 -05:00
Brian Warner
f2704c6ce0
cli: oops, fix ssh args
...
wish there were some tests for this
2017-01-16 11:34:32 -05:00
Brian Warner
df62e16462
cli: handle tor args in 'ssh' subcommands
2017-01-16 11:29:20 -05:00
Brian Warner
47007273ec
rewrite Tor support (py2 only)
...
The new TorManager adds --launch-tor and --tor-control-port= arguments
(requiring the user to explicitly request a new Tor process, if that's what
they want). The default (when --tor is enabled) looks for a control port in
the usual places (/var/run/tor/control, localhost:9051, localhost:9151), then
falls back to hoping there's a SOCKS port in the usual
place (localhost:9050). (closes #64 )
The ssh utilities should now accept the same tor arguments as ordinary
send/receive commands. There are now full tests for TorManager, and basic
tests for how send/receive use it. (closes #97 )
Note that Tor is only supported on python2.7 for now, since txsocksx (and
therefore txtorcon) doesn't work on py3. You need to do "pip install
magic-wormhole[tor]" to get Tor support, and that will get you an inscrutable
error on py3 (referencing vcversioner, "install_requires must be a string or
list of strings", and "int object not iterable").
To run tests, you must install with the [dev] extra (to get "mock" and other
libraries). Our setup.py only includes "txtorcon" in the [dev] extra when on
py2, not on py3. Unit tests tolerate the lack of txtorcon (they mock out
everything txtorcon would provide), so they should provide the same coverage
on both py2 and py3.
2017-01-15 22:39:03 -05:00
Brian Warner
203216c0ff
cli: move TorArgs out to separate decorator
2017-01-15 22:21:29 -05:00