diff options
| author | Sergey Kandaurov <pluknet@nginx.com> | 2021-03-30 23:34:51 +0300 |
|---|---|---|
| committer | Sergey Kandaurov <pluknet@nginx.com> | 2021-03-30 23:34:51 +0300 |
| commit | dd98809befadeda443a0e25da70c3020e613481e (patch) | |
| tree | 9a21777e29904ad66ddb5b852d55036aff15476b /src/core/ngx_resolver.c | |
| parent | 7d1cf8ffb442727bc8e54630dd565c8139cead67 (diff) | |
| parent | 7b053dd1b20237622f89148e6c01a43927a4572a (diff) | |
| download | nginx-dd98809befadeda443a0e25da70c3020e613481e.tar.gz nginx-dd98809befadeda443a0e25da70c3020e613481e.tar.bz2 | |
Merged with the default branch.
Diffstat (limited to 'src/core/ngx_resolver.c')
| -rw-r--r-- | src/core/ngx_resolver.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/core/ngx_resolver.c b/src/core/ngx_resolver.c index 5b716ee75..49616b776 100644 --- a/src/core/ngx_resolver.c +++ b/src/core/ngx_resolver.c @@ -1563,13 +1563,28 @@ ngx_resolver_udp_read(ngx_event_t *rev) do { n = ngx_udp_recv(c, buf, NGX_RESOLVER_UDP_SIZE); - if (n < 0) { - return; + if (n == NGX_AGAIN) { + break; + } + + if (n == NGX_ERROR) { + goto failed; } ngx_resolver_process_response(rec->resolver, buf, n, 0); } while (rev->ready); + + if (ngx_handle_read_event(rev, 0) != NGX_OK) { + goto failed; + } + + return; + +failed: + + ngx_close_connection(rec->udp); + rec->udp = NULL; } |
