diff options
author | Anders Carlsson <andersca@codefactory.se> | 2003-02-17 09:59:23 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@codefactory.se> | 2003-02-17 09:59:23 +0000 |
commit | 3c8db267892bbce5c82d5060cef993dd54dc6ed4 (patch) | |
tree | 9560edcebc5bf79b4550611a67505b7677543418 /bus/activation.c | |
parent | 8faf99b118daf0040a58981cdf24a344ff2578ca (diff) |
2003-02-17 Anders Carlsson <andersca@codefactory.se>
* bus/activation.c: (bus_activation_init), (child_setup),
(bus_activation_activate_service):
* bus/activation.h:
* bus/main.c: (main):
Set DBUS_ADDRESS environment variable.
* dbus/dbus-errors.c: (dbus_set_error):
Don't use va_copy since that's a C99 feature.
* dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
(_dbus_spawn_async):
* dbus/dbus-sysdeps.h:
Add child_setup_func to _dbus_spawn_async.
* doc/dbus-specification.sgml:
Update specification.
* test/spawn-test.c: (setup_func), (main):
Fix test.
Diffstat (limited to 'bus/activation.c')
-rw-r--r-- | bus/activation.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/bus/activation.c b/bus/activation.c index b4acd0f3..b5cec44a 100644 --- a/bus/activation.c +++ b/bus/activation.c @@ -34,6 +34,7 @@ #define DBUS_SERVICE_EXEC "Exec" static DBusHashTable *activation_entries = NULL; +static char *server_address = NULL; typedef struct { @@ -174,10 +175,14 @@ load_directory (const char *directory) void -bus_activation_init (const char **directories) +bus_activation_init (const char *address, + const char **directories) { int i; + /* FIXME: We should split up the server addresses. */ + BUS_HANDLE_OOM (server_address = _dbus_strdup (address)); + BUS_HANDLE_OOM (activation_entries = _dbus_hash_table_new (DBUS_HASH_STRING, NULL, (DBusFreeFunction)bus_activation_entry_free)); @@ -191,6 +196,13 @@ bus_activation_init (const char **directories) } } +static void +child_setup (void *data) +{ + /* FIXME: Check return value in case of OOM */ + _dbus_setenv ("DBUS_ADDRESS", server_address); +} + dbus_bool_t bus_activation_activate_service (const char *service_name, DBusError *error) @@ -212,7 +224,9 @@ bus_activation_activate_service (const char *service_name, argv[0] = entry->exec; argv[1] = NULL; - if (!_dbus_spawn_async (argv, error)) + if (!_dbus_spawn_async (argv, + child_setup, NULL, + error)) return FALSE; return TRUE; |