summaryrefslogtreecommitdiffhomepage
path: root/test/benchmarks/harness/machine.go
diff options
context:
space:
mode:
Diffstat (limited to 'test/benchmarks/harness/machine.go')
-rw-r--r--test/benchmarks/harness/machine.go18
1 files changed, 12 insertions, 6 deletions
diff --git a/test/benchmarks/harness/machine.go b/test/benchmarks/harness/machine.go
index 88e5e841b..405b646e8 100644
--- a/test/benchmarks/harness/machine.go
+++ b/test/benchmarks/harness/machine.go
@@ -16,6 +16,7 @@ package harness
import (
"context"
+ "errors"
"net"
"os/exec"
@@ -66,14 +67,19 @@ func (l *localMachine) RunCommand(cmd string, args ...string) (string, error) {
// IPAddress implements Machine.IPAddress.
func (l *localMachine) IPAddress() (net.IP, error) {
- conn, err := net.Dial("udp", "8.8.8.8:80")
+ addrs, err := net.InterfaceAddrs()
if err != nil {
- return nil, err
+ return net.IP{}, err
}
- defer conn.Close()
-
- addr := conn.LocalAddr().(*net.UDPAddr)
- return addr.IP, nil
+ for _, a := range addrs {
+ if ipnet, ok := a.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
+ if ipnet.IP.To4() != nil {
+ return ipnet.IP, nil
+ }
+ }
+ }
+ // Unable to locate non-loopback address.
+ return nil, errors.New("no IPAddress available")
}
// CleanUp implements Machine.CleanUp and does nothing for localMachine.