mirror of https://github.com/yandex/odyssey.git
odissey: fix pooler tls init
This commit is contained in:
parent
d39eea0359
commit
886ece4c69
|
@ -24,6 +24,7 @@ struct od_client
|
|||
uint64_t coroutine_id;
|
||||
uint64_t coroutine_attacher_id;
|
||||
machine_io_t *io;
|
||||
machine_tls_t *tls;
|
||||
od_schemeuser_t *scheme;
|
||||
so_bestartup_t startup;
|
||||
so_key_t key;
|
||||
|
@ -42,6 +43,7 @@ od_client_init(od_client_t *client)
|
|||
client->coroutine_id = 0;
|
||||
client->coroutine_attacher_id = 0;
|
||||
client->io = NULL;
|
||||
client->tls = NULL;
|
||||
client->scheme = NULL;
|
||||
client->server = NULL;
|
||||
client->route = NULL;
|
||||
|
|
|
@ -119,7 +119,6 @@ static int
|
|||
od_frontend_startup(od_client_t *client)
|
||||
{
|
||||
od_instance_t *instance = client->system->instance;
|
||||
od_pooler_t *pooler = client->system->pooler;
|
||||
|
||||
int rc;
|
||||
rc = od_frontend_startup_read(client);
|
||||
|
@ -135,7 +134,7 @@ od_frontend_startup(od_client_t *client)
|
|||
/* client ssl request */
|
||||
rc = od_tls_frontend_accept(client, &instance->log,
|
||||
&instance->scheme,
|
||||
pooler->tls);
|
||||
client->tls);
|
||||
if (rc == -1)
|
||||
return -1;
|
||||
|
||||
|
|
|
@ -55,6 +55,15 @@ od_pooler_server(void *arg)
|
|||
od_instance_t *instance = server->system->instance;
|
||||
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 */
|
||||
machine_io_t *server_io;
|
||||
server_io = machine_io_create();
|
||||
|
@ -128,6 +137,7 @@ od_pooler_server(void *arg)
|
|||
}
|
||||
od_idmgr_generate(&instance->id_mgr, &client->id);
|
||||
client->io = client_io;
|
||||
client->tls = server->tls;
|
||||
|
||||
/* create new client event and pass it to worker pool */
|
||||
machine_msg_t *msg;
|
||||
|
@ -276,20 +286,9 @@ od_pooler(void *arg)
|
|||
|
||||
int od_pooler_init(od_pooler_t *pooler, od_system_t *system)
|
||||
{
|
||||
od_instance_t *instance = system->instance;
|
||||
|
||||
pooler->machine = -1;
|
||||
pooler->system = system;
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -13,13 +13,13 @@ typedef struct od_poolerserver od_poolerserver_t;
|
|||
struct od_poolerserver
|
||||
{
|
||||
struct addrinfo *addr;
|
||||
machine_tls_t *tls;
|
||||
od_system_t *system;
|
||||
};
|
||||
|
||||
struct od_pooler
|
||||
{
|
||||
int64_t machine;
|
||||
machine_tls_t *tls;
|
||||
struct addrinfo *addr;
|
||||
od_system_t *system;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue