Files
weave-scope/vendor/github.com/google/gopacket/afpacket/sockopt_linux_386.go
Damien Lespiau 6bb6d4dd5a vendoring: Update gopacket to latest master
We'd like to benefit from the memory reduction from:

  https://github.com/google/gopacket/pull/377

I just ran:

  $ gvt update github.com/google/gopacket

Fixes: https://github.com/weaveworks/scope/issues/2905
2017-10-27 12:32:05 +01:00

58 lines
969 B
Go

// Copyright 2012 Google, Inc. All rights reserved.
//
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file in the root of the source
// tree.
// +build linux,386
package afpacket
import (
"unsafe"
"golang.org/x/sys/unix"
)
const (
sysSETSOCKOPT = 0xe
sysGETSOCKOPT = 0xf
)
func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, unix.Errno)
// setsockopt provides access to the setsockopt syscall.
func setsockopt(fd, level, name int, v unsafe.Pointer, l uintptr) error {
_, errno := socketcall(
sysSETSOCKOPT,
uintptr(fd),
uintptr(level),
uintptr(name),
uintptr(v),
l,
0,
)
if errno != 0 {
return error(errno)
}
return nil
}
func getsockopt(fd, level, name int, v unsafe.Pointer, l uintptr) error {
_, errno := socketcall(
sysGETSOCKOPT,
uintptr(fd),
uintptr(level),
uintptr(name),
uintptr(v),
l,
0,
)
if errno != 0 {
return error(errno)
}
return nil
}