diff options
Diffstat (limited to 'dbus')
-rw-r--r-- | dbus/dbus-bus.c | 153 | ||||
-rw-r--r-- | dbus/dbus-bus.h | 26 | ||||
-rw-r--r-- | dbus/dbus-glib.h | 16 | ||||
-rw-r--r-- | dbus/dbus-marshal-header.c | 6 | ||||
-rw-r--r-- | dbus/dbus-marshal-validate.c | 88 | ||||
-rw-r--r-- | dbus/dbus-marshal-validate.h | 4 | ||||
-rw-r--r-- | dbus/dbus-message.c | 107 | ||||
-rw-r--r-- | dbus/dbus-message.h | 12 | ||||
-rw-r--r-- | dbus/dbus-protocol.h | 39 | ||||
-rw-r--r-- | dbus/dbus-shared.h | 2 |
10 files changed, 224 insertions, 229 deletions
diff --git a/dbus/dbus-bus.c b/dbus/dbus-bus.c index bc1750b6..68b69719 100644 --- a/dbus/dbus-bus.c +++ b/dbus/dbus-bus.c @@ -61,7 +61,7 @@ typedef struct { DBusConnection *connection; /**< Connection we're associated with */ - char *base_service; /**< Base service name of this connection */ + char *unique_name; /**< Unique name of this connection */ unsigned int is_well_known : 1; /**< Is one of the well-known connections in our global array */ } BusData; @@ -76,7 +76,7 @@ static dbus_int32_t bus_data_slot = -1; static DBusConnection *bus_connections[N_BUS_TYPES]; static char *bus_connection_addresses[N_BUS_TYPES] = { NULL, NULL, NULL }; -static DBusBusType activation_bus_type = DBUS_BUS_ACTIVATION; +static DBusBusType activation_bus_type = DBUS_BUS_STARTER; static dbus_bool_t initialized = FALSE; @@ -101,7 +101,7 @@ addresses_shutdown_func (void *data) ++i; } - activation_bus_type = DBUS_BUS_ACTIVATION; + activation_bus_type = DBUS_BUS_STARTER; } static dbus_bool_t @@ -180,22 +180,22 @@ init_connections_unlocked (void) bus_connection_addresses[DBUS_BUS_SESSION] : "none set"); } - if (bus_connection_addresses[DBUS_BUS_ACTIVATION] == NULL) + if (bus_connection_addresses[DBUS_BUS_STARTER] == NULL) { _dbus_verbose ("Filling in activation bus address...\n"); - if (!get_from_env (&bus_connection_addresses[DBUS_BUS_ACTIVATION], - "DBUS_ACTIVATION_ADDRESS")) + if (!get_from_env (&bus_connection_addresses[DBUS_BUS_STARTER], + "DBUS_STARTER_ADDRESS")) return FALSE; - _dbus_verbose (" \"%s\"\n", bus_connection_addresses[DBUS_BUS_ACTIVATION] ? - bus_connection_addresses[DBUS_BUS_ACTIVATION] : "none set"); + _dbus_verbose (" \"%s\"\n", bus_connection_addresses[DBUS_BUS_STARTER] ? + bus_connection_addresses[DBUS_BUS_STARTER] : "none set"); } - if (bus_connection_addresses[DBUS_BUS_ACTIVATION] != NULL) + if (bus_connection_addresses[DBUS_BUS_STARTER] != NULL) { - s = _dbus_getenv ("DBUS_ACTIVATION_BUS_TYPE"); + s = _dbus_getenv ("DBUS_STARTER_BUS_TYPE"); if (s != NULL) { @@ -212,9 +212,9 @@ init_connections_unlocked (void) /* Default to the session bus instead if available */ if (bus_connection_addresses[DBUS_BUS_SESSION] != NULL) { - bus_connection_addresses[DBUS_BUS_ACTIVATION] = + bus_connection_addresses[DBUS_BUS_STARTER] = _dbus_strdup (bus_connection_addresses[DBUS_BUS_SESSION]); - if (bus_connection_addresses[DBUS_BUS_ACTIVATION] == NULL) + if (bus_connection_addresses[DBUS_BUS_STARTER] == NULL) return FALSE; } } @@ -260,7 +260,7 @@ bus_data_free (void *data) _DBUS_UNLOCK (bus); } - dbus_free (bd->base_service); + dbus_free (bd->unique_name); dbus_free (bd); dbus_connection_free_data_slot (&bus_data_slot); @@ -352,9 +352,9 @@ dbus_bus_get (DBusBusType type, /* Use the real type of the activation bus for getting its * connection, but only if the real type's address is available. (If * the activating bus isn't a well-known bus then - * activation_bus_type == DBUS_BUS_ACTIVATION) + * activation_bus_type == DBUS_BUS_STARTER) */ - if (type == DBUS_BUS_ACTIVATION && + if (type == DBUS_BUS_STARTER && bus_connection_addresses[activation_bus_type] != NULL) type = activation_bus_type; @@ -415,11 +415,8 @@ dbus_bus_get (DBusBusType type, /** * Registers a connection with the bus. This must be the first * thing an application does when connecting to the message bus. - * If registration succeeds, the base service name will be set, - * and can be obtained using dbus_bus_get_base_service(). - * - * @todo if we get an error reply, it has to be converted into - * DBusError and returned + * If registration succeeds, the unique name will be set, + * and can be obtained using dbus_bus_get_unique_name(). * * @param connection the connection * @param error place to store errors @@ -446,7 +443,7 @@ dbus_bus_register (DBusConnection *connection, return FALSE; } - if (bd->base_service != NULL) + if (bd->unique_name != NULL) { _dbus_warn ("Attempt to register the same DBusConnection with the message bus, but it is already registered\n"); /* This isn't an error, it's a programming bug. We'll be nice @@ -479,8 +476,8 @@ dbus_bus_register (DBusConnection *connection, DBUS_TYPE_INVALID)) goto out; - bd->base_service = _dbus_strdup (name); - if (bd->base_service == NULL) + bd->unique_name = _dbus_strdup (name); + if (bd->unique_name == NULL) { _DBUS_SET_OOM (error); goto out; @@ -500,45 +497,42 @@ dbus_bus_register (DBusConnection *connection, /** - * Sets the base service name of the connection. - * Can only be used if you registered with the - * bus manually (i.e. if you did not call - * dbus_bus_register()). Can only be called - * once per connection. + * Sets the unique name of the connection. Can only be used if you + * registered with the bus manually (i.e. if you did not call + * dbus_bus_register()). Can only be called once per connection. * * @param connection the connection - * @param base_service the base service name + * @param unique_name the unique name * @returns #FALSE if not enough memory */ dbus_bool_t -dbus_bus_set_base_service (DBusConnection *connection, - const char *base_service) +dbus_bus_set_unique_name (DBusConnection *connection, + const char *unique_name) { BusData *bd; _dbus_return_val_if_fail (connection != NULL, FALSE); - _dbus_return_val_if_fail (base_service != NULL, FALSE); + _dbus_return_val_if_fail (unique_name != NULL, FALSE); bd = ensure_bus_data (connection); if (bd == NULL) return FALSE; - _dbus_assert (bd->base_service == NULL); + _dbus_assert (bd->unique_name == NULL); - bd->base_service = _dbus_strdup (base_service); - return bd->base_service != NULL; + bd->unique_name = _dbus_strdup (unique_name); + return bd->unique_name != NULL; } /** - * Gets the base service name of the connection. - * Only possible after the connection has been registered - * with the message bus. + * Gets the unique name of the connection. Only possible after the + * connection has been registered with the message bus. * * @param connection the connection - * @returns the base service name + * @returns the unique name */ const char* -dbus_bus_get_base_service (DBusConnection *connection) +dbus_bus_get_unique_name (DBusConnection *connection) { BusData *bd; @@ -548,27 +542,28 @@ dbus_bus_get_base_service (DBusConnection *connection) if (bd == NULL) return NULL; - return bd->base_service; + return bd->unique_name; } /** - * Asks the bus to return the uid of a service. + * Asks the bus to return the uid of the named + * connection. * * @param connection the connection - * @param service the service name + * @param name a name owned by the connection * @param error location to store the error * @returns a result code, -1 if error is set */ unsigned long dbus_bus_get_unix_user (DBusConnection *connection, - const char *service, + const char *name, DBusError *error) { DBusMessage *message, *reply; dbus_uint32_t uid; _dbus_return_val_if_fail (connection != NULL, DBUS_UID_UNSET); - _dbus_return_val_if_fail (service != NULL, DBUS_UID_UNSET); + _dbus_return_val_if_fail (name != NULL, DBUS_UID_UNSET); _dbus_return_val_if_error_is_set (error, DBUS_UID_UNSET); message = dbus_message_new_method_call (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS, @@ -583,7 +578,7 @@ dbus_bus_get_unix_user (DBusConnection *connection, } if (!dbus_message_append_args (message, - DBUS_TYPE_STRING, &service, + DBUS_TYPE_STRING, &name, DBUS_TYPE_INVALID)) { dbus_message_unref (message); @@ -625,7 +620,7 @@ dbus_bus_get_unix_user (DBusConnection *connection, /** - * Asks the bus to try to acquire a certain service. + * Asks the bus to assign the given name to this connection. * * @todo these docs are not complete, need to document the * return value and flags @@ -634,28 +629,28 @@ dbus_bus_get_unix_user (DBusConnection *connection, * DBusError and returned * * @param connection the connection - * @param service_name the service name + * @param name the name to request * @param flags flags * @param error location to store the error * @returns a result code, -1 if error is set */ int -dbus_bus_acquire_service (DBusConnection *connection, - const char *service_name, - unsigned int flags, - DBusError *error) +dbus_bus_request_name (DBusConnection *connection, + const char *name, + unsigned int flags, + DBusError *error) { DBusMessage *message, *reply; - dbus_uint32_t service_result; + dbus_uint32_t result; _dbus_return_val_if_fail (connection != NULL, 0); - _dbus_return_val_if_fail (service_name != NULL, 0); + _dbus_return_val_if_fail (name != NULL, 0); _dbus_return_val_if_error_is_set (error, 0); message = dbus_message_new_method_call (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS, DBUS_PATH_ORG_FREEDESKTOP_DBUS, DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS, - "AcquireService"); + "RequestName"); if (message == NULL) { @@ -664,7 +659,7 @@ dbus_bus_acquire_service (DBusConnection *connection, } if (!dbus_message_append_args (message, - DBUS_TYPE_STRING, &service_name, + DBUS_TYPE_STRING, &name, DBUS_TYPE_UINT32, &flags, DBUS_TYPE_INVALID)) { @@ -692,7 +687,7 @@ dbus_bus_acquire_service (DBusConnection *connection, } if (!dbus_message_get_args (reply, error, - DBUS_TYPE_UINT32, &service_result, + DBUS_TYPE_UINT32, &result, DBUS_TYPE_INVALID)) { _DBUS_ASSERT_ERROR_IS_SET (error); @@ -702,33 +697,33 @@ dbus_bus_acquire_service (DBusConnection *connection, dbus_message_unref (reply); - return service_result; + return result; } /** - * Checks whether a certain service exists. + * Checks whether a certain name has an owner. * * @param connection the connection - * @param service_name the service name + * @param name the name * @param error location to store any errors - * @returns #TRUE if the service exists, #FALSE if not or on error + * @returns #TRUE if the name exists, #FALSE if not or on error */ dbus_bool_t -dbus_bus_service_exists (DBusConnection *connection, - const char *service_name, +dbus_bus_name_has_owner (DBusConnection *connection, + const char *name, DBusError *error) { DBusMessage *message, *reply; dbus_bool_t exists; _dbus_return_val_if_fail (connection != NULL, FALSE); - _dbus_return_val_if_fail (service_name != NULL, FALSE); + _dbus_return_val_if_fail (name != NULL, FALSE); _dbus_return_val_if_error_is_set (error, FALSE); message = dbus_message_new_method_call (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS, DBUS_PATH_ORG_FREEDESKTOP_DBUS, DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS, - "ServiceExists"); + "NameHasOwner"); if (message == NULL) { _DBUS_SET_OOM (error); @@ -736,7 +731,7 @@ dbus_bus_service_exists (DBusConnection *connection, } if (!dbus_message_append_args (message, - DBUS_TYPE_STRING, &service_name, + DBUS_TYPE_STRING, &name, DBUS_TYPE_INVALID)) { dbus_message_unref (message); @@ -767,26 +762,26 @@ dbus_bus_service_exists (DBusConnection *connection, } /** - * Activates a given service + * Starts a service that will request ownership of the given name. + * The returned result will be one of be one of + * #DBUS_START_REPLY_SUCCESS or #DBUS_START_REPLY_ALREADY_RUNNING if + * successful. Pass #NULL if you don't care about the result. * * @param connection the connection - * @param service_name the service name + * @param name the name we want the new service to request * @param flags the flags - * @param result a place to store the result of the activation, which will - * be one of DBUS_ACTIVATION_REPLY_ACTIVATED or - * DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE if successful. Pass NULL if you - * don't care about the result. + * @param result a place to store the result or #NULL * @param error location to store any errors * @returns #TRUE if the activation succeeded, #FALSE if not * * @todo document what the flags do */ dbus_bool_t -dbus_bus_activate_service (DBusConnection *connection, - const char *service_name, - dbus_uint32_t flags, - dbus_uint32_t *result, - DBusError *error) +dbus_bus_start_service_by_name (DBusConnection *connection, + const char *name, + dbus_uint32_t flags, + dbus_uint32_t *result, + DBusError *error) { DBusMessage *msg; DBusMessage *reply; @@ -794,9 +789,9 @@ dbus_bus_activate_service (DBusConnection *connection, msg = dbus_message_new_method_call (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS, DBUS_PATH_ORG_FREEDESKTOP_DBUS, DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS, - "ActivateService"); + "StartServiceByName"); - if (!dbus_message_append_args (msg, DBUS_TYPE_STRING, &service_name, + if (!dbus_message_append_args (msg, DBUS_TYPE_STRING, &name, DBUS_TYPE_UINT32, &flags, DBUS_TYPE_INVALID)) { dbus_message_unref (msg); diff --git a/dbus/dbus-bus.h b/dbus/dbus-bus.h index a17d724f..7843c7ed 100644 --- a/dbus/dbus-bus.h +++ b/dbus/dbus-bus.h @@ -35,25 +35,25 @@ DBusConnection *dbus_bus_get (DBusBusType type, DBusError *error); dbus_bool_t dbus_bus_register (DBusConnection *connection, DBusError *error); -dbus_bool_t dbus_bus_set_base_service (DBusConnection *connection, - const char *base_service); -const char* dbus_bus_get_base_service (DBusConnection *connection); +dbus_bool_t dbus_bus_set_unique_name (DBusConnection *connection, + const char *unique_name); +const char* dbus_bus_get_unique_name (DBusConnection *connection); unsigned long dbus_bus_get_unix_user (DBusConnection *connection, - const char *service, + const char *name, DBusError *error); -int dbus_bus_acquire_service (DBusConnection *connection, - const char *service_name, +int dbus_bus_request_name (DBusConnection *connection, + const char *name, unsigned int flags, DBusError *error); -dbus_bool_t dbus_bus_service_exists (DBusConnection *connection, - const char *service_name, +dbus_bool_t dbus_bus_name_has_owner (DBusConnection *connection, + const char *name, DBusError *error); -dbus_bool_t dbus_bus_activate_service (DBusConnection *connection, - const char *service_name, - dbus_uint32_t flags, - dbus_uint32_t *reply, - DBusError *error); +dbus_bool_t dbus_bus_start_service_by_name (DBusConnection *connection, + const char *name, + dbus_uint32_t flags, + dbus_uint32_t *reply, + DBusError *error); void dbus_bus_add_match (DBusConnection *connection, const char *rule, diff --git a/dbus/dbus-glib.h b/dbus/dbus-glib.h index 7cf99f06..de53d14a 100644 --- a/dbus/dbus-glib.h +++ b/dbus/dbus-glib.h @@ -111,14 +111,14 @@ typedef struct DBusGProxyClass DBusGProxyClass; GType dbus_g_proxy_get_type (void) G_GNUC_CONST; -DBusGProxy* dbus_g_proxy_new_for_service (DBusGConnection *connection, - const char *service_name, - const char *path_name, - const char *interface_name); -DBusGProxy* dbus_g_proxy_new_for_service_owner (DBusGConnection *connection, - const char *service_name, - const char *path_name, - const char *interface_name, +DBusGProxy* dbus_g_proxy_new_for_name (DBusGConnection *connection, + const char *name, + const char *path, + const char *interface); +DBusGProxy* dbus_g_proxy_new_for_name_owner (DBusGConnection *connection, + const char *name, + const char *path, + const char *interface, GError **error); DBusGProxy* dbus_g_proxy_new_for_peer (DBusGConnection *connection, const char *path_name, diff --git a/dbus/dbus-marshal-header.c b/dbus/dbus-marshal-header.c index 8c5120cf..8346c3af 100644 --- a/dbus/dbus-marshal-header.c +++ b/dbus/dbus-marshal-header.c @@ -505,7 +505,7 @@ _dbus_header_copy (const DBusHeader *header, * * @param header the header * @param message_type the message type - * @param destination service field or #NULL + * @param destination destination field or #NULL * @param path path field or #NULL * @param interface interface field or #NULL * @param member member field or #NULL @@ -833,7 +833,7 @@ load_and_validate_field (DBusHeader *header, switch (field) { case DBUS_HEADER_FIELD_DESTINATION: - string_validation_func = _dbus_validate_service; + string_validation_func = _dbus_validate_bus_name; bad_string_code = DBUS_INVALID_BAD_DESTINATION; break; case DBUS_HEADER_FIELD_INTERFACE: @@ -861,7 +861,7 @@ load_and_validate_field (DBusHeader *header, break; case DBUS_HEADER_FIELD_SENDER: - string_validation_func = _dbus_validate_service; + string_validation_func = _dbus_validate_bus_name; bad_string_code = DBUS_INVALID_BAD_SENDER; break; diff --git a/dbus/dbus-marshal-validate.c b/dbus/dbus-marshal-validate.c index ced5e1ea..ad61847e 100644 --- a/dbus/dbus-marshal-validate.c +++ b/dbus/dbus-marshal-validate.c @@ -729,13 +729,13 @@ _dbus_validate_error_name (const DBusString *str, /* This assumes the first char exists and is ':' */ static dbus_bool_t -_dbus_validate_base_service (const DBusString *str, - int start, - int len) +_dbus_validate_unique_name (const DBusString *str, + int start, + int len) { const unsigned char *s; const unsigned char *end; - const unsigned char *service; + const unsigned char *name; _dbus_assert (start >= 0); _dbus_assert (len >= 0); @@ -749,10 +749,10 @@ _dbus_validate_base_service (const DBusString *str, _dbus_assert (len > 0); - service = _dbus_string_get_const_data (str) + start; - end = service + len; - _dbus_assert (*service == ':'); - s = service + 1; + name = _dbus_string_get_const_data (str) + start; + end = name + len; + _dbus_assert (*name == ':'); + s = name + 1; while (s != end) { @@ -776,9 +776,9 @@ _dbus_validate_base_service (const DBusString *str, } /** - * Checks that the given range of the string is a valid service name - * in the D-BUS protocol. This includes a length restriction, etc., - * see the specification. + * Checks that the given range of the string is a valid bus name in + * the D-BUS protocol. This includes a length restriction, etc., see + * the specification. * * @todo this is inconsistent with most of DBusString in that * it allows a start,len range that extends past the string end. @@ -789,14 +789,14 @@ _dbus_validate_base_service (const DBusString *str, * @returns #TRUE if the byte range exists and is a valid name */ dbus_bool_t -_dbus_validate_service (const DBusString *str, - int start, - int len) +_dbus_validate_bus_name (const DBusString *str, + int start, + int len) { if (_DBUS_UNLIKELY (len == 0)) return FALSE; if (_dbus_string_get_byte (str, start) == ':') - return _dbus_validate_base_service (str, start, len); + return _dbus_validate_unique_name (str, start, len); else return _dbus_validate_interface (str, start, len); } @@ -836,8 +836,8 @@ DEFINE_DBUS_NAME_CHECK(interface); DEFINE_DBUS_NAME_CHECK(member); /** define _dbus_check_is_valid_error_name() */ DEFINE_DBUS_NAME_CHECK(error_name); -/** define _dbus_check_is_valid_service() */ -DEFINE_DBUS_NAME_CHECK(service); +/** define _dbus_check_is_valid_bus_name() */ +DEFINE_DBUS_NAME_CHECK(bus_name); /** define _dbus_check_is_valid_signature() */ DEFINE_DBUS_NAME_CHECK(signature); @@ -974,7 +974,7 @@ _dbus_marshal_validate_test (void) "foo bar" }; - const char *valid_base_services[] = { + const char *valid_unique_names[] = { ":0", ":a", ":", @@ -985,7 +985,7 @@ _dbus_marshal_validate_test (void) ":.blah", ":abce.freedesktop.blah" }; - const char *invalid_base_services[] = { + const char *invalid_unique_names[] = { ":-", ":!", ":0-10", @@ -1104,7 +1104,7 @@ _dbus_marshal_validate_test (void) ++i; } - /* Service validation (check that valid interfaces are valid services, + /* Bus name validation (check that valid interfaces are valid bus names, * and invalid interfaces are invalid services except if they start with ':') */ i = 0; @@ -1112,11 +1112,11 @@ _dbus_marshal_validate_test (void) { _dbus_string_init_const (&str, valid_interfaces[i]); - if (!_dbus_validate_service (&str, 0, + if (!_dbus_validate_bus_name (&str, 0, _dbus_string_get_length (&str))) { - _dbus_warn ("Service \"%s\" should have been valid\n", valid_interfaces[i]); - _dbus_assert_not_reached ("invalid service"); + _dbus_warn ("Bus name \"%s\" should have been valid\n", valid_interfaces[i]); + _dbus_assert_not_reached ("invalid bus name"); } ++i; @@ -1129,43 +1129,43 @@ _dbus_marshal_validate_test (void) { _dbus_string_init_const (&str, invalid_interfaces[i]); - if (_dbus_validate_service (&str, 0, - _dbus_string_get_length (&str))) + if (_dbus_validate_bus_name (&str, 0, + _dbus_string_get_length (&str))) { - _dbus_warn ("Service \"%s\" should have been invalid\n", invalid_interfaces[i]); - _dbus_assert_not_reached ("valid service"); + _dbus_warn ("Bus name \"%s\" should have been invalid\n", invalid_interfaces[i]); + _dbus_assert_not_reached ("valid bus name"); } } ++i; } - /* Base service validation */ + /* unique name validation */ i = 0; - while (i < (int) _DBUS_N_ELEMENTS (valid_base_services)) + while (i < (int) _DBUS_N_ELEMENTS (valid_unique_names)) { - _dbus_string_init_const (&str, valid_base_services[i]); + _dbus_string_init_const (&str, valid_unique_names[i]); - if (!_dbus_validate_service (&str, 0, - _dbus_string_get_length (&str))) + if (!_dbus_validate_bus_name (&str, 0, + _dbus_string_get_length (&str))) { - _dbus_warn ("Service \"%s\" should have been valid\n", valid_base_services[i]); - _dbus_assert_not_reached ("invalid base service"); + _dbus_warn ("Bus name \"%s\" should have been valid\n", valid_unique_names[i]); + _dbus_assert_not_reached ("invalid unique name"); } ++i; } i = 0; - while (i < (int) _DBUS_N_ELEMENTS (invalid_base_services)) + while (i < (int) _DBUS_N_ELEMENTS (invalid_unique_names)) { - _dbus_string_init_const (&str, invalid_base_services[i]); + _dbus_string_init_const (&str, invalid_unique_names[i]); - if (_dbus_validate_service (&str, 0, - _dbus_string_get_length (&str))) + if (_dbus_validate_bus_name (&str, 0, + _dbus_string_get_length (&str))) { - _dbus_warn ("Service \"%s\" should have been invalid\n", invalid_base_services[i]); - _dbus_assert_not_reached ("valid base service"); + _dbus_warn ("Bus name \"%s\" should have been invalid\n", invalid_unique_names[i]); + _dbus_assert_not_reached ("valid unique name"); } ++i; @@ -1271,7 +1271,7 @@ _dbus_marshal_validate_test (void) /* Validate claimed length longer than real length */ _dbus_string_init_const (&str, "abc.efg"); - if (_dbus_validate_service (&str, 0, 8)) + if (_dbus_validate_bus_name (&str, 0, 8)) _dbus_assert_not_reached ("validated too-long string"); if (_dbus_validate_interface (&str, 0, 8)) _dbus_assert_not_reached ("validated too-long string"); @@ -1294,7 +1294,7 @@ _dbus_marshal_validate_test (void) if (!_dbus_string_append (&str, "abc.def")) _dbus_assert_not_reached ("no memory"); - if (_dbus_validate_service (&str, 0, _dbus_string_get_length (&str))) + if (_dbus_validate_bus_name (&str, 0, _dbus_string_get_length (&str))) _dbus_assert_not_reached ("validated overmax string"); if (_dbus_validate_interface (&str, 0, _dbus_string_get_length (&str))) _dbus_assert_not_reached ("validated overmax string"); @@ -1310,14 +1310,14 @@ _dbus_marshal_validate_test (void) if (_dbus_validate_member (&str, 0, _dbus_string_get_length (&str))) _dbus_assert_not_reached ("validated overmax string"); - /* overlong base service */ + /* overlong unique name */ _dbus_string_set_length (&str, 0); _dbus_string_append (&str, ":"); while (_dbus_string_get_length (&str) <= DBUS_MAXIMUM_NAME_LENGTH) if (!_dbus_string_append (&str, "abc")) _dbus_assert_not_reached ("no memory"); - if (_dbus_validate_service (&str, 0, _dbus_string_get_length (&str))) + if (_dbus_validate_bus_name (&str, 0, _dbus_string_get_length (&str))) _dbus_assert_not_reached ("validated overmax string"); _dbus_string_free (&str); diff --git a/dbus/dbus-marshal-validate.h b/dbus/dbus-marshal-validate.h index a4950dbe..6b37338b 100644 --- a/dbus/dbus-marshal-validate.h +++ b/dbus/dbus-marshal-validate.h @@ -115,7 +115,7 @@ dbus_bool_t _dbus_validate_member (const DBusString *str, dbus_bool_t _dbus_validate_error_name (const DBusString *str, int start, int len); -dbus_bool_t _dbus_validate_service (const DBusString *str, +dbus_bool_t _dbus_validate_bus_name (const DBusString *str, int start, int len); dbus_bool_t _dbus_validate_signature (const DBusString *str, @@ -159,7 +159,7 @@ DECLARE_DBUS_NAME_CHECK(path); DECLARE_DBUS_NAME_CHECK(interface); DECLARE_DBUS_NAME_CHECK(member); DECLARE_DBUS_NAME_CHECK(error_name); -DECLARE_DBUS_NAME_CHECK(service); +DECLARE_DBUS_NAME_CHECK(bus_name); DECLARE_DBUS_NAME_CHECK(signature); #endif /* DBUS_MARSHAL_VALIDATE_H */ diff --git a/dbus/dbus-message.c b/dbus/dbus-message.c index 8bb48667..e4c761c2 100644 --- a/dbus/dbus-message.c +++ b/dbus/dbus-message.c @@ -728,7 +728,7 @@ dbus_message_new (int message_type) * that if multiple methods with the given name exist it is undefined * which one will be invoked. * - * @param destination service that the message should be sent to or #NULL + * @param destination name that the message should be sent to or #NULL * @param path object path the message should be sent to * @param interface interface to invoke method on * @param method method to invoke @@ -747,7 +747,7 @@ dbus_message_new_method_call (const char *destination, _dbus_return_val_if_fail (path != NULL, NULL); _dbus_return_val_if_fail (method != NULL, NULL); _dbus_return_val_if_fail (destination == NULL || - _dbus_check_is_valid_service (destination), NULL); + _dbus_check_is_valid_bus_name (destination), NULL); _dbus_return_val_if_fail (_dbus_check_is_valid_path (path), NULL); _dbus_return_val_if_fail (interface == NULL || _dbus_check_is_valid_interface (interface), NULL); @@ -2190,41 +2190,41 @@ dbus_message_get_no_reply (DBusMessage *message) } /** - * Sets a flag indicating that the addressed service will be - * auto-activated before the message is delivered. When this flag is - * set, the message is held until the service is succesfully activated - * or fails to activate. In case of failure, the reply will be an - * activation error. If this flag is not set (the default + * Sets a flag indicating that an owner for the destination name will + * be automatically started before the message is delivered. When this + * flag is set, the message is held until a name owner finishes + * starting up, or fails to start up. In case of failure, the reply + * will be an error. * * @param message the message - * @param auto_activation #TRUE if auto-activation is desired + * @param auto_start #TRUE if auto-starting is desired */ void -dbus_message_set_auto_activation (DBusMessage *message, - dbus_bool_t auto_activation) +dbus_message_set_auto_start (DBusMessage *message, + dbus_bool_t auto_start) { _dbus_return_if_fail (message != NULL); _dbus_return_if_fail (!message->locked); _dbus_header_toggle_flag (&message->header, - DBUS_HEADER_FLAG_AUTO_ACTIVATION, - auto_activation); + DBUS_HEADER_FLAG_AUTO_START, + auto_start); } /** - * Returns #TRUE if the message will cause the addressed service to be - * auto-activated. + * Returns #TRUE if the message will cause an owner for + * destination name to be auto-started. * * @param message the message - * @returns #TRUE if the message will use auto-activation + * @returns #TRUE if the message will use auto-start */ dbus_bool_t -dbus_message_get_auto_activation (DBusMessage *message) +dbus_message_get_auto_start (DBusMessage *message) { _dbus_return_val_if_fail (message != NULL, FALSE); return _dbus_header_get_flag (&message->header, - DBUS_HEADER_FLAG_AUTO_ACTIVATION); + DBUS_HEADER_FLAG_AUTO_START); } @@ -2462,10 +2462,13 @@ dbus_message_get_error_name (DBusMessage *message) } /** - * Sets the message's destination service. + * Sets the message's destination. The destination is the name of + * another connection on the bus and may be either the unique name + * assigned by the bus to each connection, or a well-known name + * specified in advance. * * @param message the message - * @param destination the destination service name or #NULL to unset + * @param destination the destination name or #NULL to unset * @returns #FALSE if not enough memory */ dbus_bool_t @@ -2475,7 +2478,7 @@ dbus_message_set_destination (DBusMessage *message, _dbus_return_val_if_fail (message != NULL, FALSE); _dbus_return_val_if_fail (!message->locked, FALSE); _dbus_return_val_if_fail (destination == NULL || - _dbus_check_is_valid_service (destination), + _dbus_check_is_valid_bus_name (destination), FALSE); return set_or_delete_string_field (message, @@ -2485,11 +2488,10 @@ dbus_message_set_destination (DBusMessage *message, } /** - * Gets the destination service of a message or #NULL if there is - * none set. + * Gets the destination of a message or #NULL if there is none set. * * @param message the message - * @returns the message destination service (should not be freed) or #NULL + * @returns the message destination (should not be freed) or #NULL */ const char* dbus_message_get_destination (DBusMessage *message) @@ -2520,7 +2522,7 @@ dbus_message_set_sender (DBusMessage *message, _dbus_return_val_if_fail (message != NULL, FALSE); _dbus_return_val_if_fail (!message->locked, FALSE); _dbus_return_val_if_fail (sender == NULL || - _dbus_check_is_valid_service (sender), + _dbus_check_is_valid_bus_name (sender), FALSE); return set_or_delete_string_field (message, @@ -2530,11 +2532,12 @@ dbus_message_set_sender (DBusMessage *message, } /** - * Gets the service which originated this message, - * or #NULL if unknown or inapplicable. + * Gets the unique name of the connection which originated this + * message, or #NULL if unknown or inapplicable. The sender is filled + * in by the message bus. * * @param message the message - * @returns the service name or #NULL + * @returns the unique name of the sender or #NULL */ const char* dbus_message_get_sender (DBusMessage *message) @@ -2706,67 +2709,65 @@ dbus_message_is_error (DBusMessage *message, } /** - * Checks whether the message was sent to the given service. If the - * message has no service specified or has a different name, returns - * #FALSE. + * Checks whether the message was sent to the given name. If the + * message has no destination specified or has a different + * destination, returns #FALSE. * * @param message the message - * @param service the service to check (must not be #NULL) + * @param name the name to check (must not be #NULL) * - * @returns #TRUE if the message has the given destination service + * @returns #TRUE if the message has the given destination name */ dbus_bool_t dbus_message_has_destination (DBusMessage *message, - const char *service) + const char *name) { const char *s; _dbus_return_val_if_fail (message != NULL, FALSE); - _dbus_return_val_if_fail (service != NULL, FALSE); - /* don't check that service name is valid since it would be expensive, - * and not catch many common errors + _dbus_return_val_if_fail (name != NULL, FALSE); + /* don't check that name is valid since it would be expensive, and + * not catch many common errors */ s = dbus_message_get_destination (message); - if (s && strcmp (s, service) == 0) + if (s && strcmp (s, name) == 0) return TRUE; else return FALSE; } /** - * Checks whether the message has the given service as its sender. If - * the message has no sender specified or has a different sender, - * returns #FALSE. Note that if a peer application owns multiple - * services, its messages will have only one of those services as the - * sender (usually the base service). So you can't use this - * function to prove the sender didn't own service Foo, you can - * only use it to prove that it did. + * Checks whether the message has the given unique name as its sender. + * If the message has no sender specified or has a different sender, + * returns #FALSE. Note that a peer application will always have the + * unique name of the connection as the sender. So you can't use this + * function to see whether a sender owned a well-known name. * - * @todo this function is probably useless unless we make a hard guarantee - * that the sender field in messages will always be the base service name + * Messages from the bus itself will have #DBUS_SERVICE_ORG_FREEDESKTOP_DBUS + * as the sender. * * @param message the message - * @param service the service to check (must not be #NULL) + * @param name the name to check (must not be #NULL) * - * @returns #TRUE if the message has the given origin service + * @returns #TRUE if the message has the given sender */ dbus_bool_t dbus_message_has_sender (DBusMessage *message, - const char *service) + const char *name) { const char *s; _dbus_return_val_if_fail (message != NULL, FALSE); - _dbus_return_val_if_fail (service != NULL, FALSE); - /* don't check that service name is valid since it would be expensive, - * and not catch many common errors + _dbus_return_val_if_fail (name != NULL, FALSE); + /* don't check that name is valid since it would be expensive, and + * not catch many common errors */ s = dbus_message_get_sender (message); - if (s && strcmp (s, service) == 0) + if (s && strcmp (s, name) == 0) return TRUE; else return FALSE; diff --git a/dbus/dbus-message.h b/dbus/dbus-message.h index 7dcedcc7..421ed6ba 100644 --- a/dbus/dbus-message.h +++ b/dbus/dbus-message.h @@ -61,7 +61,7 @@ struct DBusMessageIter }; DBusMessage* dbus_message_new (int message_type); -DBusMessage* dbus_message_new_method_call (const char *service, +DBusMessage* dbus_message_new_method_call (const char *bus_name, const char *path, const char *interface, const char *method); @@ -113,9 +113,9 @@ dbus_bool_t dbus_message_is_signal (DBusMessage *message, dbus_bool_t dbus_message_is_error (DBusMessage *message, const char *error_name); dbus_bool_t dbus_message_has_destination (DBusMessage *message, - const char *service); + const char *bus_name); dbus_bool_t dbus_message_has_sender (DBusMessage *message, - const char *service); + const char *unique_bus_name); dbus_bool_t dbus_message_has_signature (DBusMessage *message, const char *signature); dbus_uint32_t dbus_message_get_serial (DBusMessage *message); @@ -123,9 +123,9 @@ dbus_bool_t dbus_message_set_reply_serial (DBusMessage *message, dbus_uint32_t reply_serial); dbus_uint32_t dbus_message_get_reply_serial (DBusMessage *message); -void dbus_message_set_auto_activation (DBusMessage *message, - dbus_bool_t auto_activation); -dbus_bool_t dbus_message_get_auto_activation (DBusMessage *message); +void dbus_message_set_auto_start (DBusMessage *message, + dbus_bool_t auto_start); +dbus_bool_t dbus_message_get_auto_start (DBusMessage *message); dbus_bool_t dbus_message_get_path_decomposed (DBusMessage *message, char ***path); diff --git a/dbus/dbus-protocol.h b/dbus/dbus-protocol.h index 6edd84f1..fec94d8c 100644 --- a/dbus/dbus-protocol.h +++ b/dbus/dbus-protocol.h @@ -89,11 +89,11 @@ extern "C" { #define DBUS_STRUCT_END_CHAR ((int) ')') #define DBUS_STRUCT_END_CHAR_AS_STRING ")" -/* Max length in bytes of a service or interface or member name (not - * object path, paths are unlimited). This is limited because lots of - * stuff is O(n) in this number, plus it would be obnoxious to type in - * a paragraph-long method name so most likely something like that - * would be an exploit. +/* Max length in bytes of a bus name, interface, or member (not object + * path, paths are unlimited). This is limited because lots of stuff + * is O(n) in this number, plus it would be obnoxious to type in a + * paragraph-long method name so most likely something like that would + * be an exploit. */ #define DBUS_MAXIMUM_NAME_LENGTH 255 @@ -142,7 +142,7 @@ extern "C" { /* Header flags */ #define DBUS_HEADER_FLAG_NO_REPLY_EXPECTED 0x1 -#define DBUS_HEADER_FLAG_AUTO_ACTIVATION 0x2 +#define DBUS_HEADER_FLAG_AUTO_START 0x2 /* Header fields */ #define DBUS_HEADER_FIELD_INVALID 0 @@ -203,19 +203,19 @@ extern "C" { */ #define DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL "org.freedesktop.Local" -/* Service owner flags */ -#define DBUS_SERVICE_FLAG_PROHIBIT_REPLACEMENT 0x1 -#define DBUS_SERVICE_FLAG_REPLACE_EXISTING 0x2 +/* Owner flags */ +#define DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT 0x1 +#define DBUS_NAME_FLAG_REPLACE_EXISTING 0x2 -/* Service replies */ -#define DBUS_SERVICE_REPLY_PRIMARY_OWNER 0x1 -#define DBUS_SERVICE_REPLY_IN_QUEUE 0x2 -#define DBUS_SERVICE_REPLY_SERVICE_EXISTS 0x4 -#define DBUS_SERVICE_REPLY_ALREADY_OWNER 0x8 +/* Replies to request for a name */ +#define DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER 1 +#define DBUS_REQUEST_NAME_REPLY_IN_QUEUE 2 +#define DBUS_REQUEST_NAME_REPLY_EXISTS 3 +#define DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER 4 -/* Activation replies */ -#define DBUS_ACTIVATION_REPLY_ACTIVATED 0x0 -#define DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE 0x1 +/* Replies to service starts */ +#define DBUS_START_REPLY_SUCCESS 1 +#define DBUS_START_REPLY_ALREADY_RUNNING 2 /* Errors */ /* WARNING these get autoconverted to an enum in dbus-glib.h. Thus, @@ -225,9 +225,8 @@ extern "C" { */ #define DBUS_ERROR_FAILED "org.freedesktop.DBus.Error.Failed" #define DBUS_ERROR_NO_MEMORY "org.freedesktop.DBus.Error.NoMemory" -#define DBUS_ERROR_ACTIVATE_SERVICE_NOT_FOUND "org.freedesktop.DBus.Error.ServiceNotFound" -#define DBUS_ERROR_SERVICE_DOES_NOT_EXIST "org.freedesktop.DBus.Error.ServiceDoesNotExist" -#define DBUS_ERROR_SERVICE_HAS_NO_OWNER "org.freedesktop.DBus.Error.ServiceHasNoOwner" +#define DBUS_ERROR_SERVICE_UNKNOWN "org.freedesktop.DBus.Error.ServiceUnknown" +#define DBUS_ERROR_NAME_HAS_NO_OWNER "org.freedesktop.DBus.Error.NameHasNoOwner" #define DBUS_ERROR_NO_REPLY "org.freedesktop.DBus.Error.NoReply" #define DBUS_ERROR_IO_ERROR "org.freedesktop.DBus.Error.IOError" #define DBUS_ERROR_BAD_ADDRESS "org.freedesktop.DBus.Error.BadAddress" diff --git a/dbus/dbus-shared.h b/dbus/dbus-shared.h index a1c8b1ce..4fca1c57 100644 --- a/dbus/dbus-shared.h +++ b/dbus/dbus-shared.h @@ -36,7 +36,7 @@ typedef enum { DBUS_BUS_SESSION, /**< The login session bus */ DBUS_BUS_SYSTEM, /**< The systemwide bus */ - DBUS_BUS_ACTIVATION /**< The bus that activated us, if any */ + DBUS_BUS_STARTER /**< The bus that started us, if any */ } DBusBusType; typedef enum |