From 9ce4706a0766880c072cccd2643d66f614a6a16b Mon Sep 17 00:00:00 2001 From: Ophestra Date: Mon, 17 Mar 2025 02:48:32 +0900 Subject: sandbox: move params setup functions Signed-off-by: Ophestra --- helper/proc/fd.go | 48 ------------------------------------------------ 1 file changed, 48 deletions(-) delete mode 100644 helper/proc/fd.go (limited to 'helper') diff --git a/helper/proc/fd.go b/helper/proc/fd.go deleted file mode 100644 index abf8f36a..00000000 --- a/helper/proc/fd.go +++ /dev/null @@ -1,48 +0,0 @@ -package proc - -import ( - "encoding/gob" - "errors" - "os" - "strconv" -) - -var ( - ErrNotSet = errors.New("environment variable not set") - ErrInvalid = errors.New("bad file descriptor") -) - -// Setup appends the read end of a pipe for payload transmission and returns its fd. -func Setup(extraFiles *[]*os.File) (int, *gob.Encoder, error) { - if r, w, err := os.Pipe(); err != nil { - return -1, nil, err - } else { - fd := 3 + len(*extraFiles) - *extraFiles = append(*extraFiles, r) - return fd, gob.NewEncoder(w), nil - } -} - -// Receive retrieves payload pipe fd from the environment, -// receives its payload and returns the Close method of the pipe. -func Receive(key string, e any, v **os.File) (func() error, error) { - var setup *os.File - - if s, ok := os.LookupEnv(key); !ok { - return nil, ErrNotSet - } else { - if fd, err := strconv.Atoi(s); err != nil { - return nil, err - } else { - setup = os.NewFile(uintptr(fd), "setup") - if setup == nil { - return nil, ErrInvalid - } - if v != nil { - *v = setup - } - } - } - - return setup.Close, gob.NewDecoder(setup).Decode(e) -} -- cgit v1.3.1