Skip to content

Commit 8d0d38f

Browse files
committed
nilaway: protect/xdial.go
1 parent c29ca13 commit 8d0d38f

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

intra/protect/xdial.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -233,8 +233,9 @@ func (d *RDial) DialTCP(network string, laddr, raddr *net.TCPAddr) (*net.TCPConn
233233
return DialTCP(d, network, laddr, raddr)
234234
}
235235

236+
// DialTCP creates a net.TCPConn to raddr bound to laddr using dialer d; laddr may be nil.
236237
func DialTCP(d RDialer, network string, laddr, raddr net.Addr) (*net.TCPConn, error) {
237-
if c, err := d.DialBind(network, laddr.String(), raddr.String()); err != nil {
238+
if c, err := d.DialBind(network, addr2str(laddr), addr2str(raddr)); err != nil {
238239
return nil, err
239240
} else if tc, ok := c.(*net.TCPConn); ok {
240241
return tc, nil
@@ -254,8 +255,9 @@ func (d *RDial) DialUDP(network string, laddr, raddr *net.UDPAddr) (*net.UDPConn
254255
return DialUDP(d, network, laddr, raddr)
255256
}
256257

258+
// DialUDP creates a net.UDPConn to raddr bound to laddr using dialer d; laddr may be left nil.
257259
func DialUDP(d RDialer, network string, laddr, raddr net.Addr) (*net.UDPConn, error) {
258-
if c, err := d.DialBind(network, laddr.String(), raddr.String()); err != nil {
260+
if c, err := d.DialBind(network, addr2str(laddr), addr2str(raddr)); err != nil {
259261
return nil, err
260262
} else if uc, ok := c.(*net.UDPConn); ok {
261263
return uc, nil
@@ -315,3 +317,10 @@ func (d *RDial) ProbeICMP(network, local string) (net.PacketConn, error) {
315317
func clos(c io.Closer) {
316318
core.Close(c)
317319
}
320+
321+
func addr2str(a net.Addr) string {
322+
if a == nil || core.IsNil(a) {
323+
return ""
324+
}
325+
return a.String()
326+
}

0 commit comments

Comments
 (0)