link_flags_unix.go 570 B

1234567891011121314151617181920212223242526272829303132
  1. //go:build unix
  2. package libbox
  3. import (
  4. "net"
  5. "syscall"
  6. )
  7. // copied from net.linkFlags
  8. func linkFlags(rawFlags uint32) net.Flags {
  9. var f net.Flags
  10. if rawFlags&syscall.IFF_UP != 0 {
  11. f |= net.FlagUp
  12. }
  13. if rawFlags&syscall.IFF_RUNNING != 0 {
  14. f |= net.FlagRunning
  15. }
  16. if rawFlags&syscall.IFF_BROADCAST != 0 {
  17. f |= net.FlagBroadcast
  18. }
  19. if rawFlags&syscall.IFF_LOOPBACK != 0 {
  20. f |= net.FlagLoopback
  21. }
  22. if rawFlags&syscall.IFF_POINTOPOINT != 0 {
  23. f |= net.FlagPointToPoint
  24. }
  25. if rawFlags&syscall.IFF_MULTICAST != 0 {
  26. f |= net.FlagMulticast
  27. }
  28. return f
  29. }