two/internal/netns/enter_linux.go
GnomeZworc 348eb4aee3
f-8: code: implemete netns first code #8
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2025-12-28 14:57:36 +01:00

26 lines
362 B
Go

//go:build linux
package netns
import (
"fmt"
"os"
"runtime"
"golang.org/x/sys/unix"
)
func enter(name string) error {
runtime.LockOSThread()
defer runtime.UnlockOSThread()
path := fmt.Sprintf("/var/run/netns/%s", name)
f, err := os.Open(path)
if err != nil {
return err
}
defer f.Close()
return unix.Setns(int(f.Fd()), unix.CLONE_NEWNET)
}