diff --git a/CMakeLists.txt b/CMakeLists.txt index e888191c..c7d4c52d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -497,6 +497,10 @@ if (LWS_WITHOUT_BUILTIN_SHA1) set(LWS_SHA1_USE_OPENSSL_NAME 1) endif() +if (HAIKU) + set(CMAKE_REQUIRED_LIBRARIES network) +endif() + CHECK_FUNCTION_EXISTS(bzero LWS_HAVE_BZERO) CHECK_FUNCTION_EXISTS(fork LWS_HAVE_FORK) CHECK_FUNCTION_EXISTS(getenv LWS_HAVE_GETENV) @@ -1129,6 +1133,10 @@ if (UNIX) list(APPEND LIB_LIST m) endif() +if (HAIKU) + list(APPEND LIB_LIST network) +endif() + if (LWS_HAVE_LIBCAP) list(APPEND LIB_LIST cap ) endif() diff --git a/lib/lws-plat-unix.c b/lib/lws-plat-unix.c index 7c459216..f3bd36fc 100644 --- a/lib/lws-plat-unix.c +++ b/lib/lws-plat-unix.c @@ -233,7 +233,8 @@ lws_plat_set_socket_options(struct lws_vhost *vhost, int fd) #if defined(__APPLE__) || \ defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || \ defined(__NetBSD__) || \ - defined(__OpenBSD__) + defined(__OpenBSD__) || \ + defined(__HAIKU__) struct protoent *tcp_proto; #endif @@ -247,7 +248,8 @@ lws_plat_set_socket_options(struct lws_vhost *vhost, int fd) #if defined(__APPLE__) || \ defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || \ defined(__NetBSD__) || \ - defined(__CYGWIN__) || defined(__OpenBSD__) || defined (__sun) + defined(__CYGWIN__) || defined(__OpenBSD__) || defined (__sun) || \ + defined(__HAIKU__) /* * didn't find a way to set these per-socket, need to @@ -291,7 +293,8 @@ lws_plat_set_socket_options(struct lws_vhost *vhost, int fd) #elif !defined(__APPLE__) && \ !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && \ !defined(__NetBSD__) && \ - !defined(__OpenBSD__) + !defined(__OpenBSD__) && \ + !defined(__HAIKU__) if (setsockopt(fd, SOL_TCP, TCP_NODELAY, (const void *)&optval, optlen) < 0) return 1; #else diff --git a/lib/private-libwebsockets.h b/lib/private-libwebsockets.h index 3b59cb96..e071c278 100644 --- a/lib/private-libwebsockets.h +++ b/lib/private-libwebsockets.h @@ -190,13 +190,16 @@ int kill(int pid, int sig); #include #else #if !defined(LWS_WITH_ESP8266) && !defined(LWS_WITH_ESP32) + #if defined(__HAIKU__) + #define _BSD_SOURCE + #endif #include #endif #endif #if defined (__ANDROID__) #include #include -#elif defined (__sun) +#elif defined (__sun) || defined(__HAIKU__) #include #else #if !defined(LWS_WITH_ESP8266) && !defined(LWS_WITH_ESP32)