macios_ext.go 582 B

1234567891011121314151617181920212223242526
  1. // Copyright (c) Tailscale Inc & AUTHORS
  2. // SPDX-License-Identifier: BSD-3-Clause
  3. //go:build ts_macext && (darwin || ios)
  4. package resolver
  5. import (
  6. "errors"
  7. "net"
  8. "tailscale.com/net/netmon"
  9. "tailscale.com/net/netns"
  10. )
  11. func init() {
  12. initListenConfig = initListenConfigNetworkExtension
  13. }
  14. func initListenConfigNetworkExtension(nc *net.ListenConfig, netMon *netmon.Monitor, tunName string) error {
  15. nif, ok := netMon.InterfaceState().Interface[tunName]
  16. if !ok {
  17. return errors.New("utun not found")
  18. }
  19. return netns.SetListenConfigInterfaceIndex(nc, nif.Interface.Index)
  20. }