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

agentzh agentzh at gmail.com
Tue Nov 6 19:22:05 UTC 2012


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 :)

Best regards,
-agentzh



More information about the nginx-devel mailing list