odissey: sketch basic cancel details

This commit is contained in:
Dmitry Simonenko 2016-11-16 14:39:17 +03:00
parent e0a07477c0
commit 50335a8610
2 changed files with 13 additions and 0 deletions

View File

@ -54,6 +54,9 @@ int od_beclose(odserver_t *server)
ft_close(server->io);
server->io = NULL;
}
server->is_transaction = 0;
server->is_ready = 0;
server->idle_time = 0;
od_serverfree(server);
return 0;
}
@ -255,6 +258,12 @@ int od_bereset(odserver_t *server)
od_serverpool_set(&route->server_pool, server,
OD_SRESET);
if (! server->is_ready) {
/* connect to server */
/* send cancel and disconnect */
/* wait for ready */
}
/* send rollback in case if server has an active
* transaction running */
if (server->is_transaction) {

View File

@ -167,6 +167,10 @@ void od_router(void *arg)
if (client->startup.is_cancel) {
od_debug(&pooler->od->log, "C: cancel request");
od_feclose(client);
/* match server by client key */
/* get real key */
/* connect to server */
/* send cancel and disconnect */
return;
}
/* client auth */