1
0
Fork 0
mirror of https://github.com/M66B/NetGuard.git synced 2025-02-24 15:21:19 +00:00

Handle epoll hup

Refs #431
This commit is contained in:
M66B 2016-06-24 18:33:29 +02:00
parent 0520a51736
commit 4b847acc88
3 changed files with 6 additions and 6 deletions

View file

@ -65,7 +65,7 @@ void check_icmp_socket(const struct arguments *args, const struct epoll_event *e
struct ng_session *s = (struct ng_session *) ev->data.ptr; struct ng_session *s = (struct ng_session *) ev->data.ptr;
// Check socket error // Check socket error
if (ev->events & EPOLLERR) { if ((ev->events & EPOLLERR) || (ev->events & EPOLLHUP)) {
s->icmp.time = time(NULL); s->icmp.time = time(NULL);
int serr = 0; int serr = 0;
@ -220,7 +220,7 @@ jboolean handle_icmp(const struct arguments *args,
// Monitor events // Monitor events
memset(&s->ev, 0, sizeof(struct epoll_event)); memset(&s->ev, 0, sizeof(struct epoll_event));
s->ev.events = EPOLLIN | EPOLLERR; s->ev.events = EPOLLIN;
s->ev.data.ptr = s; s->ev.data.ptr = s;
if (epoll_ctl(epoll_fd, EPOLL_CTL_ADD, s->socket, &s->ev)) if (epoll_ctl(epoll_fd, EPOLL_CTL_ADD, s->socket, &s->ev))
log_android(ANDROID_LOG_ERROR, "epoll add icmp error %d: %s", errno, strerror(errno)); log_android(ANDROID_LOG_ERROR, "epoll add icmp error %d: %s", errno, strerror(errno));

View file

@ -187,7 +187,7 @@ void check_tcp_socket(const struct arguments *args,
s->tcp.remote_seq - s->tcp.remote_start); s->tcp.remote_seq - s->tcp.remote_start);
// Check socket error // Check socket error
if (ev->events & EPOLLERR) { if ((ev->events & EPOLLERR) || (ev->events && EPOLLHUP)) {
s->tcp.time = time(NULL); s->tcp.time = time(NULL);
int serr = 0; int serr = 0;
@ -535,7 +535,7 @@ jboolean handle_tcp(const struct arguments *args,
// Monitor events // Monitor events
memset(&s->ev, 0, sizeof(struct epoll_event)); memset(&s->ev, 0, sizeof(struct epoll_event));
s->ev.events = EPOLLOUT | EPOLLERR; s->ev.events = EPOLLOUT;
s->ev.data.ptr = s; s->ev.data.ptr = s;
if (epoll_ctl(epoll_fd, EPOLL_CTL_ADD, s->socket, &s->ev)) if (epoll_ctl(epoll_fd, EPOLL_CTL_ADD, s->socket, &s->ev))
log_android(ANDROID_LOG_ERROR, "epoll add tcp error %d: %s", errno, log_android(ANDROID_LOG_ERROR, "epoll add tcp error %d: %s", errno,

View file

@ -88,7 +88,7 @@ void check_udp_socket(const struct arguments *args, const struct epoll_event *ev
struct ng_session *s = (struct ng_session *) ev->data.ptr; struct ng_session *s = (struct ng_session *) ev->data.ptr;
// Check socket error // Check socket error
if (ev->events & EPOLLERR) { if ((ev->events & EPOLLERR) || (ev->events & EPOLLHUP)) {
s->udp.time = time(NULL); s->udp.time = time(NULL);
int serr = 0; int serr = 0;
@ -312,7 +312,7 @@ jboolean handle_udp(const struct arguments *args,
// Monitor events // Monitor events
memset(&s->ev, 0, sizeof(struct epoll_event)); memset(&s->ev, 0, sizeof(struct epoll_event));
s->ev.events = EPOLLIN | EPOLLERR; s->ev.events = EPOLLIN;
s->ev.data.ptr = s; s->ev.data.ptr = s;
if (epoll_ctl(epoll_fd, EPOLL_CTL_ADD, s->socket, &s->ev)) if (epoll_ctl(epoll_fd, EPOLL_CTL_ADD, s->socket, &s->ev))
log_android(ANDROID_LOG_ERROR, "epoll add udp error %d: %s", errno, strerror(errno)); log_android(ANDROID_LOG_ERROR, "epoll add udp error %d: %s", errno, strerror(errno));