Recognize Debian GNU/kFreeBSD as FreeBSD-ish.
authorPeter Pentchev <roam@ringlet.net>
Fri, 25 Dec 2015 11:35:40 +0000 (13:35 +0200)
committerAndy Green <andy.green@linaro.org>
Fri, 25 Dec 2015 13:15:21 +0000 (21:15 +0800)
Some of the FreeBSD-specific code in libwebsockets is related to
the FreeBSD kernel, not the general build environment.  Thus, it is
important to make this distinction, especially when building on
platforms that have a FreeBSD kernel and a non-FreeBSD userland build
environment, such as Debian GNU/kFreeBSD.

When checking for FreeBSD kernel features, also check for the newly
introduced __FreeBSD_kernel__ preprocessor constant; it is present in
the GNU/kFreeBSD kernel and also in FreeBSD itself since the 9.1 release
about three years ago.

lib/lws-plat-unix.c

index d704c7a..9d3a66c 100644 (file)
@@ -201,7 +201,9 @@ lws_plat_set_socket_options(struct lws_context *context, int fd)
        int optval = 1;
        socklen_t optlen = sizeof(optval);
 
-#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
+#if defined(__APPLE__) || \
+    defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || \
+    defined(__NetBSD__) || \
     defined(__OpenBSD__)
        struct protoent *tcp_proto;
 #endif
@@ -213,7 +215,9 @@ lws_plat_set_socket_options(struct lws_context *context, int fd)
                               (const void *)&optval, optlen) < 0)
                        return 1;
 
-#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
+#if defined(__APPLE__) || \
+    defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || \
+    defined(__NetBSD__) || \
         defined(__CYGWIN__) || defined(__OpenBSD__)
 
                /*
@@ -241,7 +245,9 @@ lws_plat_set_socket_options(struct lws_context *context, int fd)
 
        /* Disable Nagle */
        optval = 1;
-#if !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__NetBSD__) && \
+#if !defined(__APPLE__) && \
+    !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && \
+    !defined(__NetBSD__) && \
     !defined(__OpenBSD__)
        if (setsockopt(fd, SOL_TCP, TCP_NODELAY, (const void *)&optval, optlen) < 0)
                return 1;