diff --git a/src/examples/media-session/access-portal.c b/src/examples/media-session/access-portal.c index 7c5c43662..53ab07fe5 100644 --- a/src/examples/media-session/access-portal.c +++ b/src/examples/media-session/access-portal.c @@ -346,6 +346,15 @@ static void do_permission_store_check(struct client *client) client); return; } + if (impl->bus == NULL) { + pw_log_debug("Ignoring portal check for client %p: dbus disabled", + client); + client->allowed_media_roles = MEDIA_ROLE_ALL; + sm_media_session_for_each_object(impl->session, + set_global_permissions, + client); + return; + } client->allowed_media_roles = MEDIA_ROLE_NONE; @@ -553,6 +562,9 @@ static int init_dbus_connection(struct impl *impl) { DBusError error; + if (impl->bus == NULL) + return 0; + dbus_error_init(&error); dbus_bus_add_match(impl->bus, diff --git a/src/examples/media-session/media-session.c b/src/examples/media-session/media-session.c index a3e772ec2..d0ca6596b 100644 --- a/src/examples/media-session/media-session.c +++ b/src/examples/media-session/media-session.c @@ -2172,15 +2172,15 @@ int main(int argc, char *argv[]) support = pw_context_get_support(impl.this.context, &n_support); - if ((str = pw_properties_get(impl.this.props, "dbus")) == NULL || - pw_properties_parse_bool(str)) { - impl.dbus = spa_support_find(support, n_support, SPA_TYPE_INTERFACE_DBus); - if (impl.dbus) - impl.this.dbus_connection = spa_dbus_get_connection(impl.dbus, SPA_DBUS_TYPE_SESSION); + impl.dbus = spa_support_find(support, n_support, SPA_TYPE_INTERFACE_DBus); + if (impl.dbus) { + impl.this.dbus_connection = spa_dbus_get_connection(impl.dbus, SPA_DBUS_TYPE_SESSION); if (impl.this.dbus_connection == NULL) pw_log_warn("no dbus connection"); else pw_log_debug("got dbus connection %p", impl.this.dbus_connection); + } else { + pw_log_info("dbus diabled"); } if ((res = start_session(&impl)) < 0)