Commit graph

41 commits

Author SHA1 Message Date
Joakim Frostegård
1afe45c6f6 http: use CompactString in AnnounceRequest, ignore key in tracker 2023-02-25 22:51:25 +01:00
Joakim Frostegård
d621fb1f85 http protocol: implement Error for RequestParseError 2022-08-01 14:42:22 +02:00
Joakim Frostegård
1c4655e0d7 http protocol: improve doc comment for Request::from_http_get_path 2022-08-01 14:38:07 +02:00
Joakim Frostegård
ffc5dc5227 http protocol: explicitly check for /scrape path 2022-08-01 14:35:05 +02:00
Joakim Frostegård
1b5fbe8775 http protocol: return NeedMoreData until headers are fully parsed
This prevents an issue in aquatic_http where it could
theoretically start sending back data before initial
request was fully received.
2022-08-01 14:33:18 +02:00
Joakim Frostegård
ee016ea0b6 http protocol: AnnounceRequest: always ask for compact responses 2022-04-11 01:08:40 +02:00
Joakim Frostegård
9f8f80a17b http protocol: remove AnnounceRequest::compact, fail parsing if set to 0 2022-04-04 12:16:13 +02:00
Joakim Frostegård
5da1c304a3 http_protocol: fix ScrapeRequest::write issue 2022-04-04 11:57:40 +02:00
Joakim Frostegård
68fda1be45 http_protocol: fix failing test_announce_request_from_bytes 2022-04-04 11:00:25 +02:00
Joakim Frostegård
92b62e73ca http_protocol: in AnnounceRequest::write, send uploaded & downloaded 2022-04-04 10:20:43 +02:00
Joakim Frostegård
b2a3c034b0 http_protocol: allow announce/scrape url suffix; use in load test 2022-04-03 19:17:57 +02:00
Joakim Frostegård
b54fb7f1db http_protocol: cargo fmt 2022-04-02 13:56:13 +02:00
Joakim Frostegård
a93789128c http_protocol: add AnnounceRequest uploaded and downloaded fields 2022-04-02 13:43:18 +02:00
Joakim Frostegård
87223f7952 http_protocol: add AnnounceEvent::as_str, run cargo fmt 2022-04-02 13:31:51 +02:00
Joakim Frostegård
b9c029b5ed http_protocol: split request parsing by request type 2022-04-02 12:39:31 +02:00
Joakim Frostegård
83a4e318a4 aquatic_http_protocol: cargo fmt 2021-11-01 17:18:27 +01:00
Joakim Frostegård
df9aaccb46 aquatic_http_protocol: fix serde_quickcheck_identity_test
Since empty info hash Vec is no longer allowed, don't allow
it in test data and expect parsing to succeed.
2021-10-30 17:06:28 +02:00
Joakim Frostegård
c02f8f228e aquatic_http_protocol: fail scrape parse with no info hashes 2021-10-27 12:14:14 +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
6f955235ea aquatic http: log at debug level for unrecognized keys in request parse
"downloaded" and "uploaded" occur all the time since they are
part of the specification
2020-08-12 04:38:47 +02:00
Joakim Frostegård
7a96313173 aquatic_http_protocol: send host header for scrape requests too 2020-08-12 04:23:26 +02:00
Joakim Frostegård
e6a74c5bfe aquatic http load test: send Host header, downloaded&uploaded keys 2020-08-12 04:08:43 +02:00
Joakim Frostegård
74a538963f aquatic_http_protocol: urlencode/urldecode Request.key
About 11% performance regression for Request::from_bytes
2020-08-10 04:37:01 +02:00
Joakim Frostegård
1b2b4f0eb5 aquatic_http_protocol: add test for Request serde, fix Request.write bug 2020-08-09 01:19:47 +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
561cc3db55 fix more clippy warnings 2020-08-02 00:36:56 +02:00
Joakim Frostegård
8fc09cb130 http: fix some clippy errors, including possible network bug 2020-08-01 23:59:17 +02:00
Joakim Frostegård
7d4b1ab610 aquatic http protocol: AnnounceRequest.write: write actual event 2020-08-01 23:05:07 +02:00
Joakim Frostegård
cc46c4b72c aquatic_http: write to buf ref in request serialization 2020-07-24 22:27:06 +02:00
Joakim Frostegård
909f0edce9 aquatic http protocol: move urlencode fns to utils module, clean up 2020-07-21 00:20:10 +02:00
Joakim Frostegård
8fea96bcd2 aquatic http protocol: request parsing: remove hashmap for performance
request-from-bytes:

time:   [720.22 ns 723.34 ns 726.73 ns]
change: [-53.265% -52.884% -52.477%] (p = 0.00 < 0.01)

Performance has improved.
2020-07-21 00:11:53 +02:00
Joakim Frostegård
dae83a1835 aquatic http protocol: ScrapeRequest::to_bytes(): use urlencode_20_bytes 2020-07-20 22:35:08 +02:00
Joakim Frostegård
b7d5a12046 aquatic http protocol: optimize request parsing
request-from-bytes:

time:   [1.5288 us 1.5362 us 1.5441 us]
change: [-38.029% -37.466% -36.890%] (p = 0.00 < 0.01)
Performance has improved.
2020-07-20 22:13:42 +02:00
Joakim Frostegård
114b8007e1 aquatic http procotol: rewite Request::from_bytes, test it 2020-07-20 21:13:48 +02:00
Joakim Frostegård
ea4b560faa aquatic_http_protocol: add benchmark for request from bytes 2020-07-20 20:27:42 +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
45940a05a9 http load test and protocol: cut down on allocations a bit 2020-07-20 17:23:40 +02:00
Joakim Frostegård
da3b2bcd8c WIP: cleanup aquatic_http_load_test and aquatic_http_protocol 2020-07-20 14:50:19 +02:00
Joakim Frostegård
d1e9d24773 WIP: work on http load test (now partly working) and http protocol 2020-07-20 14:30:36 +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
Renamed from aquatic_http/src/lib/protocol/request.rs (Browse further)