bool use_environment = FALSE;
i_zero(output_r);
+ output_r->config_fd = -1;
if (service->config_fd != -1 && !input->reload_config) {
/* config was already read once */
return -1;
}
+ if (input->return_config_fd) {
+ output_r->config_fd = dup(fd);
+ if (output_r->config_fd == -1)
+ i_fatal("dup(%s) failed: %m", path);
+ }
if (input->config_path == NULL) {
i_assert(service->config_fd == -1 ||
service->config_fd == fd);
bool reload_config;
bool never_exec;
bool always_exec;
+ bool return_config_fd;
bool use_sysexits;
const char *service;
/* if service was not given for lookup, this contains names of services
that have more specific settings */
const char *const *specific_services;
+ /* Configuration file fd. Returned if input.return_config_fd=TRUE. */
+ int config_fd;
/* Config couldn't be read because we don't have enough permissions.
The process probably should be restarted and the settings read