comparison src/core/ngx_resolver.c @ 7276:a90f7812de35

Resolver: close UDP socket on error or incomplete send.
author Ruslan Ermilov <ru@nginx.com>
date Wed, 23 May 2018 10:41:38 +0300
parents e15bf978447e
children 91ea68dd1501
comparison
equal deleted inserted replaced
7275:e15bf978447e 7276:a90f7812de35
1298 } 1298 }
1299 1299
1300 n = ngx_send(rec->udp, query, qlen); 1300 n = ngx_send(rec->udp, query, qlen);
1301 1301
1302 if (n == NGX_ERROR) { 1302 if (n == NGX_ERROR) {
1303 return NGX_ERROR; 1303 goto failed;
1304 } 1304 }
1305 1305
1306 if ((size_t) n != (size_t) qlen) { 1306 if ((size_t) n != (size_t) qlen) {
1307 ngx_log_error(NGX_LOG_CRIT, &rec->log, 0, "send() incomplete"); 1307 ngx_log_error(NGX_LOG_CRIT, &rec->log, 0, "send() incomplete");
1308 return NGX_ERROR; 1308 goto failed;
1309 } 1309 }
1310 1310
1311 return NGX_OK; 1311 return NGX_OK;
1312
1313 failed:
1314
1315 ngx_close_connection(rec->udp);
1316 rec->udp = NULL;
1317
1318 return NGX_ERROR;
1312 } 1319 }
1313 1320
1314 1321
1315 static ngx_int_t 1322 static ngx_int_t
1316 ngx_resolver_send_tcp_query(ngx_resolver_t *r, ngx_resolver_connection_t *rec, 1323 ngx_resolver_send_tcp_query(ngx_resolver_t *r, ngx_resolver_connection_t *rec,