From 653eefae87622525a167edb1926f3cec6145f4d0 Mon Sep 17 00:00:00 2001 From: Dmitry Simonenko Date: Tue, 15 Nov 2016 14:17:22 +0300 Subject: [PATCH] odissey: add be query function --- core/od_be.c | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/core/od_be.c b/core/od_be.c index c7d7de45..5b72dd3c 100644 --- a/core/od_be.c +++ b/core/od_be.c @@ -205,6 +205,24 @@ od_beready_wait(odserver_t *server, char *procedure) return 0; } +static inline int +od_bequery(odserver_t *server, char *procedure, char *query, int len) +{ + int rc; + sostream_t *stream = &server->stream; + so_stream_reset(stream); + rc = so_fewrite_query(stream, query, len); + if (rc == -1) + return -1; + rc = od_write(server->io, stream); + if (rc == -1) + return -1; + rc = od_beready_wait(server, procedure); + if (rc < 0) + return -1; + return 0; +} + int od_bereset(odserver_t *server) { odroute_t *route = server->route; @@ -216,18 +234,9 @@ int od_bereset(odserver_t *server) /* send reset query */ char reset_query[] = "DISCARD ALL"; int rc; - sostream_t *stream = &server->stream; - so_stream_reset(stream); - rc = so_fewrite_query(stream, reset_query, sizeof(reset_query)); + rc = od_bequery(server, "reset", reset_query, sizeof(reset_query)); if (rc == -1) goto error; - rc = od_write(server->io, stream); - if (rc == -1) - goto error; - /* wait for ready */ - rc = od_beready_wait(server, "reset"); - if (rc < 0) - goto error; /* server is ready to use */ od_serverpool_set(&route->server_pool, server,