diff options
Diffstat (limited to 'dbus/dbus-bus.c')
| -rw-r--r-- | dbus/dbus-bus.c | 153 | 
1 files changed, 74 insertions, 79 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);  | 
