mirror of
				https://github.com/tailscale/tailscale.git
				synced 2025-11-03 17:51:28 +01:00 
			
		
		
		
	In prep for most of the package funcs in net/interfaces to become methods in a long-lived netmon.Monitor that can cache things. (Many of the funcs are very heavy to call regularly, whereas the long-lived netmon.Monitor can subscribe to things from the OS and remember answers to questions it's asked regularly later) Updates tailscale/corp#10910 Updates tailscale/corp#18960 Updates #7967 Updates #3299 Change-Id: Ie4e8dedb70136af2d611b990b865a822cd1797e5 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
		
			
				
	
	
		
			45 lines
		
	
	
		
			758 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			758 B
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright (c) Tailscale Inc & AUTHORS
 | 
						|
// SPDX-License-Identifier: BSD-3-Clause
 | 
						|
 | 
						|
package vms
 | 
						|
 | 
						|
import (
 | 
						|
	"net/netip"
 | 
						|
	"runtime"
 | 
						|
	"testing"
 | 
						|
 | 
						|
	"tailscale.com/net/netmon"
 | 
						|
)
 | 
						|
 | 
						|
func deriveBindhost(t *testing.T) string {
 | 
						|
	t.Helper()
 | 
						|
 | 
						|
	ifName, err := netmon.DefaultRouteInterface()
 | 
						|
	if err != nil {
 | 
						|
		t.Fatal(err)
 | 
						|
	}
 | 
						|
 | 
						|
	var ret string
 | 
						|
	err = netmon.ForeachInterfaceAddress(func(i netmon.Interface, prefix netip.Prefix) {
 | 
						|
		if ret != "" || i.Name != ifName {
 | 
						|
			return
 | 
						|
		}
 | 
						|
		ret = prefix.Addr().String()
 | 
						|
	})
 | 
						|
	if ret != "" {
 | 
						|
		return ret
 | 
						|
	}
 | 
						|
	if err != nil {
 | 
						|
		t.Fatal(err)
 | 
						|
	}
 | 
						|
	t.Fatal("can't find a bindhost")
 | 
						|
	return "unreachable"
 | 
						|
}
 | 
						|
 | 
						|
func TestDeriveBindhost(t *testing.T) {
 | 
						|
	if runtime.GOOS != "linux" {
 | 
						|
		t.Skip("requires GOOS=linux")
 | 
						|
	}
 | 
						|
	t.Log(deriveBindhost(t))
 | 
						|
}
 |