diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2014-11-06 20:59:57 +0000 |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2014-11-06 20:59:57 +0000 |
commit | 51a609c8ba56b77aac23a2aa4be367a37adfda13 (patch) | |
tree | 6c89955fef7a75e571a43d5cb6ec055ec9cdfe55 /bus/activation.c | |
parent | cec244b5961e64e85d2f59fde40ecb1a4e9c93cc (diff) | |
parent | fc50a44527cf083da913533360ce4644cd69b243 (diff) | |
download | dbus-51a609c8ba56b77aac23a2aa4be367a37adfda13.tar.gz |
Merge branch 'dbus-1.8'
Conflicts:
NEWS
configure.ac
Diffstat (limited to 'bus/activation.c')
-rw-r--r-- | bus/activation.c | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/bus/activation.c b/bus/activation.c index bdf9cf3d..ffedf4c5 100644 --- a/bus/activation.c +++ b/bus/activation.c @@ -1688,6 +1688,31 @@ out: return retval; } +static void +child_setup (void *user_data) +{ +#ifdef DBUS_UNIX + BusActivation *activation = user_data; + DBusRLimit *initial_fd_limit; + DBusError error; + + dbus_error_init (&error); + initial_fd_limit = bus_context_get_initial_fd_limit (activation->context); + + if (initial_fd_limit != NULL && + !_dbus_rlimit_restore_fd_limit (initial_fd_limit, &error)) + { + /* unfortunately we don't actually know the service name here */ + bus_context_log (activation->context, + DBUS_SYSTEM_LOG_INFO, + "Failed to reset fd limit before activating " + "service: %s: %s", + error.name, error.message); + } +#endif +} + + dbus_bool_t bus_activation_activate_service (BusActivation *activation, DBusConnection *connection, @@ -2121,7 +2146,8 @@ bus_activation_activate_service (BusActivation *activation, service_name, argv, envp, - NULL, activation, + child_setup, + activation, &tmp_error)) { _dbus_verbose ("Failed to spawn child\n"); |