defaultroute_bsd.go 610 B

1234567891011121314151617181920212223242526
  1. // Copyright (c) Tailscale Inc & AUTHORS
  2. // SPDX-License-Identifier: BSD-3-Clause
  3. // Common code for FreeBSD and Darwin. This might also work on other
  4. // BSD systems (e.g. OpenBSD) but has not been tested.
  5. // Not used on iOS. See defaultroute_ios.go.
  6. //go:build !ios && (darwin || freebsd)
  7. package interfaces
  8. import "net"
  9. func defaultRoute() (d DefaultRouteDetails, err error) {
  10. idx, err := DefaultRouteInterfaceIndex()
  11. if err != nil {
  12. return d, err
  13. }
  14. iface, err := net.InterfaceByIndex(idx)
  15. if err != nil {
  16. return d, err
  17. }
  18. d.InterfaceName = iface.Name
  19. d.InterfaceIndex = idx
  20. return d, nil
  21. }