From: Yann Ylavic Date: Tue, 22 Mar 2016 20:48:47 +0000 (+0000) Subject: Merge r1736250 from trunk: X-Git-Tag: 2.4.20~41 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9b3b276511bcc3fe3bc37629dd1a587e87d352bb;p=thirdparty%2Fapache%2Fhttpd.git Merge r1736250 from trunk: mod_http2: no variadic macro in C89, use equivalent function. Reviewed/backported by: ylavic git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1736251 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/http2/h2_filter.c b/modules/http2/h2_filter.c index 92e87bcd179..c036b02fd46 100644 --- a/modules/http2/h2_filter.c +++ b/modules/http2/h2_filter.c @@ -196,7 +196,18 @@ int h2_filter_h2_status_handler(request_rec *r) return DECLINED; } -#define bbout(...) apr_brigade_printf(bb, NULL, NULL, __VA_ARGS__) +static apr_status_t bbout(apr_bucket_brigade *bb, const char *fmt, ...) +{ + va_list args; + apr_status_t rv; + + va_start(args, fmt); + rv = apr_brigade_vprintf(bb, NULL, NULL, fmt, args); + va_end(args); + + return rv; +} + static apr_status_t h2_sos_h2_status_buffer(h2_sos *sos, apr_bucket_brigade *bb) { h2_stream *stream = sos->stream; @@ -209,21 +220,21 @@ static apr_status_t h2_sos_h2_status_buffer(h2_sos *sos, apr_bucket_brigade *bb) bb = apr_brigade_create(stream->pool, session->c->bucket_alloc); } - bbout("{\n"); - bbout(" \"HTTP2\": \"on\",\n"); - bbout(" \"H2PUSH\": \"%s\",\n", h2_session_push_enabled(session)? "on" : "off"); - bbout(" \"mod_http2_version\": \"%s\",\n", MOD_HTTP2_VERSION); - bbout(" \"session_id\": %ld,\n", (long)session->id); - bbout(" \"streams_max\": %d,\n", (int)session->max_stream_count); - bbout(" \"this_stream\": %d,\n", stream->id); - bbout(" \"streams_open\": %d,\n", (int)h2_ihash_count(session->streams)); - bbout(" \"max_stream_started\": %d,\n", mplx->max_stream_started); - bbout(" \"requests_received\": %d,\n", session->remote.emitted_count); - bbout(" \"responses_submitted\": %d,\n", session->responses_submitted); - bbout(" \"streams_reset\": %d, \n", session->streams_reset); - bbout(" \"pushes_promised\": %d,\n", session->pushes_promised); - bbout(" \"pushes_submitted\": %d,\n", session->pushes_submitted); - bbout(" \"pushes_reset\": %d,\n", session->pushes_reset); + bbout(bb, "{\n"); + bbout(bb, " \"HTTP2\": \"on\",\n"); + bbout(bb, " \"H2PUSH\": \"%s\",\n", h2_session_push_enabled(session)? "on" : "off"); + bbout(bb, " \"mod_http2_version\": \"%s\",\n", MOD_HTTP2_VERSION); + bbout(bb, " \"session_id\": %ld,\n", (long)session->id); + bbout(bb, " \"streams_max\": %d,\n", (int)session->max_stream_count); + bbout(bb, " \"this_stream\": %d,\n", stream->id); + bbout(bb, " \"streams_open\": %d,\n", (int)h2_ihash_count(session->streams)); + bbout(bb, " \"max_stream_started\": %d,\n", mplx->max_stream_started); + bbout(bb, " \"requests_received\": %d,\n", session->remote.emitted_count); + bbout(bb, " \"responses_submitted\": %d,\n", session->responses_submitted); + bbout(bb, " \"streams_reset\": %d, \n", session->streams_reset); + bbout(bb, " \"pushes_promised\": %d,\n", session->pushes_promised); + bbout(bb, " \"pushes_submitted\": %d,\n", session->pushes_submitted); + bbout(bb, " \"pushes_reset\": %d,\n", session->pushes_reset); diary = session->push_diary; if (diary) { @@ -235,7 +246,7 @@ static apr_status_t h2_sos_h2_status_buffer(h2_sos *sos, apr_bucket_brigade *bb) stream->request->authority, &data, &len); if (status == APR_SUCCESS) { base64_digest = h2_util_base64url_encode(data, len, stream->pool); - bbout(" \"cache_digest\": \"%s\",\n", base64_digest); + bbout(bb, " \"cache_digest\": \"%s\",\n", base64_digest); } /* try the reverse for testing purposes */ @@ -245,15 +256,15 @@ static apr_status_t h2_sos_h2_status_buffer(h2_sos *sos, apr_bucket_brigade *bb) stream->request->authority, &data, &len); if (status == APR_SUCCESS) { base64_digest = h2_util_base64url_encode(data, len, stream->pool); - bbout(" \"cache_digest^2\": \"%s\",\n", base64_digest); + bbout(bb, " \"cache_digest^2\": \"%s\",\n", base64_digest); } } } - bbout(" \"frames_received\": %ld,\n", (long)session->frames_received); - bbout(" \"frames_sent\": %ld,\n", (long)session->frames_sent); - bbout(" \"bytes_received\": %"APR_UINT64_T_FMT",\n", session->io.bytes_read); - bbout(" \"bytes_sent\": %"APR_UINT64_T_FMT"\n", session->io.bytes_written); - bbout("}\n"); + bbout(bb, " \"frames_received\": %ld,\n", (long)session->frames_received); + bbout(bb, " \"frames_sent\": %ld,\n", (long)session->frames_sent); + bbout(bb, " \"bytes_received\": %"APR_UINT64_T_FMT",\n", session->io.bytes_read); + bbout(bb, " \"bytes_sent\": %"APR_UINT64_T_FMT"\n", session->io.bytes_written); + bbout(bb, "}\n"); return sos->prev->buffer(sos->prev, bb); }