master-service-ssl.c revision cf3894a2a22dc76247275e7ad7a5417fa5f27a28
/* Copyright (c) 2012 Dovecot authors, see the included COPYING file */
#include "lib.h"
#include "ioloop.h"
#include "buffer.h"
#include "iostream-ssl.h"
#include "master-service-private.h"
#include "master-service-settings.h"
#include "master-service-ssl-settings.h"
#include "master-service-ssl.h"
#include <unistd.h>
/* Check every 30 minutes if parameters file has been updated */
#define SSL_PARAMETERS_PATH "ssl-params"
{
#define BUF_APPEND_SIZE 1024
const char *path;
void *data;
int fd;
if (ioloop_time == 0 ||
return 0;
if (fd == -1) {
return -1;
}
for (;;) {
if (ret <= 0)
break;
}
if (ret < 0)
i_error("Corrupted SSL parameters file: "
ret = -1;
}
i_close_fd(&fd);
buffer_free(&buf);
return ret < 0 ? -1 : 0;
}
struct ssl_iostream **ssl_iostream_r)
{
const struct master_service_ssl_settings *set;
struct ssl_iostream_settings ssl_set;
return -1;
(void)ssl_refresh_parameters(service);
}
{
}
{
const struct master_service_ssl_settings *set;
struct ssl_iostream_settings ssl_set;
if (service->ssl_ctx_initialized)
return;
/* must be called after master_service_init_finish() so that if
initialization fails we can close the SSL listeners */
i_error("SSL context initialization failed, disabling SSL");
return;
}
if (ssl_refresh_parameters(service) < 0) {
i_error("Couldn't initialize SSL parameters, disabling SSL");
return;
}
}
{
}