mirror of
https://github.com/apache/httpd.git
synced 2025-11-06 16:49:32 +03:00
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
This commit is contained in:
4
CHANGES
4
CHANGES
@@ -1,5 +1,9 @@
|
|||||||
Changes with Apache 2.0.17-dev
|
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.
|
*) Make ab work again by changing its native types to apr types and formats.
|
||||||
[Justin Erenkrantz <jerenkrantz@ebuilt.com>]
|
[Justin Erenkrantz <jerenkrantz@ebuilt.com>]
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
* @param nbyte The number of bytes in the data
|
||||||
*/
|
*/
|
||||||
#define ap_fwrite(f, bb, data, nbyte) \
|
#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.
|
* 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
|
* @param str The string to write
|
||||||
*/
|
*/
|
||||||
#define ap_fputs(f, bb, str) \
|
#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.
|
* 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
|
* @param c The character to write
|
||||||
*/
|
*/
|
||||||
#define ap_fputc(f, bb, c) \
|
#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
|
* Write an unspecified number of strings to the current filter
|
||||||
|
|||||||
@@ -279,7 +279,7 @@ AP_DECLARE(apr_status_t) ap_fflush(ap_filter_t *f, apr_bucket_brigade *bb)
|
|||||||
|
|
||||||
b = apr_bucket_flush_create();
|
b = apr_bucket_flush_create();
|
||||||
APR_BRIGADE_INSERT_TAIL(bb, b);
|
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, ...)
|
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;
|
int res;
|
||||||
|
|
||||||
va_start(args, bb);
|
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);
|
va_end(args);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
@@ -298,7 +298,7 @@ AP_DECLARE_NONSTD(int) ap_fprintf(ap_filter_t *f, apr_bucket_brigade *bb, const
|
|||||||
int res;
|
int res;
|
||||||
|
|
||||||
va_start(args, fmt);
|
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);
|
va_end(args);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user