httpd-modules-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Charles Fry" <...@google.com>
Subject Re: sending provisional response codes from a filter
Date Fri, 08 Feb 2008 16:46:18 GMT
All right. I finally resolved this, and it ends up the code works just
fine, it's just that the input filter wasn't set properly, but I
didn't notice due to the spurious 103 I was observing due to my
modification of http_protocol. Whew.

Charles

On Feb 7, 2008 5:17 PM, Charles Fry <fry@google.com> wrote:
> I've made some progress in ruling out some false alarms that revelaed
> themselves initially. Specifically, the 103 I thought I was sending
> was just my addition of 103 to http_protocol.c working improperly
> (apparently even after httpd.h was updated, but nevermind that for
> now). In any case, my current filter simply execuites the following
> code, apparently to no avail:
>
>             char *tmp;
>
>             tmp = apr_pstrcat(f->r->pool, AP_SERVER_PROTOCOL, " ",
>                               "103 Checkpoint", CRLF CRLF, NULL);
>             apr_brigade_cleanup(bb);
>             e = apr_bucket_pool_create(tmp, strlen(tmp), f->r->pool,
>                                        f->c->bucket_alloc);
>             APR_BRIGADE_INSERT_HEAD(bb, e);
>             e = apr_bucket_flush_create(f->c->bucket_alloc);
>             APR_BRIGADE_INSERT_TAIL(bb, e);
>
>             ap_pass_brigade(f->c->output_filters, bb);
>
> Does something else need to be done/happening to allow me to send a
> provisional response? This doesn't seem to work using
> ap_get_status_line(100) instead of "103 Checkpoint" either.
>
> Any thoughts or pointers would be appreciated.
>
> thanks,
> Charles
>
>
> On Feb 7, 2008 1:54 PM, Charles Fry <fry@google.com> wrote:
> > Hi,
> >
> > We are working to prototype a protocol that requires multiple
> > provisional response codes (103 in this case) to be sent to the
> > client, serving as checkpoints for large client to server transfers.
> > Being new to Apache module development, we are trying to determine the
> > correct way to do this. So far I have an input filter which attempts
> > to send a 103 by duplicating the code ti send 100s in
> > modules/http/http_filters.c, and so far I've observed two types of
> > unexpected behavior. First of all, the 103 turned into a 200 unless I
> > added a new line for 103 to modules/http/http_protocol.c. So my first
> > question is: is there a way to send 1xx response codes > 102 without
> > modifying this?
> >
> > Second, even after adding 103s to http_protocol, and duplicating the
> > 100 code from http_filters, the result was that rather than generating
> > a 103 followed by the final response (200 in my tests), the the status
> > code of the final response simply became 103.
> >
> > I'll continue reading through the code in my efforts to understand
> > what is really going on, but I wanted to ping this list in case
> > someone with deeper Apache understanding could help short-circuit my
> > search.
> >
> > thanks,
> > Charles
> >
>

Mime
View raw message