Skip to content

Commit a15fbe4

Browse files
committed
Flush TcpStream after writing HTTP requests
1 parent 73bb708 commit a15fbe4

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

lightning-block-sync/src/http_clients.rs

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,7 @@ impl HttpClient {
7474
Host: {}\r\n\
7575
Connection: keep-alive\r\n\
7676
\r\n", uri, host);
77-
#[cfg(feature = "tokio")]
78-
self.stream.write_all(request.as_bytes()).await?;
79-
#[cfg(not(feature = "tokio"))]
80-
self.stream.write_all(request.as_bytes())?;
81-
77+
self.write_request(request).await?;
8278
let bytes = self.read_response().await?;
8379
F::try_from(bytes)
8480
}
@@ -100,15 +96,25 @@ impl HttpClient {
10096
Content-Length: {}\r\n\
10197
\r\n\
10298
{}", uri, host, auth, content.len(), content);
103-
#[cfg(feature = "tokio")]
104-
self.stream.write_all(request.as_bytes()).await?;
105-
#[cfg(not(feature = "tokio"))]
106-
self.stream.write_all(request.as_bytes())?;
107-
99+
self.write_request(request).await?;
108100
let bytes = self.read_response().await?;
109101
F::try_from(bytes)
110102
}
111103

104+
/// Writes an HTTP request message.
105+
async fn write_request(&mut self, request: String) -> std::io::Result<()> {
106+
#[cfg(feature = "tokio")]
107+
{
108+
self.stream.write_all(request.as_bytes()).await?;
109+
self.stream.flush().await
110+
}
111+
#[cfg(not(feature = "tokio"))]
112+
{
113+
self.stream.write_all(request.as_bytes())?;
114+
self.stream.flush()
115+
}
116+
}
117+
112118
/// Reads an HTTP response message.
113119
async fn read_response(&mut self) -> std::io::Result<Vec<u8>> {
114120
#[cfg(feature = "tokio")]

0 commit comments

Comments
 (0)