#define IS_STANDALONE() \
(getenv(MASTER_IS_PARENT_ENV) == NULL)
-const char *dns_client_socket_path, *base_dir;
+char *dns_client_socket_path, *base_dir;
struct mail_storage_service_ctx *storage_service;
struct anvil_client *anvil;
memset(&conn, 0, sizeof(conn));
(void)client_create(STDIN_FILENO, STDOUT_FILENO, &conn);
}
- dns_client_socket_path = t_abspath(DNS_CLIENT_SOCKET_PATH);
+ dns_client_socket_path = i_strdup(t_abspath(DNS_CLIENT_SOCKET_PATH));
}
static void main_deinit(void)
clients_destroy();
if (anvil != NULL)
anvil_client_deinit(&anvil);
+ i_free(dns_client_socket_path);
+ i_free(base_dir);
}
int main(int argc, char *argv[])
MAIL_STORAGE_SERVICE_FLAG_NO_LOG_INIT |
MAIL_STORAGE_SERVICE_FLAG_NO_IDLE_TIMEOUT |
MAIL_STORAGE_SERVICE_FLAG_AUTOEXPUNGE;
+ const char *tmp_base_dir;
int c;
if (IS_STANDALONE()) {
}
}
- if (t_get_current_dir(&base_dir) < 0)
+ if (t_get_current_dir(&tmp_base_dir) < 0)
i_fatal("getcwd() failed: %m");
+ base_dir = i_strdup(tmp_base_dir);
+
drop_privileges();
master_service_init_log(master_service,
t_strdup_printf("lmtp(%s): ", my_pid));
#ifndef MAIN_H
#define MAIN_H
-extern const char *dns_client_socket_path, *base_dir;
+extern char *dns_client_socket_path, *base_dir;
extern struct mail_storage_service_ctx *storage_service;
extern struct anvil_client *anvil;