Skip to content

Commit 7e23a8b

Browse files
feat(ironrdp-tokio): add async ReqwestNetworkClient::send method (#859)
1 parent 4dc5945 commit 7e23a8b

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

crates/ironrdp-tokio/src/reqwest.rs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,7 @@ impl AsyncNetworkClient for ReqwestNetworkClient {
2020
&'a mut self,
2121
request: &'a sspi::generator::NetworkRequest,
2222
) -> Pin<Box<dyn Future<Output = ConnectorResult<Vec<u8>>> + 'a>> {
23-
Box::pin(async move {
24-
match &request.protocol {
25-
sspi::network_client::NetworkProtocol::Tcp => self.send_tcp(&request.url, &request.data).await,
26-
sspi::network_client::NetworkProtocol::Udp => self.send_udp(&request.url, &request.data).await,
27-
sspi::network_client::NetworkProtocol::Http | sspi::network_client::NetworkProtocol::Https => {
28-
self.send_http(&request.url, &request.data).await
29-
}
30-
}
31-
})
23+
Box::pin(ReqwestNetworkClient::send(self, request))
3224
}
3325
}
3426

@@ -45,6 +37,16 @@ impl Default for ReqwestNetworkClient {
4537
}
4638

4739
impl ReqwestNetworkClient {
40+
pub async fn send<'a>(&'a mut self, request: &'a sspi::generator::NetworkRequest) -> ConnectorResult<Vec<u8>> {
41+
match &request.protocol {
42+
sspi::network_client::NetworkProtocol::Tcp => self.send_tcp(&request.url, &request.data).await,
43+
sspi::network_client::NetworkProtocol::Udp => self.send_udp(&request.url, &request.data).await,
44+
sspi::network_client::NetworkProtocol::Http | sspi::network_client::NetworkProtocol::Https => {
45+
self.send_http(&request.url, &request.data).await
46+
}
47+
}
48+
}
49+
4850
async fn send_tcp(&self, url: &Url, data: &[u8]) -> ConnectorResult<Vec<u8>> {
4951
let addr = format!("{}:{}", url.host_str().unwrap_or_default(), url.port().unwrap_or(88));
5052

0 commit comments

Comments
 (0)