Joakim Frostegård
02735ba2ff
aquatic_http: glommio: actually start socket workers
2021-10-26 19:09:50 +02:00
Joakim Frostegård
03b8f3e5c5
WIP: aquatic_udp glommio
2021-10-26 18:45:09 +02:00
Joakim Frostegård
dcb03f42e7
WIP: aquatic http glommio
2021-10-26 18:21:20 +02:00
Joakim Frostegård
ef10c4f366
WIP: aquatic http glommio
2021-10-26 17:29:21 +02:00
Joakim Frostegård
34bc4046b7
WIP: aquatic_http glommio impl
2021-10-26 16:26:37 +02:00
Joakim Frostegård
ad7e464788
aquatic_http: split into mio and glommio modules
2021-10-26 15:26:06 +02:00
Joakim Frostegård
38617c70f4
Refactor AccessList; update it periodically in aquatic_udp glommio
2021-10-19 22:52:31 +02:00
Joakim Frostegård
f3487d4749
Rename AccessList variants
2021-10-17 18:19:31 +02:00
Joakim Frostegård
3678e86654
Run rustfmt
2021-10-16 17:49:00 +02:00
Joakim Frostegård
48d49c9a1a
aquatic_http: use cleaner request filtering by access list
2021-10-16 17:36:56 +02:00
Joakim Frostegård
7ccd5fcbf7
access lists: filter requests in socket workers instead
2021-10-16 17:26:40 +02:00
Joakim Frostegård
2e68155bf4
aquatic_http: use Cow<_> for FailureResponse.failure_reason
2021-10-16 00:19:58 +02:00
Joakim Frostegård
ddb1f394a1
aquatic_http: move torrent cleaning code to TorrentMaps impl
2021-10-15 23:13:26 +02:00
Joakim Frostegård
10fe014c03
aquatic_http access list: use in torrent cleaning, do periodic updates
2021-10-15 23:03:24 +02:00
Joakim Frostegård
7fec41099b
aquatic_http: check access list in announce request handler
2021-10-15 22:49:07 +02:00
Joakim Frostegård
4fa199a1e0
aquatic_http access list: add config, state field, initial load
2021-10-15 22:38:58 +02:00
Joakim Frostegård
d172fc4f8c
Upgrade socket2
2021-08-15 23:32:59 +02:00
Joakim Frostegård
32541c5c15
Upgrade hashbrown
2021-08-15 22:29:09 +02:00
Joakim Frostegård
d0e716f80b
Run rustfmt, clean up aquatic_http_protocol/Cargo.toml
2021-08-15 22:26:11 +02:00
Joakim Frostegård
f9626ade57
Upgrade quickcheck to 1.0, adjust code, optimizing a slow test
2021-02-10 18:36:23 +01:00
Joakim Frostegård
e1260d14de
Update rand to 0.8 and rand_distr to 0.4
2021-02-10 18:36:23 +01:00
Joakim Frostegård
bbc351bb59
Update privdrop to 0.5
2021-02-10 18:36:23 +01:00
Joakim Frostegård
ac6eefc30f
Update crossbeam-channel to 0.5
2021-02-10 18:36:23 +01:00
Joakim Frostegård
fe11ed138a
Use (patched) crates.io deps for crates, add some package metadata
2020-09-13 17:30:26 +02:00
Joakim Frostegård
66e9882f48
Update dependencies
2020-09-10 23:23:21 +02:00
Joakim Frostegård
8f72445b93
aquatic_http: fix debug log message for when TLS is established
2020-08-17 21:50:35 +02:00
Joakim Frostegård
4e0fc68548
aquatic http and ws: when cleaning torrents, update statistics
2020-08-16 23:24:44 +02:00
Joakim Frostegård
3d35bd9bd4
aquatic http and ws: raise default max peer and connection age
...
There was a problem with aquatic_http with clients announcing
less often than requested interval and getting purged, making
file transfers less reliable
2020-08-16 23:24:29 +02:00
Joakim Frostegård
6ee8ed4895
aquatic_common: extract response peers: don't return sender
...
Seems to fix or at least help with some issues with
real clients being slow to initiate transfers
2020-08-16 23:07:39 +02:00
Joakim Frostegård
b5452c2954
aquatic_http: debug-log responses in full
2020-08-16 21:15:05 +02:00
Joakim Frostegård
88423976c4
aquatic_http, aquatic_ws: add option for printing statistics
...
statistics are on number of peers per torrent
2020-08-13 03:58:28 +02:00
Joakim Frostegård
2b4cd2dea1
aquatic_http: support multiple request workers
2020-08-13 01:50:18 +02:00
Joakim Frostegård
9efc1fc66a
add aquatic crate with master executable, refactor cli_helpers
2020-08-13 00:13:01 +02:00
Joakim Frostegård
cce7bd7150
aquatic_http: send responses for each event, use mio poll waker
...
This means
* less fluctuation in number of responses send per second
* longer poll timeouts can be used since poll is woken when
responses are available for sending
* drain-like method used to fetch responses from response
channel, meaning responses added while iterating won't
be processed
2020-08-10 02:53:15 +02:00
Joakim Frostegård
d9282defbc
aquatic_http: deregister connections before removing them
2020-08-09 02:30:40 +02:00
Joakim Frostegård
2893fffd20
aquatic_http: use const LISTENER_TOKEN for clarity
2020-08-09 00:44:39 +02:00
Joakim Frostegård
2d3761fee2
impl Copy for LogLevel, remove some cloning
2020-08-09 00:27:05 +02:00
Joakim Frostegård
8d58f8bb70
init logger in aquatic_cli_helpers crate
2020-08-02 21:21:58 +02:00
Joakim Frostegård
427c0bc7c3
aquatic_http: add keep_alive setting (default true)
...
This might be good for performance in the real world. It also
enables fairer load test comparisons with opentracker, which
in my understanding drops connections after sending responses.
2020-08-02 20:06:49 +02:00
Joakim Frostegård
c8b94adab5
aquatic_http: remove Connection.shutdown fn
2020-08-02 19:26:12 +02:00
Joakim Frostegård
cb3ec8cbf1
WIP: get http load test into better (but bad) state
...
Is now able to maintain correspondence with aquatic_http
and opentracker
2020-08-02 06:38:36 +02:00
Joakim Frostegård
e7de66603e
aquatic_http: add upper limit on request read buffer
2020-08-02 02:45:56 +02:00
Joakim Frostegård
a3a1d1606b
WIP: udp: add ipv6 support
...
Returning IPv6 peers doesn't really work with UDP. It is not supported by
https://libtorrent.org/udp_tracker_protocol.html . There is a suggestion in
https://web.archive.org/web/20170503181830/http://opentracker.blog.h3q.com/2007/12/28/the-ipv6-situation/
of using action number 4 and returning IPv6 octets just like for IPv4
addresses. Clients seem not to support it very well, but due to a lack of
alternative solutions, it is implemented here
2020-07-31 05:37:58 +02:00
Joakim Frostegård
fd68a5f603
aquatic_http: serialize responses to a buffer ref instead of new vec
...
This improves benchmark performance somewhat and performance
during load testing a bit too.
2020-07-24 21:59:23 +02:00
Joakim Frostegård
228511b3aa
aquatic_http: replace flume with crossbeam; clean connections less often
2020-07-24 20:36:46 +02:00
Joakim Frostegård
f1f708465a
remove aquatic_common_tcp crate, move contents into aquatic_http
...
It doesn't make a lot of sense to make a separate crate for
the few things here. I don't really want tight coupling between
the crates anyway, since it impedes making changes in them
and makes understanding them more difficult.
2020-07-21 23:01:34 +02:00
Joakim Frostegård
f2db4a43b9
Update lots of dependencies
2020-07-21 00:58:56 +02:00
Joakim Frostegård
95e25710dc
aquatic_http: move request parsing into protocol crate
2020-07-20 20:13:56 +02:00
Joakim Frostegård
19ee41eb72
aquatic_http: config: set poll timeout in microseconds, default to 10000
2020-07-20 15:46:17 +02:00
Joakim Frostegård
4ac2012a2a
aquatic_http: move protocol module to new crate aquatic_http_protocol
2020-07-19 21:59:31 +02:00