Thanks for the diff, commited.

Sebastian Benoit(be...@openbsd.org) on 2020.01.14 21:14:44 +0100:
> seems sensible.
> 
> ok benno@
> 
> 
> Tracey Emery(tra...@traceyemery.net) on 2020.01.14 13:08:03 -0700:
> > Hello,
> > 
> > In the server_response function of httpd, the if comparison to
> > srv_conf->maxrequests is using the wrong value. The value is derived from 
> > the
> > first server configuration in httpd.conf, since we still don't know which 
> > server
> > name the client is requesting.
> > 
> > This small diff moves srv_conf->maxrequests usage in server_response to
> > where we finally know which configured server config to actually use.
> > This ensures we are not using the first configured server config in the
> > queue.
> > 
> > Thanks,
> > 
> > Tracey
> > 
> > -- 
> > 
> > Tracey Emery
> > 
> > diff e80014c68b2561493718bbcef6e7fcb172d7f885 /usr/src
> > blob - 326daa6a687ff7159adc744f66b38e6ea9e266eb
> > file + usr.sbin/httpd/server_http.c
> > --- usr.sbin/httpd/server_http.c
> > +++ usr.sbin/httpd/server_http.c
> > @@ -1232,13 +1232,6 @@ server_response(struct httpd *httpd, struct client 
> > *cl
> >                     clt->clt_persist = 0;
> >     }
> >  
> > -   if (clt->clt_persist >= srv_conf->maxrequests)
> > -           clt->clt_persist = 0;
> > -
> > -   /* pipelining should end after the first "idempotent" method */
> > -   if (clt->clt_pipelining && clt->clt_toread > 0)
> > -           clt->clt_persist = 0;
> > -
> >     /*
> >      * Do we have a Host header and matching configuration?
> >      * XXX the Host can also appear in the URL path.
> > @@ -1291,6 +1284,13 @@ server_response(struct httpd *httpd, struct client 
> > *cl
> >                     goto fail;
> >             srv_conf = clt->clt_srv_conf;
> >     }
> > +
> > +   if (clt->clt_persist >= srv_conf->maxrequests)
> > +           clt->clt_persist = 0;
> > +
> > +   /* pipelining should end after the first "idempotent" method */
> > +   if (clt->clt_pipelining && clt->clt_toread > 0)
> > +           clt->clt_persist = 0;
> >  
> >     if ((desc->http_host = strdup(hostname)) == NULL)
> >             goto fail;
> > 
> 

Reply via email to