Commit graph

51 commits

Author SHA1 Message Date
Joakim Frostegård
056cd41732 aquatic_http: add memchr version of urldecode, which might be faster 2020-07-18 06:05:13 +02:00
Joakim Frostegård
f94c52da77 aquatic_http: send_response: use itoa and Vec::with_capacity
This leads to fewer allocations and possibly better performance.
2020-07-18 03:05:40 +02:00
Joakim Frostegård
8ddccb20aa aquatic_http: use new trait Ip for ip generic parameters 2020-07-08 14:22:30 +02:00
Joakim Frostegård
2386dd0e8b aquatic_http: parameterise many data structures over peer IP protocol 2020-07-08 14:13:10 +02:00
Joakim Frostegård
da4ba14b47 aquatic_http: EstablishedConnection.send_response: fix small bug 2020-07-08 12:28:46 +02:00
Joakim Frostegård
43a33d80c4 aquatic_http: add ipv6 compact responses; fix ipv4/ipv6 issue 2020-07-08 12:26:41 +02:00
Joakim Frostegård
c53c3928ab aquatic_http: fix clippy error, or at least log possible error 2020-07-05 20:33:24 +02:00
Joakim Frostegård
b65297195a aquatic_http, aquatic_common_tcp: fix some clippy warnings 2020-07-05 20:22:03 +02:00
Joakim Frostegård
8269ae2994 aquatic_http: remove (no longer used) dependency serde_urlencoded 2020-07-05 19:50:52 +02:00
Joakim Frostegård
76a340574e aquatic_http: debug log StreamEnded, keep connection on parse error 2020-07-04 19:38:37 +02:00
Joakim Frostegård
8ebfb1d0ce aquatic_http network: avoid infinite loop case; minor other changes 2020-07-04 15:04:31 +02:00
Joakim Frostegård
ccafdc5cd3 aquatic_http: clean up clode 2020-07-04 13:51:43 +02:00
Joakim Frostegård
d48573a28e aquatic_http: network: update inline hints, format code 2020-07-04 13:47:47 +02:00
Joakim Frostegård
c28e764929 aquatic_http: add Connection methods, enabling making 'inner' private 2020-07-04 13:35:52 +02:00
Joakim Frostegård
1ea1f0b749 aquatic_http: in Connection.inner, replace Either with new enum 2020-07-04 13:28:55 +02:00
Joakim Frostegård
73b1646c71 aquatic_http: refactor TlsHandshakeMachine, adding error type 2020-07-04 13:10:57 +02:00
Joakim Frostegård
829701f4da aquatic_http: debug-log request GET path, use debug mode for bytes read 2020-07-04 12:38:30 +02:00
Joakim Frostegård
c50dec3496 aquatic_http: add PeerMapKey with PeerID and Either<Ip, announce key> 2020-07-04 12:00:36 +02:00
Joakim Frostegård
2f2da8deb0 aquatic_http: AnnounceRequest: make numwant optional, remove trackerid 2020-07-04 11:20:58 +02:00
Joakim Frostegård
6b7ce0e211 aquatic_http: error response on invalid request; rename response types 2020-07-04 11:08:48 +02:00
Joakim Frostegård
15c75579da aquatic_http request url decode: reject some invalid data 2020-07-03 17:54:59 +02:00
Joakim Frostegård
c2f79aa368 aquatic_http: reduce allocations in Request::urldecode 2020-07-03 17:43:34 +02:00
Joakim Frostegård
7419c51434 aquatic_http protocol: refactor into more submodules, other fixes 2020-07-03 17:25:31 +02:00
Joakim Frostegård
52cc7d8acb aquatic_http: write custom deserialize logic for Request 2020-07-03 17:10:30 +02:00
Joakim Frostegård
16333b5a08 aquatic_http: serialize info_hash and peer_id properly 2020-07-03 14:30:00 +02:00
Joakim Frostegård
52a29fc14a aquatic_http: store info_hash and peer_id in [u8; 20] 2020-07-03 13:17:02 +02:00
Joakim Frostegård
f28abbb7f6 aquatic_http: fix issue with incorrect parsing of info_hash, peer_id 2020-07-03 13:06:09 +02:00
Joakim Frostegård
136a79ce8d aquatic_http: use flexible-sized buffer for request reading 2020-07-03 11:13:55 +02:00
Joakim Frostegård
3a8e5a3abf aquatic_http: update 'valid_until' for established connections 2020-07-03 10:16:27 +02:00
Joakim Frostegård
1dc2f44d9c restructure aquatic_common_tcp, move more into it from aquatic_http 2020-07-03 00:23:19 +02:00
Joakim Frostegård
f3dcc8762e Update TODO; minor fixes to aquatic_http and aquatic_common_tcp 2020-07-02 23:32:48 +02:00
Joakim Frostegård
7bc47ab93f aquatic_http: microoptimize EstablishedConnection 2020-07-02 22:56:24 +02:00
Joakim Frostegård
fb6caf7343 aquatic_http: prococol module: parse Request from path 2020-07-02 22:53:03 +02:00
Joakim Frostegård
d5b82bcf70 aquatic_http: simplify tls handshake code further 2020-07-02 22:43:54 +02:00
Joakim Frostegård
ccfa03f6cc aquatic_http: simplify network logic 2020-07-02 22:14:52 +02:00
Joakim Frostegård
b43eeb4d65 aquatic_http network code: improve comments 2020-07-02 21:23:37 +02:00
Joakim Frostegård
f73910934b aquatic_http: keep connection after sending response; other fixes 2020-07-02 21:14:56 +02:00
Joakim Frostegård
b86787ef20 move back SocketConfig to aquatic_http 2020-07-02 17:06:34 +02:00
Joakim Frostegård
82378e71f6 Move things to aquatic_common_tcp 2020-07-02 16:54:27 +02:00
Joakim Frostegård
720596dfb4 move more things from aquatic_http to aquatic_common_tcp 2020-07-02 16:47:33 +02:00
Joakim Frostegård
2e53a2adc1 add aquatic_common_tcp crate, move common functionality there 2020-07-02 16:34:36 +02:00
Joakim Frostegård
1eaf2a0351 aquatic_http: AnnounceRequest.compact: default to true 2020-07-02 15:58:23 +02:00
Joakim Frostegård
ff4fcc163d aquatic_http: deserialize AnnounceRequest.compact to bool 2020-07-02 15:51:45 +02:00
Joakim Frostegård
6fc4b693cd aquatic_http: clean up / move around code; update TODO 2020-07-02 15:34:56 +02:00
Joakim Frostegård
c8de9857f8 aquatic_http: check info_hash and peer_id len when deserializing 2020-07-02 15:29:01 +02:00
Joakim Frostegård
5e7f8bea20 aquatic_http: add compact response peer repr, not tested 2020-07-02 14:37:47 +02:00
Joakim Frostegård
d2e950b431 aquatic_http: use untagged enum for Response; update TODO 2020-07-02 13:58:32 +02:00
Joakim Frostegård
6b1f11635b aquatic_http: bencoded response with content-length 2020-07-02 13:47:37 +02:00
Joakim Frostegård
a487347a0d aquatic_http: continue implementation work 2020-07-02 13:21:39 +02:00
Joakim Frostegård
76079cf66e WIP: more work on aquatic_http 2020-07-02 00:39:50 +02:00