From 50335a86103947cef2dc8cd7fa83dcc71b5a00f6 Mon Sep 17 00:00:00 2001 From: Dmitry Simonenko Date: Wed, 16 Nov 2016 14:39:17 +0300 Subject: [PATCH] odissey: sketch basic cancel details --- core/od_be.c | 9 +++++++++ core/od_router.c | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/core/od_be.c b/core/od_be.c index 77cdd70d..415b8fb1 100644 --- a/core/od_be.c +++ b/core/od_be.c @@ -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) { diff --git a/core/od_router.c b/core/od_router.c index db68ffba..8ee5282c 100644 --- a/core/od_router.c +++ b/core/od_router.c @@ -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 */