/* activation.c Activation of services
*
* Copyright (C) 2003 CodeFactory AB
+ * Copyright (C) 2003 Red Hat, Inc.
*
* Licensed under the Academic Free License version 1.2
*
BusActivation*
bus_activation_new (BusContext *context,
const DBusString *address,
- const char **directories,
+ DBusList **directories,
DBusError *error)
{
- int i;
BusActivation *activation;
-
+ DBusList *link;
+
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
activation = dbus_new0 (BusActivation, 1);
}
/* Load service files */
- i = 0;
- while (directories[i] != NULL)
+ link = _dbus_list_get_first_link (directories);
+ while (link != NULL)
{
- if (!load_directory (activation, directories[i], error))
+ if (!load_directory (activation, link->data, error))
goto failed;
- ++i;
+ link = _dbus_list_get_next_link (directories, link);
}
return activation;
}
dbus_bool_t
-bus_activation_service_created (BusActivation *activation,
- const char *service_name,
- DBusError *error)
+bus_activation_service_created (BusActivation *activation,
+ const char *service_name,
+ BusTransaction *transaction,
+ DBusError *error)
{
BusPendingActivation *pending_activation;
DBusMessage *message;
goto error;
}
- if (!dbus_message_append_args (message,
+ if (!dbus_message_set_sender (message, DBUS_SERVICE_DBUS) ||
+ !dbus_message_append_args (message,
DBUS_TYPE_UINT32, DBUS_ACTIVATION_REPLY_ACTIVATED,
0))
{
BUS_SET_OOM (error);
goto error;
}
-
- if (!dbus_connection_send (entry->connection, message, NULL))
+
+ if (!bus_transaction_send_message (transaction, entry->connection, message))
{
dbus_message_unref (message);
BUS_SET_OOM (error);
dbus_bool_t
bus_activation_activate_service (BusActivation *activation,
DBusConnection *connection,
+ BusTransaction *transaction,
DBusMessage *activation_message,
const char *service_name,
DBusError *error)
return FALSE;
}
- if (!dbus_message_append_args (message,
+ if (!dbus_message_set_sender (message, DBUS_SERVICE_DBUS) ||
+ !dbus_message_append_args (message,
DBUS_TYPE_UINT32, DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE,
0))
{
return FALSE;
}
- retval = dbus_connection_send (connection, message, NULL);
+ retval = bus_transaction_send_message (transaction, connection, message);
dbus_message_unref (message);
if (!retval)
BUS_SET_OOM (error);