sys_linux.go 889 B

1234567891011121314151617181920212223242526
  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. package ipv4
  5. type sysSockoptLen int32
  6. var (
  7. sockOpts = [ssoMax]sockOpt{
  8. ssoTOS: {sysIP_TOS, ssoTypeInt},
  9. ssoTTL: {sysIP_TTL, ssoTypeInt},
  10. ssoMulticastTTL: {sysIP_MULTICAST_TTL, ssoTypeInt},
  11. ssoMulticastInterface: {sysIP_MULTICAST_IF, ssoTypeIPMreqn},
  12. ssoMulticastLoopback: {sysIP_MULTICAST_LOOP, ssoTypeInt},
  13. ssoReceiveTTL: {sysIP_RECVTTL, ssoTypeInt},
  14. ssoPacketInfo: {sysIP_PKTINFO, ssoTypeInt},
  15. ssoHeaderPrepend: {sysIP_HDRINCL, ssoTypeInt},
  16. ssoJoinGroup: {sysIP_ADD_MEMBERSHIP, ssoTypeIPMreqn},
  17. ssoLeaveGroup: {sysIP_DROP_MEMBERSHIP, ssoTypeIPMreqn},
  18. }
  19. )
  20. func (pi *sysInetPktinfo) setIfindex(i int) {
  21. pi.Ifindex = int32(i)
  22. }