in seconds. */
#define MASTER_SERVICE_IDLE_KILL_ENV "IDLE_KILL"
-/* getenv(MASTER_CONFIG_FILE_ENV) provides path to configuration file/socket */
+/* getenv(MASTER_CONFIG_FILE_ENV) provides path to configuration file. */
#define MASTER_CONFIG_FILE_ENV "CONFIG_FILE"
+/* getenv(MASTER_CONFIG_FILE_SOCKET_ENV) provides path to Configuration
+ socket, if available. */
+#define MASTER_CONFIG_FILE_SOCKET_ENV "CONFIG_FILE_SOCKET"
+
/* getenv(MASTER_VERBOSE_PROCTITLE_ENV) is non-NULL if verbose_proctitle=yes.
This is used by lib-master during initialization. */
#define MASTER_VERBOSE_PROCTITLE_ENV "VERBOSE_PROCTITLE"
service->service_count_left = UINT_MAX;
service->datastack_frame_id = datastack_frame_id;
- service->config_path = i_strdup(getenv(MASTER_CONFIG_FILE_ENV));
+ service->config_path = i_strdup(getenv(MASTER_CONFIG_FILE_SOCKET_ENV));
+ if (service->config_path == NULL)
+ service->config_path = i_strdup(getenv(MASTER_CONFIG_FILE_ENV));
if (service->config_path == NULL)
service->config_path = i_strdup(DEFAULT_CONFIG_FILE_PATH);
else
env_remove(MASTER_SERVICE_ENV);
env_remove(MASTER_SERVICE_SOCKET_COUNT_ENV);
env_remove(MASTER_UID_ENV);
- env_remove(MASTER_CONFIG_FILE_ENV);
+ env_remove(MASTER_CONFIG_FILE_SOCKET_ENV);
T_BEGIN {
for (unsigned int i = 0; i < service->socket_count; i++)
env_remove(t_strdup_printf("SOCKET%u_SETTINGS", i));
env_put(MASTER_CONFIG_FILE_ENV, service->config_file_path);
break;
default:
- env_put(MASTER_CONFIG_FILE_ENV,
+ env_put(MASTER_CONFIG_FILE_ENV, services->config->config_file_path);
+ env_put(MASTER_CONFIG_FILE_SOCKET_ENV,
services_get_config_socket_path(service->list));
break;
}