// Copyright 2014 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.package ipv4import "syscall"const ( // See /usr/include/linux/in.h. sysSockoptHeaderPrepend = syscall.IP_HDRINCL sysSockoptTOS = syscall.IP_TOS sysSockoptTTL = syscall.IP_TTL sysSockoptMulticastTTL = syscall.IP_MULTICAST_TTL sysSockoptMulticastInterface = syscall.IP_MULTICAST_IF sysSockoptMulticastLoopback = syscall.IP_MULTICAST_LOOP sysSockoptJoinGroup = syscall.IP_ADD_MEMBERSHIP sysSockoptLeaveGroup = syscall.IP_DROP_MEMBERSHIP)const ( // See /usr/include/linux/in.h. sysSockoptReceiveTOS = syscall.IP_RECVTOS sysSockoptReceiveTTL = syscall.IP_RECVTTL sysSockoptPacketInfo = syscall.IP_PKTINFO)const ( sysSizeofNewMulticastReq = 0xc sysSizeofPacketInfo = 0xc)struct sysNewMulticastReq { IP [4]byte Interface [4]byte IfIndex int32}struct sysPacketInfo { IfIndex int32 RoutedIP [4]byte IP [4]byte}func init() { supportsPacketInfo = true}
// Copyright 2014 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package ipv4
import "syscall"
const (
// See /usr/include/linux/in.h.
sysSockoptHeaderPrepend = syscall.IP_HDRINCL
sysSockoptTOS = syscall.IP_TOS
sysSockoptTTL = syscall.IP_TTL
sysSockoptMulticastTTL = syscall.IP_MULTICAST_TTL
sysSockoptMulticastInterface = syscall.IP_MULTICAST_IF
sysSockoptMulticastLoopback = syscall.IP_MULTICAST_LOOP
sysSockoptJoinGroup = syscall.IP_ADD_MEMBERSHIP
sysSockoptLeaveGroup = syscall.IP_DROP_MEMBERSHIP
)
const (
// See /usr/include/linux/in.h.
sysSockoptReceiveTOS = syscall.IP_RECVTOS
sysSockoptReceiveTTL = syscall.IP_RECVTTL
sysSockoptPacketInfo = syscall.IP_PKTINFO
)
const (
sysSizeofNewMulticastReq = 0xc
sysSizeofPacketInfo = 0xc
)
struct sysNewMulticastReq {
IP [4]byte
Interface [4]byte
IfIndex int32
}
struct sysPacketInfo {
IfIndex int32
RoutedIP [4]byte
IP [4]byte
}
func init() {
supportsPacketInfo = true
}