Commit Graph

29 Commits

Author SHA1 Message Date
meejah
3ae3bb7443 cleanup, remove dead code 2021-04-14 15:05:44 -06:00
meejah
b7bcdfdca3 more stats / recording works 2021-04-14 15:05:44 -06:00
meejah
ff578fccf8 fix more tests (that examine internals) 2021-04-14 15:05:44 -06:00
meejah
b51237d958 start of refactoring usage-recording: pass one test 2021-04-14 15:05:44 -06:00
meejah
0e64707459 count totals in state-machine 2021-04-14 15:05:44 -06:00
meejah
0e11f1b8f1 (wip) refactor to use Automat state-machine 2021-04-14 15:05:44 -06:00
meejah
fc3507c1f6 flip around 'if' logic to simplify 2021-04-02 23:36:33 -06:00
Joe Harrison
45824ca5d6 Use StringTransportWithDisconnection for transit server tests.
Replace the use of TCP in the test suite with Twisted's
StringTransport, specifically StringTransportWithDisconnection which
allows us to trigger a disconnect event on the server side during testing.

The `dataReceived` method on the server is now called directly, and any
effects will be realised immediately.
Responses are available to the test client using the `value()` method of
the transport objects, and the buffer can be cleared using `clear()`.

This allows all asynchronous behaviour to be removed from the transit
server test suite.
Furthermore, as we never have to wait for the server, tests no longer
hang if they fail: the errors are encountered immediately.
2020-05-23 17:18:47 -07:00
Brian Warner
ac7415a4d0 Merge branch 'pr13' 2020-05-21 23:08:06 -07:00
Brian Warner
1a7faf0654 tolerate clients who disconnect before sending a complete handshake
If the client connected and then immediately disconnected, or disconnected
before sending enough of a handshake to be classified as good or bad, we
tried to record the usage record as if the connection was complete ("happy"),
which triggered an assertion. This dumps an error to the log and failed to
record the usage record. In May 2020, this happened 55 times in 40 days.
2020-05-21 22:49:14 -07:00
Brian Warner
1242f36624 tolerate data arriving briefly after we hang up
If the file receiver hangs up on an established connection, we do a
`transport.loseConnection()` on the buddy (the file sender). But apparently
it takes a moment (perhaps a roundtrip through the kernel) for the incoming
data to stop, and that used to cause an error. In May 2020 this happened 11
times in 40 days. Now we just ignore this late data.
2020-05-21 22:48:07 -07:00
Joe Harrison
912cfa69b6 maintain python2.7 regex library compatibility 2020-03-08 21:13:49 +00:00
Joe Harrison
0dab7a4c63 restore impatient disconnect when message received after handshake but before sent_ok 2020-03-08 19:57:44 +00:00
Joe Harrison
8f89c8aaff inline handshake parsing and explain MAX_LENGTH for transit server 2020-03-08 19:54:42 +00:00
Joe Harrison
4fdd89cb35 use line receiver to simplify handshake logic 2020-03-07 02:14:04 +00:00
Brian Warner
42a293213b enable SO_KEEPALIVE on all connections
This timeout is notoriously long (about two hours), but it might eventually
prune stuck connections.

refs #9
2019-09-10 23:14:29 -07:00
Brian Warner
6ceecb78bf add TODO for one of the moods 2019-09-10 23:05:22 -07:00
Brian Warner
098e315624 remove a few lines by using defaultdict() 2018-02-12 17:34:11 -08:00
Brian Warner
73d233a7be comment about updating 'current' row immediately, or waiting for timer 2018-02-12 17:29:27 -08:00
Brian Warner
4e9b6c53a9 rework mood tracking, full tests of usage events 2018-02-12 16:57:39 -08:00
Brian Warner
ecf3edb3f7 transit_server.py: remove unnecessary 'pass'
caught by lgtm.com analysis
2018-01-03 00:26:03 +01:00
Brian Warner
ff48518e37 handle --blur-usage= correctly, log it 2017-11-07 20:14:54 -06:00
Brian Warner
83e1c8acfe make it all basically work, improve test coverage 2017-11-07 19:39:01 -06:00
Brian Warner
a898a65b09 start on usage-db 2017-11-04 12:54:49 -07:00
Brian Warner
a1333e51cd fix unicode/json on py3 2017-09-13 18:18:29 -07:00
Brian Warner
b15e955fec get tests to pass 2017-09-13 17:51:55 -07:00
Brian Warner
26efac7da9 transit_server.py: rewrite stats 2017-09-13 17:24:37 -07:00
Brian Warner
ea9e24913c more WIP 2017-09-13 12:29:51 -07:00
Brian Warner
46abd75fda move transit-relevant files out from magic-wormhole
These files are copied (with roughly-appropriate changes to the top-level
setup.py, NEWS.md, etc) from magic-wormhole 0.10.3, commit
be166b483c5796ab3a9ad588ccf671b7eabdd96c).
2017-09-12 23:52:21 -07:00