X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Fhttp_command.c;h=567189e2254ec4f093ebb743a37423a1ac76d16f;hb=9ca12b83de76e7b30b71e8b8c504deb21d8a09fd;hp=5f40d29480c6b96229cb1c87862392d8c7bee3e8;hpb=6576c41731395b1fe85ede4556892c3034960592;p=pazpar2-moved-to-github.git diff --git a/src/http_command.c b/src/http_command.c index 5f40d29..567189e 100644 --- a/src/http_command.c +++ b/src/http_command.c @@ -498,6 +498,7 @@ static void cmd_settings(struct http_channel *c) { xmlDoc *doc = xmlParseMemory(rq->content_buf, rq->content_len); xmlNode *root_n; + int ret; if (!doc) { error(rs, PAZPAR2_MALFORMED_SETTING, 0); @@ -505,10 +506,14 @@ static void cmd_settings(struct http_channel *c) return; } root_n = xmlDocGetRootElement(doc); - - settings_read_node_x(root_n, s->psession, apply_local_setting); - + ret = settings_read_node_x(root_n, s->psession, apply_local_setting); xmlFreeDoc(doc); + if (ret) + { + error(rs, PAZPAR2_MALFORMED_SETTING, 0); + release_session(c,s); + return; + } } if (process_settings(s->psession, rq, rs) < 0) { @@ -726,8 +731,10 @@ static void bytarget_response(struct http_channel *c, struct http_session *s, co } wrbuf_printf(c->wrbuf, "%d\n", ht[i].records - ht[i].filtered); - if (version >= 2) + if (version >= 2) { wrbuf_printf(c->wrbuf, "%d\n", ht[i].filtered); + wrbuf_printf(c->wrbuf, "" ODR_INT_PRINTF "\n", ht[i].approximation); + } wrbuf_puts(c->wrbuf, ""); wrbuf_xmlputs(c->wrbuf, ht[i].state); wrbuf_puts(c->wrbuf, "\n");