Commit graph

308 commits

Author SHA1 Message Date
Joakim Frostegård
9df1f0ecc6 aquatic_http: rewrite request parsing, use smartstring
Use smartstring in PeerMapKey too.

Improves benchmark speed.

request-from-path:

time:   [2.1484 us 2.1530 us 2.1586 us]
change: [-24.246% -23.908% -23.570%] (p = 0.00 < 0.01)
Performance has improved.
2020-07-19 15:38:26 +02:00
Joakim Frostegård
fc9b4c8e0d aquatic_http: protocol: add test for scrape request parsing 2020-07-19 14:28:48 +02:00
Joakim Frostegård
12a62f5df4 aquatic_http: add test for announce request parsing 2020-07-19 14:23:48 +02:00
Joakim Frostegård
f078542ffc Update TODO 2020-07-19 14:22:26 +02:00
Joakim Frostegård
54e801c6a9 aquatic http: request from path: whitelist url keys for security
This way, the non-ddos-resistant hashmap hasher can be kept. Also
improves performance, probably simply because less hashing work
is done:

time:   [2.8050 us 2.8156 us 2.8274 us]
change: [-22.940% -22.412% -21.916%] (p = 0.00 < 0.01)
Performance has improved.
2020-07-19 13:46:36 +02:00
Joakim Frostegård
09d27d5075 Update TODO 2020-07-19 13:27:54 +02:00
Joakim Frostegård
a8e355f22a aquatic_http: add criterion benchmarks for request from path parsing
About 35% improvement by using both memchr methods
2020-07-19 01:58:41 +02:00
Joakim Frostegård
9b0956cc91 aquatic_http: Request::from_http_get_path: add memchar query str parser 2020-07-18 18:40:27 +02:00
Joakim Frostegård
a8900c99ab Update TODO 2020-07-18 17:55:58 +02:00
Joakim Frostegård
84facea0ca aquatic_http: add hand-written ScrapeResponse serialization 2020-07-18 17:46:16 +02:00
Joakim Frostegård
17385c92ad Update TODO 2020-07-18 16:32:28 +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
43a33d80c4 aquatic_http: add ipv6 compact responses; fix ipv4/ipv6 issue 2020-07-08 12:26:41 +02:00
Joakim Frostegård
5ff00e866d Update TODO 2020-07-08 11:07:41 +02:00
Joakim Frostegård
97a84a2a03 Update TODO 2020-07-08 10:08:25 +02:00
Joakim Frostegård
fb4b190173 Update TODO 2020-07-05 20:33:31 +02:00
Joakim Frostegård
8391cb4bd5 Update TODO 2020-07-05 19:49:13 +02:00
Joakim Frostegård
9443082575 Update TODO with info about connection obfuscation extension 2020-07-04 19:58:26 +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
3d0de73873 Update TODO 2020-07-04 15:07:33 +02:00
Joakim Frostegård
656efc7d4e Update TODO 2020-07-04 13:55:15 +02:00
Joakim Frostegård
acf5ee5af1 Update TODO 2020-07-04 12:39:35 +02:00
Joakim Frostegård
db51454c6d Update TODO 2020-07-04 12:01:32 +02:00
Joakim Frostegård
73807baacb Update TODO 2020-07-04 11:32:06 +02:00
Joakim Frostegård
60faf2da3f Update TODO 2020-07-03 18:41:10 +02:00
Joakim Frostegård
919b846775 Update TODO 2020-07-03 17:45:41 +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
501c2a293a Update TODO 2020-07-03 15:32:06 +02:00
Joakim Frostegård
e2638ad7e9 Update TODO 2020-07-03 14:42:18 +02:00
Joakim Frostegård
afb50f54de Update TODO 2020-07-03 14:30:30 +02:00
Joakim Frostegård
bfabd1fe57 Update TODO 2020-07-03 14:04:37 +02:00
Joakim Frostegård
f9c1da9520 Update TODO 2020-07-03 13:18:01 +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
f3dcc8762e Update TODO; minor fixes to aquatic_http and aquatic_common_tcp 2020-07-02 23:32:48 +02:00
Joakim Frostegård
81983b98a2 Update TODO 2020-07-02 21:16:13 +02:00
Joakim Frostegård
b86787ef20 move back SocketConfig to aquatic_http 2020-07-02 17:06:34 +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
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
Joakim Frostegård
404e528616 WIP: start work on http tracker 2020-07-01 18:56:19 +02:00
Joakim Frostegård
ebe4d4357b Update TODO 2020-06-30 00:17:30 +02:00
Joakim Frostegård
1b4f04b6cf Update TODO 2020-05-30 15:06:32 +02:00