Commit graph

87 commits

Author SHA1 Message Date
Joakim Frostegård
65a8c9d6ff Use Rust 1.64 workspace inheritance 2022-09-25 11:40:43 +02: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
c229872134 Use idiomatic feature names & namespace support from Rust 1.60 2022-04-10 01:25:03 +02:00
Joakim Frostegård
c990521b92 Run cargo fmt 2022-04-04 12:49:35 +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
61569d0f31 http_protocol: remove charset=utf-8 from response content type
We send bencode bytes. They should possibly not be sent as text at all
2022-04-04 12:06:27 +02:00
Joakim Frostegård
5da1c304a3 http_protocol: fix ScrapeRequest::write issue 2022-04-04 11:57:40 +02:00
Joakim Frostegård
db6f6e027c http_protocol: fix AnnounceResponse::warning_message serialization 2022-04-04 11:50:42 +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
6eb1375e4e http_protocol: skip serializing AnnounceResponse.warning_message if None 2022-04-04 10:28:48 +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
98e7e5cc13 http_protocol: implement axum IntoResponse, use in http_private 2022-04-03 20:20:51 +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
70d79b1871 http: add AnnounceResponse.warning_message; set in http_private 2022-04-03 01:07:38 +02:00
Joakim Frostegård
7d3ff2e9e6 http_protocol: expose write on response subtypes 2022-04-02 16:05:54 +02:00
Joakim Frostegård
d4a89ee808 http_protocol: derive Copy for AnnounceEvent 2022-04-02 15:43:28 +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
d78b0fa31e Bump version to 0.2.0 for all aquatic crates 2022-03-26 11:39:37 +01:00
Joakim Frostegård
90437e23bb Cargo.toml files: add readme keys, remove some exclude keys 2022-03-26 11:39:04 +01:00
Joakim Frostegård
a9f1aeb70c Add crate keywords, update descriptions 2022-03-20 20:41:56 +01:00
Joakim Frostegård
688d68105b http, http_protocol: upgrade smartstring from 0.2 to 1.0 2022-03-18 15:51:20 +01:00
Joakim Frostegård
ee6ce8f0e9 Remove hashbrown dependency where unused 2022-02-19 14:27:00 +01:00
Joakim Frostegård
9ba72ce3fd Upgrade itoa to version 1 2022-01-30 15:55:35 +01:00
Joakim Frostegård
473276cd46 Switch to rust edition 2021 2021-11-24 18:56:26 +01:00
Joakim Frostegård
028a366ce5 Don't unnecessarily constrain crate versions in Cargo.toml files 2021-11-19 02:45:53 +01: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
2e68155bf4 aquatic_http: use Cow<_> for FailureResponse.failure_reason 2021-10-16 00:19:58 +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
c59b3c4164 Upgrade urlencoding crate 2021-08-15 23:35:56 +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
34260cd2c3 Move aquatic_http_protocol package description to correct place 2020-09-13 17:47:21 +02:00
Joakim Frostegård
56980ab303 aquatic_http_protocol and ws_protocol: exclude "target" from crates 2020-09-13 17:42:31 +02: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
74e1ecf384 aquatic_http_protocol: remove unused utility function "urldecode" 2020-08-13 00:51:56 +02: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
bc5cd90371 aquatic http: use serde_bencode for deserialization
bendy seems not to manage lack of trailing newline
2020-08-12 04:26:09 +02:00