Brian Warner
a235b507c8
twisted.transit: implement producer/consumer flow control
2016-02-15 21:23:20 -08:00
Brian Warner
763d72f582
twisted.transit: implement Deferred-based receive_record()
2016-02-15 11:40:21 -08:00
Brian Warner
fb1461fa8c
add twisted.transit, with tests
2016-02-14 17:57:09 -08:00
Brian Warner
7212e9e9f4
transit: split common code out to a new file
...
This will be shared between blocking.transit and the soon-to-land
twisted.transit .
2016-02-14 17:51:46 -08:00
Brian Warner
36cc0e2bca
tests: don't use network
...
Some tests failed to override --transit-helper, which meant they
intermittently talked to the real transit server (briefly, before
deciding the local+direct connection was better).
2016-02-12 17:11:06 -08:00
Brian Warner
7ded461342
show-usage: give more room for "rendezvous-lonely"
2016-01-14 14:30:08 -08:00
Brian Warner
bd912a73ee
Transit: blur the file sizes too
2016-01-12 16:32:38 -08:00
Brian Warner
35c9e29eb3
transit handshake: wait for newline, not just expected string
2016-01-12 15:04:52 -08:00
Brian Warner
9ed39be346
don't log HTTP requests when blur-usage is on
2015-12-04 17:35:56 -08:00
Brian Warner
1ab66d2fd0
privacy: only store coarse timestamps in the usage table
2015-12-03 21:15:19 -08:00
Brian Warner
ee86059b0a
transit_server: clean up logging slightly
2015-12-03 20:44:34 -08:00
Brian Warner
6c88396f14
CLI: make 'wormhole server usage' show transit too
2015-12-03 20:15:29 -08:00
Brian Warner
909cdfa3dc
track transit usage in DB
2015-12-03 19:45:34 -08:00
Brian Warner
a3656c162b
schema change: prep usage
table for including transit too
2015-12-03 19:44:47 -08:00
Brian Warner
fb493da8c7
transit_server.py: underscore-ify private attributes
2015-12-03 19:25:40 -08:00
Brian Warner
6369c17595
test_transit: use better error in Accumulator
...
apparently this was broken before, but never got triggered
2015-12-03 19:25:40 -08:00
Brian Warner
568903ac48
add test for Transit (blocking only)
2015-12-03 16:24:52 -06:00
Brian Warner
229c702ccc
transit: fix py3
2015-12-03 16:23:12 -06:00
Brian Warner
95d0e68cf2
transit: avoid near-infinite loop upon connector error
...
Now we will never try any hint more than once. Previously we'd hit the
relay hint over and over until the timeout fired.
2015-12-03 16:22:03 -06:00
Brian Warner
11f806a316
transit_relay: add Producer/Consumer flow control
...
This limits the buffering to about 10MB (per connection*direction).
Previously, if the sender had more bandwidth than the receiver, the
transit relay would buffer the entire file. With this change, the sender
will be throttled to match the receiver's downstream speed.
2015-12-03 15:07:47 -06:00
Brian Warner
c103441648
test_transit: fix py3.3, no %s in bytestrings
2015-12-02 03:02:50 -06:00
Brian Warner
8240d9e910
add test of transit server, make it work under py3
...
Also have transit send logs to log.msg, not stdout.
2015-12-02 01:47:52 -06:00
Brian Warner
80603aaa32
finish py3/async support, needs Twisted >= 15.5.0
...
The latest Twisted fixes the web.Agent code we need for proper async
support. There's still a daemonization bug that prevents 'wormhole
server start' from succeeding (it hangs).
2015-12-01 00:15:24 -06:00
Brian Warner
5b46df133f
implement (and test) --output-file for receive-file
2015-11-29 01:40:25 -06:00
Brian Warner
3a343f9895
test send/receive directory
2015-11-29 01:33:15 -06:00
Brian Warner
6fefcde061
add send/receive of whole directories
2015-11-25 01:53:04 -06:00
Brian Warner
6958241f3f
preliminary refactoring
2015-11-25 01:47:24 -06:00
Brian Warner
1428507909
refactor cmd_receive.py, split accept_file() to a separate function
2015-11-25 01:40:17 -06:00
Brian Warner
a96f29d01f
wormhole server show-usage / tail-usage
...
Use a separate "tail-usage" command instead of "show-usage -f". Make
both work on py3 too.
2015-11-24 13:20:58 -08:00
Brian Warner
0c36fad720
add "wormhole server usage" to dump usage DB
2015-11-24 13:03:53 -08:00
Brian Warner
1d6c3d1f96
clients: use "watch" endpoint, not "get"
2015-11-23 16:50:54 -08:00
Brian Warner
2318c94169
test_server: error properly when EventSource fails
2015-11-23 16:49:46 -08:00
Brian Warner
c482c248ff
server: add "watch" endpoint, deprecate non-ES "get"
...
I'm planning to leave non-EventSource "/get" in until after 0.6.0, then
remove it. I think it's cleaner for the logs to have the two
forms (EventSource and immediate) use different URLs.
2015-11-23 16:43:25 -08:00
Brian Warner
82cdadae80
check welcome message 'send' too
2015-11-23 16:33:09 -08:00
Brian Warner
badf5168ef
test_server: rename some functions
2015-11-22 18:06:42 -08:00
Brian Warner
5e0a7e4c93
remove stale copy of server URLs
2015-11-22 17:44:25 -08:00
Brian Warner
00bb816d11
remove close-on-error from derive_key(), for now
...
In the twisted-style code, the close_on_error() decorator forces the
return value to be a Deferred, which is all wrong for internal uses of
derive_key() (verification string and confirmation message). It might be
useful to have a synchronous form of close_on_error(), but since the
actual close() is async, that's not very straightforward.
So for now, tolerate unclosed Wormhole objects when someone calls
derive_key() too early, or with a non-unicode type string.
2015-11-19 17:11:27 -08:00
Brian Warner
22a1ce2eda
add close-with-mood-on-error to twisted style too
2015-11-19 17:08:21 -08:00
Brian Warner
9827a2e50c
add twisted/blocking interop test
2015-11-19 16:21:10 -08:00
Brian Warner
fd9a62e8ff
change confirmation message: must be different on each side
...
The previous same-message-for-both-sides approach failed, because the
Channel filters out duplicates.
2015-11-19 16:06:30 -08:00
Brian Warner
1ad001bbc3
WIP: test that we tolerate missing key-confirmation messages
2015-11-16 18:25:28 -08:00
Brian Warner
6b57d7d05d
check key-confirmation messages, if present
2015-11-16 18:24:39 -08:00
Brian Warner
3220014605
send key-confirmation message upon receipt of PAKE
...
This will allow the first peer to detect a wrong password even though
the second peer bails before sending something encrypted.
2015-11-16 17:02:02 -08:00
Brian Warner
4ad7342459
make self.channel internal (twisted)
2015-11-16 16:54:00 -08:00
Brian Warner
ae2a6c6a05
add Channel.get_first_of()
...
This allows the Wormhole code to wait for multiple messages, which will
be useful for getting Confirmation messages soon.
2015-11-16 16:47:52 -08:00
Brian Warner
b709a45891
get_data/set_data: reserve _ for internal uses
2015-11-16 16:20:00 -08:00
Brian Warner
6956f35e9a
receive: fetch channel list before completion, to get welcome message
2015-11-15 10:53:13 -08:00
Brian Warner
47d3eee6fe
server: treat missing moods (from older clients) as "quiet"
2015-11-15 10:34:40 -08:00
Brian Warner
4f0dde9529
server: summarize transfers, store in DB
2015-11-15 10:34:29 -08:00
Brian Warner
26c7008c23
DB: use 'messages' to track allocations, not 'allocations'
...
This removes the 'allocations' table entirely, and cleans up the way we
prune old messages. This should make it easier to summarize each
connection (for usage stats) when it gets deallocated, as well as making
pruning more reliable.
2015-11-13 18:24:36 -08:00