]> Cypherpunks repositories - gostls13.git/commitdiff
net: add conversion from AddrPort to TCPAddr to complement existing inverse
authorJason A. Donenfeld <Jason@zx2c4.com>
Wed, 10 Nov 2021 00:04:12 +0000 (01:04 +0100)
committerJason A. Donenfeld <Jason@zx2c4.com>
Thu, 11 Nov 2021 11:00:33 +0000 (11:00 +0000)
We already have various member functions of TCPAddr that return an
AddrPort, but we don't have a helper function to go from a AddrPort to a
TCPAddr. UDP has this, but it was left out of TCP. This commit adds the
corresponding function.

Updates #49298.

Change-Id: I85732cf34f47c792fe13a6b4af64fd4b0e85d06a
Reviewed-on: https://go-review.googlesource.com/c/go/+/362596
Trust: Jason A. Donenfeld <Jason@zx2c4.com>
Run-TryBot: Jason A. Donenfeld <Jason@zx2c4.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/net/tcpsock.go

index fddb018aab846831472d223bd650ec2ecd18570f..6bad0e8f8bb93b70ffb3d6bfff53817e7f83f834 100644 (file)
@@ -96,6 +96,17 @@ func ResolveTCPAddr(network, address string) (*TCPAddr, error) {
        return addrs.forResolve(network, address).(*TCPAddr), nil
 }
 
+// TCPAddrFromAddrPort returns addr as a TCPAddr. If addr.IsValid() is false,
+// then the returned TCPAddr will contain a nil IP field, indicating an
+// address family-agnostic unspecified address.
+func TCPAddrFromAddrPort(addr netip.AddrPort) *TCPAddr {
+       return &TCPAddr{
+               IP:   addr.Addr().AsSlice(),
+               Zone: addr.Addr().Zone(),
+               Port: int(addr.Port()),
+       }
+}
+
 // TCPConn is an implementation of the Conn interface for TCP network
 // connections.
 type TCPConn struct {