// Deprecated: Use golang.org/x/net/bpf instead.
func SetLsfPromisc(name string, m bool) error {
- s, e := cloexecSocket(AF_INET, SOCK_DGRAM, 0)
+ s, e := Socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC, 0)
if e != nil {
return e
}
// NetlinkRIB returns routing information base, as known as RIB, which
// consists of network facility information, states and parameters.
func NetlinkRIB(proto, family int) ([]byte, error) {
- s, err := cloexecSocket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE)
+ s, err := Socket(AF_NETLINK, SOCK_RAW|SOCK_CLOEXEC, NETLINK_ROUTE)
if err != nil {
return nil, err
}
+++ /dev/null
-// Copyright 2019 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 syscall
-
-// This is a stripped down version of sysSocket from net/sock_cloexec.go.
-func cloexecSocket(family, sotype, proto int) (int, error) {
- s, err := Socket(family, sotype|SOCK_CLOEXEC, proto)
- switch err {
- case nil:
- return s, nil
- default:
- return -1, err
- case EINVAL:
- }
-
- ForkLock.RLock()
- s, err = Socket(family, sotype, proto)
- if err == nil {
- CloseOnExec(s)
- }
- ForkLock.RUnlock()
- if err != nil {
- Close(s)
- return -1, err
- }
- return s, nil
-}