diff options
Diffstat (limited to 'examples/client.rs')
-rw-r--r-- | examples/client.rs | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/examples/client.rs b/examples/client.rs index 24966e7..2f576fc 100644 --- a/examples/client.rs +++ b/examples/client.rs @@ -44,7 +44,7 @@ fn main() { let cmd = &args.next().unwrap(); if args.len() != 1 { - println!("Usage: {} URL", cmd); + println!("Usage: {cmd} URL"); println!("\nSee tools/apps/ for more complete implementations."); return; } @@ -81,9 +81,13 @@ fn main() { config.verify_peer(false); config - .set_application_protos( - b"\x0ahq-interop\x05hq-29\x05hq-28\x05hq-27\x08http/0.9", - ) + .set_application_protos(&[ + b"hq-interop", + b"hq-29", + b"hq-28", + b"hq-27", + b"http/0.9", + ]) .unwrap(); config.set_max_idle_timeout(5000); @@ -102,9 +106,13 @@ fn main() { let scid = quiche::ConnectionId::from_ref(&scid); + // Get local address. + let local_addr = socket.local_addr().unwrap(); + // Create a QUIC connection and initiate handshake. let mut conn = - quiche::connect(url.domain(), &scid, peer_addr, &mut config).unwrap(); + quiche::connect(url.domain(), &scid, local_addr, peer_addr, &mut config) + .unwrap(); info!( "connecting to {:} from {:} with scid {}", @@ -163,7 +171,10 @@ fn main() { debug!("got {} bytes", len); - let recv_info = quiche::RecvInfo { from }; + let recv_info = quiche::RecvInfo { + to: socket.local_addr().unwrap(), + from, + }; // Process potentially coalesced packets. let read = match conn.recv(&mut buf[..len], recv_info) { @@ -266,7 +277,7 @@ fn main() { } fn hex_dump(buf: &[u8]) -> String { - let vec: Vec<String> = buf.iter().map(|b| format!("{:02x}", b)).collect(); + let vec: Vec<String> = buf.iter().map(|b| format!("{b:02x}")).collect(); vec.join("") } |