aboutsummaryrefslogtreecommitdiffhomepage
path: root/system/dbus
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-10-11 18:51:04 +0900
committerOphestra <cat@gensokyo.uk>2025-10-11 18:52:06 +0900
commit037144b06e105bb51bdc5d4c451664c89442a7b4 (patch)
treee82fc00cd5d2d5961313b39c19b43d44dbfd5c02 /system/dbus
parentf5a597c4061b18b53e3124107c0e1434a98aedc9 (diff)
system/dbus: use well-known address in spec
The session bus still performs non-standard formatting since it makes no sense for hakurei to start the session bus. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'system/dbus')
-rw-r--r--system/dbus/dbus.go27
1 files changed, 25 insertions, 2 deletions
diff --git a/system/dbus/dbus.go b/system/dbus/dbus.go
index c5b4e812..08db8f1b 100644
--- a/system/dbus/dbus.go
+++ b/system/dbus/dbus.go
@@ -8,8 +8,31 @@ import (
)
const (
+ /*SessionBusAddress is the name of the environment variable where the address of the login session message bus is given in.
+
+ If that variable is not set, applications may also try to read the address from the X Window System root window property _DBUS_SESSION_BUS_ADDRESS.
+ The root window property must have type STRING. The environment variable should have precedence over the root window property.
+
+ The address of the login session message bus is given in the DBUS_SESSION_BUS_ADDRESS environment variable.
+ If DBUS_SESSION_BUS_ADDRESS is not set, or if it's set to the string "autolaunch:",
+ the system should use platform-specific methods of locating a running D-Bus session server,
+ or starting one if a running instance cannot be found.
+ Note that this mechanism is not recommended for attempting to determine if a daemon is running.
+ It is inherently racy to attempt to make this determination, since the bus daemon may be started just before or just after the determination is made.
+ Therefore, it is recommended that applications do not try to make this determination for their functionality purposes, and instead they should attempt to start the server.
+
+ This package diverges from the specification, as the caller is unlikely to be an X client, or be in a position to autolaunch a dbus server.
+ So a fallback address with a socket located in the well-known default XDG_RUNTIME_DIR formatting is used.*/
SessionBusAddress = "DBUS_SESSION_BUS_ADDRESS"
- SystemBusAddress = "DBUS_SYSTEM_BUS_ADDRESS"
+
+ /*SystemBusAddress is the name of the environment variable where the address of the system message bus is given in.
+
+ If that variable is not set, applications should try to connect to the well-known address unix:path=/var/run/dbus/system_bus_socket.
+ Implementations of the well-known system bus should listen on an address that will result in that connection being successful.*/
+ SystemBusAddress = "DBUS_SYSTEM_BUS_ADDRESS"
+
+ // FallbackSystemBusAddress is used when [SystemBusAddress] is not set.
+ FallbackSystemBusAddress = "unix:path=/var/run/dbus/system_bus_socket"
)
var (
@@ -30,7 +53,7 @@ func Address() (session, system string) {
// resolve upstream system bus address
if addr, ok := os.LookupEnv(SystemBusAddress); !ok {
// fall back to default hardcoded value
- addresses[1] = "unix:path=/run/dbus/system_bus_socket"
+ addresses[1] = FallbackSystemBusAddress
} else {
addresses[1] = addr
}