odissey: fix pooler tls init

This commit is contained in:
Dmitry Simonenko 2017-06-26 16:23:50 +03:00
parent d39eea0359
commit 886ece4c69
4 changed files with 14 additions and 14 deletions

View File

@ -24,6 +24,7 @@ struct od_client
uint64_t coroutine_id; uint64_t coroutine_id;
uint64_t coroutine_attacher_id; uint64_t coroutine_attacher_id;
machine_io_t *io; machine_io_t *io;
machine_tls_t *tls;
od_schemeuser_t *scheme; od_schemeuser_t *scheme;
so_bestartup_t startup; so_bestartup_t startup;
so_key_t key; so_key_t key;
@ -42,6 +43,7 @@ od_client_init(od_client_t *client)
client->coroutine_id = 0; client->coroutine_id = 0;
client->coroutine_attacher_id = 0; client->coroutine_attacher_id = 0;
client->io = NULL; client->io = NULL;
client->tls = NULL;
client->scheme = NULL; client->scheme = NULL;
client->server = NULL; client->server = NULL;
client->route = NULL; client->route = NULL;

View File

@ -119,7 +119,6 @@ static int
od_frontend_startup(od_client_t *client) od_frontend_startup(od_client_t *client)
{ {
od_instance_t *instance = client->system->instance; od_instance_t *instance = client->system->instance;
od_pooler_t *pooler = client->system->pooler;
int rc; int rc;
rc = od_frontend_startup_read(client); rc = od_frontend_startup_read(client);
@ -135,7 +134,7 @@ od_frontend_startup(od_client_t *client)
/* client ssl request */ /* client ssl request */
rc = od_tls_frontend_accept(client, &instance->log, rc = od_tls_frontend_accept(client, &instance->log,
&instance->scheme, &instance->scheme,
pooler->tls); client->tls);
if (rc == -1) if (rc == -1)
return -1; return -1;

View File

@ -55,6 +55,15 @@ od_pooler_server(void *arg)
od_instance_t *instance = server->system->instance; od_instance_t *instance = server->system->instance;
od_relaypool_t *relay_pool = server->system->relay_pool; od_relaypool_t *relay_pool = server->system->relay_pool;
/* create server tls */
if (instance->scheme.tls_verify != OD_TDISABLE) {
server->tls = od_tls_frontend(&instance->scheme);
if (server->tls == NULL) {
od_error(&instance->log, "server", "failed to create tls handler");
return;
}
}
/* create server io */ /* create server io */
machine_io_t *server_io; machine_io_t *server_io;
server_io = machine_io_create(); server_io = machine_io_create();
@ -128,6 +137,7 @@ od_pooler_server(void *arg)
} }
od_idmgr_generate(&instance->id_mgr, &client->id); od_idmgr_generate(&instance->id_mgr, &client->id);
client->io = client_io; client->io = client_io;
client->tls = server->tls;
/* create new client event and pass it to worker pool */ /* create new client event and pass it to worker pool */
machine_msg_t *msg; machine_msg_t *msg;
@ -276,20 +286,9 @@ od_pooler(void *arg)
int od_pooler_init(od_pooler_t *pooler, od_system_t *system) int od_pooler_init(od_pooler_t *pooler, od_system_t *system)
{ {
od_instance_t *instance = system->instance;
pooler->machine = -1; pooler->machine = -1;
pooler->system = system; pooler->system = system;
pooler->addr = NULL; pooler->addr = NULL;
pooler->tls = NULL;
/* init pooler tls */
od_scheme_t *scheme = &instance->scheme;
if (scheme->tls_verify != OD_TDISABLE) {
pooler->tls = od_tls_frontend(scheme);
if (pooler->tls == NULL)
return -1;
}
return 0; return 0;
} }

View File

@ -13,13 +13,13 @@ typedef struct od_poolerserver od_poolerserver_t;
struct od_poolerserver struct od_poolerserver
{ {
struct addrinfo *addr; struct addrinfo *addr;
machine_tls_t *tls;
od_system_t *system; od_system_t *system;
}; };
struct od_pooler struct od_pooler
{ {
int64_t machine; int64_t machine;
machine_tls_t *tls;
struct addrinfo *addr; struct addrinfo *addr;
od_system_t *system; od_system_t *system;
}; };