projects
/
platform
/
upstream
/
dbus.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
2003-04-02 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git]
/
bus
/
activation.c
diff --git
a/bus/activation.c
b/bus/activation.c
index
c7d08ba
..
0dfce3f
100644
(file)
--- a/
bus/activation.c
+++ b/
bus/activation.c
@@
-2,6
+2,7
@@
/* activation.c Activation of services
*
* Copyright (C) 2003 CodeFactory AB
/* 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
*
*
* Licensed under the Academic Free License version 1.2
*
@@
-119,6
+120,8
@@
add_desktop_file_entry (BusActivation *activation,
char *name, *exec;
BusActivationEntry *entry;
char *name, *exec;
BusActivationEntry *entry;
+ _DBUS_ASSERT_ERROR_IS_CLEAR (error);
+
name = NULL;
exec = NULL;
entry = NULL;
name = NULL;
exec = NULL;
entry = NULL;
@@
-194,19
+197,21
@@
load_directory (BusActivation *activation,
DBusString full_path;
BusDesktopFile *desktop_file;
DBusError tmp_error;
DBusString full_path;
BusDesktopFile *desktop_file;
DBusError tmp_error;
+
+ _DBUS_ASSERT_ERROR_IS_CLEAR (error);
_dbus_string_init_const (&dir, directory);
iter = NULL;
desktop_file = NULL;
_dbus_string_init_const (&dir, directory);
iter = NULL;
desktop_file = NULL;
- if (!_dbus_string_init (&filename
, _DBUS_INT_MAX
))
+ if (!_dbus_string_init (&filename))
{
BUS_SET_OOM (error);
return FALSE;
}
{
BUS_SET_OOM (error);
return FALSE;
}
- if (!_dbus_string_init (&full_path
, _DBUS_INT_MAX
))
+ if (!_dbus_string_init (&full_path))
{
BUS_SET_OOM (error);
_dbus_string_free (&filename);
{
BUS_SET_OOM (error);
_dbus_string_free (&filename);
@@
-240,10
+245,8
@@
load_directory (BusActivation *activation,
if (!_dbus_string_ends_with_c_str (&filename, ".service"))
{
if (!_dbus_string_ends_with_c_str (&filename, ".service"))
{
- const char *filename_c;
- _dbus_string_get_const_data (&filename, &filename_c);
_dbus_verbose ("Skipping non-.service file %s\n",
_dbus_verbose ("Skipping non-.service file %s\n",
-
filename_c
);
+
_dbus_string_get_const_data (&filename)
);
continue;
}
continue;
}
@@
-251,11
+254,8
@@
load_directory (BusActivation *activation,
if (desktop_file == NULL)
{
if (desktop_file == NULL)
{
- const char *full_path_c;
-
- _dbus_string_get_const_data (&full_path, &full_path_c);
-
- _dbus_verbose ("Could not load %s: %s\n", full_path_c,
+ _dbus_verbose ("Could not load %s: %s\n",
+ _dbus_string_get_const_data (&full_path),
tmp_error.message);
if (dbus_error_has_name (&tmp_error, DBUS_ERROR_NO_MEMORY))
tmp_error.message);
if (dbus_error_has_name (&tmp_error, DBUS_ERROR_NO_MEMORY))
@@
-270,15
+270,11
@@
load_directory (BusActivation *activation,
if (!add_desktop_file_entry (activation, desktop_file, &tmp_error))
{
if (!add_desktop_file_entry (activation, desktop_file, &tmp_error))
{
- const char *full_path_c;
-
bus_desktop_file_free (desktop_file);
desktop_file = NULL;
bus_desktop_file_free (desktop_file);
desktop_file = NULL;
-
- _dbus_string_get_const_data (&full_path, &full_path_c);
_dbus_verbose ("Could not add %s to activation entry list: %s\n",
_dbus_verbose ("Could not add %s to activation entry list: %s\n",
-
full_path_c
, tmp_error.message);
+
_dbus_string_get_const_data (&full_path)
, tmp_error.message);
if (dbus_error_has_name (&tmp_error, DBUS_ERROR_NO_MEMORY))
{
if (dbus_error_has_name (&tmp_error, DBUS_ERROR_NO_MEMORY))
{
@@
-319,14
+315,16
@@
load_directory (BusActivation *activation,
}
BusActivation*
}
BusActivation*
-bus_activation_new (BusContext *context,
- const
char
*address,
-
const char
**directories,
- DBusError *error)
+bus_activation_new (BusContext
*context,
+ const
DBusString
*address,
+
DBusList
**directories,
+ DBusError
*error)
{
{
- int i;
BusActivation *activation;
BusActivation *activation;
-
+ DBusList *link;
+
+ _DBUS_ASSERT_ERROR_IS_CLEAR (error);
+
activation = dbus_new0 (BusActivation, 1);
if (activation == NULL)
{
activation = dbus_new0 (BusActivation, 1);
if (activation == NULL)
{
@@
-337,9
+335,7
@@
bus_activation_new (BusContext *context,
activation->refcount = 1;
activation->context = context;
activation->refcount = 1;
activation->context = context;
- /* FIXME: We should split up the server addresses. */
- activation->server_address = _dbus_strdup (address);
- if (activation->server_address == NULL)
+ if (!_dbus_string_copy_data (address, &activation->server_address))
{
BUS_SET_OOM (error);
goto failed;
{
BUS_SET_OOM (error);
goto failed;
@@
-363,12
+359,12
@@
bus_activation_new (BusContext *context,
}
/* Load service files */
}
/* 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;
goto failed;
-
++i
;
+
link = _dbus_list_get_next_link (directories, link)
;
}
return activation;
}
return activation;
@@
-417,13
+413,16
@@
child_setup (void *data)
}
dbus_bool_t
}
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;
DBusList *link;
{
BusPendingActivation *pending_activation;
DBusMessage *message;
DBusList *link;
+
+ _DBUS_ASSERT_ERROR_IS_CLEAR (error);
/* Check if it's a pending activation */
pending_activation = _dbus_hash_table_lookup_string (activation->pending_activations, service_name);
/* Check if it's a pending activation */
pending_activation = _dbus_hash_table_lookup_string (activation->pending_activations, service_name);
@@
-446,7
+445,8
@@
bus_activation_service_created (BusActivation *activation,
goto error;
}
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))
{
DBUS_TYPE_UINT32, DBUS_ACTIVATION_REPLY_ACTIVATED,
0))
{
@@
-454,8
+454,8
@@
bus_activation_service_created (BusActivation *activation,
BUS_SET_OOM (error);
goto error;
}
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_message_unref (message);
BUS_SET_OOM (error);
@@
-481,6
+481,7
@@
bus_activation_service_created (BusActivation *activation,
dbus_bool_t
bus_activation_activate_service (BusActivation *activation,
DBusConnection *connection,
dbus_bool_t
bus_activation_activate_service (BusActivation *activation,
DBusConnection *connection,
+ BusTransaction *transaction,
DBusMessage *activation_message,
const char *service_name,
DBusError *error)
DBusMessage *activation_message,
const char *service_name,
DBusError *error)
@@
-492,6
+493,8
@@
bus_activation_activate_service (BusActivation *activation,
DBusString service_str;
char *argv[2];
dbus_bool_t retval;
DBusString service_str;
char *argv[2];
dbus_bool_t retval;
+
+ _DBUS_ASSERT_ERROR_IS_CLEAR (error);
entry = _dbus_hash_table_lookup_string (activation->entries, service_name);
entry = _dbus_hash_table_lookup_string (activation->entries, service_name);
@@
-515,7
+518,8
@@
bus_activation_activate_service (BusActivation *activation,
return FALSE;
}
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))
{
DBUS_TYPE_UINT32, DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE,
0))
{
@@
-524,7
+528,7
@@
bus_activation_activate_service (BusActivation *activation,
return FALSE;
}
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);
dbus_message_unref (message);
if (!retval)
BUS_SET_OOM (error);
@@
-548,7
+552,7
@@
bus_activation_activate_service (BusActivation *activation,
pending_activation = _dbus_hash_table_lookup_string (activation->pending_activations, service_name);
if (pending_activation)
{
pending_activation = _dbus_hash_table_lookup_string (activation->pending_activations, service_name);
if (pending_activation)
{
- if (!_dbus_list_append (&pending_activation->entries, entry))
+ if (!_dbus_list_append (&pending_activation->entries,
pending_activation_
entry))
{
BUS_SET_OOM (error);
bus_pending_activation_entry_free (pending_activation_entry);
{
BUS_SET_OOM (error);
bus_pending_activation_entry_free (pending_activation_entry);
@@
-574,7
+578,7
@@
bus_activation_activate_service (BusActivation *activation,
return FALSE;
}
return FALSE;
}
- if (!_dbus_list_append (&pending_activation->entries, entry))
+ if (!_dbus_list_append (&pending_activation->entries,
pending_activation_
entry))
{
BUS_SET_OOM (error);
bus_pending_activation_free (pending_activation);
{
BUS_SET_OOM (error);
bus_pending_activation_free (pending_activation);