1
0
mirror of https://github.com/golang/go synced 2024-11-19 22:04:44 -07:00

net: add lookup IP hook for testing

This change adds testHookLookIP to enable to inject DNS name to IP
address mappings for Happ{y,yish,ier} Eyeballs dial testing.

Change-Id: I8ac04a594e1e2bd77909528df0552889914a7790
Reviewed-on: https://go-review.googlesource.com/8399
Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
Mikio Hara 2015-04-04 01:11:10 +09:00
parent bec4481dd3
commit 35b3db253c
2 changed files with 9 additions and 2 deletions

7
src/net/hook.go Normal file
View File

@ -0,0 +1,7 @@
// Copyright 2015 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package net
var testHookLookupIP = func(fn func(string) ([]IPAddr, error), host string) ([]IPAddr, error) { return fn(host) }

View File

@ -46,7 +46,7 @@ var lookupGroup singleflight
// is always owned by the caller.
func lookupIPMerge(host string) (addrs []IPAddr, err error) {
addrsi, err, shared := lookupGroup.Do(host, func() (interface{}, error) {
return lookupIP(host)
return testHookLookupIP(lookupIP, host)
})
return lookupIPReturn(addrsi, err, shared)
}
@ -84,7 +84,7 @@ func lookupIPDeadline(host string, deadline time.Time) (addrs []IPAddr, err erro
defer t.Stop()
ch := lookupGroup.DoChan(host, func() (interface{}, error) {
return lookupIP(host)
return testHookLookupIP(lookupIP, host)
})
select {