mirror of
https://github.com/servo/servo.git
synced 2025-08-04 21:20:23 +01:00
net: in the absense of a request body, assume streaming it cannot fail
This commit is contained in:
parent
39e3beb35c
commit
7d4b25663f
1 changed files with 11 additions and 1 deletions
|
@ -1690,12 +1690,22 @@ fn http_network_fetch(
|
||||||
// The receiver will receive true if there has been an error streaming the request body.
|
// The receiver will receive true if there has been an error streaming the request body.
|
||||||
let (fetch_terminated_sender, fetch_terminated_receiver) = unbounded();
|
let (fetch_terminated_sender, fetch_terminated_receiver) = unbounded();
|
||||||
|
|
||||||
|
let body = request.body.as_ref().map(|body| body.take_stream());
|
||||||
|
|
||||||
|
if body.is_none() {
|
||||||
|
// There cannot be an error streaming a non-existent body.
|
||||||
|
// However in such a case the channel will remain unused
|
||||||
|
// and drop inside `obtain_response`.
|
||||||
|
// Send the confirmation now, ensuring the receiver will not dis-connect first.
|
||||||
|
let _ = fetch_terminated_sender.send(false);
|
||||||
|
}
|
||||||
|
|
||||||
let response_future = obtain_response(
|
let response_future = obtain_response(
|
||||||
&context.state.client,
|
&context.state.client,
|
||||||
&url,
|
&url,
|
||||||
&request.method,
|
&request.method,
|
||||||
&mut request.headers,
|
&mut request.headers,
|
||||||
request.body.as_ref().map(|body| body.take_stream()),
|
body,
|
||||||
request
|
request
|
||||||
.body
|
.body
|
||||||
.as_ref()
|
.as_ref()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue