From 0ec090f31ac65791a42d3d519bd3514734a87331 Mon Sep 17 00:00:00 2001 From: "Roger A. Light" Date: Wed, 15 Aug 2018 17:02:56 +0100 Subject: [PATCH] Fixes for building on FreeBSD. --- ChangeLog.txt | 1 + config.h | 8 ++++---- lib/net_mosq.c | 3 +-- lib/thread_mosq.c | 9 +++++++-- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/ChangeLog.txt b/ChangeLog.txt index d50b8447..59ede634 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -39,6 +39,7 @@ Clients: Build: - Fixes for building on NetBSD. Closes #258. +- Fixes for building on FreeBSD. 1.5 - 20180502 diff --git a/config.h b/config.h index 7b5a7ae6..e3ad964b 100644 --- a/config.h +++ b/config.h @@ -29,13 +29,13 @@ #ifdef __APPLE__ # define __DARWIN_C_SOURCE +#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__SYMBIAN32__) || defined(__QNX__) +# define _XOPEN_SOURCE 700 +# define __BSD_VISIBLE 1 +# define HAVE_NETINET_IN_H #else # define _DEFAULT_SOURCE 1 # define _POSIX_C_SOURCE 200809L #endif -#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__SYMBIAN32__) || defined(__QNX__) -# define HAVE_NETINET_IN_H -#endif - #endif diff --git a/lib/net_mosq.c b/lib/net_mosq.c index 24140c3f..d593c7b2 100644 --- a/lib/net_mosq.c +++ b/lib/net_mosq.c @@ -15,6 +15,7 @@ Contributors: */ #define _GNU_SOURCE +#include "config.h" #include #include @@ -68,8 +69,6 @@ Contributors: #include "time_mosq.h" #include "util_mosq.h" -#include "config.h" - #ifdef WITH_TLS int tls_ex_index_mosq = -1; #endif diff --git a/lib/thread_mosq.c b/lib/thread_mosq.c index 204da47e..0dfcbf36 100644 --- a/lib/thread_mosq.c +++ b/lib/thread_mosq.c @@ -17,7 +17,7 @@ Contributors: #include "config.h" #ifndef WIN32 -#include +#include #endif #include "mosquitto_internal.h" @@ -80,6 +80,11 @@ void *mosquitto__thread_main(void *obj) { struct mosquitto *mosq = obj; int state; +#ifndef WIN32 + struct timespec ts; + ts.tv_sec = 0; + ts.tv_nsec = 10000000; +#endif if(!mosq) return NULL; @@ -91,7 +96,7 @@ void *mosquitto__thread_main(void *obj) #ifdef WIN32 Sleep(10); #else - usleep(10000); + nanosleep(&ts, NULL); #endif }else{ break;