Commit 2b0f2f4b authored by Greg Stein's avatar Greg Stein
Browse files

*) namespace protect the filter_flush() function

*) don't toss the status value from ap_pass_brigade in ap_fflush; return it
*) doc/macro nits


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88031 13f79535-47bb-0310-9956-ffa450edef68
parent 6daf3c3a
Loading
Loading
Loading
Loading
+21 −21
Original line number Diff line number Diff line
@@ -398,69 +398,69 @@ AP_DECLARE(apr_status_t) ap_save_brigade(ap_filter_t *f, apr_bucket_brigade **sa
 * to flush the brigade if the brigade buffer overflows.
 * @param bb The brigade to flush
 * @param ctx The filter to pass the brigade to
 * @deffunc apr_status_t filter_flush(apr_bucket_brigade *bb, void *ctx)
 * @deffunc apr_status_t ap_filter_flush(apr_bucket_brigade *bb, void *ctx)
 */
apr_status_t filter_flush(apr_bucket_brigade *bb, void *ctx);
AP_DECLARE(apr_status_t) ap_filter_flush(apr_bucket_brigade *bb, void *ctx);

/**
 * Flush the current brigade down the filter stack
 * @param f the next filter in the stack
 * @param bb The brigade to flush
 * @deffunc int ap_fflush(ap_filter_t *f, apr_bucket_brigade *bb)
 * @deffunc apr_status_t ap_fflush(ap_filter_t *f, apr_bucket_brigade *bb)
 */
AP_DECLARE(int) ap_fflush(ap_filter_t *f, apr_bucket_brigade *bb);
AP_DECLARE(apr_status_t) ap_fflush(ap_filter_t *f, apr_bucket_brigade *bb);

/**
 * Write a buffer for the current filter, buffering if possible.
 * @param f the filter to write to
 * @param f the filter doing the writing
 * @param bb The brigade to buffer into
 * @param str The string to write
 * @param byte The number of characters in the string
 * @deffunc int ap_fwrite(ap_filter_t *f, apr_bucket_brigade *bb, const char *str, apr_ssize_t byte);
 * @param data The data to write
 * @param nbyte The number of bytes in the data
 * @deffunc int ap_fwrite(ap_filter_t *f, apr_bucket_brigade *bb, const char *data, apr_ssize_t nbyte);
 */
#define ap_fwrite(f, bb, str, byte) \
	apr_brigade_write(bb, filter_flush, f->next, str, byte)
#define ap_fwrite(f, bb, data, nbyte) \
	apr_brigade_write(bb, ap_filter_flush, (f)->next, data, nbyte)

/**
 * Write a buffer for the current filter, buffering if possible.
 * @param f the filter to write to
 * @param f the filter doing the writing
 * @param bb The brigade to buffer into
 * @param str The string to write
 * @deffunc int ap_fputs(ap_filter_t *f, apr_bucket_brigade *bb, const char *str);
 */
#define ap_fputs(f, bb, str) \
	apr_brigade_puts(bb, filter_flush, f->next, str)
	apr_brigade_puts(bb, ap_filter_flush, (f)->next, str)

/**
 * Write a character for the current filter, buffering if possible.
 * @param f the filter to write to
 * @param f the filter doing the writing
 * @param bb The brigade to buffer into
 * @param str The character to write
 * @deffunc int ap_fputc(ap_filter_t *f, apr_bucket_brigade *bb, char str);
 * @param c The character to write
 * @deffunc int ap_fputc(ap_filter_t *f, apr_bucket_brigade *bb, char c);
 */
#define ap_fputc(f, bb, str) \
	apr_brigade_putc(bb, filter_flush, f->next, str)
#define ap_fputc(f, bb, c) \
	apr_brigade_putc(bb, ap_filter_flush, (f)->next, c)

/**
 * Write an unspecified number of strings to the current filter
 * @param f the filter to write to
 * @param f the filter doing the writing
 * @param bb The brigade to buffer into
 * @param ... The strings to write
 * @deffunc int ap_fputs(ap_filter_t *f, apr_bucket_brigade *bb, ...);
 */
#define ap_fvputs(f, bb, args...) \
	apr_brigade_putstrs(bb, filter_flush, f->next, ##args)
	apr_brigade_putstrs(bb, ap_filter_flush, (f)->next, ##args)

/**
 * Output data to the filter in printf format
 * @param f the filter to write to
 * @param f the filter doing the writing
 * @param bb The brigade to buffer into
 * @param fmt The format string
 * @param ... The argumets to use to fill out the format string
 * @deffunc int ap_fputs(ap_filter_t *f, apr_bucket_brigade *bb, const char *fmt, ...);
 */
#define ap_fprintf(f, bb, fmt, args...) \
	apr_brigade_printf(bb, filter_flush, f->next, fmt, ##args)
	apr_brigade_printf(bb, ap_filter_flush, (f)->next, fmt, ##args)

#ifdef __cplusplus
}
+3 −5
Original line number Diff line number Diff line
@@ -266,21 +266,19 @@ AP_DECLARE(apr_status_t) ap_save_brigade(ap_filter_t *f, apr_bucket_brigade **sa
    return APR_SUCCESS;
}

apr_status_t filter_flush(apr_bucket_brigade *bb, void *ctx)
AP_DECLARE(apr_status_t) ap_filter_flush(apr_bucket_brigade *bb, void *ctx)
{
    ap_filter_t *f = ctx;

    return ap_pass_brigade(f, bb);
}

AP_DECLARE(int) ap_fflush(ap_filter_t *f, apr_bucket_brigade *bb)
AP_DECLARE(apr_status_t) ap_fflush(ap_filter_t *f, apr_bucket_brigade *bb)
{
    apr_bucket *b;

    b = apr_bucket_flush_create();
    APR_BRIGADE_INSERT_TAIL(bb, b);
    if (ap_pass_brigade(f->next, bb) != APR_SUCCESS)
        return -1;
    return 0;
    return ap_pass_brigade(f->next, bb);
}