comparison src/os/unix/ngx_udp_sendmsg_chain.c @ 8539:913ff20e4c62 quic

Core: fixed errno clobbering in ngx_sendmsg(). This was broken by 2dfd313f22f2.
author Vladimir Homutov <vl@nginx.com>
date Tue, 20 Jul 2021 12:04:58 +0300
parents e7a2d3914877
children 4646a981111f
comparison
equal deleted inserted replaced
8538:6674a50cbb6c 8539:913ff20e4c62
396 396
397 eintr: 397 eintr:
398 398
399 n = sendmsg(c->fd, msg, flags); 399 n = sendmsg(c->fd, msg, flags);
400 400
401 #if (NGX_DEBUG)
402 for (i = 0, size = 0; i < (size_t) msg->msg_iovlen; i++) {
403 size += msg->msg_iov[i].iov_len;
404 }
405
406 ngx_log_debug2(NGX_LOG_DEBUG_EVENT, c->log, 0,
407 "sendmsg: %z of %uz", n, size);
408 #endif
409
410 if (n == -1) { 401 if (n == -1) {
411 err = ngx_errno; 402 err = ngx_errno;
412 403
413 switch (err) { 404 switch (err) {
414 case NGX_EAGAIN: 405 case NGX_EAGAIN:
426 ngx_connection_error(c, err, "sendmsg() failed"); 417 ngx_connection_error(c, err, "sendmsg() failed");
427 return NGX_ERROR; 418 return NGX_ERROR;
428 } 419 }
429 } 420 }
430 421
422 #if (NGX_DEBUG)
423 for (i = 0, size = 0; i < (size_t) msg->msg_iovlen; i++) {
424 size += msg->msg_iov[i].iov_len;
425 }
426
427 ngx_log_debug2(NGX_LOG_DEBUG_EVENT, c->log, 0,
428 "sendmsg: %z of %uz", n, size);
429 #endif
430
431 return n; 431 return n;
432 } 432 }