refactor(client): remove redundant timestamp parameter from open method

This commit is contained in:
Nils Andreas Svee committed 2026-05-10 23:37:35 +07:00
1 parent 2258509021
commit 023e85741a
16 files changed
+129 -127

No files matched your search

+36 -34
View File
@@ -73,7 +73,7 @@ impl Client {
})
}
pub fn open(&mut self, now: ClientTimestamp) -> Result<OpenOutcome, ClientError> {
pub fn open(&mut self) -> Result<OpenOutcome, ClientError> {
match self.phase {
ClientPhase::Connected => {}
ClientPhase::Open { .. } => return Err(ClientError::AlreadyOpen),
@@ -81,10 +81,44 @@ impl Client {
ClientPhase::NoTestCompleted => return Err(ClientError::AlreadyCompleted),
}
let outcome = self.open_inner(now);
let outcome = (|| -> Result<OpenOutcome, ClientError> {
let request = OpenRequest {
params: self.requested.clone(),
close: self.config.run_mode == RunMode::NoTest,
};
let packet = encode_open_request(&request, self.config.hmac_key.as_deref())?;
let mut buf = [0_u8; MAX_OPEN_PACKET_SIZE];
for timeout in &self.config.open_timeouts {
self.socket.set_read_timeout(Some(*timeout))?;
self.socket.send(&packet)?;
match self.socket.recv(&mut buf) {
Ok(size) => {
let reply = irtt_proto::decode_open_reply(
&buf[..size],
self.config.hmac_key.as_deref(),
)?;
return self.accept_open_reply(reply, ClientTimestamp::now());
}
Err(err)
if matches!(
err.kind(),
io::ErrorKind::WouldBlock | io::ErrorKind::TimedOut
) => {}
Err(err) => return Err(ClientError::Socket(err)),
}
}
Err(ClientError::OpenTimeout)
})();
let restore = self
.socket
.set_read_timeout(self.config.socket_config.recv_timeout);
match (outcome, restore) {
(Ok(outcome), Ok(())) => Ok(outcome),
(Ok(_), Err(source)) => Err(ClientError::ReadTimeoutRestore { source }),
@@ -93,38 +127,6 @@ impl Client {
}
}
fn open_inner(&mut self, _now: ClientTimestamp) -> Result<OpenOutcome, ClientError> {
let request = OpenRequest {
params: self.requested.clone(),
close: self.config.run_mode == RunMode::NoTest,
};
let packet = encode_open_request(&request, self.config.hmac_key.as_deref())?;
let mut buf = [0_u8; MAX_OPEN_PACKET_SIZE];
for timeout in &self.config.open_timeouts {
self.socket.set_read_timeout(Some(*timeout))?;
self.socket.send(&packet)?;
match self.socket.recv(&mut buf) {
Ok(size) => {
let reply = irtt_proto::decode_open_reply(
&buf[..size],
self.config.hmac_key.as_deref(),
)?;
return self.accept_open_reply(reply, ClientTimestamp::now());
}
Err(err)
if matches!(
err.kind(),
io::ErrorKind::WouldBlock | io::ErrorKind::TimedOut
) => {}
Err(err) => return Err(ClientError::Socket(err)),
}
}
Err(ClientError::OpenTimeout)
}
pub fn close(&mut self, now: ClientTimestamp) -> Result<Vec<ClientEvent>, ClientError> {
let token = match self.phase {
ClientPhase::Open { token } => token,
+6 -6
View File
@@ -11,10 +11,10 @@ fn open_fails_after_close() {
let _ = recv_request(&socket, &tx);
});
let mut client = Client::connect(default_test_config(server.addr)).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.close(ClientTimestamp::now()).unwrap();
assert!(matches!(
client.open(ClientTimestamp::now()),
client.open(),
Err(ClientError::AlreadyClosed)
));
server.join();
@@ -31,7 +31,7 @@ fn close_sends_one_close_packet_with_negotiated_token() {
let _ = recv_request(&socket, &tx);
});
let mut client = Client::connect(default_test_config(server.addr)).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
let events = client.close(ClientTimestamp::now()).unwrap();
assert_eq!(events.len(), 1);
let packets: Vec<_> = server.rx.iter().take(2).collect();
@@ -62,7 +62,7 @@ fn send_probe_fails_after_close() {
}
});
let mut client = Client::connect(default_test_config(server.addr)).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.close(ClientTimestamp::now()).unwrap();
assert!(matches!(
client.send_probe(),
@@ -84,7 +84,7 @@ fn close_clears_timed_out_metadata() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe().unwrap();
thread::sleep(Duration::from_millis(60));
@@ -132,7 +132,7 @@ fn close_flagged_echo_reply_emits_reply_then_closes_without_sending_close() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe().unwrap();
let events = client.recv_once().unwrap();
+2 -2
View File
@@ -26,7 +26,7 @@ fn normal_open_applies_negotiated_dscp_after_open_and_close_clears_it() {
socket_traffic_class(&client.socket, client.remote).unwrap() & 0xfc,
0
);
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
assert_eq!(
socket_traffic_class(&client.socket, client.remote).unwrap() & 0xfc,
184
@@ -58,7 +58,7 @@ fn normal_open_uses_negotiated_dscp_not_requested_dscp() {
config.negotiation_policy = NegotiationPolicy::Loose;
let mut client = Client::connect(config).unwrap();
let negotiated = assert_open_started(client.open(ClientTimestamp::now()).unwrap());
let negotiated = assert_open_started(client.open().unwrap());
assert_eq!(negotiated.params.dscp, 0);
assert_eq!(
socket_traffic_class(&client.socket, client.remote).unwrap(),
+6 -6
View File
@@ -14,7 +14,7 @@ fn hmac_open_success() {
});
config.server_addr = server.addr.to_string();
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
server.join();
}
@@ -32,7 +32,7 @@ fn hmac_open_rejects_missing_hmac() {
config.server_addr = server.addr.to_string();
let mut client = Client::connect(config).unwrap();
assert!(matches!(
client.open(ClientTimestamp::now()),
client.open(),
Err(ClientError::Protocol(
irtt_proto::ProtoError::HmacPresenceMismatch
))
@@ -55,7 +55,7 @@ fn hmac_open_rejects_bad_hmac() {
config.server_addr = server.addr.to_string();
let mut client = Client::connect(config).unwrap();
assert!(matches!(
client.open(ClientTimestamp::now()),
client.open(),
Err(ClientError::Protocol(irtt_proto::ProtoError::BadHmac))
));
server.join();
@@ -76,7 +76,7 @@ fn hmac_close_packet_includes_valid_hmac() {
});
config.server_addr = server.addr.to_string();
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.close(ClientTimestamp::now()).unwrap();
let packets: Vec<_> = server.rx.iter().take(2).collect();
let close = &packets[1];
@@ -125,7 +125,7 @@ fn bad_hmac_reply_is_dropped() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe().unwrap();
thread::sleep(Duration::from_millis(30));
let events = client.recv_once().unwrap();
@@ -174,7 +174,7 @@ fn hmac_echo_request_reply_works() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe().unwrap();
thread::sleep(Duration::from_millis(50));
let events = client.recv_once().unwrap();
@@ -8,7 +8,7 @@ fn no_test_open_close_succeeds_on_open_reply_close() {
let server = no_test_server(params.clone(), 0);
config.server_addr = server.addr.to_string();
let mut client = Client::connect(config).unwrap();
let negotiated = assert_no_test_completed(client.open(ClientTimestamp::now()).unwrap());
let negotiated = assert_no_test_completed(client.open().unwrap());
assert_eq!(negotiated.params, params);
assert_eq!(client.negotiated.as_ref(), Some(&negotiated));
assert!(matches!(
@@ -26,7 +26,7 @@ fn no_test_success_validates_params() {
let server = no_test_server(params.clone(), 0);
config.server_addr = server.addr.to_string();
let mut client = Client::connect(config).unwrap();
let negotiated = assert_no_test_completed(client.open(ClientTimestamp::now()).unwrap());
let negotiated = assert_no_test_completed(client.open().unwrap());
assert_eq!(negotiated.params, params);
server.join();
}
@@ -40,7 +40,7 @@ fn no_test_rejects_non_close_open_reply() {
config.server_addr = server.addr.to_string();
let mut client = Client::connect(config).unwrap();
assert!(matches!(
client.open(ClientTimestamp::now()),
client.open(),
Err(ClientError::UnexpectedNoTestReply)
));
server.join();
@@ -55,7 +55,7 @@ fn no_test_rejects_non_zero_token_with_close_reply() {
config.server_addr = server.addr.to_string();
let mut client = Client::connect(config).unwrap();
assert!(matches!(
client.open(ClientTimestamp::now()),
client.open(),
Err(ClientError::NonZeroNoTestToken { token: TOKEN })
));
server.join();
@@ -71,7 +71,7 @@ fn no_test_strict_negotiation_rejects_changed_params() {
config.server_addr = server.addr.to_string();
let mut client = Client::connect(config).unwrap();
assert!(matches!(
client.open(ClientTimestamp::now()),
client.open(),
Err(ClientError::NegotiationRejected { .. })
));
server.join();
@@ -87,7 +87,7 @@ fn no_test_loose_negotiation_accepts_restricted_params() {
let server = no_test_server(params.clone(), 0);
config.server_addr = server.addr.to_string();
let mut client = Client::connect(config).unwrap();
let negotiated = assert_no_test_completed(client.open(ClientTimestamp::now()).unwrap());
let negotiated = assert_no_test_completed(client.open().unwrap());
assert_eq!(negotiated.params, params);
server.join();
}
@@ -100,7 +100,7 @@ fn send_probe_fails_after_no_test_completed() {
let server = no_test_server(params, 0);
config.server_addr = server.addr.to_string();
let mut client = Client::connect(config).unwrap();
assert_no_test_completed(client.open(ClientTimestamp::now()).unwrap());
assert_no_test_completed(client.open().unwrap());
assert!(matches!(
client.send_probe(),
Err(ClientError::AlreadyCompleted)
@@ -116,9 +116,9 @@ fn open_fails_after_no_test_completed() {
let server = no_test_server(params, 0);
config.server_addr = server.addr.to_string();
let mut client = Client::connect(config).unwrap();
assert_no_test_completed(client.open(ClientTimestamp::now()).unwrap());
assert_no_test_completed(client.open().unwrap());
assert!(matches!(
client.open(ClientTimestamp::now()),
client.open(),
Err(ClientError::AlreadyCompleted)
));
server.join();
+8 -8
View File
@@ -18,7 +18,7 @@ fn successful_open_handshake() {
let server = open_success_server(params.clone());
let mut client = Client::connect(default_test_config(server.addr)).unwrap();
let negotiated = assert_open_started(client.open(ClientTimestamp::now()).unwrap());
let negotiated = assert_open_started(client.open().unwrap());
assert_eq!(negotiated.params, params);
assert!(matches!(client.phase, ClientPhase::Open { token: TOKEN }));
server.join();
@@ -30,9 +30,9 @@ fn open_fails_when_already_open() {
let params = params_from_config(&config).unwrap();
let server = open_success_server(params);
let mut client = Client::connect(default_test_config(server.addr)).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
assert!(matches!(
client.open(ClientTimestamp::now()),
client.open(),
Err(ClientError::AlreadyOpen)
));
server.join();
@@ -53,7 +53,7 @@ fn open_retries_after_first_timeout() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
let outcome = client.open(ClientTimestamp::now()).unwrap();
let outcome = client.open().unwrap();
assert_open_started(outcome);
assert_eq!(server.rx.iter().take(2).count(), 2);
server.join();
@@ -68,7 +68,7 @@ fn open_timeout_after_all_timeouts() {
};
let mut client = Client::connect(config).unwrap();
assert!(matches!(
client.open(ClientTimestamp::now()),
client.open(),
Err(ClientError::OpenTimeout)
));
assert_eq!(server.rx.iter().take(2).count(), 2);
@@ -88,7 +88,7 @@ fn open_restores_configured_read_timeout_after_timeout() {
};
let mut client = Client::connect(config).unwrap();
assert!(matches!(
client.open(ClientTimestamp::now()),
client.open(),
Err(ClientError::OpenTimeout)
));
@@ -108,7 +108,7 @@ fn protocol_version_mismatch_fails() {
let server = open_success_server(params);
let mut client = Client::connect(default_test_config(server.addr)).unwrap();
assert!(matches!(
client.open(ClientTimestamp::now()),
client.open(),
Err(ClientError::ProtocolVersionMismatch { received: 2, .. })
));
server.join();
@@ -125,7 +125,7 @@ fn server_rejection_fails_in_normal_mode() {
});
let mut client = Client::connect(default_test_config(server.addr)).unwrap();
assert!(matches!(
client.open(ClientTimestamp::now()),
client.open(),
Err(ClientError::ServerRejected)
));
server.join();
@@ -38,7 +38,7 @@ fn send_probe_sends_valid_echo_request() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
let events = client.send_probe().unwrap();
assert_eq!(events.len(), 1);
match &events[0] {
@@ -89,7 +89,7 @@ fn echo_sent_reports_schedule_and_timer_error() {
mono: Instant::now(),
wall: SystemTime::now(),
};
assert_open_started(client.open(start).unwrap());
assert_open_started(client.open().unwrap());
let session_start = client.session.as_ref().unwrap().start_mono;
assert!(
session_start >= start.mono,
@@ -131,7 +131,7 @@ fn send_probe_starts_seq_at_zero_and_increments() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe().unwrap();
client.send_probe().unwrap();
client.send_probe().unwrap();
@@ -172,7 +172,7 @@ fn send_probe_respects_finite_duration_exclusive_end() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
let session = client.session.as_ref().unwrap();
let start = session.start_mono;
@@ -225,7 +225,7 @@ fn continuous_duration_keeps_generating_send_deadlines() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
let start = client.session.as_ref().unwrap().start_mono;
let interval = Duration::from_millis(500);
@@ -301,7 +301,7 @@ fn send_probe_reports_schedule_overflow() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.session.as_mut().unwrap().packets_sent = u64::MAX - 1;
assert!(matches!(
@@ -323,7 +323,7 @@ fn send_probe_reports_logical_sequence_counter_overflow() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.session.as_mut().unwrap().next_logical_seq = u64::MAX;
assert!(matches!(
@@ -347,7 +347,7 @@ fn send_probe_reports_packets_sent_counter_overflow() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.session.as_mut().unwrap().packets_sent = u64::MAX;
assert!(matches!(
@@ -371,7 +371,7 @@ fn recv_once_returns_empty_on_timeout() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
let events = client.recv_once().unwrap();
assert!(events.is_empty());
server.join();
@@ -477,7 +477,7 @@ fn recv_once_decodes_only_received_bytes_after_longer_datagram() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe().unwrap();
client.send_probe().unwrap();
@@ -550,7 +550,7 @@ fn echo_reply_metadata_propagates_observed_dscp_with_ancillary() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe().unwrap();
thread::sleep(Duration::from_millis(50));
@@ -757,7 +757,7 @@ fn wrong_token_reply_is_dropped() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe().unwrap();
thread::sleep(Duration::from_millis(30));
let events = client.recv_once().unwrap();
@@ -796,7 +796,7 @@ fn duplicate_reply_emits_duplicate_event() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe().unwrap();
thread::sleep(Duration::from_millis(50));
@@ -850,7 +850,7 @@ fn out_of_order_reply_emits_late_event() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe().unwrap();
client.send_probe().unwrap();
thread::sleep(Duration::from_millis(50));
@@ -891,7 +891,7 @@ fn poll_timeouts_emits_echo_loss() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe().unwrap();
client.send_probe().unwrap();
@@ -921,7 +921,7 @@ fn poll_timeouts_removes_expired_pending() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe().unwrap();
thread::sleep(Duration::from_millis(150));
@@ -967,7 +967,7 @@ fn late_reply_after_timeout_preserves_measurement_metadata() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe().unwrap();
thread::sleep(Duration::from_millis(60));
@@ -1046,7 +1046,7 @@ fn late_reply_metadata_is_unavailable_without_ancillary() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe().unwrap();
thread::sleep(Duration::from_millis(60));
@@ -1095,7 +1095,7 @@ fn late_reply_metadata_propagates_observed_dscp_with_ancillary() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe().unwrap();
thread::sleep(Duration::from_millis(60));
@@ -1149,7 +1149,7 @@ fn pending_map_bounded() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe().unwrap();
client.send_probe().unwrap();
client.send_probe().unwrap();
@@ -1199,7 +1199,7 @@ fn minimal_negotiated_layout_works() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe().unwrap();
thread::sleep(Duration::from_millis(30));
let events = client.recv_once().unwrap();
@@ -1253,7 +1253,7 @@ fn late_reply_with_pending_preserves_rtt() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe().unwrap();
client.send_probe().unwrap();
client.send_probe().unwrap();
@@ -1296,7 +1296,7 @@ fn pending_full_does_not_send_packet() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe().unwrap();
client.send_probe().unwrap();
@@ -1361,7 +1361,7 @@ fn unmatched_future_reply_emits_warning_not_late() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe().unwrap();
thread::sleep(Duration::from_millis(50));
@@ -1419,7 +1419,7 @@ fn unmatched_future_reply_does_not_update_highest_received_seq() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe().unwrap();
client.send_probe().unwrap();
thread::sleep(Duration::from_millis(50));
@@ -1523,7 +1523,7 @@ fn matched_reply_with_reversed_monotonic_time_still_emits_event() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
let base = Instant::now() + Duration::from_secs(1);
let send_ts = ClientTimestamp {
@@ -1566,7 +1566,7 @@ fn process_received_packet_uses_supplied_receive_metadata() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe_at(ClientTimestamp::now()).unwrap();
let recv_ts = ClientTimestamp::now();
@@ -1613,7 +1613,7 @@ fn process_received_packet_uses_supplied_receive_metadata_for_late_reply() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe_at(ClientTimestamp::now()).unwrap();
thread::sleep(Duration::from_millis(60));
@@ -1663,7 +1663,7 @@ fn receive_metadata_does_not_broaden_malformed_warning() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
let events = client
.process_received_packet(
@@ -1754,7 +1754,7 @@ fn send_probe_wraps_wire_sequence_at_u32_max() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
let session = client.session.as_mut().unwrap();
session.next_wire_seq = u32::MAX;
@@ -1811,7 +1811,7 @@ fn wrapped_reply_after_u32_max_is_not_late() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
let session = client.session.as_mut().unwrap();
session.next_wire_seq = u32::MAX;
session.next_logical_seq = 41;
@@ -1848,7 +1848,7 @@ fn send_probe_after_sending_done_is_noop() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.session.as_mut().unwrap().sending_done = true;
let events = client.send_probe().unwrap();
@@ -1926,7 +1926,7 @@ fn recv_buffer_uses_negotiated_packet_length() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
let buf_size = client.recv_buffer_size();
assert!(
buf_size > 4096,
@@ -1954,7 +1954,7 @@ fn short_echo_reply_does_not_emit_echo_reply() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe().unwrap();
let mut packet = echo_reply_packet(TOKEN, 0, &params, &TimestampFields::default(), None);
@@ -1986,7 +1986,7 @@ fn overlong_echo_reply_does_not_emit_echo_reply() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe().unwrap();
let mut packet = echo_reply_packet(TOKEN, 0, &params, &TimestampFields::default(), None);
@@ -2036,7 +2036,7 @@ fn overlong_datagram_detection_uses_extra_receive_byte() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
assert_eq!(
client.recv_buffer.len(),
echo_packet_len(false, &params) + 1
@@ -2083,7 +2083,7 @@ fn exact_length_echo_reply_still_emits_echo_reply() {
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
client.send_probe().unwrap();
let events = client.recv_once().unwrap();
@@ -283,7 +283,7 @@ pub(super) fn open_client_with_echo_server(params: &Params) -> (Client, FakeServ
..default_test_config(server.addr)
};
let mut client = Client::connect(config).unwrap();
assert_open_started(client.open(ClientTimestamp::now()).unwrap());
assert_open_started(client.open().unwrap());
(client, server)
}
+1 -1
View File
@@ -29,7 +29,7 @@ fn connect_applies_configured_ipv4_ttl_before_open_and_close_preserves_it() {
assert_eq!(socket_ttl(&client.socket, client.remote).unwrap(), 64);
client.open(ClientTimestamp::now()).unwrap();
client.open().unwrap();
server.join();
client.close(ClientTimestamp::now()).unwrap();
+1 -1
View File
@@ -94,7 +94,7 @@ impl ManagedClient {
.transpose()?;
let mut client = Client::connect(config)?;
let outcome = client.open(ClientTimestamp::now())?;
let outcome = client.open()?;
publish_open_outcome(&hub, &outcome);
let cancellation = CancellationToken::new();
+9 -9
View File
@@ -98,7 +98,7 @@ fn hmac_close_success_sends_authenticated_close_and_closes_session() {
config.hmac_key = Some(key);
let mut client = Client::connect(config).unwrap();
let outcome = client.open(ClientTimestamp::now()).unwrap();
let outcome = client.open().unwrap();
assert_started(outcome, &params);
let events = client.close(ClientTimestamp::now()).unwrap();
@@ -132,7 +132,7 @@ fn missing_client_key_against_hmac_required_server_times_out() {
let mut client = Client::connect(config).unwrap();
assert!(matches!(
client.open(ClientTimestamp::now()),
client.open(),
Err(ClientError::OpenTimeout)
));
@@ -157,7 +157,7 @@ fn wrong_client_key_against_hmac_required_server_times_out() {
let mut client = Client::connect(config).unwrap();
assert!(matches!(
client.open(ClientTimestamp::now()),
client.open(),
Err(ClientError::OpenTimeout)
));
@@ -185,7 +185,7 @@ fn bad_hmac_echo_reply_is_rejected_without_echo_reply_event() {
};
let mut client = Client::connect(config).unwrap();
let outcome = client.open(ClientTimestamp::now()).unwrap();
let outcome = client.open().unwrap();
assert_started(outcome, &params);
let sent = client.send_probe().unwrap();
@@ -229,7 +229,7 @@ fn hmac_open_reply_with_bad_hmac_fails_with_protocol_error() {
let mut client = Client::connect(config).unwrap();
assert!(matches!(
client.open(ClientTimestamp::now()),
client.open(),
Err(ClientError::Protocol(ProtoError::BadHmac))
));
server.join();
@@ -247,7 +247,7 @@ fn non_hmac_client_open_does_not_set_hmac_flag() {
config.hmac_key = None;
let mut client = Client::connect(config).unwrap();
let outcome = client.open(ClientTimestamp::now()).unwrap();
let outcome = client.open().unwrap();
assert_started(outcome, &params);
let observations = server.observations(1);
@@ -304,7 +304,7 @@ fn backend_hmac_correct_key_succeeds() {
config.hmac_key = Some(key);
let mut client = Client::connect(config).unwrap();
let outcome = client.open(ClientTimestamp::now()).unwrap();
let outcome = client.open().unwrap();
assert!(matches!(outcome, OpenOutcome::Started { .. }));
let sent = client.send_probe().unwrap();
@@ -327,7 +327,7 @@ fn backend_hmac_wrong_key_fails() {
let mut client = Client::connect(config).unwrap();
assert!(matches!(
client.open(ClientTimestamp::now()),
client.open(),
Err(ClientError::OpenTimeout)
));
}
@@ -342,7 +342,7 @@ fn backend_hmac_missing_key_fails() {
let mut client = Client::connect(config).unwrap();
assert!(matches!(
client.open(ClientTimestamp::now()),
client.open(),
Err(ClientError::OpenTimeout)
));
}
+1 -1
View File
@@ -128,7 +128,7 @@ fn backend_large_packet_smoke() {
})
.unwrap();
let outcome = client.open(ClientTimestamp::now()).unwrap();
let outcome = client.open().unwrap();
assert!(matches!(outcome, irtt_client::OpenOutcome::Started { .. }));
client.send_probe().unwrap();
+7 -7
View File
@@ -167,7 +167,7 @@ fn strict_open_rejects_changed_compatibility_params_from_server() {
config.server_addr = server.addr.to_string();
let mut client = Client::connect(config).unwrap();
assert!(matches!(
client.open(irtt_client::ClientTimestamp::now()),
client.open(),
Err(ClientError::NegotiationRejected { .. })
));
server.join();
@@ -379,7 +379,7 @@ fn backend_basic_open_echo_close() {
let peer = BackendPeer::start_open_echo(params.clone(), None);
let mut client = Client::connect(config_for_params(peer.addr(), &params)).unwrap();
let outcome = client.open(ClientTimestamp::now()).unwrap();
let outcome = client.open().unwrap();
assert!(matches!(outcome, irtt_client::OpenOutcome::Started { .. }));
let sent = client.send_probe().unwrap();
@@ -400,7 +400,7 @@ fn backend_ttl_smoke() {
config.socket_config.ttl = Some(64);
let mut client = Client::connect(config).unwrap();
let outcome = client.open(ClientTimestamp::now()).unwrap();
let outcome = client.open().unwrap();
assert!(matches!(outcome, irtt_client::OpenOutcome::Started { .. }));
let sent = client.send_probe().unwrap();
@@ -420,7 +420,7 @@ fn dscp_configured_open_close_smoke() {
let server = start_open_server(params.clone(), None);
let mut client = Client::connect(config_for_params(server.addr, &params)).unwrap();
let outcome = client.open(ClientTimestamp::now()).unwrap();
let outcome = client.open().unwrap();
assert!(matches!(outcome, irtt_client::OpenOutcome::Started { .. }));
client.close(ClientTimestamp::now()).unwrap();
server.join();
@@ -438,7 +438,7 @@ fn backend_received_stats_smoke() {
let peer = BackendPeer::start_open_echo(params.clone(), None);
let mut client = Client::connect(config_for_params(peer.addr(), &params)).unwrap();
client.open(ClientTimestamp::now()).unwrap();
client.open().unwrap();
client.send_probe().unwrap();
let events = client.recv_once().unwrap();
assert_eq!(events.len(), 1);
@@ -461,7 +461,7 @@ fn backend_timestamp_smoke() {
let peer = BackendPeer::start_open_echo(params.clone(), None);
let mut client = Client::connect(config_for_params(peer.addr(), &params)).unwrap();
client.open(ClientTimestamp::now()).unwrap();
client.open().unwrap();
client.send_probe().unwrap();
let events = client.recv_once().unwrap();
assert_eq!(events.len(), 1);
@@ -508,7 +508,7 @@ fn backend_clock_smoke() {
let peer = BackendPeer::start_open_echo(params.clone(), None);
let mut client = Client::connect(config_for_params(peer.addr(), &params)).unwrap();
client.open(ClientTimestamp::now()).unwrap();
client.open().unwrap();
client.send_probe().unwrap();
let events = client.recv_once().unwrap();
assert_eq!(events.len(), 1);
+3 -3
View File
@@ -112,7 +112,7 @@ fn server_fill_strict_rejects_removed_fill() {
let server = start_open_server(returned, None);
let mut client = Client::connect(config_for_params(server.addr, &requested)).unwrap();
assert!(matches!(
client.open(ClientTimestamp::now()),
client.open(),
Err(ClientError::NegotiationRejected { .. })
));
server.join();
@@ -129,7 +129,7 @@ fn server_fill_strict_rejects_different_fill_value() {
let server = start_open_server(returned, None);
let mut client = Client::connect(config_for_params(server.addr, &requested)).unwrap();
assert!(matches!(
client.open(ClientTimestamp::now()),
client.open(),
Err(ClientError::NegotiationRejected { .. })
));
server.join();
@@ -145,7 +145,7 @@ fn server_fill_strict_rejects_unexpected_fill_from_server() {
let server = start_open_server(returned, None);
let mut client = Client::connect(config_for_params(server.addr, &requested)).unwrap();
assert!(matches!(
client.open(ClientTimestamp::now()),
client.open(),
Err(ClientError::NegotiationRejected { .. })
));
server.join();
+1 -1
View File
@@ -216,7 +216,7 @@ where
{
let server = start_one_probe_server(server_params, timestamps, hmac_key);
let mut client = Client::connect(build_config(server.addr)).unwrap();
let negotiated = assert_started(client.open(ClientTimestamp::now()).unwrap());
let negotiated = assert_started(client.open().unwrap());
let sent_events = client.send_probe().unwrap();
assert_eq!(sent_events.len(), 1);