@@ -34,7 +34,7 @@ use crate::{
3434 self , Close , DataBlocked , Datagram , FrameStruct , NewToken , ObservedAddr , StreamDataBlocked ,
3535 StreamsBlocked ,
3636 } ,
37- iroh_hp ,
37+ n0_nat_traversal ,
3838 packet:: {
3939 FixedLengthConnectionIdParser , Header , InitialHeader , InitialPacket , LongType , Packet ,
4040 PacketNumber , PartialDecode , SpaceId ,
@@ -309,7 +309,8 @@ pub struct Connection {
309309 // paths. Or a set together with a minimum. Or something.
310310 abandoned_paths : FxHashSet < PathId > ,
311311
312- iroh_hp : iroh_hp:: State ,
312+ /// State for n0's (<https://n0.computer>) nat traversal protocol.
313+ n0_nat_traversal : n0_nat_traversal:: State ,
313314 qlog : QlogSink ,
314315}
315316
@@ -483,8 +484,7 @@ impl Connection {
483484 max_path_id_with_cids : PathId :: ZERO ,
484485 abandoned_paths : Default :: default ( ) ,
485486
486- // iroh's nat traversal
487- iroh_hp : Default :: default ( ) ,
487+ n0_nat_traversal : Default :: default ( ) ,
488488 qlog,
489489 } ;
490490 if path_validated {
@@ -1999,7 +1999,7 @@ impl Connection {
19991999 buf : & mut Vec < u8 > ,
20002000 path_id : PathId ,
20012001 ) -> Option < Transmit > {
2002- let server_side = self . iroh_hp . server_side_mut ( ) . ok ( ) ?;
2002+ let server_side = self . n0_nat_traversal . server_side_mut ( ) . ok ( ) ?;
20032003 let probe = server_side. next_probe ( ) ?;
20042004 if !self . paths . get ( & path_id) ?. data . validated {
20052005 // Path is not usable for probing
@@ -5150,7 +5150,7 @@ impl Connection {
51505150 }
51515151 }
51525152 Frame :: AddAddress ( addr) => {
5153- let client_state = match self . iroh_hp . client_side_mut ( ) {
5153+ let client_state = match self . n0_nat_traversal . client_side_mut ( ) {
51545154 Ok ( state) => state,
51555155 Err ( err) => {
51565156 return Err ( TransportError :: PROTOCOL_VIOLATION ( format ! (
@@ -5168,7 +5168,7 @@ impl Connection {
51685168 Ok ( maybe_added) => {
51695169 if let Some ( added) = maybe_added {
51705170 self . events . push_back ( Event :: NatTraversal (
5171- iroh_hp :: Event :: AddressAdded ( added) ,
5171+ n0_nat_traversal :: Event :: AddressAdded ( added) ,
51725172 ) ) ;
51735173 }
51745174 }
@@ -5178,7 +5178,7 @@ impl Connection {
51785178 }
51795179 }
51805180 Frame :: RemoveAddress ( addr) => {
5181- let client_state = match self . iroh_hp . client_side_mut ( ) {
5181+ let client_state = match self . n0_nat_traversal . client_side_mut ( ) {
51825182 Ok ( state) => state,
51835183 Err ( err) => {
51845184 return Err ( TransportError :: PROTOCOL_VIOLATION ( format ! (
@@ -5187,15 +5187,14 @@ impl Connection {
51875187 }
51885188 } ;
51895189 if let Some ( removed_addr) = client_state. remove_remote_address ( addr) {
5190- self . events
5191- . push_back ( Event :: NatTraversal ( iroh_hp:: Event :: AddressRemoved (
5192- removed_addr,
5193- ) ) ) ;
5190+ self . events . push_back ( Event :: NatTraversal (
5191+ n0_nat_traversal:: Event :: AddressRemoved ( removed_addr) ,
5192+ ) ) ;
51945193 }
51955194 }
51965195 Frame :: ReachOut ( reach_out) => {
51975196 let ipv6 = self . is_ipv6 ( ) ;
5198- let server_state = match self . iroh_hp . server_side_mut ( ) {
5197+ let server_state = match self . n0_nat_traversal . server_side_mut ( ) {
51995198 Ok ( state) => state,
52005199 Err ( err) => {
52015200 return Err ( TransportError :: PROTOCOL_VIOLATION ( format ! (
@@ -6207,11 +6206,14 @@ impl Connection {
62076206 {
62086207 let max_local_addresses = max_remotely_allowed_remote_addresses. get ( ) ;
62096208 let max_remote_addresses = max_locally_allowed_remote_addresses. get ( ) ;
6210- self . iroh_hp =
6211- iroh_hp:: State :: new ( max_remote_addresses, max_local_addresses, self . side ( ) ) ;
6209+ self . n0_nat_traversal = n0_nat_traversal:: State :: new (
6210+ max_remote_addresses,
6211+ max_local_addresses,
6212+ self . side ( ) ,
6213+ ) ;
62126214 debug ! (
62136215 %max_remote_addresses, %max_local_addresses,
6214- "iroh hole punching negotiated"
6216+ "n0's nat traversal negotiated"
62156217 ) ;
62166218
62176219 match self . side ( ) {
@@ -6236,7 +6238,7 @@ impl Connection {
62366238 }
62376239 }
62386240 } else {
6239- debug ! ( "iroh nat traversal enabled for both endpoints, but multipath is missing" )
6241+ debug ! ( "n0 nat traversal enabled for both endpoints, but multipath is missing" )
62406242 }
62416243 }
62426244
@@ -6591,8 +6593,11 @@ impl Connection {
65916593 }
65926594
65936595 /// Add addresses the local endpoint considers are reachable for nat traversal.
6594- pub fn add_nat_traversal_address ( & mut self , address : SocketAddr ) -> Result < ( ) , iroh_hp:: Error > {
6595- if let Some ( added) = self . iroh_hp . add_local_address ( address) ? {
6596+ pub fn add_nat_traversal_address (
6597+ & mut self ,
6598+ address : SocketAddr ,
6599+ ) -> Result < ( ) , n0_nat_traversal:: Error > {
6600+ if let Some ( added) = self . n0_nat_traversal . add_local_address ( address) ? {
65966601 self . spaces [ SpaceId :: Data ] . pending . add_address . insert ( added) ;
65976602 } ;
65986603 Ok ( ( ) )
@@ -6604,8 +6609,8 @@ impl Connection {
66046609 pub fn remove_nat_traversal_address (
66056610 & mut self ,
66066611 address : SocketAddr ,
6607- ) -> Result < ( ) , iroh_hp :: Error > {
6608- if let Some ( removed) = self . iroh_hp . remove_local_address ( address) ? {
6612+ ) -> Result < ( ) , n0_nat_traversal :: Error > {
6613+ if let Some ( removed) = self . n0_nat_traversal . remove_local_address ( address) ? {
66096614 self . spaces [ SpaceId :: Data ]
66106615 . pending
66116616 . remove_address
@@ -6615,14 +6620,18 @@ impl Connection {
66156620 }
66166621
66176622 /// Get the current local nat traversal addresses
6618- pub fn get_local_nat_traversal_addresses ( & self ) -> Result < Vec < SocketAddr > , iroh_hp:: Error > {
6619- self . iroh_hp . get_local_nat_traversal_addresses ( )
6623+ pub fn get_local_nat_traversal_addresses (
6624+ & self ,
6625+ ) -> Result < Vec < SocketAddr > , n0_nat_traversal:: Error > {
6626+ self . n0_nat_traversal . get_local_nat_traversal_addresses ( )
66206627 }
66216628
66226629 /// Get the currently advertised nat traversal addresses by the server
6623- pub fn get_remote_nat_traversal_addresses ( & self ) -> Result < Vec < SocketAddr > , iroh_hp:: Error > {
6630+ pub fn get_remote_nat_traversal_addresses (
6631+ & self ,
6632+ ) -> Result < Vec < SocketAddr > , n0_nat_traversal:: Error > {
66246633 Ok ( self
6625- . iroh_hp
6634+ . n0_nat_traversal
66266635 . client_side ( ) ?
66276636 . get_remote_nat_traversal_addresses ( ) )
66286637 }
@@ -6670,14 +6679,14 @@ impl Connection {
66706679 pub fn initiate_nat_traversal_round (
66716680 & mut self ,
66726681 now : Instant ,
6673- ) -> Result < Vec < SocketAddr > , iroh_hp :: Error > {
6682+ ) -> Result < Vec < SocketAddr > , n0_nat_traversal :: Error > {
66746683 if self . state . is_closed ( ) {
6675- return Err ( iroh_hp :: Error :: Closed ) ;
6684+ return Err ( n0_nat_traversal :: Error :: Closed ) ;
66766685 }
66776686
66786687 let ipv6 = self . is_ipv6 ( ) ;
6679- let client_state = self . iroh_hp . client_side_mut ( ) ?;
6680- let iroh_hp :: NatTraversalRound {
6688+ let client_state = self . n0_nat_traversal . client_side_mut ( ) ?;
6689+ let n0_nat_traversal :: NatTraversalRound {
66816690 new_round,
66826691 reach_out_at,
66836692 addresses_to_probe,
@@ -6724,7 +6733,7 @@ impl Connection {
67246733 probed_addresses. push ( remote) ;
67256734 }
67266735 Err ( e) => {
6727- self . iroh_hp
6736+ self . n0_nat_traversal
67286737 . client_side_mut ( )
67296738 . expect ( "validated" )
67306739 . report_in_continuation ( id, e) ;
@@ -6736,11 +6745,11 @@ impl Connection {
67366745 if let Some ( err) = err {
67376746 // We failed to probe any addresses, bail out
67386747 if probed_addresses. is_empty ( ) {
6739- return Err ( iroh_hp :: Error :: Multipath ( err) ) ;
6748+ return Err ( n0_nat_traversal :: Error :: Multipath ( err) ) ;
67406749 }
67416750 }
67426751
6743- self . iroh_hp
6752+ self . n0_nat_traversal
67446753 . client_side_mut ( )
67456754 . expect ( "connection side validated" )
67466755 . set_round_path_ids ( path_ids) ;
@@ -6754,10 +6763,10 @@ impl Connection {
67546763 /// successfully open.
67556764 fn continue_nat_traversal_round ( & mut self , now : Instant ) -> Option < bool > {
67566765 let ipv6 = self . is_ipv6 ( ) ;
6757- let client_state = self . iroh_hp . client_side_mut ( ) . ok ( ) ?;
6766+ let client_state = self . n0_nat_traversal . client_side_mut ( ) . ok ( ) ?;
67586767 let ( id, address) = client_state. continue_nat_traversal_round ( ipv6) ?;
67596768 let open_result = self . open_nat_traversal_path ( now, address) ;
6760- let client_state = self . iroh_hp . client_side_mut ( ) . expect ( "validated" ) ;
6769+ let client_state = self . n0_nat_traversal . client_side_mut ( ) . expect ( "validated" ) ;
67616770 match open_result {
67626771 Ok ( None ) => Some ( true ) ,
67636772 Ok ( Some ( ( path_id, _remote) ) ) => {
@@ -7029,8 +7038,8 @@ pub enum Event {
70297038 DatagramsUnblocked ,
70307039 /// (Multi)Path events
70317040 Path ( PathEvent ) ,
7032- /// Iroh 's nat traversal events
7033- NatTraversal ( iroh_hp :: Event ) ,
7041+ /// n0 's nat traversal events
7042+ NatTraversal ( n0_nat_traversal :: Event ) ,
70347043}
70357044
70367045impl From < PathEvent > for Event {
0 commit comments