From: Adam Dickmeiss Date: Wed, 11 Dec 2013 14:48:13 +0000 (+0100) Subject: Fix truncation of HTTP body log X-Git-Tag: v5.0.6~5 X-Git-Url: http://sru.miketaylor.org.uk/cgi-bin?a=commitdiff_plain;h=e5c4e6d4c245ae26a73953cbc5261929f55c103f;p=yaz-moved-to-github.git Fix truncation of HTTP body log Use the stream write instead of odr_printf which has a 4K tmp buffer. --- diff --git a/src/http.c b/src/http.c index 642c3ad..96445ed 100644 --- a/src/http.c +++ b/src/http.c @@ -547,23 +547,24 @@ int yaz_decode_http_request(ODR o, Z_HTTP_Request **hr_p) static void dump_http_package(ODR o, const char *buf, size_t len) { - int i; + int i, limit = 8192; for (i = 0; ; i++) { if (i == len) { + o->op->stream_write(o, o->op->print, ODR_VISIBLESTRING, buf, i); odr_printf(o, "%.*s\n", i, buf); break; } - else if (i > 8192) + else if (i >= limit) { - odr_printf(o, "%.*s\n", i, buf); - odr_printf(o, "(truncated\n", (long) len); + o->op->stream_write(o, o->op->print, ODR_VISIBLESTRING, buf, i); + odr_printf(o, "(truncated from %ld to %d\n", (long) len, i); break; } else if (buf[i] == 0) { - odr_printf(o, "%.*s\n", i, buf); + o->op->stream_write(o, o->op->print, ODR_VISIBLESTRING, buf, i); odr_printf(o, "(binary data)\n", (long) len); break; }