@@ -136,6 +136,7 @@ impl StunAgent {
136
136
& mut self ,
137
137
msg : MessageBuilder < ' _ > ,
138
138
to : SocketAddr ,
139
+ now : Instant ,
139
140
) -> Result < Transmit < ' _ > , StunError > {
140
141
if msg. has_class ( MessageClass :: Request ) {
141
142
if self
@@ -146,7 +147,7 @@ impl StunAgent {
146
147
}
147
148
let transaction_id = msg. transaction_id ( ) ;
148
149
let mut state = StunRequestState :: new ( msg, self . transport , self . local_addr , to) ;
149
- let StunRequestPollRet :: SendData ( transmit) = state. poll ( Instant :: now ( ) ) else {
150
+ let StunRequestPollRet :: SendData ( transmit) = state. poll ( now) else {
150
151
return Err ( StunError :: ProtocolViolation ) ;
151
152
} ;
152
153
let transmit = transmit. into_owned ( ) ;
@@ -713,7 +714,7 @@ pub(crate) mod tests {
713
714
. build ( ) ;
714
715
let msg = Message :: builder_request ( BINDING ) ;
715
716
let transaction_id = msg. transaction_id ( ) ;
716
- let transmit = agent. send ( msg, remote_addr) . unwrap ( ) ;
717
+ let transmit = agent. send ( msg, remote_addr, Instant :: now ( ) ) . unwrap ( ) ;
717
718
let now = Instant :: now ( ) ;
718
719
assert_eq ! ( transmit. transport, TransportType :: Udp ) ;
719
720
assert_eq ! ( transmit. from, local_addr) ;
@@ -744,7 +745,7 @@ pub(crate) mod tests {
744
745
MessageType :: from_class_method ( MessageClass :: Indication , BINDING ) ,
745
746
transaction_id,
746
747
) ;
747
- let transmit = agent. send ( msg, remote_addr) . unwrap ( ) ;
748
+ let transmit = agent. send ( msg, remote_addr, Instant :: now ( ) ) . unwrap ( ) ;
748
749
assert_eq ! ( transmit. transport, TransportType :: Udp ) ;
749
750
assert_eq ! ( transmit. from, local_addr) ;
750
751
assert_eq ! ( transmit. to, remote_addr) ;
@@ -783,7 +784,7 @@ pub(crate) mod tests {
783
784
msg. add_message_integrity ( & local_credentials. clone ( ) . into ( ) , IntegrityAlgorithm :: Sha1 )
784
785
. unwrap ( ) ;
785
786
println ! ( "send" ) ;
786
- let transmit = agent. send ( msg, remote_addr) . unwrap ( ) ;
787
+ let transmit = agent. send ( msg, remote_addr, Instant :: now ( ) ) . unwrap ( ) ;
787
788
println ! ( "sent" ) ;
788
789
789
790
let request = Message :: from_bytes ( & transmit. data ) . unwrap ( ) ;
@@ -827,7 +828,7 @@ pub(crate) mod tests {
827
828
. build ( ) ;
828
829
let msg = Message :: builder_request ( BINDING ) ;
829
830
let transaction_id = msg. transaction_id ( ) ;
830
- agent. send ( msg, remote_addr) . unwrap ( ) ;
831
+ agent. send ( msg, remote_addr, Instant :: now ( ) ) . unwrap ( ) ;
831
832
let mut now = Instant :: now ( ) ;
832
833
loop {
833
834
match agent. poll ( now) {
@@ -859,7 +860,7 @@ pub(crate) mod tests {
859
860
860
861
let msg = Message :: builder_request ( BINDING ) ;
861
862
let transaction_id = msg. transaction_id ( ) ;
862
- let transmit = agent. send ( msg, remote_addr) . unwrap ( ) ;
863
+ let transmit = agent. send ( msg, remote_addr, Instant :: now ( ) ) . unwrap ( ) ;
863
864
864
865
let request = Message :: from_bytes ( & transmit. data ) . unwrap ( ) ;
865
866
@@ -899,7 +900,7 @@ pub(crate) mod tests {
899
900
let transaction_id = msg. transaction_id ( ) ;
900
901
msg. add_message_integrity ( & local_credentials. into ( ) , IntegrityAlgorithm :: Sha1 )
901
902
. unwrap ( ) ;
902
- let transmit = agent. send ( msg, remote_addr) . unwrap ( ) ;
903
+ let transmit = agent. send ( msg, remote_addr, Instant :: now ( ) ) . unwrap ( ) ;
903
904
904
905
let request = Message :: from_bytes ( & transmit. data ) . unwrap ( ) ;
905
906
@@ -938,7 +939,7 @@ pub(crate) mod tests {
938
939
let transaction_id = msg. transaction_id ( ) ;
939
940
msg. add_message_integrity ( & local_credentials. into ( ) , IntegrityAlgorithm :: Sha1 )
940
941
. unwrap ( ) ;
941
- let transmit = agent. send ( msg, remote_addr) . unwrap ( ) ;
942
+ let transmit = agent. send ( msg, remote_addr, Instant :: now ( ) ) . unwrap ( ) ;
942
943
943
944
let request = Message :: from_bytes ( & transmit. data ) . unwrap ( ) ;
944
945
@@ -978,7 +979,7 @@ pub(crate) mod tests {
978
979
let mut msg = Message :: builder_request ( BINDING ) ;
979
980
msg. add_message_integrity ( & local_credentials. clone ( ) . into ( ) , IntegrityAlgorithm :: Sha1 )
980
981
. unwrap ( ) ;
981
- let transmit = agent. send ( msg, remote_addr) . unwrap ( ) ;
982
+ let transmit = agent. send ( msg, remote_addr, Instant :: now ( ) ) . unwrap ( ) ;
982
983
983
984
let request = Message :: from_bytes ( & transmit. data ) . unwrap ( ) ;
984
985
@@ -1015,7 +1016,7 @@ pub(crate) mod tests {
1015
1016
assert ! ( !agent. is_validated_peer( remote_addr) ) ;
1016
1017
1017
1018
let msg = Message :: builder_request ( BINDING ) ;
1018
- let transmit = agent. send ( msg, remote_addr) . unwrap ( ) ;
1019
+ let transmit = agent. send ( msg, remote_addr, Instant :: now ( ) ) . unwrap ( ) ;
1019
1020
1020
1021
let request = Message :: from_bytes ( & transmit. data ) . unwrap ( ) ;
1021
1022
@@ -1048,7 +1049,7 @@ pub(crate) mod tests {
1048
1049
1049
1050
let msg = Message :: builder_request ( BINDING ) ;
1050
1051
let transaction_id = msg. transaction_id ( ) ;
1051
- let _transmit = agent. send ( msg, remote_addr) . unwrap ( ) ;
1052
+ let _transmit = agent. send ( msg, remote_addr, Instant :: now ( ) ) . unwrap ( ) ;
1052
1053
1053
1054
let mut request = agent. mut_request_transaction ( transaction_id) . unwrap ( ) ;
1054
1055
assert_eq ! ( request. agent( ) . local_addr( ) , local_addr) ;
@@ -1076,7 +1077,7 @@ pub(crate) mod tests {
1076
1077
1077
1078
let msg = Message :: builder_request ( BINDING ) ;
1078
1079
let transaction_id = msg. transaction_id ( ) ;
1079
- let _transmit = agent. send ( msg, remote_addr) . unwrap ( ) ;
1080
+ let _transmit = agent. send ( msg, remote_addr, Instant :: now ( ) ) . unwrap ( ) ;
1080
1081
1081
1082
let mut request = agent. mut_request_transaction ( transaction_id) . unwrap ( ) ;
1082
1083
assert_eq ! ( request. agent( ) . local_addr( ) , local_addr) ;
@@ -1109,7 +1110,9 @@ pub(crate) mod tests {
1109
1110
1110
1111
let msg = Message :: builder_request ( BINDING ) ;
1111
1112
let transaction_id = msg. transaction_id ( ) ;
1112
- let transmit = agent. send ( msg. clone ( ) , remote_addr) . unwrap ( ) ;
1113
+ let transmit = agent
1114
+ . send ( msg. clone ( ) , remote_addr, Instant :: now ( ) )
1115
+ . unwrap ( ) ;
1113
1116
let to = transmit. to ;
1114
1117
let request = Message :: from_bytes ( transmit. data ( ) ) . unwrap ( ) ;
1115
1118
@@ -1119,7 +1122,7 @@ pub(crate) mod tests {
1119
1122
. unwrap ( ) ;
1120
1123
1121
1124
assert ! ( matches!(
1122
- agent. send( msg, remote_addr) ,
1125
+ agent. send( msg, remote_addr, Instant :: now ( ) ) ,
1123
1126
Err ( StunError :: AlreadyInProgress )
1124
1127
) ) ;
1125
1128
@@ -1168,7 +1171,7 @@ pub(crate) mod tests {
1168
1171
1169
1172
let msg = Message :: builder_request ( BINDING ) ;
1170
1173
let transaction_id = msg. transaction_id ( ) ;
1171
- let transmit = agent. send ( msg, remote_addr) . unwrap ( ) ;
1174
+ let transmit = agent. send ( msg, remote_addr, Instant :: now ( ) ) . unwrap ( ) ;
1172
1175
assert_eq ! ( transmit. transport, TransportType :: Tcp ) ;
1173
1176
assert_eq ! ( transmit. from, local_addr) ;
1174
1177
assert_eq ! ( transmit. to, remote_addr) ;
0 commit comments