@@ -2315,6 +2315,29 @@ pub mod api {
2315
2315
}
2316
2316
#[ derive( Clone , Debug ) ]
2317
2317
#[ non_exhaustive]
2318
+ #[ doc = " The remote address was changed before the handshake was complete" ]
2319
+ pub struct HandshakeRemoteAddressChangeObserved < ' a > {
2320
+ pub local_addr : SocketAddress < ' a > ,
2321
+ #[ doc = " The newly observed remote address" ]
2322
+ pub remote_addr : SocketAddress < ' a > ,
2323
+ #[ doc = " The remote address established from the initial packet" ]
2324
+ pub initial_remote_addr : SocketAddress < ' a > ,
2325
+ }
2326
+ #[ cfg( any( test, feature = "testing" ) ) ]
2327
+ impl < ' a > crate :: event:: snapshot:: Fmt for HandshakeRemoteAddressChangeObserved < ' a > {
2328
+ fn fmt ( & self , fmt : & mut core:: fmt:: Formatter ) -> core:: fmt:: Result {
2329
+ let mut fmt = fmt. debug_struct ( "HandshakeRemoteAddressChangeObserved" ) ;
2330
+ fmt. field ( "local_addr" , & self . local_addr ) ;
2331
+ fmt. field ( "remote_addr" , & self . remote_addr ) ;
2332
+ fmt. field ( "initial_remote_addr" , & self . initial_remote_addr ) ;
2333
+ fmt. finish ( )
2334
+ }
2335
+ }
2336
+ impl < ' a > Event for HandshakeRemoteAddressChangeObserved < ' a > {
2337
+ const NAME : & ' static str = "transport:handshake_remote_address_change_observed" ;
2338
+ }
2339
+ #[ derive( Clone , Debug ) ]
2340
+ #[ non_exhaustive]
2318
2341
#[ doc = " ConnectionId updated" ]
2319
2342
pub struct ConnectionIdUpdated < ' a > {
2320
2343
pub path_id : u64 ,
@@ -3921,6 +3944,21 @@ pub mod tracing {
3921
3944
tracing :: event ! ( target : "datagram_dropped" , parent : id , tracing :: Level :: DEBUG , { local_addr = tracing :: field :: debug ( local_addr) , remote_addr = tracing :: field :: debug ( remote_addr) , destination_cid = tracing :: field :: debug ( destination_cid) , source_cid = tracing :: field :: debug ( source_cid) , len = tracing :: field :: debug ( len) , reason = tracing :: field :: debug ( reason) } ) ;
3922
3945
}
3923
3946
#[ inline]
3947
+ fn on_handshake_remote_address_change_observed (
3948
+ & mut self ,
3949
+ context : & mut Self :: ConnectionContext ,
3950
+ _meta : & api:: ConnectionMeta ,
3951
+ event : & api:: HandshakeRemoteAddressChangeObserved ,
3952
+ ) {
3953
+ let id = context. id ( ) ;
3954
+ let api:: HandshakeRemoteAddressChangeObserved {
3955
+ local_addr,
3956
+ remote_addr,
3957
+ initial_remote_addr,
3958
+ } = event;
3959
+ tracing :: event ! ( target : "handshake_remote_address_change_observed" , parent : id , tracing :: Level :: DEBUG , { local_addr = tracing :: field :: debug ( local_addr) , remote_addr = tracing :: field :: debug ( remote_addr) , initial_remote_addr = tracing :: field :: debug ( initial_remote_addr) } ) ;
3960
+ }
3961
+ #[ inline]
3924
3962
fn on_connection_id_updated (
3925
3963
& mut self ,
3926
3964
context : & mut Self :: ConnectionContext ,
@@ -5978,6 +6016,32 @@ pub mod builder {
5978
6016
}
5979
6017
}
5980
6018
#[ derive( Clone , Debug ) ]
6019
+ #[ doc = " The remote address was changed before the handshake was complete" ]
6020
+ pub struct HandshakeRemoteAddressChangeObserved < ' a > {
6021
+ pub local_addr : SocketAddress < ' a > ,
6022
+ #[ doc = " The newly observed remote address" ]
6023
+ pub remote_addr : SocketAddress < ' a > ,
6024
+ #[ doc = " The remote address established from the initial packet" ]
6025
+ pub initial_remote_addr : SocketAddress < ' a > ,
6026
+ }
6027
+ impl < ' a > IntoEvent < api:: HandshakeRemoteAddressChangeObserved < ' a > >
6028
+ for HandshakeRemoteAddressChangeObserved < ' a >
6029
+ {
6030
+ #[ inline]
6031
+ fn into_event ( self ) -> api:: HandshakeRemoteAddressChangeObserved < ' a > {
6032
+ let HandshakeRemoteAddressChangeObserved {
6033
+ local_addr,
6034
+ remote_addr,
6035
+ initial_remote_addr,
6036
+ } = self ;
6037
+ api:: HandshakeRemoteAddressChangeObserved {
6038
+ local_addr : local_addr. into_event ( ) ,
6039
+ remote_addr : remote_addr. into_event ( ) ,
6040
+ initial_remote_addr : initial_remote_addr. into_event ( ) ,
6041
+ }
6042
+ }
6043
+ }
6044
+ #[ derive( Clone , Debug ) ]
5981
6045
#[ doc = " ConnectionId updated" ]
5982
6046
pub struct ConnectionIdUpdated < ' a > {
5983
6047
pub path_id : u64 ,
@@ -7073,6 +7137,18 @@ mod traits {
7073
7137
let _ = meta;
7074
7138
let _ = event;
7075
7139
}
7140
+ #[ doc = "Called when the `HandshakeRemoteAddressChangeObserved` event is triggered" ]
7141
+ #[ inline]
7142
+ fn on_handshake_remote_address_change_observed (
7143
+ & mut self ,
7144
+ context : & mut Self :: ConnectionContext ,
7145
+ meta : & api:: ConnectionMeta ,
7146
+ event : & api:: HandshakeRemoteAddressChangeObserved ,
7147
+ ) {
7148
+ let _ = context;
7149
+ let _ = meta;
7150
+ let _ = event;
7151
+ }
7076
7152
#[ doc = "Called when the `ConnectionIdUpdated` event is triggered" ]
7077
7153
#[ inline]
7078
7154
fn on_connection_id_updated (
@@ -7783,6 +7859,16 @@ mod traits {
7783
7859
( self . 1 ) . on_datagram_dropped ( & mut context. 1 , meta, event) ;
7784
7860
}
7785
7861
#[ inline]
7862
+ fn on_handshake_remote_address_change_observed (
7863
+ & mut self ,
7864
+ context : & mut Self :: ConnectionContext ,
7865
+ meta : & api:: ConnectionMeta ,
7866
+ event : & api:: HandshakeRemoteAddressChangeObserved ,
7867
+ ) {
7868
+ ( self . 0 ) . on_handshake_remote_address_change_observed ( & mut context. 0 , meta, event) ;
7869
+ ( self . 1 ) . on_handshake_remote_address_change_observed ( & mut context. 1 , meta, event) ;
7870
+ }
7871
+ #[ inline]
7786
7872
fn on_connection_id_updated (
7787
7873
& mut self ,
7788
7874
context : & mut Self :: ConnectionContext ,
@@ -8348,6 +8434,11 @@ mod traits {
8348
8434
fn on_datagram_received ( & mut self , event : builder:: DatagramReceived ) ;
8349
8435
#[ doc = "Publishes a `DatagramDropped` event to the publisher's subscriber" ]
8350
8436
fn on_datagram_dropped ( & mut self , event : builder:: DatagramDropped ) ;
8437
+ #[ doc = "Publishes a `HandshakeRemoteAddressChangeObserved` event to the publisher's subscriber" ]
8438
+ fn on_handshake_remote_address_change_observed (
8439
+ & mut self ,
8440
+ event : builder:: HandshakeRemoteAddressChangeObserved ,
8441
+ ) ;
8351
8442
#[ doc = "Publishes a `ConnectionIdUpdated` event to the publisher's subscriber" ]
8352
8443
fn on_connection_id_updated ( & mut self , event : builder:: ConnectionIdUpdated ) ;
8353
8444
#[ doc = "Publishes a `EcnStateChanged` event to the publisher's subscriber" ]
@@ -8665,6 +8756,21 @@ mod traits {
8665
8756
self . subscriber . on_event ( & self . meta , & event) ;
8666
8757
}
8667
8758
#[ inline]
8759
+ fn on_handshake_remote_address_change_observed (
8760
+ & mut self ,
8761
+ event : builder:: HandshakeRemoteAddressChangeObserved ,
8762
+ ) {
8763
+ let event = event. into_event ( ) ;
8764
+ self . subscriber . on_handshake_remote_address_change_observed (
8765
+ self . context ,
8766
+ & self . meta ,
8767
+ & event,
8768
+ ) ;
8769
+ self . subscriber
8770
+ . on_connection_event ( self . context , & self . meta , & event) ;
8771
+ self . subscriber . on_event ( & self . meta , & event) ;
8772
+ }
8773
+ #[ inline]
8668
8774
fn on_connection_id_updated ( & mut self , event : builder:: ConnectionIdUpdated ) {
8669
8775
let event = event. into_event ( ) ;
8670
8776
self . subscriber
@@ -9106,6 +9212,7 @@ pub mod testing {
9106
9212
pub datagram_sent : u64 ,
9107
9213
pub datagram_received : u64 ,
9108
9214
pub datagram_dropped : u64 ,
9215
+ pub handshake_remote_address_change_observed : u64 ,
9109
9216
pub connection_id_updated : u64 ,
9110
9217
pub ecn_state_changed : u64 ,
9111
9218
pub connection_migration_denied : u64 ,
@@ -9196,6 +9303,7 @@ pub mod testing {
9196
9303
datagram_sent : 0 ,
9197
9304
datagram_received : 0 ,
9198
9305
datagram_dropped : 0 ,
9306
+ handshake_remote_address_change_observed : 0 ,
9199
9307
connection_id_updated : 0 ,
9200
9308
ecn_state_changed : 0 ,
9201
9309
connection_migration_denied : 0 ,
@@ -9605,6 +9713,20 @@ pub mod testing {
9605
9713
self . output . push ( out) ;
9606
9714
}
9607
9715
}
9716
+ fn on_handshake_remote_address_change_observed (
9717
+ & mut self ,
9718
+ _context : & mut Self :: ConnectionContext ,
9719
+ meta : & api:: ConnectionMeta ,
9720
+ event : & api:: HandshakeRemoteAddressChangeObserved ,
9721
+ ) {
9722
+ self . handshake_remote_address_change_observed += 1 ;
9723
+ if self . location . is_some ( ) {
9724
+ let meta = crate :: event:: snapshot:: Fmt :: to_snapshot ( meta) ;
9725
+ let event = crate :: event:: snapshot:: Fmt :: to_snapshot ( event) ;
9726
+ let out = format ! ( "{meta:?} {event:?}" ) ;
9727
+ self . output . push ( out) ;
9728
+ }
9729
+ }
9608
9730
fn on_connection_id_updated (
9609
9731
& mut self ,
9610
9732
_context : & mut Self :: ConnectionContext ,
@@ -10037,6 +10159,7 @@ pub mod testing {
10037
10159
pub datagram_sent : u64 ,
10038
10160
pub datagram_received : u64 ,
10039
10161
pub datagram_dropped : u64 ,
10162
+ pub handshake_remote_address_change_observed : u64 ,
10040
10163
pub connection_id_updated : u64 ,
10041
10164
pub ecn_state_changed : u64 ,
10042
10165
pub connection_migration_denied : u64 ,
@@ -10117,6 +10240,7 @@ pub mod testing {
10117
10240
datagram_sent : 0 ,
10118
10241
datagram_received : 0 ,
10119
10242
datagram_dropped : 0 ,
10243
+ handshake_remote_address_change_observed : 0 ,
10120
10244
connection_id_updated : 0 ,
10121
10245
ecn_state_changed : 0 ,
10122
10246
connection_migration_denied : 0 ,
@@ -10511,6 +10635,18 @@ pub mod testing {
10511
10635
self . output . push ( out) ;
10512
10636
}
10513
10637
}
10638
+ fn on_handshake_remote_address_change_observed (
10639
+ & mut self ,
10640
+ event : builder:: HandshakeRemoteAddressChangeObserved ,
10641
+ ) {
10642
+ self . handshake_remote_address_change_observed += 1 ;
10643
+ let event = event. into_event ( ) ;
10644
+ if self . location . is_some ( ) {
10645
+ let event = crate :: event:: snapshot:: Fmt :: to_snapshot ( & event) ;
10646
+ let out = format ! ( "{event:?}" ) ;
10647
+ self . output . push ( out) ;
10648
+ }
10649
+ }
10514
10650
fn on_connection_id_updated ( & mut self , event : builder:: ConnectionIdUpdated ) {
10515
10651
self . connection_id_updated += 1 ;
10516
10652
let event = event. into_event ( ) ;
0 commit comments