main.c (dovecot-2.3.16) | : | main.c (dovecot-2.3.17) | ||
---|---|---|---|---|
skipping to change at line 55 | skipping to change at line 55 | |||
bool closing_down, login_debug; | bool closing_down, login_debug; | |||
struct anvil_client *anvil; | struct anvil_client *anvil; | |||
const char *login_rawlog_dir = NULL; | const char *login_rawlog_dir = NULL; | |||
unsigned int initial_service_count; | unsigned int initial_service_count; | |||
struct login_module_register login_module_register; | struct login_module_register login_module_register; | |||
ARRAY_TYPE(string) global_alt_usernames; | ARRAY_TYPE(string) global_alt_usernames; | |||
bool login_ssl_initialized; | bool login_ssl_initialized; | |||
const struct login_settings *global_login_settings; | const struct login_settings *global_login_settings; | |||
const struct master_service_ssl_settings *global_ssl_settings; | const struct master_service_ssl_settings *global_ssl_settings; | |||
const struct master_service_ssl_server_settings *global_ssl_server_settings; | ||||
void **global_other_settings; | void **global_other_settings; | |||
static ARRAY(struct ip_addr) login_source_ips_array; | static ARRAY(struct ip_addr) login_source_ips_array; | |||
const struct ip_addr *login_source_ips; | const struct ip_addr *login_source_ips; | |||
unsigned int login_source_ips_idx, login_source_ips_count; | unsigned int login_source_ips_idx, login_source_ips_count; | |||
static struct module *modules; | static struct module *modules; | |||
static struct timeout *auth_client_to; | static struct timeout *auth_client_to; | |||
static const char *post_login_socket; | static const char *post_login_socket; | |||
static bool shutting_down = FALSE; | static bool shutting_down = FALSE; | |||
skipping to change at line 167 | skipping to change at line 168 | |||
clients_destroy_all(); | clients_destroy_all(); | |||
} | } | |||
} | } | |||
static void | static void | |||
client_connected_finish(const struct master_service_connection *conn) | client_connected_finish(const struct master_service_connection *conn) | |||
{ | { | |||
struct client *client; | struct client *client; | |||
const struct login_settings *set; | const struct login_settings *set; | |||
const struct master_service_ssl_settings *ssl_set; | const struct master_service_ssl_settings *ssl_set; | |||
const struct master_service_ssl_server_settings *ssl_server_set; | ||||
pool_t pool; | pool_t pool; | |||
void **other_sets; | void **other_sets; | |||
pool = pool_alloconly_create("login client", 8*1024); | pool = pool_alloconly_create("login client", 8*1024); | |||
set = login_settings_read(pool, &conn->local_ip, | set = login_settings_read(pool, &conn->local_ip, | |||
&conn->remote_ip, NULL, &ssl_set, &other_sets); | &conn->remote_ip, NULL, | |||
&ssl_set, &ssl_server_set, &other_sets); | ||||
client = client_alloc(conn->fd, pool, conn, set, ssl_set); | client = client_alloc(conn->fd, pool, conn, set, | |||
ssl_set, ssl_server_set); | ||||
if (ssl_connections || conn->ssl) { | if (ssl_connections || conn->ssl) { | |||
if (client_init_ssl(client) < 0) { | if (client_init_ssl(client) < 0) { | |||
client_unref(&client); | client_unref(&client); | |||
net_disconnect(conn->fd); | net_disconnect(conn->fd); | |||
master_service_client_connection_destroyed(master_service ); | master_service_client_connection_destroyed(master_service ); | |||
return; | return; | |||
} | } | |||
} | } | |||
client_init(client, other_sets); | client_init(client, other_sets); | |||
skipping to change at line 383 | skipping to change at line 387 | |||
} | } | |||
static void login_ssl_init(void) | static void login_ssl_init(void) | |||
{ | { | |||
struct ssl_iostream_settings ssl_set; | struct ssl_iostream_settings ssl_set; | |||
const char *error; | const char *error; | |||
if (strcmp(global_ssl_settings->ssl, "no") == 0) | if (strcmp(global_ssl_settings->ssl, "no") == 0) | |||
return; | return; | |||
master_service_ssl_settings_to_iostream_set(global_ssl_settings, | master_service_ssl_server_settings_to_iostream_set(global_ssl_settings, | |||
pool_datastack_create(), | global_ssl_server_settings, pool_datastack_create(), &ssl_set); | |||
MASTER_SERVICE_SSL_SETTINGS_TYPE_SERVER, &ssl_set); | ||||
if (io_stream_ssl_global_init(&ssl_set, &error) < 0) | if (io_stream_ssl_global_init(&ssl_set, &error) < 0) | |||
i_fatal("Failed to initialize SSL library: %s", error); | i_fatal("Failed to initialize SSL library: %s", error); | |||
login_ssl_initialized = TRUE; | login_ssl_initialized = TRUE; | |||
} | } | |||
static void main_preinit(void) | static void main_preinit(void) | |||
{ | { | |||
unsigned int max_fds; | unsigned int max_fds; | |||
/* Initialize SSL proxy so it can read certificate and private | /* Initialize SSL proxy so it can read certificate and private | |||
skipping to change at line 512 | skipping to change at line 515 | |||
login_settings_deinit(); | login_settings_deinit(); | |||
event_unref(&event_auth); | event_unref(&event_auth); | |||
} | } | |||
int login_binary_run(struct login_binary *binary, | int login_binary_run(struct login_binary *binary, | |||
int argc, char *argv[]) | int argc, char *argv[]) | |||
{ | { | |||
enum master_service_flags service_flags = | enum master_service_flags service_flags = | |||
MASTER_SERVICE_FLAG_KEEP_CONFIG_OPEN | | MASTER_SERVICE_FLAG_KEEP_CONFIG_OPEN | | |||
MASTER_SERVICE_FLAG_TRACK_LOGIN_STATE | | MASTER_SERVICE_FLAG_TRACK_LOGIN_STATE | | |||
MASTER_SERVICE_FLAG_USE_SSL_SETTINGS | | ||||
MASTER_SERVICE_FLAG_HAVE_STARTTLS | | MASTER_SERVICE_FLAG_HAVE_STARTTLS | | |||
MASTER_SERVICE_FLAG_NO_SSL_INIT; | MASTER_SERVICE_FLAG_NO_SSL_INIT; | |||
pool_t set_pool; | pool_t set_pool; | |||
const char *login_socket; | const char *login_socket; | |||
int c; | int c; | |||
login_binary = binary; | login_binary = binary; | |||
login_socket = binary->default_login_socket != NULL ? | login_socket = binary->default_login_socket != NULL ? | |||
binary->default_login_socket : LOGIN_DEFAULT_SOCKET; | binary->default_login_socket : LOGIN_DEFAULT_SOCKET; | |||
post_login_socket = binary->protocol; | post_login_socket = binary->protocol; | |||
skipping to change at line 556 | skipping to change at line 558 | |||
} | } | |||
if (argv[optind] != NULL) | if (argv[optind] != NULL) | |||
login_socket = argv[optind]; | login_socket = argv[optind]; | |||
login_binary->preinit(); | login_binary->preinit(); | |||
set_pool = pool_alloconly_create("global login settings", 4096); | set_pool = pool_alloconly_create("global login settings", 4096); | |||
global_login_settings = | global_login_settings = | |||
login_settings_read(set_pool, NULL, NULL, NULL, | login_settings_read(set_pool, NULL, NULL, NULL, | |||
&global_ssl_settings, | &global_ssl_settings, | |||
&global_ssl_server_settings, | ||||
&global_other_settings); | &global_other_settings); | |||
main_preinit(); | main_preinit(); | |||
main_init(login_socket); | main_init(login_socket); | |||
master_service_init_finish(master_service); | master_service_init_finish(master_service); | |||
master_service_run(master_service, client_connected); | master_service_run(master_service, client_connected); | |||
main_deinit(); | main_deinit(); | |||
array_free(&login_source_ips_array); | array_free(&login_source_ips_array); | |||
pool_unref(&set_pool); | pool_unref(&set_pool); | |||
End of changes. 7 change blocks. | ||||
6 lines changed or deleted | 9 lines changed or added |