diff options
author | Glenn Strauss <gstrauss@gluelogic.com> | 2016-08-20 14:15:14 -0400 |
---|---|---|
committer | Glenn Strauss <gstrauss@gluelogic.com> | 2016-08-20 14:19:10 -0400 |
commit | 6ec66c4dce677b7f52f393bea3d609115476048f (patch) | |
tree | 4bfae0df1331b4dd1c3fd6055e354c954a59aaf0 /src/fdevent.c | |
parent | b22269c2f344482a8a0608d856fea9e5de8d2fc6 (diff) | |
download | lighttpd-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.c | 8 |
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) |