LEFT | RIGHT |
(no file at all) | |
1 // Copyright 2009 The Go Authors. All rights reserved. | 1 // Copyright 2009 The Go Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style | 2 // Use of this source code is governed by a BSD-style |
3 // license that can be found in the LICENSE file. | 3 // license that can be found in the LICENSE file. |
4 | 4 |
5 // +build darwin freebsd linux netbsd openbsd windows | 5 // +build darwin freebsd linux netbsd openbsd windows |
6 | 6 |
7 // Sockets | 7 // Sockets |
8 | 8 |
9 package net | 9 package net |
10 | 10 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 if ulsa, err = listenerSockaddr(s, f, ulsa, toAddr); err != nil
{ | 43 if ulsa, err = listenerSockaddr(s, f, ulsa, toAddr); err != nil
{ |
44 closesocket(s) | 44 closesocket(s) |
45 return nil, err | 45 return nil, err |
46 } | 46 } |
47 if err = syscall.Bind(s, ulsa); err != nil { | 47 if err = syscall.Bind(s, ulsa); err != nil { |
48 closesocket(s) | 48 closesocket(s) |
49 return nil, err | 49 return nil, err |
50 } | 50 } |
51 } | 51 } |
52 | 52 |
53 » if fd, err = newFD(s, f, t, net); err != nil { | 53 » if err = syscall.SetNonblock(s, true); err != nil { |
54 closesocket(s) | 54 closesocket(s) |
55 return nil, err | 55 return nil, err |
56 } | 56 } |
| 57 fd = newFD(s, f, t, net) |
57 | 58 |
58 if ursa != nil { | 59 if ursa != nil { |
59 fd.wdeadline.setTime(deadline) | 60 fd.wdeadline.setTime(deadline) |
60 if err = fd.connect(ursa); err != nil { | 61 if err = fd.connect(ursa); err != nil { |
61 closesocket(s) | 62 closesocket(s) |
62 return nil, err | 63 return nil, err |
63 } | 64 } |
64 fd.isConnected = true | 65 fd.isConnected = true |
65 fd.wdeadline.set(0) | 66 fd.wdeadline.set(0) |
66 } | 67 } |
67 | 68 |
68 lsa, _ := syscall.Getsockname(s) | 69 lsa, _ := syscall.Getsockname(s) |
69 laddr := toAddr(lsa) | 70 laddr := toAddr(lsa) |
70 rsa, _ := syscall.Getpeername(s) | 71 rsa, _ := syscall.Getpeername(s) |
71 raddr := toAddr(rsa) | 72 raddr := toAddr(rsa) |
72 fd.setAddr(laddr, raddr) | 73 fd.setAddr(laddr, raddr) |
73 return fd, nil | 74 return fd, nil |
74 } | 75 } |
LEFT | RIGHT |