"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/login-common/main.c" between
dovecot-2.3.16.tar.gz and dovecot-2.3.17.tar.gz

About: Dovecot is an IMAP and POP3 server, written with security primarily in mind.

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

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)