From 538412d1c29053318b46f1c4956f5641e3ecf192 Mon Sep 17 00:00:00 2001 From: Jordan Bancino Date: Fri, 12 Aug 2022 21:30:03 -0400 Subject: [PATCH] Apply #26 --- src/HttpServer.c | 6 ++++-- src/Telodendria.c | 4 ++-- src/include/NonPosix.h | 9 +++++++++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/HttpServer.c b/src/HttpServer.c index b29ede0..8dd0554 100644 --- a/src/HttpServer.c +++ b/src/HttpServer.c @@ -21,6 +21,8 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ +#include + #include #include @@ -64,7 +66,7 @@ HttpServerCreate(unsigned short port, unsigned int nThreads, return NULL; } - server->sd = socket(AF_INET, SOCK_STREAM, 0); + server->sd = socket(AF_INET, SOCK_STREAM | SOCK_NONBLOCK, 0); if (server->sd < 0) { @@ -129,7 +131,7 @@ HttpServerEventThread(void *args) struct sockaddr_storage addr; socklen_t addrLen = sizeof(addr); int connFd; - int pollResult = poll(pollFds, 1, 60 * 1000); + int pollResult = poll(pollFds, 1, 500); if (pollResult < 0) { diff --git a/src/Telodendria.c b/src/Telodendria.c index efa54c8..fc0ffd2 100644 --- a/src/Telodendria.c +++ b/src/Telodendria.c @@ -21,6 +21,8 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ +#include + #include #include #include @@ -37,8 +39,6 @@ #include #include -#include - HttpServer *httpServer = NULL; static void diff --git a/src/include/NonPosix.h b/src/include/NonPosix.h index 29efd27..181d789 100644 --- a/src/include/NonPosix.h +++ b/src/include/NonPosix.h @@ -54,6 +54,15 @@ extern int chroot(const char *); extern int pledge(const char *, const char *); extern int unveil(const char *, const char *); +/* + * OpenBSD requires that _BSD_SOURCE be set to use SOCK_NONBLOCK for + * some reason, even though from everything I can tell, SOCK_NONBLOCK + * is POSIX. + */ +#ifndef _BSD_SOURCE +#define _BSD_SOURCE +#endif + #endif #endif