From: David Woodhouse Date: Sat, 12 Mar 2022 09:16:40 +0000 (+0000) Subject: epoll debug X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=refs%2Fheads%2Fepoll-debug;p=users%2Fdwmw2%2Fopenconnect.git epoll debug --- diff --git a/mainloop.c b/mainloop.c index a459dfb9..70bd3351 100644 --- a/mainloop.c +++ b/mainloop.c @@ -384,6 +384,9 @@ int openconnect_mainloop(struct openconnect_info *vpninfo, vhost_r = 1; #endif } + if (evs[nfds].events & EPOLLERR) { + vpn_progress(vpninfo, PRG_INFO, "EPOLLERR on fd %d\n", evs[nfds].data.fd); + } } continue; } diff --git a/openconnect-internal.h b/openconnect-internal.h index 644f51bf..f42f35fd 100644 --- a/openconnect-internal.h +++ b/openconnect-internal.h @@ -940,6 +940,7 @@ static inline void __sync_epoll_fd(struct openconnect_info *vpninfo, int fd, uin static inline void __remove_epoll_fd(struct openconnect_info *vpninfo, int fd) { struct epoll_event ev = { 0 }; + vpn_progress(vpninfo, PRG_INFO, "Remove epoll fd %d\n", fd); if (vpninfo->epoll_fd >= 0 && epoll_ctl(vpninfo->epoll_fd, EPOLL_CTL_DEL, fd, &ev) < 0 && errno != ENOENT) @@ -991,7 +992,7 @@ static inline void __unmonitor_fd_event(struct openconnect_info *vpninfo, #define unmonitor_except_fd(_v, _n) __unmonitor_fd_event(_v, _v->_n##_fd, &_v->_select_efds) static inline void __monitor_fd_new(struct openconnect_info *vpninfo, - int fd) + int fd, const char *name) { if (vpninfo->_select_nfds <= fd) vpninfo->_select_nfds = fd + 1; @@ -999,6 +1000,7 @@ static inline void __monitor_fd_new(struct openconnect_info *vpninfo, if (vpninfo->epoll_fd >= 0) { struct epoll_event ev = { 0 }; ev.data.fd = fd; + vpn_progress(vpninfo, PRG_INFO, "Monitor %s fd %d\n", name, fd); if (epoll_ctl(vpninfo->epoll_fd, EPOLL_CTL_ADD, fd, &ev)) { vpn_perror(vpninfo, "EPOLL_CTL_ADD"); close(vpninfo->epoll_fd); @@ -1008,7 +1010,7 @@ static inline void __monitor_fd_new(struct openconnect_info *vpninfo, #endif } -#define monitor_fd_new(_v, _n) __monitor_fd_new(_v, _v->_n##_fd) +#define monitor_fd_new(_v, _n) __monitor_fd_new(_v, _v->_n##_fd, #_n) #define read_fd_monitored(_v, _n) FD_ISSET(_v->_n##_fd, &_v->_select_rfds) #endif /* !WIN32 */