sys_bsd.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. // Copyright 2014 The Go Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style
  3. // license that can be found in the LICENSE file.
  4. // +build dragonfly netbsd
  5. package ipv4
  6. import (
  7. "net"
  8. "syscall"
  9. )
  10. type sysSockoptLen int32
  11. var (
  12. ctlOpts = [ctlMax]ctlOpt{
  13. ctlTTL: {sysIP_RECVTTL, 1, marshalTTL, parseTTL},
  14. ctlDst: {sysIP_RECVDSTADDR, net.IPv4len, marshalDst, parseDst},
  15. ctlInterface: {sysIP_RECVIF, syscall.SizeofSockaddrDatalink, marshalInterface, parseInterface},
  16. }
  17. sockOpts = [ssoMax]sockOpt{
  18. ssoTOS: {sysIP_TOS, ssoTypeInt},
  19. ssoTTL: {sysIP_TTL, ssoTypeInt},
  20. ssoMulticastTTL: {sysIP_MULTICAST_TTL, ssoTypeByte},
  21. ssoMulticastInterface: {sysIP_MULTICAST_IF, ssoTypeInterface},
  22. ssoMulticastLoopback: {sysIP_MULTICAST_LOOP, ssoTypeInt},
  23. ssoReceiveTTL: {sysIP_RECVTTL, ssoTypeInt},
  24. ssoReceiveDst: {sysIP_RECVDSTADDR, ssoTypeInt},
  25. ssoReceiveInterface: {sysIP_RECVIF, ssoTypeInt},
  26. ssoHeaderPrepend: {sysIP_HDRINCL, ssoTypeInt},
  27. ssoJoinGroup: {sysIP_ADD_MEMBERSHIP, ssoTypeIPMreq},
  28. ssoLeaveGroup: {sysIP_DROP_MEMBERSHIP, ssoTypeIPMreq},
  29. }
  30. )