dbertoni 01/05/03 12:27:45
Modified: c/samples/ApacheModuleXSLT mod_xslt.c
Log:
Oops, this is the real fix for bug 1149.
Revision Changes Path
1.5 +27 -11 xml-xalan/c/samples/ApacheModuleXSLT/mod_xslt.c
Index: mod_xslt.c
===================================================================
RCS file: /home/cvs/xml-xalan/c/samples/ApacheModuleXSLT/mod_xslt.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- mod_xslt.c 2001/05/03 18:38:43 1.4
+++ mod_xslt.c 2001/05/03 19:27:41 1.5
@@ -99,27 +99,37 @@
+typedef struct CONTROL_STRUCT_TAG
+{
+ request_rec* r;
+ int fHeaderSent;
+} CONTROL_STRUCT;
+
+
+
static unsigned long xalan_output_handler(const void *data, unsigned long
length, const void *handle)
{
- request_rec *r = (request_rec*)handle;
+ CONTROL_STRUCT* c = (CONTROL_STRUCT*)handle;
char* d = (char *)data;
- if (r->status != HTTP_OK)
+ if (c->fHeaderSent == 0)
{
- r->status = HTTP_OK;
+ c->fHeaderSent = 1;
+
+ ap_send_http_header(c->r);
}
- return ap_rwrite(d, length, r);
+ return ap_rwrite(d, length, c->r);
}
static void xalan_flush_handler(const void *handle)
{
- request_rec *r = (request_rec*)handle;
+ CONTROL_STRUCT* c = (CONTROL_STRUCT*)handle;
- ap_rflush(r);
+ ap_rflush(c->r);
}
@@ -130,11 +140,19 @@
char * filename = NULL;
char * xmlfilename = NULL;
char * xslfilename = NULL;
-
+
XalanHandle xalan = NULL;
int error = DECLINED;
-
+
+ CONTROL_STRUCT control_struct =
+ {
+ 0,
+ 0
+ };
+
+ control_struct.r = r;
+
mimetype = ap_pstrcat(r->pool, r->filename, NULL);
filename = ap_getword_nulls_nc(r->pool, &mimetype,'.');
@@ -145,9 +163,7 @@
xalan = CreateXalanTransformer();
- //ap_send_http_header(r);
-
- error = XalanTransformToHandler(xmlfilename, xslfilename, xalan, r,
xalan_output_handler, xalan_flush_handler);
+ error = XalanTransformToHandler(xmlfilename, xslfilename, xalan,
&control_struct, xalan_output_handler, xalan_flush_handler);
if(error)
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]