Skip to content

Commit 7faa54c

Browse files
committed
Merge torrust#1114: Improve HTTP announce error message
3af1928 fix: [torrust#1104] improve HTTP announce error message (Binlogo) Pull request description: - Updated error messages in test cases to include "Bad request" for better clarity when query parameters cannot be parsed. - Modified the `From` implementations for `ParseQueryError` and `ParseAnnounceQueryError` to include "Bad request" in the error messages. ACKs for top commit: josecelano: ACK 3af1928 Tree-SHA512: 87221cd34c73f7b9888df06957204908ac59d9a9f49052180994dcf5f45731412e94164849ab4ad45533a544c93b4f172af4a0ce8babe288cd036f1c4f8668cb
2 parents 17e86c6 + 3af1928 commit 7faa54c

File tree

5 files changed

+14
-14
lines changed

5 files changed

+14
-14
lines changed

src/servers/http/v1/extractors/announce_request.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@
1919
//! Missing query params for `announce` request: <http://0.0.0.0:7070/announce>
2020
//!
2121
//! ```text
22-
//! d14:failure reason149:Cannot parse query params for announce request: missing query params for announce request in src/servers/http/v1/extractors/announce_request.rs:54:23e
22+
//! d14:failure reason149:Bad request. Cannot parse query params for announce request: missing query params for announce request in src/servers/http/v1/extractors/announce_request.rs:54:23e
2323
//! ```
2424
//!
2525
//! Invalid query param (`info_hash`): <http://0.0.0.0:7070/announce?info_hash=invalid&peer_addr=2.137.87.41&downloaded=0&uploaded=0&peer_id=-qB00000000000000001&port=17548&left=0&event=completed&compact=0>
2626
//!
2727
//! ```text
28-
//! d14:failure reason240:Cannot parse query params for announce request: invalid param value invalid for info_hash in not enough bytes for infohash: got 7 bytes, expected 20 src/shared/bit_torrent/info_hash.rs:240:27, src/servers/http/v1/requests/announce.rs:182:42e
28+
//! d14:failure reason240:Bad request. Cannot parse query params for announce request: invalid param value invalid for info_hash in not enough bytes for infohash: got 7 bytes, expected 20 src/shared/bit_torrent/info_hash.rs:240:27, src/servers/http/v1/requests/announce.rs:182:42e
2929
//! ```
3030
use std::panic::Location;
3131

@@ -137,7 +137,7 @@ mod tests {
137137

138138
assert_error_response(
139139
&response,
140-
"Cannot parse query params for announce request: missing query params for announce request",
140+
"Bad request. Cannot parse query params for announce request: missing query params for announce request",
141141
);
142142
}
143143

@@ -146,13 +146,13 @@ mod tests {
146146
let invalid_query = "param1=value1=value2";
147147
let response = extract_announce_from(Some(invalid_query)).unwrap_err();
148148

149-
assert_error_response(&response, "Cannot parse query params");
149+
assert_error_response(&response, "Bad request. Cannot parse query params");
150150
}
151151

152152
#[test]
153153
fn it_should_reject_a_request_with_a_query_that_cannot_be_parsed_into_an_announce_request() {
154154
let response = extract_announce_from(Some("param1=value1")).unwrap_err();
155155

156-
assert_error_response(&response, "Cannot parse query params for announce request");
156+
assert_error_response(&response, "Bad request. Cannot parse query params for announce request");
157157
}
158158
}

src/servers/http/v1/extractors/scrape_request.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@
1919
//! Missing query params for scrape request: <http://0.0.0.0:7070/scrape>
2020
//!
2121
//! ```text
22-
//! d14:failure reason143:Cannot parse query params for scrape request: missing query params for scrape request in src/servers/http/v1/extractors/scrape_request.rs:52:23e
22+
//! d14:failure reason143:Bad request. Cannot parse query params for scrape request: missing query params for scrape request in src/servers/http/v1/extractors/scrape_request.rs:52:23e
2323
//! ```
2424
//!
2525
//! Invalid query params for scrape request: <http://0.0.0.0:7070/scrape?info_hash=invalid>
2626
//!
2727
//! ```text
28-
//! d14:failure reason235:Cannot parse query params for scrape request: invalid param value invalid for info_hash in not enough bytes for infohash: got 7 bytes, expected 20 src/shared/bit_torrent/info_hash.rs:240:27, src/servers/http/v1/requests/scrape.rs:66:46e
28+
//! d14:failure reason235:Bad request. Cannot parse query params for scrape request: invalid param value invalid for info_hash in not enough bytes for infohash: got 7 bytes, expected 20 src/shared/bit_torrent/info_hash.rs:240:27, src/servers/http/v1/requests/scrape.rs:66:46e
2929
//! ```
3030
use std::panic::Location;
3131

@@ -158,7 +158,7 @@ mod tests {
158158

159159
assert_error_response(
160160
&response,
161-
"Cannot parse query params for scrape request: missing query params for scrape request",
161+
"Bad request. Cannot parse query params for scrape request: missing query params for scrape request",
162162
);
163163
}
164164

@@ -167,13 +167,13 @@ mod tests {
167167
let invalid_query = "param1=value1=value2";
168168
let response = extract_scrape_from(Some(invalid_query)).unwrap_err();
169169

170-
assert_error_response(&response, "Cannot parse query params");
170+
assert_error_response(&response, "Bad request. Cannot parse query params");
171171
}
172172

173173
#[test]
174174
fn it_should_reject_a_request_with_a_query_that_cannot_be_parsed_into_a_scrape_request() {
175175
let response = extract_scrape_from(Some("param1=value1")).unwrap_err();
176176

177-
assert_error_response(&response, "Cannot parse query params for scrape request");
177+
assert_error_response(&response, "Bad request. Cannot parse query params for scrape request");
178178
}
179179
}

src/servers/http/v1/requests/announce.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -226,15 +226,15 @@ impl FromStr for Compact {
226226
impl From<ParseQueryError> for responses::error::Error {
227227
fn from(err: ParseQueryError) -> Self {
228228
responses::error::Error {
229-
failure_reason: format!("Cannot parse query params: {err}"),
229+
failure_reason: format!("Bad request. Cannot parse query params: {err}"),
230230
}
231231
}
232232
}
233233

234234
impl From<ParseAnnounceQueryError> for responses::error::Error {
235235
fn from(err: ParseAnnounceQueryError) -> Self {
236236
responses::error::Error {
237-
failure_reason: format!("Cannot parse query params for announce request: {err}"),
237+
failure_reason: format!("Bad request. Cannot parse query params for announce request: {err}"),
238238
}
239239
}
240240
}

src/servers/http/v1/requests/scrape.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ pub enum ParseScrapeQueryError {
3939
impl From<ParseScrapeQueryError> for responses::error::Error {
4040
fn from(err: ParseScrapeQueryError) -> Self {
4141
responses::error::Error {
42-
failure_reason: format!("Cannot parse query params for scrape request: {err}"),
42+
failure_reason: format!("Bad request. Cannot parse query params for scrape request: {err}"),
4343
}
4444
}
4545
}

tests/servers/http/asserts.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ pub async fn assert_cannot_parse_query_params_error_response(response: Response,
133133

134134
assert_bencoded_error(
135135
&response.text().await.unwrap(),
136-
&format!("Cannot parse query params{failure}"),
136+
&format!("Bad request. Cannot parse query params{failure}"),
137137
Location::caller(),
138138
);
139139
}

0 commit comments

Comments
 (0)