Brian Warner
1688da74d9
split txwormhole step 2: fix imports
2016-04-18 16:41:56 -07:00
Brian Warner
323175ddfe
split txwormhole step 1: move files
2016-04-18 16:41:52 -07:00
Brian Warner
0b162af09e
move ipaddrs.py from wormhole.util to wormhole.twisted
2016-04-18 16:24:13 -07:00
Brian Warner
87266f1292
split wormhole_server step 3: fix tests
2016-04-18 16:18:51 -07:00
Brian Warner
190ce2c027
split wormhole_server step 2: new files, fix imports
...
remove server commands from old src/wormhole/scripts/runner.py
2016-04-18 16:18:47 -07:00
Brian Warner
bde4696a8b
split wormhole_server step 1: move files
2016-04-18 16:18:45 -07:00
Brian Warner
1a455c05f5
remove wormhole.twisted.util port-allocation functions
2016-04-18 16:16:27 -07:00
Brian Warner
e20026488a
remove unused observer.py
2016-04-18 16:16:27 -07:00
Brian Warner
a8446d2bc5
merge transit_common into twisted.transit
2016-04-18 16:16:27 -07:00
Brian Warner
db137c26e5
remove blocking.transit
2016-04-18 15:52:29 -07:00
Brian Warner
4e937c2100
rename cmd_send_twisted to cmd_send, same for cmd_receive
2016-04-18 15:52:29 -07:00
Brian Warner
a1033b06a3
merge send_common into cmd_send_twisted
2016-04-18 15:52:29 -07:00
Brian Warner
9b53bb96c6
merge cmd_receive_blocking into cmd_receive_twisted
2016-04-18 15:52:29 -07:00
Brian Warner
8c67a98259
merge test_transit.py into test_server.py
2016-04-18 15:52:29 -07:00
Brian Warner
68b22bec97
remove --twisted, stop using blocking-flavor scripts
2016-04-18 15:52:18 -07:00
Brian Warner
94a3be91b2
add tab-completion to twisted-style input_code()
2016-04-15 17:27:32 -07:00
Brian Warner
589226f076
tor: add comments, let it pick its own control port
2016-03-28 02:26:11 -07:00
Brian Warner
618706681a
record time spent importing code
2016-03-28 02:25:40 -07:00
Brian Warner
9630ab9aae
find-tor: record more detailed timings
2016-03-28 02:25:32 -07:00
Brian Warner
12c4c51fd8
record tor-launch time in DebugTiming
2016-03-28 02:25:01 -07:00
Brian Warner
01ed9902de
add --tor support
2016-03-28 02:25:01 -07:00
Brian Warner
ed6e5ff169
get a TorManager working
2016-03-28 02:25:01 -07:00
Brian Warner
049fac01db
tolerate trailing slash on "wormhole send dirname/"
...
Previously, the trailing slash would cause the receiving side to get an
empty-named directory.
2016-03-24 08:46:29 -07:00
Brian Warner
c5415495c0
dump-timing: store server-sent time too
...
Adjust dump-timing to ignore the extra data, for now. Also do some
general instrumentation cleanup.
2016-03-03 18:03:27 -08:00
Brian Warner
aaf4e70a33
remove obsolete TODO
2016-03-03 17:56:15 -08:00
Brian Warner
626732b730
relay_server: include 'sent' timestamp with each message
...
This will be used by client-side timeline instrumentation, to guide
performance improvements.
2016-03-03 17:52:59 -08:00
Brian Warner
e342236b7d
relay_server: internal rearrangement
...
Construct the response in the render_* method, rather than
add_messages(), to prepare for adding server timestamps. Use
json_response() everywhere.
2016-03-03 16:57:44 -08:00
Brian Warner
9d7b9dd8d2
add --no-listen, for debugging
2016-03-03 14:52:14 -08:00
Brian Warner
418fe9419e
twisted: use persistent connections, slight speedup
...
This uses a single TCP connection to the relay server for all
requests (although it probably uses a second one for the downstream
EventSource feed). This should squeeze out some of the round-trip times.
2016-03-03 13:39:09 -08:00
Brian Warner
4f5e037d39
cmd-twisted: report exceptions better
...
The previous scheme would swallow the real traceback, making debugging
difficult.
2016-03-03 12:33:26 -08:00
Brian Warner
08a5e6043a
twisted.transit: tolerate the lack of a listener
...
In Tor mode, there is no local listener. Eventually we'll add an Onion
Service listener, but it's not guaranteed that we can run one.
2016-03-03 12:32:26 -08:00
Brian Warner
8d92b40139
twisted.transcribe: use same Agent for ReconnectingEventSource
...
This will be especially important when we add Tor support.
2016-03-03 12:29:57 -08:00
Brian Warner
be2c66a5f5
transit: ignore errors on sockets we were about to close anyways
2016-03-02 14:28:04 -08:00
Brian Warner
26f512fba4
add --twisted to use the twisted CLI flavor
2016-03-02 01:07:37 -08:00
Brian Warner
6d3d0c1cb3
unify synchronous calling of twisted CLI commands
2016-03-02 00:51:21 -08:00
Brian Warner
4d405c8cef
cmd_send_twisted: fix display message ordering
...
By creating the ProgressingFileSender too early, it printed a progress
message before the "Sending" line.
2016-03-02 00:50:22 -08:00
Brian Warner
df2384bea2
twisted.transit: move FileConsumer into RecordPipe
...
This adds an expected= argument to Connection.connectConsumer(), which
then returns a Deferred that fires when enough bytes have been written
to the consumer. It also adds Connection.writeToFile(), a helper method
that writes bytes to a filehandle.
2016-03-02 00:48:43 -08:00
Brian Warner
7234e25897
twisted.transit: handle multiple records in one chunk
...
I made the classic dataReceived() mistake, and exited the function after
delivering the first record. Keep at it until there are no complete
records left.
2016-03-02 00:48:43 -08:00
Brian Warner
8d82726c51
add DebugTiming object, --dump-timing= option
...
This writes timeline data to a .json file, which can be examined later
to find likely candidates for optimization.
2016-03-01 18:23:06 -08:00
Brian Warner
84def8a54b
add some inlineCallbacks for simplicity
...
This control flow was getting too hairy.
2016-03-01 18:22:03 -08:00
Brian Warner
fd143caded
tests.ServerBase: print message when threadpool is not idle
...
The previous commits improve test failures by dropping relay connections
at shutdown, and flunking a test quickly when one client fails but the
other one hangs.
If that doesn't work (say, some client has a time.sleep(), or other
stall that isn't affected by the relay shutdown), we'll be left with an
active thread holding that hanging client.
This patch adds a check to wormhole.test.common.ServerBase.tearDown that
looks for active threads, waits a second (after stopService), then
checks the threadpool again. If the threadpool is empty, everything is
fine. If not, it prints a message (to stdout) to inform the impatient
user why the test is probably hanging.
2016-03-01 17:07:48 -08:00
Brian Warner
b1dae14e6d
test_scripts: handle hangs in one client
...
When test_scripts ran two clients at the same time, an error in one
could leave the other hanging (in a thread). One Deferred would errback,
the other would hang. Tests wait on one Deferred at a time, so if we're
unlucky and were waiting on the hanging Deferred (instead of the
erroring one), we'll wait forever, or at least until the default test
timeout of 180 seconds.
This adds an errback to notice when either client has errored, and
cancels the other Deferred, so it doesn't matter which one we wait upon
first.
2016-03-01 17:07:43 -08:00
Brian Warner
3fc3a563bf
relay_server: disconnect clients upon shutdown
2016-03-01 17:07:37 -08:00
Brian Warner
0771aae7c7
server: Relay wasn't pruning channels
...
I forgot to hook it up to the service parent, so the timer was never
started.
2016-02-29 08:59:53 -08:00
Brian Warner
c225d57f8c
cmd_receive_twisted.py: twisted-based implementation
2016-02-29 07:31:34 -08:00
Brian Warner
01064325a2
cmd_receive: refactor (slight message changes)
...
This prepares the way for a twisted-based implementation.
2016-02-29 07:30:40 -08:00
Brian Warner
6654efb429
move describe() from Transit to RecordPipe
2016-02-28 01:42:46 -08:00
Brian Warner
1903c58248
ipaddrs: return 127.0.0.1 if everything else fails
...
This helps the windows tests where ipaddrs currently fails entirely.
2016-02-27 17:37:12 -08:00
Brian Warner
ca06e95bbd
test_blocking: avoid using real hints
2016-02-27 17:29:04 -08:00
Brian Warner
8067acbf82
cmd_receive: close the file before renaming
...
I'm always forgetting this one. It's more obvious on windows.
2016-02-27 17:20:43 -08:00