helper: separate pipes from Helper

Upcoming bwrap helper implementation requires two sets of pipes to be managed, fd will also no longer be constant.

Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
This commit is contained in:
2024-10-07 12:48:20 +09:00
parent 18d9ce733e
commit 9647eb6a6b
7 changed files with 231 additions and 140 deletions

View File

@@ -164,7 +164,7 @@ func TestProxy_Start_Wait_Close_String(t *testing.T) {
}
t.Run("started string of "+id, func(t *testing.T) {
wantSubstr := binPath + " --args=3 --fd=4"
wantSubstr := binPath + " --args=3"
if got := p.String(); !strings.Contains(got, wantSubstr) {
t.Errorf("String() = %v, want %v",
p.String(), wantSubstr)

View File

@@ -3,6 +3,7 @@ package dbus
import (
"errors"
"io"
"strconv"
"git.ophivana.moe/cat/fortify/helper"
)
@@ -18,9 +19,13 @@ func (p *Proxy) Start(ready chan error, output io.Writer) error {
}
h := helper.New(p.seal, p.path,
// Helper: Args is always 3 and status if set is always 4.
"--args=3",
"--fd=4",
func(argsFD, statFD int) []string {
if statFD == -1 {
return []string{"--args=" + strconv.Itoa(argsFD)}
} else {
return []string{"--args=" + strconv.Itoa(argsFD), "--fd=" + strconv.Itoa(statFD)}
}
},
)
// xdg-dbus-proxy does not need to inherit the environment
h.Env = []string{}