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_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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue