Commit d0dd15b7 authored by Ryan Bloom's avatar Ryan Bloom
Browse files

The ap_f* functions should flush data to the filter that is passed in,

not to the filter after the one passed in.  The fixes a bug, where one
filter is skipped when using ap_f*.
Submitted by:	Ryan Morgan <rmorgan@covalent.net>


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88832 13f79535-47bb-0310-9956-ffa450edef68
parent 3df26323
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
Changes with Apache 2.0.17-dev

  *) The ap_f* functions should flush data to the filter that is passed
     in, not the the filter after the one passed in.
     [Ryan Morgan <rmorgan@covalent.net>]

  *) Make ab work again by changing its native types to apr types and formats.
     [Justin Erenkrantz <jerenkrantz@ebuilt.com>]

+3 −3
Original line number Diff line number Diff line
@@ -402,7 +402,7 @@ AP_DECLARE(apr_status_t) ap_fflush(ap_filter_t *f, apr_bucket_brigade *bb);
 * @param nbyte The number of bytes in the data
 */
#define ap_fwrite(f, bb, data, nbyte) \
	apr_brigade_write(bb, ap_filter_flush, (f)->next, data, nbyte)
	apr_brigade_write(bb, ap_filter_flush, f, data, nbyte)

/**
 * Write a buffer for the current filter, buffering if possible.
@@ -411,7 +411,7 @@ AP_DECLARE(apr_status_t) ap_fflush(ap_filter_t *f, apr_bucket_brigade *bb);
 * @param str The string to write
 */
#define ap_fputs(f, bb, str) \
	apr_brigade_puts(bb, ap_filter_flush, (f)->next, str)
	apr_brigade_puts(bb, ap_filter_flush, f, str)

/**
 * Write a character for the current filter, buffering if possible.
@@ -420,7 +420,7 @@ AP_DECLARE(apr_status_t) ap_fflush(ap_filter_t *f, apr_bucket_brigade *bb);
 * @param c The character to write
 */
#define ap_fputc(f, bb, c) \
	apr_brigade_putc(bb, ap_filter_flush, (f)->next, c)
	apr_brigade_putc(bb, ap_filter_flush, f, c)

/**
 * Write an unspecified number of strings to the current filter
+3 −3
Original line number Diff line number Diff line
@@ -279,7 +279,7 @@ AP_DECLARE(apr_status_t) ap_fflush(ap_filter_t *f, apr_bucket_brigade *bb)

    b = apr_bucket_flush_create();
    APR_BRIGADE_INSERT_TAIL(bb, b);
    return ap_pass_brigade(f->next, bb);
    return ap_pass_brigade(f, bb);
}

AP_DECLARE_NONSTD(int) ap_fputstrs(ap_filter_t *f, apr_bucket_brigade *bb, ...)
@@ -288,7 +288,7 @@ AP_DECLARE_NONSTD(int) ap_fputstrs(ap_filter_t *f, apr_bucket_brigade *bb, ...)
    int res;

    va_start(args, bb);
    res = apr_brigade_vputstrs(bb, ap_filter_flush, f->next, args);
    res = apr_brigade_vputstrs(bb, ap_filter_flush, f, args);
    va_end(args);
    return res;
}
@@ -298,7 +298,7 @@ AP_DECLARE_NONSTD(int) ap_fprintf(ap_filter_t *f, apr_bucket_brigade *bb, const
    int res;

    va_start(args, fmt);
    res = apr_brigade_vprintf(bb, ap_filter_flush, f->next, fmt, args);
    res = apr_brigade_vprintf(bb, ap_filter_flush, f, fmt, args);
    va_end(args);
    return res;
}