@@ -53,10 +53,10 @@ struct Handles<'h> {
5353#[ derive( Clone ) ]
5454struct Params {
5555 local_peer_id : PeerId ,
56- listener_port : u16 ,
57- pwp_external_port : u16 ,
58- pwp_local_addr_v4 : Ipv4Addr ,
59- pwp_local_addr_v6 : Ipv6Addr ,
56+ internal_pwp_port : u16 ,
57+ external_pwp_port : u16 ,
58+ local_ip_v4 : Ipv4Addr ,
59+ local_ip_v6 : Ipv6Addr ,
6060 bind_interface : Option < String > ,
6161}
6262
@@ -74,7 +74,7 @@ async fn start_upnp(
7474 return internal_port;
7575 } ;
7676
77- let external_addr = port_opener. external_ip ( ) ;
77+ let external_addr = port_opener. external_addr ( ) ;
7878 log:: info!( "UPnP: {proto:?} port mapping succeeded, public addr: {external_addr}" ) ;
7979
8080 task:: spawn ( async move {
@@ -103,37 +103,38 @@ pub async fn single_torrent(
103103 }
104104 let ctx: & Context = ctx. borrow ( ) ;
105105
106- let listener_port = cfg. pwp_port . unwrap_or_else ( || net:: port_from_hash ( & metainfo_uri. as_ref ( ) ) ) ;
107- let pwp_local_addr_v4 = net:: get_bind_addr_v4 ( cfg. bind_interface . as_deref ( ) ) ;
108- let pwp_local_addr_v6 = net:: get_bind_addr_v6 ( cfg. bind_interface . as_deref ( ) ) ;
106+ let internal_pwp_port =
107+ cfg. pwp_port . unwrap_or_else ( || net:: port_from_hash ( & metainfo_uri. as_ref ( ) ) ) ;
108+ let local_addr_v4 = net:: get_bind_addr_v4 ( cfg. bind_interface . as_deref ( ) ) ;
109+ let local_addr_v6 = net:: get_bind_addr_v6 ( cfg. bind_interface . as_deref ( ) ) ;
109110
110111 // create port mappings and get external port to send correct listening port to trackers and
111112 // peers later
112113 let external_pwp_port = if cfg. use_upnp {
113114 let _g = ctx. pwp_runtime . enter ( ) ;
114- let ( _public_pwp_port , public_utp_port ) = join ! (
115+ let ( _external_tcp_port , external_udp_port ) = join ! (
115116 start_upnp(
116- listener_port ,
117+ internal_pwp_port ,
117118 cfg. pwp_port,
118119 upnp:: PortMappingProtocol :: TCP ,
119120 cfg. bind_interface. as_deref( )
120121 ) ,
121122 start_upnp(
122- listener_port ,
123+ internal_pwp_port ,
123124 cfg. pwp_port,
124125 upnp:: PortMappingProtocol :: UDP ,
125126 cfg. bind_interface. as_deref( )
126127 ) ,
127128 ) ;
128- public_utp_port
129+ external_udp_port
129130 } else {
130- listener_port
131+ internal_pwp_port
131132 } ;
132133
133134 let utp_handle = ops:: launch_utp (
134135 & ctx. pwp_runtime ,
135- SocketAddrV4 :: new ( pwp_local_addr_v4 , listener_port ) ,
136- SocketAddrV6 :: new ( pwp_local_addr_v6 , listener_port , 0 , 0 ) ,
136+ SocketAddrV4 :: new ( local_addr_v4 , internal_pwp_port ) ,
137+ SocketAddrV6 :: new ( local_addr_v6 , internal_pwp_port , 0 , 0 ) ,
137138 cfg. bind_interface . clone ( ) ,
138139 ) ;
139140
@@ -152,10 +153,10 @@ pub async fn single_torrent(
152153
153154 let params = Params {
154155 local_peer_id : cfg. local_peer_id ,
155- listener_port ,
156- pwp_external_port : external_pwp_port,
157- pwp_local_addr_v4 ,
158- pwp_local_addr_v6 ,
156+ internal_pwp_port ,
157+ external_pwp_port,
158+ local_ip_v4 : local_addr_v4 ,
159+ local_ip_v6 : local_addr_v6 ,
159160 bind_interface : cfg. bind_interface ,
160161 } ;
161162
@@ -220,10 +221,10 @@ async fn preliminary_stage(
220221 let ctx = ops:: PreliminaryCtx :: new (
221222 magnet_link,
222223 params. local_peer_id ,
223- params. pwp_external_port ,
224- params. listener_port ,
225- params. pwp_local_addr_v4 ,
226- params. pwp_local_addr_v6 ,
224+ params. external_pwp_port ,
225+ params. internal_pwp_port ,
226+ params. local_ip_v4 ,
227+ params. local_ip_v6 ,
227228 params. bind_interface . clone ( ) ,
228229 ) ;
229230
@@ -250,13 +251,13 @@ async fn preliminary_stage(
250251 info_hash,
251252 dht_cmds. clone ( ) ,
252253 peer_reporter. clone ( ) ,
253- params. pwp_external_port ,
254+ params. external_pwp_port ,
254255 ) )
255256 } ) ;
256257
257258 tasks. spawn_on (
258259 ops:: run_pwp_listener (
259- SocketAddr :: new ( params. pwp_local_addr_v4 . into ( ) , params. listener_port ) ,
260+ SocketAddr :: new ( params. local_ip_v4 . into ( ) , params. internal_pwp_port ) ,
260261 params. bind_interface . clone ( ) ,
261262 peer_reporter. clone ( ) ,
262263 ) ,
@@ -265,7 +266,7 @@ async fn preliminary_stage(
265266
266267 tasks. spawn_on (
267268 ops:: run_pwp_listener (
268- SocketAddr :: new ( params. pwp_local_addr_v6 . into ( ) , params. listener_port ) ,
269+ SocketAddr :: new ( params. local_ip_v6 . into ( ) , params. internal_pwp_port ) ,
269270 params. bind_interface ,
270271 peer_reporter. clone ( ) ,
271272 ) ,
@@ -320,10 +321,10 @@ async fn main_stage(
320321 let ctx: ops:: Handle < _ > = ops:: MainCtx :: new (
321322 metainfo,
322323 params. local_peer_id ,
323- params. pwp_external_port ,
324- params. listener_port ,
325- params. pwp_local_addr_v4 ,
326- params. pwp_local_addr_v6 ,
324+ params. external_pwp_port ,
325+ params. internal_pwp_port ,
326+ params. local_ip_v4 ,
327+ params. local_ip_v6 ,
327328 params. bind_interface . clone ( ) ,
328329 ) ?;
329330
@@ -353,13 +354,13 @@ async fn main_stage(
353354 info_hash,
354355 dht_cmds. clone ( ) ,
355356 peer_reporter. clone ( ) ,
356- params. pwp_external_port ,
357+ params. external_pwp_port ,
357358 ) )
358359 } ) ;
359360
360361 tasks. spawn_on (
361362 ops:: run_pwp_listener (
362- SocketAddr :: new ( params. pwp_local_addr_v4 . into ( ) , params. listener_port ) ,
363+ SocketAddr :: new ( params. local_ip_v4 . into ( ) , params. internal_pwp_port ) ,
363364 params. bind_interface . clone ( ) ,
364365 peer_reporter. clone ( ) ,
365366 ) ,
@@ -368,7 +369,7 @@ async fn main_stage(
368369
369370 tasks. spawn_on (
370371 ops:: run_pwp_listener (
371- SocketAddr :: new ( params. pwp_local_addr_v6 . into ( ) , params. listener_port ) ,
372+ SocketAddr :: new ( params. local_ip_v6 . into ( ) , params. internal_pwp_port ) ,
372373 params. bind_interface ,
373374 peer_reporter. clone ( ) ,
374375 ) ,
0 commit comments