@@ -12,11 +12,6 @@ import (
12
12
"unsafe"
13
13
)
14
14
15
- var (
16
- lookupPort = oldLookupPort
17
- lookupIP = oldLookupIP
18
- )
19
-
20
15
func getprotobyname (name string ) (proto int , err error ) {
21
16
p , err := syscall .GetProtoByName (name )
22
17
if err != nil {
@@ -71,61 +66,7 @@ func lookupHost(ctx context.Context, name string) ([]string, error) {
71
66
return addrs , nil
72
67
}
73
68
74
- func gethostbyname (name string ) (addrs []IPAddr , err error ) {
75
- // caller already acquired thread
76
- h , err := syscall .GetHostByName (name )
77
- if err != nil {
78
- return nil , os .NewSyscallError ("gethostbyname" , err )
79
- }
80
- switch h .AddrType {
81
- case syscall .AF_INET :
82
- i := 0
83
- addrs = make ([]IPAddr , 100 ) // plenty of room to grow
84
- for p := (* [100 ](* [4 ]byte ))(unsafe .Pointer (h .AddrList )); i < cap (addrs ) && p [i ] != nil ; i ++ {
85
- addrs [i ] = IPAddr {IP : IPv4 (p [i ][0 ], p [i ][1 ], p [i ][2 ], p [i ][3 ])}
86
- }
87
- addrs = addrs [0 :i ]
88
- default : // TODO(vcc): Implement non IPv4 address lookups.
89
- return nil , syscall .EWINDOWS
90
- }
91
- return addrs , nil
92
- }
93
-
94
- func oldLookupIP (ctx context.Context , name string ) ([]IPAddr , error ) {
95
- // GetHostByName return value is stored in thread local storage.
96
- // Start new os thread before the call to prevent races.
97
- type ret struct {
98
- addrs []IPAddr
99
- err error
100
- }
101
- ch := make (chan ret , 1 )
102
- go func () {
103
- acquireThread ()
104
- defer releaseThread ()
105
- runtime .LockOSThread ()
106
- defer runtime .UnlockOSThread ()
107
- addrs , err := gethostbyname (name )
108
- ch <- ret {addrs : addrs , err : err }
109
- }()
110
- select {
111
- case r := <- ch :
112
- if r .err != nil {
113
- r .err = & DNSError {Err : r .err .Error (), Name : name }
114
- }
115
- return r .addrs , r .err
116
- case <- ctx .Done ():
117
- // TODO(bradfitz,brainman): cancel the ongoing
118
- // gethostbyname? For now we just let it finish and
119
- // write to the buffered channel.
120
- return nil , & DNSError {
121
- Name : name ,
122
- Err : ctx .Err ().Error (),
123
- IsTimeout : ctx .Err () == context .DeadlineExceeded ,
124
- }
125
- }
126
- }
127
-
128
- func newLookupIP (ctx context.Context , name string ) ([]IPAddr , error ) {
69
+ func lookupIP (ctx context.Context , name string ) ([]IPAddr , error ) {
129
70
// TODO(bradfitz,brainman): use ctx?
130
71
131
72
type ret struct {
@@ -184,53 +125,7 @@ func newLookupIP(ctx context.Context, name string) ([]IPAddr, error) {
184
125
}
185
126
}
186
127
187
- func getservbyname (network , service string ) (int , error ) {
188
- acquireThread ()
189
- defer releaseThread ()
190
- switch network {
191
- case "tcp4" , "tcp6" :
192
- network = "tcp"
193
- case "udp4" , "udp6" :
194
- network = "udp"
195
- }
196
- s , err := syscall .GetServByName (service , network )
197
- if err != nil {
198
- return 0 , os .NewSyscallError ("getservbyname" , err )
199
- }
200
- return int (syscall .Ntohs (s .Port )), nil
201
- }
202
-
203
- func oldLookupPort (ctx context.Context , network , service string ) (int , error ) {
204
- // GetServByName return value is stored in thread local storage.
205
- // Start new os thread before the call to prevent races.
206
- type result struct {
207
- port int
208
- err error
209
- }
210
- ch := make (chan result ) // unbuffered
211
- go func () {
212
- acquireThread ()
213
- defer releaseThread ()
214
- runtime .LockOSThread ()
215
- defer runtime .UnlockOSThread ()
216
- port , err := getservbyname (network , service )
217
- select {
218
- case ch <- result {port : port , err : err }:
219
- case <- ctx .Done ():
220
- }
221
- }()
222
- select {
223
- case r := <- ch :
224
- if r .err != nil {
225
- r .err = & DNSError {Err : r .err .Error (), Name : network + "/" + service }
226
- }
227
- return r .port , r .err
228
- case <- ctx .Done ():
229
- return 0 , mapErr (ctx .Err ())
230
- }
231
- }
232
-
233
- func newLookupPort (ctx context.Context , network , service string ) (int , error ) {
128
+ func lookupPort (ctx context.Context , network , service string ) (int , error ) {
234
129
// TODO(bradfitz): finish ctx plumbing. Nothing currently depends on this.
235
130
acquireThread ()
236
131
defer releaseThread ()
0 commit comments