From 4c7c90a5300f65aa9d309738cf8a47aff8aecfb4 Mon Sep 17 00:00:00 2001 From: shura Date: Sat, 26 Dec 2020 22:51:55 +0200 Subject: [PATCH] fix .. test --- Jamrules.configure | 2 +- src/fmtbin.c | 80 ++++++++++++++++++++++++++--------------------------- src/monetdb/Jamfile | 4 +-- 3 files changed, 43 insertions(+), 43 deletions(-) diff --git a/Jamrules.configure b/Jamrules.configure index 046883b..fbc2749 100644 --- a/Jamrules.configure +++ b/Jamrules.configure @@ -140,7 +140,7 @@ rule -configure- { HAVE_MONETDB = 'no' ; if $(USE_MONETDB) { #if [ -pkg-find- monetdb-mapi ] == 1 && [ -pkg-find- monetdb-gdk ] == 1 && [ -pkg-find- monetdb-stream ] == 1 { - if [ -pkg-find- monetdb-mapi ] == 1 && [ -pkg-find- monetdb-stream ] == 1 { + if [ -pkg-find- monetdb-mapi ] == 1 { -configure-add-line- "SubInclude TOP src monetdb ;" ; HAVE_MONETDB = 'yes' ; } diff --git a/src/fmtbin.c b/src/fmtbin.c index e19522d..585e91a 100644 --- a/src/fmtbin.c +++ b/src/fmtbin.c @@ -33,67 +33,67 @@ static xsql_fmt_t *bin_open (xsql_fmtprov_t *prov, const char *fname, size_t fna return NULL; } if (XSQL_WRITE == res->flags) { - msgbuf_t msg = MSG_INIT; - msg_create_response(&msg, MSG_OK, 8, 8); - msg_seti32(&msg, FMT_BEGIN); + strbuf_t msg; + msg_alloc(&msg, 8, 8); + msg_addi32(&msg, FMT_BEGIN); if (msg.len != write(res->fd, msg.ptr, msg.len)) { - msg_clear(&msg); + msg_destroy(&msg); if (res->fname) free(res->fname); if (res->name) free(res->name); free(res); return NULL; } - msg_clear(&msg); + msg_destroy(&msg); } return (xsql_fmt_t*)res; } static void bin_start_outrec (xsql_fmt_t *fmt, xsql_stmt_t *stmt) { xsql_bin_t *bin = (xsql_bin_t*)fmt; - msgbuf_t msg = MSG_INIT; - msg_create_response(&msg, MSG_OK, 128, 128); - msg_seti32(&msg, FMT_BEGIN_DATA); - msg_seti32(&msg, stmt->nflds); + strbuf_t msg; + msg_alloc(&msg, 128, 128); + msg_addi32(&msg, FMT_BEGIN_DATA); + msg_addi32(&msg, stmt->nflds); for (int i = 0; i < stmt->nflds; ++i) { str_t *fldname = stmt->fldnams[i]; - msg_setstr(&msg, fldname->ptr, fldname->len); + msg_addstr(&msg, fldname->ptr, fldname->len); } write(bin->fd, msg.ptr, msg.len); - msg_clear(&msg); + msg_destroy(&msg); } static void bin_outrec (xsql_fmt_t *fmt, xsql_stmt_t *stmt) { xsql_bin_t *bin = (xsql_bin_t*)fmt; - msgbuf_t msg = MSG_INIT; - msg_create_response(&msg, MSG_OK, 256, 256); - msg_seti32(&msg, FMT_RECORD); + strbuf_t msg; + msg_alloc(&msg, 256, 256); + msg_addi32(&msg, FMT_RECORD); for (int i = 0; i < stmt->nflds; ++i) { char *s = stmt->result[i]; if (s) - msg_setstr(&msg, s, strlen(s)); + msg_addstr(&msg, s, strlen(s)); else - msg_setstr(&msg, NULL, 0); + msg_addstr(&msg, NULL, 0); } write(bin->fd, msg.ptr, msg.len); - msg_clear(&msg); + msg_destroy(&msg); } static void bin_end_outrec (xsql_fmt_t *fmt, xsql_stmt_t *stmt) { xsql_bin_t *bin = (xsql_bin_t*)fmt; - msgbuf_t msg = MSG_INIT; - msg_create_response(&msg, MSG_OK, 8, 8); - msg_seti32(&msg, FMT_END_DATA); + strbuf_t msg; + msg_alloc(&msg, 8, 8); + msg_addi32(&msg, FMT_END_DATA); write(bin->fd, msg.ptr, msg.len); - msg_clear(&msg); + msg_destroy(&msg); } static void bin_start_outvar (xsql_fmt_t *fmt) { xsql_bin_t *bin = (xsql_bin_t*)fmt; - msgbuf_t msg = MSG_INIT; - msg_create_response(&msg, MSG_OK, 8, 8); - msg_seti32(&msg, FMT_NODATA); + strbuf_t msg; + msg_alloc(&msg, 8, 8); + msg_addi32(&msg, FMT_NODATA); write(bin->fd, msg.ptr, msg.len); - msg_clear(&msg); + msg_destroy(&msg); } static void bin_outvar (xsql_fmt_t *fmt, xsql_var_t *var, size_t index) { @@ -102,22 +102,22 @@ static void bin_outvar (xsql_fmt_t *fmt, xsql_var_t *var, size_t index) { static void bin_end_outvar (xsql_fmt_t *fmt) { } -static int loadmsg (xsql_bin_t *bin, msgbuf_t *msg) { - uint32_t len; - char *buf = NULL; - if (sizeof(uint32_t) != read(bin->fd, &len, sizeof(uint32_t))) +static int loadmsg (xsql_bin_t *bin, strbuf_t *msg) { + msglen_t len; + if (sizeof(msglen_t) != read(bin->fd, &len, sizeof(msglen_t))) return -1; - buf = malloc(len + sizeof(uint32_t)); - *((uint32_t*)buf) = len; - if (len-sizeof(uint32_t) != read(bin->fd, buf+sizeof(uint32_t), len-sizeof(uint32_t))) { - free(buf); + if (-1 == strbufalloc(msg, len + sizeof(msglen_t), 64)) + return -1; + if (len != read(bin->fd, msg->ptr + sizeof(msglen_t), len)) { + free(msg->ptr); + msg->ptr = NULL; return -1; } - return msg_load_response(msg, buf, len); + return msg_parse(msg, 0); } static int bin_read (xsql_fmt_t *fmt, xsql_fmt_read_t *data) { - msgbuf_t msg = MSG_INIT; + strbuf_t msg; int32_t n; int rc = loadmsg((xsql_bin_t*)fmt, &msg); if (rc < 0) @@ -184,18 +184,18 @@ static int bin_read (xsql_fmt_t *fmt, xsql_fmt_read_t *data) { data->len = 0; } } - msg_clear(&msg); + msg_destroy(&msg); return rc; } static void bin_close (xsql_fmt_t *fmt) { xsql_bin_t *bin = (xsql_bin_t*)fmt; if (XSQL_WRITE == fmt->flags) { - msgbuf_t msg = MSG_INIT; - msg_create_response(&msg, MSG_OK, 8, 8); - msg_seti32(&msg, FMT_END); + strbuf_t msg; + msg_alloc(&msg, 8, 8); + msg_addi32(&msg, FMT_END); write(bin->fd, msg.ptr, msg.len); - msg_clear(&msg); + msg_destroy(&msg); } if (bin->fname) free(bin->fname); diff --git a/src/monetdb/Jamfile b/src/monetdb/Jamfile index 5659652..4fddb5a 100644 --- a/src/monetdb/Jamfile +++ b/src/monetdb/Jamfile @@ -4,6 +4,6 @@ SubDirCcFlags [ Command pkg-config --cflags monetdb-mapi : parse-output no-space [ Command pkg-config --cflags monetdb-stream : parse-output no-space-break no-tab-break no-cr-break ] ; SharedLibrary libxsql_mdb$(SUFSHR) : xsql_monetdb.c ; InstallBin lib : libxsql_mdb$(SUFSHR) ; -LINKLIBS on libxsql_monetdb$(SUFSHR) = [ Command pkg-config --libs monetdb-mapi : parse-output no-space-break no-tab-break no-cr-break ] +LINKLIBS on libxsql_monetdb$(SUFSHR) = [ Command pkg-config --libs monetdb-mapi : parse-output no-space-break no-tab-break no-cr-break ] ; # [ Command pkg-config --libs monetdb-gdk : parse-output no-space-break no-tab-break no-cr-break ] - [ Command pkg-config --libs monetdb-stream : parse-output no-space-break no-tab-break no-cr-break ] ; +# [ Command pkg-config --libs monetdb-stream : parse-output no-space-break no-tab-break no-cr-break ] ; -- 2.11.4.GIT