Welcome! Log In Create A New Profile

Advanced

[nginx] Events: close descriptors on errors in ngx_epoll_test_rdhup().

Maxim Dounin
May 18, 2016 09:00AM
details: http://hg.nginx.org/nginx/rev/c93e57ba301b
branches:
changeset: 6542:c93e57ba301b
user: Maxim Dounin <mdounin@mdounin.ru>
date: Wed May 18 15:57:30 2016 +0300
description:
Events: close descriptors on errors in ngx_epoll_test_rdhup().

diffstat:

src/event/modules/ngx_epoll_module.c | 23 ++++++++++++++++++-----
1 files changed, 18 insertions(+), 5 deletions(-)

diffs (54 lines):

diff --git a/src/event/modules/ngx_epoll_module.c b/src/event/modules/ngx_epoll_module.c
--- a/src/event/modules/ngx_epoll_module.c
+++ b/src/event/modules/ngx_epoll_module.c
@@ -477,25 +477,26 @@ ngx_epoll_test_rdhup(ngx_cycle_t *cycle)
if (epoll_ctl(ep, EPOLL_CTL_ADD, s[0], &ee) == -1) {
ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno,
"epoll_ctl() failed");
- return;
+ goto failed;
}

if (close(s[1]) == -1) {
ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno,
"close() failed");
- return;
+ s[1] = -1;
+ goto failed;
}

+ s[1] = -1;
+
events = epoll_wait(ep, &ee, 1, 5000);

if (events == -1) {
ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno,
"epoll_wait() failed");
- return;
+ goto failed;
}

- (void) close(s[0]);
-
if (events) {
ngx_use_epoll_rdhup = ee.events & EPOLLRDHUP;

@@ -507,6 +508,18 @@ ngx_epoll_test_rdhup(ngx_cycle_t *cycle)
ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
"testing the EPOLLRDHUP flag: %s",
ngx_use_epoll_rdhup ? "success" : "fail");
+
+failed:
+
+ if (s[1] != -1 && close(s[1]) == -1) {
+ ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno,
+ "close() failed");
+ }
+
+ if (close(s[0]) == -1) {
+ ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno,
+ "close() failed");
+ }
}

#endif

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[nginx] Events: close descriptors on errors in ngx_epoll_test_rdhup().

Maxim Dounin 286 May 18, 2016 09:00AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 162
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready