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]

Reply via email to