blob: a81b592ae10c170a5be550a89cdd67695982511d [file] [log] [blame]
// 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
)
type sysNewMulticastReq struct {
IP [4]byte
Interface [4]byte
IfIndex int32
}
type sysPacketInfo struct {
IfIndex int32
RoutedIP [4]byte
IP [4]byte
}
func init() {
supportsPacketInfo = true
}