[PATCH] making ngx_http_upstream_test_connect catch "connection refused" with kqueue

Maxim Dounin mdounin at mdounin.ru
Fri Nov 16 18:29:47 UTC 2012


Hello!

On Tue, Nov 06, 2012 at 11:22:05AM -0800, agentzh wrote:

> Hello!
> 
> On Tue, Nov 6, 2012 at 9:55 AM, Maxim Dounin wrote:
> >
> > I don't see a reason to introduce another local variable here,
> > what about something like
> >
> > --- a/src/http/ngx_http_upstream.c
> > +++ b/src/http/ngx_http_upstream.c
> > @@ -1809,9 +1809,16 @@ ngx_http_upstream_test_connect(ngx_conne
> >  #if (NGX_HAVE_KQUEUE)
> >
> >      if (ngx_event_flags & NGX_USE_KQUEUE_EVENT)  {
> > -        if (c->write->pending_eof) {
> > +        if (c->write->pending_eof || c->read->pending_eof) {
> > +            if (c->write->pending_eof) {
> > +                err = c->write->kq_errno;
> > +
> > +            } else {
> > +                err = c->read->kq_errno;
> > +            }
> > +
> >              c->log->action = "connecting to upstream";
> > -            (void) ngx_connection_error(c, c->write->kq_errno,
> > +            (void) ngx_connection_error(c, err,
> >                                      "kevent() reported that connect() failed");
> >              return NGX_ERROR;
> >          }
> >
> > instead?
> >
> 
> I'm fine with this new patch :)

Committed, thnx.

-- 
Maxim Dounin
http://nginx.com/support.html



More information about the nginx-devel mailing list