diff options
Diffstat (limited to 'libgo/go/net/sock.go')
-rw-r--r-- | libgo/go/net/sock.go | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/libgo/go/net/sock.go b/libgo/go/net/sock.go index 867e328f12e..70064c307ef 100644 --- a/libgo/go/net/sock.go +++ b/libgo/go/net/sock.go @@ -10,7 +10,6 @@ package net import ( "io" - "reflect" "syscall" ) @@ -28,9 +27,18 @@ func socket(net string, f, t, p int, la, ra syscall.Sockaddr, toAddr func(syscal syscall.CloseOnExec(s) syscall.ForkLock.RUnlock() - setDefaultSockopts(s, f, t) + err = setDefaultSockopts(s, f, t) + if err != nil { + closesocket(s) + return nil, err + } if la != nil { + la, err = listenerSockaddr(s, f, la, toAddr) + if err != nil { + closesocket(s) + return nil, err + } err = syscall.Bind(s, la) if err != nil { closesocket(s) @@ -61,14 +69,6 @@ func socket(net string, f, t, p int, la, ra syscall.Sockaddr, toAddr func(syscal return fd, nil } -type UnknownSocketError struct { - sa syscall.Sockaddr -} - -func (e *UnknownSocketError) Error() string { - return "unknown socket address type " + reflect.TypeOf(e.sa).String() -} - type writerOnly struct { io.Writer } |