27 #include "dbus-protocol.h"
28 #include "dbus-internals.h"
29 #include "dbus-message.h"
30 #include "dbus-marshal-validate.h"
31 #include "dbus-threads-internal.h"
32 #include "dbus-connection-internal.h"
33 #include "dbus-string.h"
81 unsigned int is_well_known : 1;
99 addresses_shutdown_func (
void *data)
106 if (bus_connections[i] !=
NULL)
107 _dbus_warn_check_failed (
"dbus_shutdown() called but connections were still live. This probably means the application did not drop all its references to bus connections.\n");
110 bus_connection_addresses[i] =
NULL;
120 get_from_env (
char **connection_p,
128 if (s ==
NULL || *s ==
'\0')
133 return *connection_p !=
NULL;
138 init_session_address (
void)
147 "DBUS_SESSION_BUS_ADDRESS");
163 if (supported && retval)
167 else if (supported && !retval)
172 _dbus_warn (
"Dynamic session lookup supported but failed silently\n");
195 init_connections_unlocked (
void)
205 bus_connections[i] =
NULL;
218 _dbus_verbose (
"Filling in system bus address...\n");
221 "DBUS_SYSTEM_BUS_ADDRESS"))
235 _dbus_verbose (
" used default system bus \"%s\"\n",
239 _dbus_verbose (
" used env var system bus \"%s\"\n",
244 _dbus_verbose (
"Filling in session bus address...\n");
246 if (!init_session_address ())
255 _dbus_verbose (
"Filling in activation bus address...\n");
258 "DBUS_STARTER_ADDRESS"))
261 _dbus_verbose (
" \"%s\"\n", bus_connection_addresses[DBUS_BUS_STARTER] ?
262 bus_connection_addresses[DBUS_BUS_STARTER] :
"none set");
272 _dbus_verbose (
"Bus activation type was set to \"%s\"\n", s);
274 if (strcmp (s,
"system") == 0)
276 else if (strcmp (s,
"session") == 0)
313 bus_data_free (
void *data)
323 "when we attached bus data");
334 bus_connections[i] =
NULL;
411 if (bus_connections[i] == connection)
413 bus_connections[i] =
NULL;
431 _dbus_return_val_if_error_is_set (error,
NULL);
437 _DBUS_SET_OOM (error);
442 if (!init_connections_unlocked ())
444 _DBUS_SET_OOM (error);
460 bus_connection_addresses[activation_bus_type] !=
NULL)
461 type = activation_bus_type;
463 if (!
private && bus_connections[type] !=
NULL)
465 connection = bus_connections[type];
470 address = bus_connection_addresses[address_type];
474 "Unable to determine the address of the message bus (try 'man dbus-launch' and 'man dbus-daemon' for help)");
502 bus_connections[type] = connection;
514 bd = ensure_bus_data (connection);
522 if (connection ==
NULL)
523 _DBUS_ASSERT_ERROR_IS_SET (error);
566 return internal_bus_get (type,
FALSE, error);
598 return internal_bus_get (type,
TRUE, error);
659 _dbus_return_val_if_fail (connection !=
NULL,
FALSE);
660 _dbus_return_val_if_error_is_set (error,
FALSE);
668 _DBUS_SET_OOM (error);
673 bd = ensure_bus_data (connection);
676 _DBUS_SET_OOM (error);
682 _dbus_verbose (
"Ignoring attempt to register the same DBusConnection %s with the message bus a second time.\n",
696 _DBUS_SET_OOM (error);
714 _DBUS_SET_OOM (error);
730 _DBUS_ASSERT_ERROR_IS_SET (error);
772 const char *unique_name)
777 _dbus_return_val_if_fail (connection !=
NULL,
FALSE);
778 _dbus_return_val_if_fail (unique_name !=
NULL,
FALSE);
786 bd = ensure_bus_data (connection);
823 const char *unique_name =
NULL;
825 _dbus_return_val_if_fail (connection !=
NULL,
NULL);
834 bd = ensure_bus_data (connection);
879 _dbus_return_val_if_fail (_dbus_check_is_valid_bus_name (name),
DBUS_UID_UNSET);
885 "GetConnectionUnixUser");
889 _DBUS_SET_OOM (error);
898 _DBUS_SET_OOM (error);
909 _DBUS_ASSERT_ERROR_IS_SET (error);
915 _DBUS_ASSERT_ERROR_IS_SET (error);
924 _DBUS_ASSERT_ERROR_IS_SET (error);
931 return (
unsigned long) uid;
958 const char *v_STRING;
960 _dbus_return_val_if_fail (connection !=
NULL,
NULL);
961 _dbus_return_val_if_error_is_set (error,
NULL);
970 _DBUS_SET_OOM (error);
981 _DBUS_ASSERT_ERROR_IS_SET (error);
987 _DBUS_ASSERT_ERROR_IS_SET (error);
997 _DBUS_ASSERT_ERROR_IS_SET (error);
1007 _DBUS_SET_OOM (error);
1125 _dbus_return_val_if_fail (connection !=
NULL, 0);
1126 _dbus_return_val_if_fail (name !=
NULL, 0);
1127 _dbus_return_val_if_fail (_dbus_check_is_valid_bus_name (name), 0);
1128 _dbus_return_val_if_error_is_set (error, 0);
1135 if (message ==
NULL)
1137 _DBUS_SET_OOM (error);
1147 _DBUS_SET_OOM (error);
1158 _DBUS_ASSERT_ERROR_IS_SET (error);
1164 _DBUS_ASSERT_ERROR_IS_SET (error);
1173 _DBUS_ASSERT_ERROR_IS_SET (error);
1210 _dbus_return_val_if_fail (connection !=
NULL, 0);
1211 _dbus_return_val_if_fail (name !=
NULL, 0);
1212 _dbus_return_val_if_fail (_dbus_check_is_valid_bus_name (name), 0);
1213 _dbus_return_val_if_error_is_set (error, 0);
1220 if (message ==
NULL)
1222 _DBUS_SET_OOM (error);
1231 _DBUS_SET_OOM (error);
1242 _DBUS_ASSERT_ERROR_IS_SET (error);
1248 _DBUS_ASSERT_ERROR_IS_SET (error);
1257 _DBUS_ASSERT_ERROR_IS_SET (error);
1292 _dbus_return_val_if_fail (connection !=
NULL,
FALSE);
1293 _dbus_return_val_if_fail (name !=
NULL,
FALSE);
1294 _dbus_return_val_if_fail (_dbus_check_is_valid_bus_name (name),
FALSE);
1295 _dbus_return_val_if_error_is_set (error,
FALSE);
1301 if (message ==
NULL)
1303 _DBUS_SET_OOM (error);
1312 _DBUS_SET_OOM (error);
1321 _DBUS_ASSERT_ERROR_IS_SET (error);
1329 _DBUS_ASSERT_ERROR_IS_SET (error);
1370 _dbus_return_val_if_fail (connection !=
NULL,
FALSE);
1371 _dbus_return_val_if_fail (_dbus_check_is_valid_bus_name (name),
FALSE);
1376 "StartServiceByName");
1382 _DBUS_SET_OOM (error);
1392 _DBUS_ASSERT_ERROR_IS_SET (error);
1398 _DBUS_ASSERT_ERROR_IS_SET (error);
1403 if (result !=
NULL &&
1407 _DBUS_ASSERT_ERROR_IS_SET (error);
1430 _DBUS_ASSERT_ERROR_IS_SET (error);
1537 _dbus_return_if_fail (rule !=
NULL);
1546 _DBUS_SET_OOM (error);
1554 _DBUS_SET_OOM (error);
1558 send_no_return_values (connection, msg, error);
1587 _dbus_return_if_fail (rule !=
NULL);
1598 _DBUS_SET_OOM (error);
1602 send_no_return_values (connection, msg, error);