diff options
author | Havoc Pennington <hp@redhat.com> | 2005-01-15 07:15:38 +0000 |
---|---|---|
committer | Havoc Pennington <hp@redhat.com> | 2005-01-15 07:15:38 +0000 |
commit | 9c3d566e95c9080f6040c64531b0ccae22bd5d74 (patch) | |
tree | d21a18baa5a5ee9855c8a00eb2c1985bc23ca65f /bus/activation.c | |
parent | 6ec04e917c8b4d477e818aa65ebb5e1fd50e4395 (diff) | |
download | dbus-9c3d566e95c9080f6040c64531b0ccae22bd5d74.tar.gz |
2005-01-15 Havoc Pennington <hp@redhat.com>
* Land the new message args API and type system.
This patch is huge, but the public API change is not
really large. The set of D-BUS types has changed somewhat,
and the arg "getters" are more geared toward language bindings;
they don't make a copy, etc.
There are also some known issues. See these emails for details
on this huge patch:
http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
* dbus/dbus-marshal-*: all the new stuff
* dbus/dbus-message.c: basically rewritten
* dbus/dbus-memory.c (check_guards): with "guards" enabled, init
freed blocks to be all non-nul bytes so using freed memory is less
likely to work right
* dbus/dbus-internals.c (_dbus_test_oom_handling): add
DBUS_FAIL_MALLOC=N environment variable, so you can do
DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
thorough.
* qt/message.cpp: port to the new message args API
(operator<<): use str.utf8() rather than str.unicode()
(pretty sure this is right from the Qt docs?)
* glib/dbus-gvalue.c: port to the new message args API
* bus/dispatch.c, bus/driver.c: port to the new message args API
* dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
"locked" flag to TRUE and align_offset to 0; I guess we never
looked at these anyhow, but seems cleaner.
* dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
move allocation padding macro to this header; use it to implement
(_DBUS_STRING_STATIC): ability to declare a static string.
* dbus/dbus-message.c (_dbus_message_has_type_interface_member):
change to return TRUE if the interface is not set.
* dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
to dbus-marshal-validate.[hc]
* dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
dbus-internals.c
* dbus/Makefile.am: cut over from dbus-marshal.[hc]
to dbus-marshal-*.[hc]
* dbus/dbus-object-tree.c (_dbus_decompose_path): move this
function here from dbus-marshal.c
Diffstat (limited to 'bus/activation.c')
-rw-r--r-- | bus/activation.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/bus/activation.c b/bus/activation.c index 9010b941..7461720a 100644 --- a/bus/activation.c +++ b/bus/activation.c @@ -93,6 +93,7 @@ typedef struct unsigned int timeout_added : 1; } BusPendingActivation; +#if 0 static BusServiceDirectory * bus_service_directory_ref (BusServiceDirectory *dir) { @@ -102,6 +103,7 @@ bus_service_directory_ref (BusServiceDirectory *dir) return dir; } +#endif static void bus_service_directory_unref (BusServiceDirectory *dir) @@ -909,15 +911,19 @@ bus_activation_service_created (BusActivation *activation, /* Only send activation replies to regular activation requests. */ if (!entry->auto_activation) { + dbus_uint32_t result; + message = dbus_message_new_method_return (entry->activation_message); if (!message) { BUS_SET_OOM (error); goto error; } - + + result = DBUS_ACTIVATION_REPLY_ACTIVATED; + if (!dbus_message_append_args (message, - DBUS_TYPE_UINT32, DBUS_ACTIVATION_REPLY_ACTIVATED, + DBUS_TYPE_UINT32, &result, DBUS_TYPE_INVALID)) { dbus_message_unref (message); @@ -1328,6 +1334,8 @@ bus_activation_activate_service (BusActivation *activation, _dbus_string_init_const (&service_str, service_name); if (bus_registry_lookup (bus_context_get_registry (activation->context), &service_str) != NULL) { + dbus_uint32_t result; + _dbus_verbose ("Service \"%s\" is already active\n", service_name); message = dbus_message_new_method_return (activation_message); @@ -1339,8 +1347,10 @@ bus_activation_activate_service (BusActivation *activation, return FALSE; } + result = DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE; + if (!dbus_message_append_args (message, - DBUS_TYPE_UINT32, DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE, + DBUS_TYPE_UINT32, &result, DBUS_TYPE_INVALID)) { _dbus_verbose ("No memory to set args of reply to activate message\n"); |