@@ -180,7 +180,7 @@ func (tnet *wgtun) dial(network, local, remote string) (net.Conn, error) {
180180// tcp and udp dialers
181181// --------------------------------------------------------------------
182182
183- func fullAddrFrom (ipp netip.AddrPort ) (tcpip.FullAddress , tcpip.NetworkProtocolNumber , bool ) {
183+ func fullAddrFrom (by string , ipp netip.AddrPort ) (tcpip.FullAddress , tcpip.NetworkProtocolNumber , bool ) {
184184 var protoNumber tcpip.NetworkProtocolNumber
185185 var nsdaddr tcpip.Address
186186 if ! ipp .IsValid () {
@@ -194,7 +194,7 @@ func fullAddrFrom(ipp netip.AddrPort) (tcpip.FullAddress, tcpip.NetworkProtocolN
194194 protoNumber = ipv6 .ProtocolNumber
195195 nsdaddr = tcpip .AddrFrom16 (ipp .Addr ().As16 ())
196196 }
197- log .V ("wg: dial: translate ipp: %v - > %v" , ipp , nsdaddr )
197+ log .VV ("wg: dial: %s translate ipp: %v = > %v" , by , ipp , nsdaddr )
198198 return tcpip.FullAddress {
199199 NIC : wgnic ,
200200 Addr : nsdaddr ,
@@ -203,16 +203,16 @@ func fullAddrFrom(ipp netip.AddrPort) (tcpip.FullAddress, tcpip.NetworkProtocolN
203203}
204204
205205func (tnet * wgtun ) DialContextTCPAddrPort (ctx context.Context , addr netip.AddrPort ) (* gonet.TCPConn , error ) {
206- if faddr , protocol , ok := fullAddrFrom (addr ); ok {
206+ if faddr , protocol , ok := fullAddrFrom ("tcp" , addr ); ok {
207207 return gonet .DialContextTCP (ctx , tnet .stack , faddr , protocol )
208208 }
209209 log .W ("wg: %s: tcp: dial: invalid addr %s" , tnet .id , addr )
210210 return nil , errInvalidAddr
211211}
212212
213213func (tnet * wgtun ) DialTCPAddrPort (laddr , raddr netip.AddrPort ) (* gonet.TCPConn , error ) {
214- remote , protocol , _ := fullAddrFrom (raddr ) // prefer "proto" from remote
215- local , _ , _ := fullAddrFrom (laddr )
214+ remote , protocol , _ := fullAddrFrom ("tcp:remote" , raddr ) // prefer "proto" from remote
215+ local , _ , _ := fullAddrFrom ("tcp:local" , laddr )
216216 ctx := context .Background ()
217217 // return gonet.DialTCP(tnet.stack, remote, protocol)
218218 return gonet .DialTCPWithBind (
@@ -225,7 +225,7 @@ func (tnet *wgtun) DialTCPAddrPort(laddr, raddr netip.AddrPort) (*gonet.TCPConn,
225225}
226226
227227func (tnet * wgtun ) ListenTCPAddrPort (addr netip.AddrPort ) (* gonet.TCPListener , error ) {
228- if fa , pn , ok := fullAddrFrom (addr ); ok {
228+ if fa , pn , ok := fullAddrFrom ("tcp:listen" , addr ); ok {
229229 return gonet .ListenTCP (tnet .stack , fa , pn )
230230 }
231231 log .W ("wg: %s: tcp: listen: invalid addr %s" , tnet .id , addr )
@@ -236,13 +236,13 @@ func (tnet *wgtun) DialUDPAddrPort(laddr, raddr netip.AddrPort) (*gonet.UDPConn,
236236 var src , dst * tcpip.FullAddress
237237 var protocol tcpip.NetworkProtocolNumber
238238
239- if srcaddr , srcprotocol , ok := fullAddrFrom (laddr ); ok {
239+ if srcaddr , srcprotocol , ok := fullAddrFrom ("udp:local" , laddr ); ok {
240240 protocol = srcprotocol
241241 if ! srcaddr .Addr .Unspecified () {
242242 src = & srcaddr
243243 } // else: unbound; src must be left nil
244244 } // else: laddr not valid
245- if dstaddr , dstprotocol , ok := fullAddrFrom (raddr ); ok {
245+ if dstaddr , dstprotocol , ok := fullAddrFrom ("udp:remote" , raddr ); ok {
246246 protocol = dstprotocol
247247 if ! dstaddr .Addr .Unspecified () {
248248 dst = & dstaddr
@@ -256,7 +256,7 @@ func (tnet *wgtun) DialUDPAddrPort(laddr, raddr netip.AddrPort) (*gonet.UDPConn,
256256 }
257257
258258 // if src is non-nil, addrs are acquired on wgnic;
259- // ep.Bind - > ep.BindAndThen - > ep.net.BindAndThen - > ep.checkV4Mapped
259+ // ep.Bind = > ep.BindAndThen = > ep.net.BindAndThen = > ep.checkV4Mapped
260260 // github.com/google/gvisor/blob/932d9dc6/pkg/tcpip/stack/addressable_endpoint_state.go#L644
261261 return gonet .DialUDP (tnet .stack , src , dst , protocol )
262262}
0 commit comments