summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGlenn Strauss <gstrauss@gluelogic.com>2019-10-23 21:26:35 -0400
committerGlenn Strauss <gstrauss@gluelogic.com>2020-01-26 00:41:05 -0500
commitf4a5a09d96709cd22638eb844274efef4f7000ea (patch)
tree5e284d5983d05f41422ef03971838b54a396db9d /src
parent330c39c694a28e32162519c8843f3253ca9546f0 (diff)
downloadlighttpd-git-f4a5a09d96709cd22638eb844274efef4f7000ea.tar.gz
[core] Oracle Solaris does not have POLLRDHUP
(IllumOS added support 5+ years ago) x-ref: https://github.com/lighttpd/lighttpd1.4/commit/fc914ae4422a9406848c1e95d52f5377d007a724
Diffstat (limited to 'src')
-rw-r--r--src/fdevent_solaris_devpoll.c5
-rw-r--r--src/fdevent_solaris_port.c2
2 files changed, 7 insertions, 0 deletions
diff --git a/src/fdevent_solaris_devpoll.c b/src/fdevent_solaris_devpoll.c
index ddc6b90e..39feadbc 100644
--- a/src/fdevent_solaris_devpoll.c
+++ b/src/fdevent_solaris_devpoll.c
@@ -33,6 +33,9 @@ static int fdevent_solaris_devpoll_event_del(fdevents *ev, fdnode *fdn) {
static int fdevent_solaris_devpoll_event_set(fdevents *ev, fdnode *fdn, int events) {
struct pollfd pfd;
pfd.fd = fdn->fde_ndx = fdn->fd;
+ #ifndef POLLRDHUP
+ events &= ~FDEVENT_RDHUP;
+ #endif
pfd.events = events;
pfd.revents = 0;
return (-1 != write(ev->devpoll_fd, &pfd, sizeof(pfd))) ? 0 : -1;
@@ -75,7 +78,9 @@ int fdevent_solaris_devpoll_init(fdevents *ev) {
force_assert(POLLERR == FDEVENT_ERR);
force_assert(POLLHUP == FDEVENT_HUP);
force_assert(POLLNVAL == FDEVENT_NVAL);
+ #ifdef POLLRDHUP
force_assert(POLLRDHUP == FDEVENT_RDHUP);
+ #endif
ev->type = FDEVENT_HANDLER_SOLARIS_DEVPOLL;
ev->event_set = fdevent_solaris_devpoll_event_set;
diff --git a/src/fdevent_solaris_port.c b/src/fdevent_solaris_port.c
index a083d784..ac50bb60 100644
--- a/src/fdevent_solaris_port.c
+++ b/src/fdevent_solaris_port.c
@@ -84,7 +84,9 @@ int fdevent_solaris_port_init(fdevents *ev) {
force_assert(POLLERR == FDEVENT_ERR);
force_assert(POLLHUP == FDEVENT_HUP);
force_assert(POLLNVAL == FDEVENT_NVAL);
+ #ifdef POLLRDHUP
force_assert(POLLRDHUP == FDEVENT_RDHUP);
+ #endif
ev->type = FDEVENT_HANDLER_SOLARIS_PORT;
ev->event_set = fdevent_solaris_port_event_set;