@@ -85,10 +85,10 @@ func parseNetwork(net string) (afnet string, proto int, err error) {
85
85
func resolveAddr (op , net , addr string , deadline time.Time ) (Addr , error ) {
86
86
afnet , _ , err := parseNetwork (net )
87
87
if err != nil {
88
- return nil , & OpError { op , net , nil , err }
88
+ return nil , err
89
89
}
90
90
if op == "dial" && addr == "" {
91
- return nil , & OpError { op , net , nil , errMissingAddress }
91
+ return nil , errMissingAddress
92
92
}
93
93
switch afnet {
94
94
case "unix" , "unixgram" , "unixpacket" :
@@ -148,7 +148,7 @@ func (d *Dialer) Dial(network, address string) (Conn, error) {
148
148
149
149
func dial (net , addr string , la , ra Addr , deadline time.Time ) (c Conn , err error ) {
150
150
if la != nil && la .Network () != ra .Network () {
151
- return nil , & OpError {"dial" , net , ra , errors .New ("mismatched local addr type " + la .Network ())}
151
+ return nil , & OpError {Op : "dial" , Net : net , Addr : ra , Err : errors .New ("mismatched local address type " + la .Network ())}
152
152
}
153
153
switch ra := ra .(type ) {
154
154
case * TCPAddr :
@@ -164,7 +164,7 @@ func dial(net, addr string, la, ra Addr, deadline time.Time) (c Conn, err error)
164
164
la , _ := la .(* UnixAddr )
165
165
c , err = dialUnix (net , la , ra , deadline )
166
166
default :
167
- err = & OpError {"dial" , net + " " + addr , ra , UnknownNetworkError ( net ) }
167
+ err = & OpError {Op : "dial" , Net : net , Addr : ra , Err : & AddrError { Err : "unexpected address type" , Addr : addr } }
168
168
}
169
169
if err != nil {
170
170
return nil , err
@@ -186,15 +186,16 @@ func (a stringAddr) String() string { return a.addr }
186
186
func Listen (net , laddr string ) (Listener , error ) {
187
187
la , err := resolveAddr ("listen" , net , laddr , noDeadline )
188
188
if err != nil {
189
- return nil , err
189
+ return nil , & OpError { Op : "listen" , Net : net , Addr : nil , Err : err }
190
190
}
191
191
switch la := la .(type ) {
192
192
case * TCPAddr :
193
193
return ListenTCP (net , la )
194
194
case * UnixAddr :
195
195
return ListenUnix (net , la )
196
+ default :
197
+ return nil , & OpError {Op : "listen" , Net : net , Addr : la , Err : & AddrError {Err : "unexpected address type" , Addr : laddr }}
196
198
}
197
- return nil , UnknownNetworkError (net )
198
199
}
199
200
200
201
// ListenPacket announces on the local network address laddr.
@@ -204,7 +205,7 @@ func Listen(net, laddr string) (Listener, error) {
204
205
func ListenPacket (net , laddr string ) (PacketConn , error ) {
205
206
la , err := resolveAddr ("listen" , net , laddr , noDeadline )
206
207
if err != nil {
207
- return nil , err
208
+ return nil , & OpError { Op : "listen" , Net : net , Addr : nil , Err : err }
208
209
}
209
210
switch la := la .(type ) {
210
211
case * UDPAddr :
@@ -213,6 +214,7 @@ func ListenPacket(net, laddr string) (PacketConn, error) {
213
214
return ListenIP (net , la )
214
215
case * UnixAddr :
215
216
return ListenUnixgram (net , la )
217
+ default :
218
+ return nil , & OpError {Op : "listen" , Net : net , Addr : la , Err : & AddrError {Err : "unexpected address type" , Addr : laddr }}
216
219
}
217
- return nil , UnknownNetworkError (net )
218
220
}
0 commit comments