mirror of
https://github.com/NLnetLabs/domain.git
synced 2026-09-13 05:17:45 +02:00
Add support to client transports for requests that may result in multiple
responses. (#377) This adds ComposeRequestMulti and other *Multi types. The main change is to the stream transport, which is the only transport that implements SendRequestMulti.
This commit is contained in:
@@ -84,7 +84,7 @@ async fn test_transport_error() {
|
||||
let mut msg = msg.question();
|
||||
msg.push((Name::vec_from_str("example.com").unwrap(), Rtype::AAAA))
|
||||
.unwrap();
|
||||
let req = RequestMessage::new(msg);
|
||||
let req = RequestMessage::new(msg).unwrap();
|
||||
|
||||
let mut request = cached.send_request(req.clone());
|
||||
let reply = request.get_response().await;
|
||||
|
||||
+7
-2
@@ -11,6 +11,7 @@ use domain::net::client::dgram;
|
||||
use domain::net::client::dgram_stream;
|
||||
use domain::net::client::multi_stream;
|
||||
use domain::net::client::redundant;
|
||||
use domain::net::client::request::RequestMessageMulti;
|
||||
use domain::net::client::stream;
|
||||
use std::fs::File;
|
||||
use std::net::IpAddr;
|
||||
@@ -43,7 +44,8 @@ fn single() {
|
||||
let step_value = Arc::new(CurrStepValue::new());
|
||||
|
||||
let conn = Connection::new(stelline.clone(), step_value.clone());
|
||||
let (octstr, transport) = stream::Connection::new(conn);
|
||||
let (octstr, transport) =
|
||||
stream::Connection::<_, RequestMessageMulti<Vec<u8>>>::new(conn);
|
||||
tokio::spawn(async move {
|
||||
transport.run().await;
|
||||
});
|
||||
@@ -138,7 +140,10 @@ fn tcp() {
|
||||
}
|
||||
};
|
||||
|
||||
let (tcp, transport) = stream::Connection::new(tcp_conn);
|
||||
let (tcp, transport) = stream::Connection::<
|
||||
_,
|
||||
RequestMessageMulti<Vec<u8>>,
|
||||
>::new(tcp_conn);
|
||||
tokio::spawn(async move {
|
||||
transport.run().await;
|
||||
println!("single TCP run terminated");
|
||||
|
||||
Reference in New Issue
Block a user