OLD | NEW |
1 // Copyright 2010 The Go Authors. All rights reserved. | 1 // Copyright 2010 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 package net | 5 package net |
6 | 6 |
7 import "os" | 7 import "os" |
8 | 8 |
9 // Dial connects to the remote address raddr on the network net. | 9 // Dial connects to the remote address raddr on the network net. |
10 // If the string laddr is not empty, it is used as the local address | 10 // If the string laddr is not empty, it is used as the local address |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 if raddr != "" { | 52 if raddr != "" { |
53 if ra, err = ResolveUDPAddr(raddr); err != nil { | 53 if ra, err = ResolveUDPAddr(raddr); err != nil { |
54 goto Error | 54 goto Error |
55 } | 55 } |
56 } | 56 } |
57 c, err := DialUDP(net, la, ra) | 57 c, err := DialUDP(net, la, ra) |
58 if err != nil { | 58 if err != nil { |
59 return nil, err | 59 return nil, err |
60 } | 60 } |
61 return c, nil | 61 return c, nil |
62 » case "unix", "unixgram": | 62 » case "unix", "unixgram", "unixpacket": |
63 var la, ra *UnixAddr | 63 var la, ra *UnixAddr |
64 if raddr != "" { | 64 if raddr != "" { |
65 if ra, err = ResolveUnixAddr(net, raddr); err != nil { | 65 if ra, err = ResolveUnixAddr(net, raddr); err != nil { |
66 goto Error | 66 goto Error |
67 } | 67 } |
68 } | 68 } |
69 if laddr != "" { | 69 if laddr != "" { |
70 if la, err = ResolveUnixAddr(net, laddr); err != nil { | 70 if la, err = ResolveUnixAddr(net, laddr); err != nil { |
71 goto Error | 71 goto Error |
72 } | 72 } |
(...skipping 22 matching lines...) Expand all Loading... |
95 return c, nil | 95 return c, nil |
96 | 96 |
97 } | 97 } |
98 err = UnknownNetworkError(net) | 98 err = UnknownNetworkError(net) |
99 Error: | 99 Error: |
100 return nil, &OpError{"dial", net + " " + raddr, nil, err} | 100 return nil, &OpError{"dial", net + " " + raddr, nil, err} |
101 } | 101 } |
102 | 102 |
103 // Listen announces on the local network address laddr. | 103 // Listen announces on the local network address laddr. |
104 // The network string net must be a stream-oriented | 104 // The network string net must be a stream-oriented |
105 // network: "tcp", "tcp4", "tcp6", or "unix". | 105 // network: "tcp", "tcp4", "tcp6", or "unix", or "unixpacket". |
106 func Listen(net, laddr string) (l Listener, err os.Error) { | 106 func Listen(net, laddr string) (l Listener, err os.Error) { |
107 switch net { | 107 switch net { |
108 case "tcp", "tcp4", "tcp6": | 108 case "tcp", "tcp4", "tcp6": |
109 var la *TCPAddr | 109 var la *TCPAddr |
110 if laddr != "" { | 110 if laddr != "" { |
111 if la, err = ResolveTCPAddr(laddr); err != nil { | 111 if la, err = ResolveTCPAddr(laddr); err != nil { |
112 return nil, err | 112 return nil, err |
113 } | 113 } |
114 } | 114 } |
115 l, err := ListenTCP(net, la) | 115 l, err := ListenTCP(net, la) |
116 if err != nil { | 116 if err != nil { |
117 return nil, err | 117 return nil, err |
118 } | 118 } |
119 return l, nil | 119 return l, nil |
120 » case "unix": | 120 » case "unix", "unixpacket": |
121 var la *UnixAddr | 121 var la *UnixAddr |
122 if laddr != "" { | 122 if laddr != "" { |
123 if la, err = ResolveUnixAddr(net, laddr); err != nil { | 123 if la, err = ResolveUnixAddr(net, laddr); err != nil { |
124 return nil, err | 124 return nil, err |
125 } | 125 } |
126 } | 126 } |
127 l, err := ListenUnix(net, la) | 127 l, err := ListenUnix(net, la) |
128 if err != nil { | 128 if err != nil { |
129 return nil, err | 129 return nil, err |
130 } | 130 } |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 } | 170 } |
171 } | 171 } |
172 c, err := ListenIP(net, la) | 172 c, err := ListenIP(net, la) |
173 if err != nil { | 173 if err != nil { |
174 return nil, err | 174 return nil, err |
175 } | 175 } |
176 return c, nil | 176 return c, nil |
177 } | 177 } |
178 return nil, UnknownNetworkError(net) | 178 return nil, UnknownNetworkError(net) |
179 } | 179 } |
OLD | NEW |