Files
iptables/cmd/nft/nft_arm64.go
Timmy Welch 0c926e5891 Add stuff
2025-05-18 00:56:05 -07:00

45 lines
963 B
Go

package main
import (
"fmt"
"io"
"os"
"os/exec"
"path/filepath"
)
func main() {
if os.Getenv("GOKRAZY_FIRST_START") == "1" {
os.Exit(0)
}
const frozenDir = "/usr/lib/iptables.frozen"
args := append([]string{
os.Args[0],
"--argv0", os.Args[0],
frozenDir + "/" + filepath.Base(os.Args[0]),
}, os.Args[1:]...)
f, err := os.OpenFile("/tmp/nft", os.O_WRONLY|os.O_APPEND, 0o777)
if err == nil {
fmt.Fprintln(f, os.Args[1:])
f.Close()
}
f, _ = os.OpenFile("/tmp/nft.stdin", os.O_WRONLY|os.O_APPEND, 0o777)
defer f.Close()
r := io.TeeReader(os.Stdin, f)
cmd := exec.Command(frozenDir+"/ld-musl-aarch64.so.1", args...)
cmd.Stdin = r
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Env = append(os.Environ(),
"FOO=duplicate_value", // ignored
"FOO=actual_value", // this value is used
)
cmd.Run()
//syscall.Exec(
// frozenDir+"/ld-musl-aarch64.so.1",
// args,
// append(os.Environ(), "LD_LIBRARY_PATH="+frozenDir),
//)
}