diff options
| author | Ophestra Umiker <cat@ophivana.moe> | 2024-12-06 04:25:33 +0900 |
|---|---|---|
| committer | Ophestra Umiker <cat@ophivana.moe> | 2024-12-06 04:25:33 +0900 |
| commit | b3ef53b193bdf764d8f04e19ea47901b71eec10b (patch) | |
| tree | f842120ed936715340e4fe48a8913766c65d7581 /cmd/fshim/main.go | |
| parent | 8d0573405a8a58a57c39b008150d75d3be2894c2 (diff) | |
app: integrate security-context-v1
Should be able to get rid of XDG_RUNTIME_DIR share after this.
Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
Diffstat (limited to 'cmd/fshim/main.go')
| -rw-r--r-- | cmd/fshim/main.go | 49 |
1 files changed, 3 insertions, 46 deletions
diff --git a/cmd/fshim/main.go b/cmd/fshim/main.go index 2322984a..222419e3 100644 --- a/cmd/fshim/main.go +++ b/cmd/fshim/main.go @@ -2,7 +2,6 @@ package main import ( "encoding/gob" - "errors" "net" "os" "path" @@ -76,14 +75,9 @@ func main() { fmsg.Fatal("bwrap config not supplied") } - // receive wayland fd over socket - wfd := -1 - if payload.WL { - if fd, err := receiveWLfd(conn); err != nil { - fmsg.Fatalf("cannot receive wayland fd: %v", err) - } else { - wfd = fd - } + // restore bwrap sync fd + if payload.Sync != nil { + payload.Bwrap.SetSync(os.NewFile(*payload.Sync, "sync")) } // close setup socket @@ -116,16 +110,6 @@ func main() { var extraFiles []*os.File - // pass wayland fd - if wfd != -1 { - if f := os.NewFile(uintptr(wfd), "wayland"); f != nil { - ic.WL = 3 + len(extraFiles) - extraFiles = append(extraFiles, f) - } - } else { - ic.WL = -1 - } - // share config pipe if r, w, err := os.Pipe(); err != nil { fmsg.Fatalf("cannot pipe: %v", err) @@ -168,30 +152,3 @@ func main() { } } } - -func receiveWLfd(conn *net.UnixConn) (int, error) { - oob := make([]byte, syscall.CmsgSpace(4)) // single fd - - if _, oobn, _, _, err := conn.ReadMsgUnix(nil, oob); err != nil { - return -1, err - } else if len(oob) != oobn { - return -1, errors.New("invalid message length") - } - - var msg syscall.SocketControlMessage - if messages, err := syscall.ParseSocketControlMessage(oob); err != nil { - return -1, err - } else if len(messages) != 1 { - return -1, errors.New("unexpected message count") - } else { - msg = messages[0] - } - - if fds, err := syscall.ParseUnixRights(&msg); err != nil { - return -1, err - } else if len(fds) != 1 { - return -1, errors.New("unexpected fd count") - } else { - return fds[0], nil - } -} |
