link_flags_linux.go 553 B

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