diff options
author | Glenn Strauss <gstrauss@gluelogic.com> | 2019-10-23 21:26:35 -0400 |
---|---|---|
committer | Glenn Strauss <gstrauss@gluelogic.com> | 2020-01-26 00:41:05 -0500 |
commit | f4a5a09d96709cd22638eb844274efef4f7000ea (patch) | |
tree | 5e284d5983d05f41422ef03971838b54a396db9d /src | |
parent | 330c39c694a28e32162519c8843f3253ca9546f0 (diff) | |
download | lighttpd-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.c | 5 | ||||
-rw-r--r-- | src/fdevent_solaris_port.c | 2 |
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; |