summaryrefslogtreecommitdiff
path: root/src/fdevent.c
diff options
context:
space:
mode:
authorGlenn Strauss <gstrauss@gluelogic.com>2016-08-20 14:15:14 -0400
committerGlenn Strauss <gstrauss@gluelogic.com>2016-08-20 14:19:10 -0400
commit6ec66c4dce677b7f52f393bea3d609115476048f (patch)
tree4bfae0df1331b4dd1c3fd6055e354c954a59aaf0 /src/fdevent.c
parentb22269c2f344482a8a0608d856fea9e5de8d2fc6 (diff)
downloadlighttpd-git-6ec66c4dce677b7f52f393bea3d609115476048f.tar.gz
[core] better DragonFlyBSD support (fixes #2746)
(thx xenu) x-ref: "[PATCH] better DragonFlyBSD support; fix crash" https://redmine.lighttpd.net/issues/2746
Diffstat (limited to 'src/fdevent.c')
-rw-r--r--src/fdevent.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/fdevent.c b/src/fdevent.c
index 756c8e6a..25bb42a6 100644
--- a/src/fdevent.c
+++ b/src/fdevent.c
@@ -254,7 +254,7 @@ int fdevent_event_next_fdndx(fdevents *ev, int ndx) {
#include <netinet/tcp.h>
#if (defined(__APPLE__) && defined(__MACH__)) \
|| defined(__FreeBSD__) || defined(__NetBSD__) \
- || defined(__OpenBSD__) || defined(__DragonflyBSD__)
+ || defined(__OpenBSD__) || defined(__DragonFly__)
#include <netinet/tcp_fsm.h>
#endif
@@ -265,12 +265,14 @@ int fdevent_is_tcp_half_closed(int fd) {
socklen_t tlen = sizeof(tcpi);
return (0 == getsockopt(fd, IPPROTO_TCP, TCP_CONNECTION_INFO, &tcpi, &tlen)
&& tcpi.tcpi_state == TCPS_CLOSE_WAIT);
- #elif defined(TCPS_CLOSE_WAIT) /* FreeBSD, NetBSD (not present in OpenBSD) */
+ #elif defined(TCP_INFO) && defined(TCPS_CLOSE_WAIT)
+ /* FreeBSD, NetBSD (not present in OpenBSD or DragonFlyBSD) */
struct tcp_info tcpi;
socklen_t tlen = sizeof(tcpi);
return (0 == getsockopt(fd, IPPROTO_TCP, TCP_INFO, &tcpi, &tlen)
&& tcpi.tcpi_state == TCPS_CLOSE_WAIT);
- #elif defined(TCP_INFO) /* Linux */
+ #elif defined(TCP_INFO) && defined(__linux__)
+ /* Linux (TCP_CLOSE_WAIT is enum, so can not #ifdef TCP_CLOSE_WAIT) */
struct tcp_info tcpi;
socklen_t tlen = sizeof(tcpi);/*SOL_TCP == IPPROTO_TCP*/
return (0 == getsockopt(fd, SOL_TCP, TCP_INFO, &tcpi, &tlen)