Introduction
Introduction Statistics Contact Development Disclaimer Help
Make queue-event-error-detection stricter - quark - quark web server
git clone git://git.suckless.org/quark
Log
Files
Refs
LICENSE
---
commit f45ca668af3d615e9215db49f190ea2833cecc18
parent 35e3b69d60f337724163e9543b5728b907ce34dd
Author: Laslo Hunhold <[email protected]>
Date: Tue, 2 Feb 2021 22:20:03 +0100
Make queue-event-error-detection stricter
Everything which is not a pollin or pollout is now considered an error.
This is due to the fact how variable epoll(7) is in regard to possible
events, often depending on your kernel configuration (see for instance
EPOLLPRI and possible future additions).
In this context, we also rename the function to better reflect its
purpose.
Signed-off-by: Laslo Hunhold <[email protected]>
Diffstat:
M main.c | 2 +-
M queue.c | 4 ++--
M queue.h | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
---
diff --git a/main.c b/main.c
@@ -246,7 +246,7 @@ thread_method(void *data)
for (i = 0; i < (size_t)nready; i++) {
c = queue_event_get_data(&event[i]);
- if (queue_event_is_dropped(&event[i])) {
+ if (queue_event_is_error(&event[i])) {
if (c != NULL) {
queue_rem_fd(qfd, c->fd);
close_connection(c);
diff --git a/queue.c b/queue.c
@@ -207,10 +207,10 @@ queue_event_get_data(const queue_event *e)
}
int
-queue_event_is_dropped(const queue_event *e)
+queue_event_is_error(const queue_event *e)
{
#ifdef __linux__
- return (e->events & (EPOLLERR | EPOLLHUP)) ? 1 : 0;
+ return (e->events & ~(EPOLLIN | EPOLLOUT)) ? 1 : 0;
#else
return (e->flags & EV_EOF) ? 1 : 0;
#endif
diff --git a/queue.h b/queue.h
@@ -28,6 +28,6 @@ ssize_t queue_wait(int, queue_event *, size_t);
void *queue_event_get_data(const queue_event *);
-int queue_event_is_dropped(const queue_event *e);
+int queue_event_is_error(const queue_event *e);
#endif /* QUEUE_H */
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.