mirror of
https://github.com/weaveworks/scope.git
synced 2026-05-06 01:08:03 +00:00
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
58 lines
969 B
Go
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
|
|
}
|