mirror of
https://github.com/golang/go
synced 2024-11-22 04:44:39 -07:00
net: simplify dial
R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/12884044
This commit is contained in:
parent
3b4da67ee3
commit
88411547d4
@ -146,30 +146,26 @@ func (d *Dialer) Dial(network, address string) (Conn, error) {
|
|||||||
return resolveAndDial(network, address, d.LocalAddr, d.deadline())
|
return resolveAndDial(network, address, d.LocalAddr, d.deadline())
|
||||||
}
|
}
|
||||||
|
|
||||||
func dial(net, addr string, la, ra Addr, deadline time.Time) (c Conn, err error) {
|
func dial(net, addr string, la, ra Addr, deadline time.Time) (Conn, error) {
|
||||||
if la != nil && la.Network() != ra.Network() {
|
if la != nil && la.Network() != ra.Network() {
|
||||||
return nil, &OpError{Op: "dial", Net: net, Addr: ra, Err: errors.New("mismatched local address type " + la.Network())}
|
return nil, &OpError{Op: "dial", Net: net, Addr: ra, Err: errors.New("mismatched local address type " + la.Network())}
|
||||||
}
|
}
|
||||||
switch ra := ra.(type) {
|
switch ra := ra.(type) {
|
||||||
case *TCPAddr:
|
case *TCPAddr:
|
||||||
la, _ := la.(*TCPAddr)
|
la, _ := la.(*TCPAddr)
|
||||||
c, err = dialTCP(net, la, ra, deadline)
|
return dialTCP(net, la, ra, deadline)
|
||||||
case *UDPAddr:
|
case *UDPAddr:
|
||||||
la, _ := la.(*UDPAddr)
|
la, _ := la.(*UDPAddr)
|
||||||
c, err = dialUDP(net, la, ra, deadline)
|
return dialUDP(net, la, ra, deadline)
|
||||||
case *IPAddr:
|
case *IPAddr:
|
||||||
la, _ := la.(*IPAddr)
|
la, _ := la.(*IPAddr)
|
||||||
c, err = dialIP(net, la, ra, deadline)
|
return dialIP(net, la, ra, deadline)
|
||||||
case *UnixAddr:
|
case *UnixAddr:
|
||||||
la, _ := la.(*UnixAddr)
|
la, _ := la.(*UnixAddr)
|
||||||
c, err = dialUnix(net, la, ra, deadline)
|
return dialUnix(net, la, ra, deadline)
|
||||||
default:
|
default:
|
||||||
err = &OpError{Op: "dial", Net: net, Addr: ra, Err: &AddrError{Err: "unexpected address type", Addr: addr}}
|
return nil, &OpError{Op: "dial", Net: net, Addr: ra, Err: &AddrError{Err: "unexpected address type", Addr: addr}}
|
||||||
}
|
}
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type stringAddr struct {
|
type stringAddr struct {
|
||||||
|
Loading…
Reference in New Issue
Block a user