summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2011-03-28 13:21:35 -0400
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2011-04-08 13:17:32 +0100
commit171934b377a5e205c902c0645e6b8e802014232c (patch)
treef9b35c09ca677281a332ee93743ead0ca1d846c6
parentaa009ba18b3520819835aab6d56861e6f73eb816 (diff)
downloaddbus-171934b377a5e205c902c0645e6b8e802014232c.tar.gz
activation: Strip out code to compare by Exec=
In commit: 075945f6 (John (J5) Palmieri 2005-07-14 20:44:15 +0000 some code was added to compare services by Exec key. The changelog is not pariticularly informative as to why this was added. But while debugging other code, we noticed this. Comparing by Exec key is not in the specification, and triggered a problem where while converting services to use systemd for activation, a change was made to use Exec=/bin/false and simply rely on systemd to activate. While I think it was broken for the service files to be changed to Exec=/bin/false, we shouldn't be doing something here that's not in the spec either. Reviewed-by: Will Thompson <will.thompson@collabora.co.uk> Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk> Bug: https://bugs.freedesktop.org/show_bug.cgi?id=35750
-rw-r--r--bus/activation.c22
1 files changed, 4 insertions, 18 deletions
diff --git a/bus/activation.c b/bus/activation.c
index 7b2a72bc..ab6ef51e 100644
--- a/bus/activation.c
+++ b/bus/activation.c
@@ -1685,11 +1685,9 @@ bus_activation_activate_service (BusActivation *activation,
int argc;
dbus_bool_t retval;
DBusHashIter iter;
- dbus_bool_t activated;
+ dbus_bool_t was_pending_activation;
DBusString command;
- activated = TRUE;
-
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
if (activation->n_pending_activations >=
@@ -1768,7 +1766,8 @@ bus_activation_activate_service (BusActivation *activation,
/* Check if the service is being activated */
pending_activation = _dbus_hash_table_lookup_string (activation->pending_activations, service_name);
- if (pending_activation)
+ was_pending_activation = (pending_activation != NULL);
+ if (was_pending_activation)
{
if (!_dbus_list_append (&pending_activation->entries, pending_activation_entry))
{
@@ -1875,19 +1874,6 @@ bus_activation_activate_service (BusActivation *activation,
pending_activation->n_entries += 1;
pending_activation->activation->n_pending_activations += 1;
- activated = FALSE;
- _dbus_hash_iter_init (activation->pending_activations, &iter);
- while (_dbus_hash_iter_next (&iter))
- {
- BusPendingActivation *p = _dbus_hash_iter_get_value (&iter);
-
- if (strcmp (p->exec, entry->exec) == 0)
- {
- activated = TRUE;
- break;
- }
- }
-
if (!_dbus_hash_table_insert_string (activation->pending_activations,
pending_activation->service_name,
pending_activation))
@@ -1910,7 +1896,7 @@ bus_activation_activate_service (BusActivation *activation,
return FALSE;
}
- if (activated)
+ if (was_pending_activation)
return TRUE;
if (bus_context_get_systemd_activation (activation->context))