mirror of
https://github.com/status-im/consul.git
synced 2025-01-09 21:35:52 +00:00
e9835610f3
This is in its own separate package so that it will be a separate test binary that runs thus isolating the go runtime from other tests and allowing accurate go routine leak checking. This test would ideally use goleak.VerifyTestMain but that will fail 100% of the time due to some architectural things (blocking queries and net/rpc uncancellability). This test is not comprehensive. We should enable/exercise more features and more cluster configurations. However its a start.
25 lines
594 B
Go
25 lines
594 B
Go
// Copyright 2017 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.
|
|
|
|
// +build linux
|
|
|
|
package ipv4
|
|
|
|
import (
|
|
"unsafe"
|
|
|
|
"golang.org/x/net/bpf"
|
|
"golang.org/x/net/internal/socket"
|
|
"golang.org/x/sys/unix"
|
|
)
|
|
|
|
func (so *sockOpt) setAttachFilter(c *socket.Conn, f []bpf.RawInstruction) error {
|
|
prog := unix.SockFprog{
|
|
Len: uint16(len(f)),
|
|
Filter: (*unix.SockFilter)(unsafe.Pointer(&f[0])),
|
|
}
|
|
b := (*[unix.SizeofSockFprog]byte)(unsafe.Pointer(&prog))[:unix.SizeofSockFprog]
|
|
return so.Set(c, b)
|
|
}
|