ap_fputs(r->output_filters, bb, ">" DEBUG_CR);
}
+/* Finish a multistatus response started by dav_begin_multistatus: */
+static apr_status_t dav_finish_multistatus(request_rec *r,
+ apr_bucket_brigade *bb)
+{
+ apr_bucket *b;
+
+ ap_fputs(r->output_filters, bb, "</D:multistatus>" DEBUG_CR);
+
+ /* indicate the end of the response body */
+ b = apr_bucket_eos_create(r->connection->bucket_alloc);
+ APR_BRIGADE_INSERT_TAIL(bb, b);
+
+ /* deliver whatever might be remaining in the brigade */
+ return ap_pass_brigade(r->output_filters, bb);
+}
static void dav_send_multistatus(request_rec *r, int status,
dav_response *first,
}
apr_pool_destroy(subpool);
- ap_fputs(r->output_filters, bb, "</D:multistatus>" DEBUG_CR);
-
- /* deliver whatever might be remaining in the brigade */
- ap_pass_brigade(r->output_filters, bb);
+ dav_finish_multistatus(r, bb);
}
/*
return DONE;
}
- /* Finish up the multistatus response. */
- ap_fputs(r->output_filters, ctx.bb, "</D:multistatus>" DEBUG_CR);
-
- /* deliver whatever might be remaining in the brigade */
- ap_pass_brigade(r->output_filters, ctx.bb);
+ dav_finish_multistatus(r, ctx.bb);
/* the response has been sent. */
return DONE;