On Tue, Sep 25, 2012 at 1:15 PM, Ivan Prostran <ivan.prost...@bulb.hr> wrote: > Hi, > > I have the following scenario : > > - Apache/2.2.19 (Solaris 10 SPARC) > > SetInputFilter alterxmlbody (AP_FTYPE_RESOURCE) > SetHandler weblogic-handler > > > The handler forwards requests to multiple weblogic servers > and the filter itself analyzes and/or changes the POST data > in a way that the length of the incoming request may be changed. > > The question is : > > What is the proper and legitimate way to deal with this situation? > > > Should the input filter set the new CL value in "headers_in" before > returning from the callback, or just remove it from the list? > > > apr_off_t length; > apr_brigade_length (bb,1,&length); > apr_table_setn(f->r->headers_in, "Content-Length", apr_off_t_toa(f->r->pool, > length)); > > Unfortunately, this approach breaks the pipeline because sometimes > the filter needs to buffer data over more than one call, but I do not > consider this as a problem. > > or > > apr_table_unset(f->r->headers_in, "Content-Length");
You didn't tell how your handler works (how it forwards the request) but removing the Content-Length header is probably easiest. Does the upstream server understand HTTP/1.1 or HTTP/1.0 with a TE header?