Commit Graph

215 Commits

Author SHA1 Message Date
meejah
b7bcdfdca3 more stats / recording works 2021-04-14 15:05:44 -06:00
meejah
53864f57f0 use 'backends' for usage-recording 2021-04-14 15:05:44 -06:00
meejah
5ed572187b unregister completely 2021-04-14 15:05:44 -06:00
meejah
40919b51be count bytes missing 2021-04-14 15:05:44 -06:00
meejah
4669619f7e skip usage-counting if we're jilted but other side is happy? 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
7b91377e94 try to make 'redudant' mood work 2021-04-14 15:05:44 -06:00
meejah
734ed809c2 fix more tests 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
555c23d4fe first-cut of state-machine style code 2021-04-14 15:05:44 -06:00
meejah
de8e0f0399
Merge pull request #20 from meejah/iosim-based-tests
iosim.IOPump based tests
2021-04-12 21:00:50 -06:00
meejah
00086a798d flush cleanup 2021-04-12 08:50:22 -06:00
meejah
6efc274b81 get rid of double-flush() pairing with florian 2021-04-12 08:44:06 -06:00
meejah
591740ce5f better name for interface 2021-04-10 18:42:12 -06:00
meejah
fc3507c1f6 flip around 'if' logic to simplify 2021-04-02 23:36:33 -06:00
meejah
f3c391e98b more coverage 2021-04-02 23:15:48 -06:00
meejah
2903c7f2a0 re-org + comments 2021-04-02 23:05:52 -06:00
meejah
2d506de55a upcall, 2.7-friendly 2021-04-02 20:33:57 -06:00
meejah
45c09fdd05 explicit interface, different naming 2021-04-02 20:10:01 -06:00
meejah
0434296415 still support py27 2021-04-02 19:57:22 -06:00
meejah
8447f88159 pyflakes 2021-04-02 16:11:18 -06:00
meejah
85f3f5b63c 'mock' location 2021-04-02 16:00:11 -06:00
meejah
5e21a3c35a all tests pass 2021-04-02 16:00:11 -06:00
meejah
b9c2bbc524 refactor to use IOPump: one test passes 2021-04-02 16:00:11 -06:00
Brian Warner
4f818bb7e0 README: update badges, drop travis and appveyor, use GitHub Actions for CI 2021-01-09 17:38:26 -08:00
Brian Warner
24a2b51a9a CI: avoid installing deps on wrong python 2021-01-09 17:35:34 -08:00
Brian Warner
e56dd2196b upload coverage to codecov.io 2021-01-09 17:33:16 -08:00
Brian Warner
6f395fa6d8 CI: use 'coverage' target, not default, to run the right Python 2021-01-09 17:21:56 -08:00
Brian Warner
67ec90706e enable GitHub Action -based CI 2021-01-09 17:11:03 -08:00
srinivas32
d608198b33
added power support arch ppc64le on yml file.
Added power support for the travis.yml file with ppc64le. This is part of the Ubuntu distribution for ppc64le.
2020-11-06 15:06:18 +05:30
Brian Warner
46ec26f2bb Merge PR 14: improve tests
many thanks to @sigwinch28 for the improvements

closes #14
2020-05-23 17:53:21 -07:00
Brian Warner
ca309d5283 post-rebase: update newer tests 2020-05-23 17:50:26 -07: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
Brian Warner
851b7474d8 docs: explain --blur-usage= better
Thanks to @kaie in https://github.com/warner/magic-wormhole/issues/387 for
the suggestion.
2020-05-21 21:08:34 -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
c6445321d7 update NEWS for 0.2.1 release 2019-09-11 00:25:26 -07:00
Brian Warner
9758d83279 fix IPv4/IPv6 listening port
whoops, it's "::" (the unspecified address), not "::1" (the loopback address)

refs #12
2019-09-11 00:23:50 -07:00
Brian Warner
d7b4919739 add news for 0.2.0 release 2019-09-10 23:25:28 -07:00
Brian Warner
c5afea6f9b docs: add pointer to a Dockerfile
Thanks to @ggeorgovassilis. Closes #11.
2019-09-10 23:19:16 -07: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
273c4d796c change default port= to listen on both IPv4+IPv6
The default was "tcp:4001", which happens to expand into
"tcp:4001:interface=127.0.0.1", which limits the listening socket to IPv4
connections only.

Changing it to "tcp:4001:interface=\:\:1" means "listen on ::1", which is the
IPv6 name for the loopback interface, and gets us a socket that accepts both
IPv4 and IPv6 connections.

Note: this might cause incompatibilities with IPv4-only hosts, if they don't
accept the "::1" name. For these systems, run the server as `twist
transitrelay --port=tcp:4001" to revert to the old behavior.

closes #12
2019-09-10 23:09:04 -07:00
Brian Warner
e9f166cb96 travis/tox/appveyor: remove py3.3 and py3.4
We support py2.7, and py3.5 and higher.
2019-09-10 23:07:09 -07:00