system/dbus: remove redundant proxy pairs
All checks were successful
Test / Create distribution (push) Successful in 34s
Test / Sandbox (push) Successful in 2m10s
Test / Hakurei (push) Successful in 3m16s
Test / Hpkg (push) Successful in 4m5s
Test / Sandbox (race detector) (push) Successful in 4m30s
Test / Hakurei (race detector) (push) Successful in 5m16s
Test / Flake checks (push) Successful in 1m40s
All checks were successful
Test / Create distribution (push) Successful in 34s
Test / Sandbox (push) Successful in 2m10s
Test / Hakurei (push) Successful in 3m16s
Test / Hpkg (push) Successful in 4m5s
Test / Sandbox (race detector) (push) Successful in 4m30s
Test / Hakurei (race detector) (push) Successful in 5m16s
Test / Flake checks (push) Successful in 1m40s
This is left over from before dbus.Final. Remove them now as they serve no purpose. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
parent
e81a45e849
commit
197fa65b8f
@ -6,10 +6,12 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
"reflect"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"syscall"
|
"syscall"
|
||||||
|
|
||||||
|
"hakurei.app/container"
|
||||||
"hakurei.app/system/dbus"
|
"hakurei.app/system/dbus"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -39,10 +41,11 @@ func (sys *I) ProxyDBus(session, system *dbus.Config, sessionPath, systemPath st
|
|||||||
// system bus is optional
|
// system bus is optional
|
||||||
d.system = system != nil
|
d.system = system != nil
|
||||||
|
|
||||||
d.sessionBus[0], d.systemBus[0] = dbus.Address()
|
var sessionBus, systemBus dbus.ProxyPair
|
||||||
d.sessionBus[1], d.systemBus[1] = sessionPath, systemPath
|
sessionBus[0], systemBus[0] = dbus.Address()
|
||||||
|
sessionBus[1], systemBus[1] = sessionPath, systemPath
|
||||||
d.out = &linePrefixWriter{println: log.Println, prefix: "(dbus) ", msg: new(strings.Builder)}
|
d.out = &linePrefixWriter{println: log.Println, prefix: "(dbus) ", msg: new(strings.Builder)}
|
||||||
if final, err := dbus.Finalise(d.sessionBus, d.systemBus, session, system); err != nil {
|
if final, err := dbus.Finalise(sessionBus, systemBus, session, system); err != nil {
|
||||||
if errors.Is(err, syscall.EINVAL) {
|
if errors.Is(err, syscall.EINVAL) {
|
||||||
return nil, newOpErrorMessage("dbus", err,
|
return nil, newOpErrorMessage("dbus", err,
|
||||||
"message bus proxy configuration contains NUL byte", false)
|
"message bus proxy configuration contains NUL byte", false)
|
||||||
@ -51,9 +54,9 @@ func (sys *I) ProxyDBus(session, system *dbus.Config, sessionPath, systemPath st
|
|||||||
fmt.Sprintf("cannot finalise message bus proxy: %v", err), false)
|
fmt.Sprintf("cannot finalise message bus proxy: %v", err), false)
|
||||||
} else {
|
} else {
|
||||||
if msg.IsVerbose() {
|
if msg.IsVerbose() {
|
||||||
msg.Verbose("session bus proxy:", session.Args(d.sessionBus))
|
msg.Verbose("session bus proxy:", session.Args(sessionBus))
|
||||||
if system != nil {
|
if system != nil {
|
||||||
msg.Verbose("system bus proxy:", system.Args(d.systemBus))
|
msg.Verbose("system bus proxy:", system.Args(systemBus))
|
||||||
}
|
}
|
||||||
|
|
||||||
// this calls the argsWt String method
|
// this calls the argsWt String method
|
||||||
@ -76,16 +79,14 @@ type DBusProxyOp struct {
|
|||||||
out *linePrefixWriter
|
out *linePrefixWriter
|
||||||
// whether system bus proxy is enabled
|
// whether system bus proxy is enabled
|
||||||
system bool
|
system bool
|
||||||
|
|
||||||
sessionBus, systemBus dbus.ProxyPair
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *DBusProxyOp) Type() Enablement { return Process }
|
func (d *DBusProxyOp) Type() Enablement { return Process }
|
||||||
|
|
||||||
func (d *DBusProxyOp) apply(sys *I) error {
|
func (d *DBusProxyOp) apply(sys *I) error {
|
||||||
msg.Verbosef("session bus proxy on %q for upstream %q", d.sessionBus[1], d.sessionBus[0])
|
msg.Verbosef("session bus proxy on %q for upstream %q", d.final.Session[1], d.final.Session[0])
|
||||||
if d.system {
|
if d.system {
|
||||||
msg.Verbosef("system bus proxy on %q for upstream %q", d.systemBus[1], d.systemBus[0])
|
msg.Verbosef("system bus proxy on %q for upstream %q", d.final.System[1], d.final.System[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
d.proxy = dbus.New(sys.ctx, d.final, d.out)
|
d.proxy = dbus.New(sys.ctx, d.final, d.out)
|
||||||
@ -115,12 +116,16 @@ func (d *DBusProxyOp) revert(*I, *Criteria) error {
|
|||||||
func (d *DBusProxyOp) Is(o Op) bool {
|
func (d *DBusProxyOp) Is(o Op) bool {
|
||||||
target, ok := o.(*DBusProxyOp)
|
target, ok := o.(*DBusProxyOp)
|
||||||
return ok && d != nil && target != nil &&
|
return ok && d != nil && target != nil &&
|
||||||
((d.proxy == nil && target.proxy == nil) ||
|
d.system == target.system &&
|
||||||
(d.proxy != nil && target.proxy != nil &&
|
d.final != nil && target.final != nil &&
|
||||||
d.proxy.String() == target.proxy.String()))
|
d.final.Session == target.final.Session &&
|
||||||
|
d.final.System == target.final.System &&
|
||||||
|
dbus.EqualAddrEntries(d.final.SessionUpstream, target.final.SessionUpstream) &&
|
||||||
|
dbus.EqualAddrEntries(d.final.SystemUpstream, target.final.SystemUpstream) &&
|
||||||
|
reflect.DeepEqual(d.final.WriterTo, target.final.WriterTo)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *DBusProxyOp) Path() string { return "(dbus proxy)" }
|
func (d *DBusProxyOp) Path() string { return container.Nonexistent }
|
||||||
func (d *DBusProxyOp) String() string { return d.proxy.String() }
|
func (d *DBusProxyOp) String() string { return d.proxy.String() }
|
||||||
|
|
||||||
// linePrefixWriter calls println with a prefix for every line written.
|
// linePrefixWriter calls println with a prefix for every line written.
|
||||||
|
@ -13,6 +13,13 @@ type AddrEntry struct {
|
|||||||
Values [][2]string `json:"values"`
|
Values [][2]string `json:"values"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// EqualAddrEntries returns whether two slices of [AddrEntry] are equal.
|
||||||
|
func EqualAddrEntries(entries, target []AddrEntry) bool {
|
||||||
|
return slices.EqualFunc(entries, target, func(a AddrEntry, b AddrEntry) bool {
|
||||||
|
return a.Method == b.Method && slices.Equal(a.Values, b.Values)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// Parse parses D-Bus address according to
|
// Parse parses D-Bus address according to
|
||||||
// https://dbus.freedesktop.org/doc/dbus-specification.html#addresses
|
// https://dbus.freedesktop.org/doc/dbus-specification.html#addresses
|
||||||
func Parse(addr []byte) ([]AddrEntry, error) {
|
func Parse(addr []byte) ([]AddrEntry, error) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user