aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/state/exit.go
diff options
context:
space:
mode:
authorOphestra Umiker <cat@ophivana.moe>2024-09-09 03:16:54 +0900
committerOphestra Umiker <cat@ophivana.moe>2024-09-09 03:16:54 +0900
commit38ef2b4d0caf48a5f6bb9d472b76764cbf14d23d (patch)
treeb419ee1d5b700feb43dd061ba336c6fd7f0ccd59 /internal/state/exit.go
parent357cc4ce4d2888033a8163fe39861c8a88301da6 (diff)
app/dbus: manage dbus proxy and pass address to child
This commit adds code that starts and registers the D-Bus proxy, as well as cleanup code that tracks and closes the daemon once our child exits. A few more flags were added to pass D-Bus config to xdg-dbus-proxy. Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
Diffstat (limited to 'internal/state/exit.go')
-rw-r--r--internal/state/exit.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/internal/state/exit.go b/internal/state/exit.go
index 3da1f48e..4ba0a9d8 100644
--- a/internal/state/exit.go
+++ b/internal/state/exit.go
@@ -65,4 +65,23 @@ func BeforeExit() {
fmt.Printf("Stripped ACL entry for user '%s' from '%s'\n", u.Username, candidate)
}
}
+
+ if dbusProxy != nil {
+ if system.V.Verbose {
+ fmt.Println("D-Bus proxy registered, cleaning up")
+ }
+
+ if err := dbusProxy.Close(); err != nil {
+ if errors.Is(err, os.ErrClosed) {
+ if system.V.Verbose {
+ fmt.Println("D-Bus proxy already closed")
+ }
+ } else {
+ fmt.Println("Error closing D-Bus proxy:", err)
+ }
+ }
+
+ // wait for Proxy.Wait to return
+ <-*dbusDone
+ }
}