123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390 |
- From 18d41744338d6e291612e66e8baace4faaad7b2e Mon Sep 17 00:00:00 2001
- From: Peter Korsgaard <peter@korsgaard.com>
- Date: Fri, 6 Dec 2024 08:27:53 +0100
- Subject: [PATCH] Revert "Fix NetBSD build"
- This reverts commit 88b7bb3521cc51cb1e80630395ae736040cc8ff8.
- This unfortunately broke non-thread builds, so revert it until fixed
- upstream.
- Upstream: https://github.com/eclipse-mosquitto/mosquitto/issues/3183
- Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
- ---
- lib/dummypthread.h | 14 ++++++++++++
- lib/handle_pubackcomp.c | 4 ++--
- lib/mosquitto_internal.h | 6 +++++-
- lib/packet_mosq.c | 46 ++++++++++++++++++++--------------------
- lib/pthread_compat.h | 28 ------------------------
- lib/util_mosq.c | 32 ++++++++++++++--------------
- 6 files changed, 60 insertions(+), 70 deletions(-)
- create mode 100644 lib/dummypthread.h
- delete mode 100644 lib/pthread_compat.h
- diff --git a/lib/dummypthread.h b/lib/dummypthread.h
- new file mode 100644
- index 00000000..c0eb2c15
- --- /dev/null
- +++ b/lib/dummypthread.h
- @@ -0,0 +1,14 @@
- +#ifndef DUMMYPTHREAD_H
- +#define DUMMYPTHREAD_H
- +
- +#define pthread_create(A, B, C, D)
- +#define pthread_join(A, B)
- +#define pthread_cancel(A)
- +#define pthread_testcancel()
- +
- +#define pthread_mutex_init(A, B)
- +#define pthread_mutex_destroy(A)
- +#define pthread_mutex_lock(A)
- +#define pthread_mutex_unlock(A)
- +
- +#endif
- diff --git a/lib/handle_pubackcomp.c b/lib/handle_pubackcomp.c
- index d70d602d..4568bb40 100644
- --- a/lib/handle_pubackcomp.c
- +++ b/lib/handle_pubackcomp.c
- @@ -57,9 +57,9 @@ int handle__pubackcomp(struct mosquitto *mosq, const char *type)
- }
- }
-
- - COMPAT_pthread_mutex_lock(&mosq->msgs_out.mutex);
- + pthread_mutex_lock(&mosq->msgs_out.mutex);
- util__increment_send_quota(mosq);
- - COMPAT_pthread_mutex_unlock(&mosq->msgs_out.mutex);
- + pthread_mutex_unlock(&mosq->msgs_out.mutex);
-
- rc = packet__read_uint16(&mosq->in_packet, &mid);
- if(rc) return rc;
- diff --git a/lib/mosquitto_internal.h b/lib/mosquitto_internal.h
- index 31120258..ac71ffbf 100644
- --- a/lib/mosquitto_internal.h
- +++ b/lib/mosquitto_internal.h
- @@ -33,7 +33,11 @@ Contributors:
- #endif
- #include <stdlib.h>
-
- -#include <pthread_compat.h>
- +#if defined(WITH_THREADING) && !defined(WITH_BROKER)
- +# include <pthread.h>
- +#else
- +# include <dummypthread.h>
- +#endif
-
- #ifdef WITH_SRV
- # include <ares.h>
- diff --git a/lib/packet_mosq.c b/lib/packet_mosq.c
- index b063eb71..fd716baf 100644
- --- a/lib/packet_mosq.c
- +++ b/lib/packet_mosq.c
- @@ -129,13 +129,13 @@ void packet__cleanup_all_no_locks(struct mosquitto *mosq)
-
- void packet__cleanup_all(struct mosquitto *mosq)
- {
- - COMPAT_pthread_mutex_lock(&mosq->current_out_packet_mutex);
- - COMPAT_pthread_mutex_lock(&mosq->out_packet_mutex);
- + pthread_mutex_lock(&mosq->current_out_packet_mutex);
- + pthread_mutex_lock(&mosq->out_packet_mutex);
-
- packet__cleanup_all_no_locks(mosq);
-
- - COMPAT_pthread_mutex_unlock(&mosq->out_packet_mutex);
- - COMPAT_pthread_mutex_unlock(&mosq->current_out_packet_mutex);
- + pthread_mutex_unlock(&mosq->out_packet_mutex);
- + pthread_mutex_unlock(&mosq->current_out_packet_mutex);
- }
-
-
- @@ -151,7 +151,7 @@ int packet__queue(struct mosquitto *mosq, struct mosquitto__packet *packet)
- packet->to_process = packet->packet_length;
-
- packet->next = NULL;
- - COMPAT_pthread_mutex_lock(&mosq->out_packet_mutex);
- + pthread_mutex_lock(&mosq->out_packet_mutex);
-
- #ifdef WITH_BROKER
- if(db.config->max_queued_messages > 0 && mosq->out_packet_count >= db.config->max_queued_messages){
- @@ -174,7 +174,7 @@ int packet__queue(struct mosquitto *mosq, struct mosquitto__packet *packet)
- }
- mosq->out_packet_last = packet;
- mosq->out_packet_count++;
- - COMPAT_pthread_mutex_unlock(&mosq->out_packet_mutex);
- + pthread_mutex_unlock(&mosq->out_packet_mutex);
- #ifdef WITH_BROKER
- # ifdef WITH_WEBSOCKETS
- if(mosq->wsi){
- @@ -232,8 +232,8 @@ int packet__write(struct mosquitto *mosq)
- if(!mosq) return MOSQ_ERR_INVAL;
- if(mosq->sock == INVALID_SOCKET) return MOSQ_ERR_NO_CONN;
-
- - COMPAT_pthread_mutex_lock(&mosq->current_out_packet_mutex);
- - COMPAT_pthread_mutex_lock(&mosq->out_packet_mutex);
- + pthread_mutex_lock(&mosq->current_out_packet_mutex);
- + pthread_mutex_lock(&mosq->out_packet_mutex);
- if(mosq->out_packet && !mosq->current_out_packet){
- mosq->current_out_packet = mosq->out_packet;
- mosq->out_packet = mosq->out_packet->next;
- @@ -242,7 +242,7 @@ int packet__write(struct mosquitto *mosq)
- }
- mosq->out_packet_count--;
- }
- - COMPAT_pthread_mutex_unlock(&mosq->out_packet_mutex);
- + pthread_mutex_unlock(&mosq->out_packet_mutex);
-
- #ifdef WITH_BROKER
- if(mosq->current_out_packet){
- @@ -252,7 +252,7 @@ int packet__write(struct mosquitto *mosq)
-
- state = mosquitto__get_state(mosq);
- if(state == mosq_cs_connect_pending){
- - COMPAT_pthread_mutex_unlock(&mosq->current_out_packet_mutex);
- + pthread_mutex_unlock(&mosq->current_out_packet_mutex);
- return MOSQ_ERR_SUCCESS;
- }
-
- @@ -274,10 +274,10 @@ int packet__write(struct mosquitto *mosq)
- || errno == WSAENOTCONN
- #endif
- ){
- - COMPAT_pthread_mutex_unlock(&mosq->current_out_packet_mutex);
- + pthread_mutex_unlock(&mosq->current_out_packet_mutex);
- return MOSQ_ERR_SUCCESS;
- }else{
- - COMPAT_pthread_mutex_unlock(&mosq->current_out_packet_mutex);
- + pthread_mutex_unlock(&mosq->current_out_packet_mutex);
- switch(errno){
- case COMPAT_ECONNRESET:
- return MOSQ_ERR_CONN_LOST;
- @@ -296,7 +296,7 @@ int packet__write(struct mosquitto *mosq)
- if(((packet->command)&0xF6) == CMD_PUBLISH){
- G_PUB_MSGS_SENT_INC(1);
- #ifndef WITH_BROKER
- - COMPAT_pthread_mutex_lock(&mosq->callback_mutex);
- + pthread_mutex_lock(&mosq->callback_mutex);
- if(mosq->on_publish){
- /* This is a QoS=0 message */
- mosq->in_callback = true;
- @@ -309,7 +309,7 @@ int packet__write(struct mosquitto *mosq)
- mosq->on_publish_v5(mosq, mosq->userdata, packet->mid, 0, NULL);
- mosq->in_callback = false;
- }
- - COMPAT_pthread_mutex_unlock(&mosq->callback_mutex);
- + pthread_mutex_unlock(&mosq->callback_mutex);
- }else if(((packet->command)&0xF0) == CMD_DISCONNECT){
- do_client_disconnect(mosq, MOSQ_ERR_SUCCESS, NULL);
- packet__cleanup(packet);
- @@ -321,7 +321,7 @@ int packet__write(struct mosquitto *mosq)
- }
-
- /* Free data and reset values */
- - COMPAT_pthread_mutex_lock(&mosq->out_packet_mutex);
- + pthread_mutex_lock(&mosq->out_packet_mutex);
- mosq->current_out_packet = mosq->out_packet;
- if(mosq->out_packet){
- mosq->out_packet = mosq->out_packet->next;
- @@ -330,7 +330,7 @@ int packet__write(struct mosquitto *mosq)
- }
- mosq->out_packet_count--;
- }
- - COMPAT_pthread_mutex_unlock(&mosq->out_packet_mutex);
- + pthread_mutex_unlock(&mosq->out_packet_mutex);
-
- packet__cleanup(packet);
- mosquitto__free(packet);
- @@ -338,9 +338,9 @@ int packet__write(struct mosquitto *mosq)
- #ifdef WITH_BROKER
- mosq->next_msg_out = db.now_s + mosq->keepalive;
- #else
- - COMPAT_pthread_mutex_lock(&mosq->msgtime_mutex);
- + pthread_mutex_lock(&mosq->msgtime_mutex);
- mosq->next_msg_out = mosquitto_time() + mosq->keepalive;
- - COMPAT_pthread_mutex_unlock(&mosq->msgtime_mutex);
- + pthread_mutex_unlock(&mosq->msgtime_mutex);
- #endif
- }
- #ifdef WITH_BROKER
- @@ -348,7 +348,7 @@ int packet__write(struct mosquitto *mosq)
- mux__remove_out(mosq);
- }
- #endif
- - COMPAT_pthread_mutex_unlock(&mosq->current_out_packet_mutex);
- + pthread_mutex_unlock(&mosq->current_out_packet_mutex);
- return MOSQ_ERR_SUCCESS;
- }
-
- @@ -536,9 +536,9 @@ int packet__read(struct mosquitto *mosq)
- #ifdef WITH_BROKER
- keepalive__update(mosq);
- #else
- - COMPAT_pthread_mutex_lock(&mosq->msgtime_mutex);
- + pthread_mutex_lock(&mosq->msgtime_mutex);
- mosq->last_msg_in = mosquitto_time();
- - COMPAT_pthread_mutex_unlock(&mosq->msgtime_mutex);
- + pthread_mutex_unlock(&mosq->msgtime_mutex);
- #endif
- }
- return MOSQ_ERR_SUCCESS;
- @@ -571,9 +571,9 @@ int packet__read(struct mosquitto *mosq)
- #ifdef WITH_BROKER
- keepalive__update(mosq);
- #else
- - COMPAT_pthread_mutex_lock(&mosq->msgtime_mutex);
- + pthread_mutex_lock(&mosq->msgtime_mutex);
- mosq->last_msg_in = mosquitto_time();
- - COMPAT_pthread_mutex_unlock(&mosq->msgtime_mutex);
- + pthread_mutex_unlock(&mosq->msgtime_mutex);
- #endif
- return rc;
- }
- diff --git a/lib/pthread_compat.h b/lib/pthread_compat.h
- deleted file mode 100644
- index ca1f27dc..00000000
- --- a/lib/pthread_compat.h
- +++ /dev/null
- @@ -1,28 +0,0 @@
- -#ifndef PTHREAD_COMPAT_
- -#define PTHREAD_COMPAT_
- -
- -#if defined(WITH_THREADING) && !defined(WITH_BROKER)
- -# include <pthread.h>
- -
- -# define COMPAT_pthread_create(A, B, C, D) pthread_create((A), (B), (C), (D))
- -# define COMPAT_pthread_join(A, B) pthread_join((A), (B))
- -# define COMPAT_pthread_cancel(A) pthread_cancel((A))
- -# define COMPAT_pthread_testcancel() pthread_testcancel()
- -
- -# define COMPAT_pthread_mutex_init(A, B) pthread_mutex_init((A), (B))
- -# define COMPAT_pthread_mutex_destroy(A) pthread_mutex_init((A))
- -# define COMPAT_pthread_mutex_lock(A) pthread_mutex_lock((A))
- -# define COMPAT_pthread_mutex_unlock(A) pthread_mutex_unlock((A))
- -#else
- -# define COMPAT_pthread_create(A, B, C, D)
- -# define COMPAT_pthread_join(A, B)
- -# define COMPAT_pthread_cancel(A)
- -# define COMPAT_pthread_testcancel()
- -
- -# define COMPAT_pthread_mutex_init(A, B)
- -# define COMPAT_pthread_mutex_destroy(A)
- -# define COMPAT_pthread_mutex_lock(A)
- -# define COMPAT_pthread_mutex_unlock(A)
- -#endif
- -
- -#endif
- diff --git a/lib/util_mosq.c b/lib/util_mosq.c
- index 4bebcbd0..22f8c4d5 100644
- --- a/lib/util_mosq.c
- +++ b/lib/util_mosq.c
- @@ -87,10 +87,10 @@ int mosquitto__check_keepalive(struct mosquitto *mosq)
- return MOSQ_ERR_SUCCESS;
- }
- #endif
- - COMPAT_pthread_mutex_lock(&mosq->msgtime_mutex);
- + pthread_mutex_lock(&mosq->msgtime_mutex);
- next_msg_out = mosq->next_msg_out;
- last_msg_in = mosq->last_msg_in;
- - COMPAT_pthread_mutex_unlock(&mosq->msgtime_mutex);
- + pthread_mutex_unlock(&mosq->msgtime_mutex);
- if(mosq->keepalive && mosq->sock != INVALID_SOCKET &&
- (now >= next_msg_out || now - last_msg_in >= mosq->keepalive)){
-
- @@ -98,10 +98,10 @@ int mosquitto__check_keepalive(struct mosquitto *mosq)
- if(state == mosq_cs_active && mosq->ping_t == 0){
- send__pingreq(mosq);
- /* Reset last msg times to give the server time to send a pingresp */
- - COMPAT_pthread_mutex_lock(&mosq->msgtime_mutex);
- + pthread_mutex_lock(&mosq->msgtime_mutex);
- mosq->last_msg_in = now;
- mosq->next_msg_out = now + mosq->keepalive;
- - COMPAT_pthread_mutex_unlock(&mosq->msgtime_mutex);
- + pthread_mutex_unlock(&mosq->msgtime_mutex);
- }else{
- #ifdef WITH_BROKER
- # ifdef WITH_BRIDGE
- @@ -118,7 +118,7 @@ int mosquitto__check_keepalive(struct mosquitto *mosq)
- }else{
- rc = MOSQ_ERR_KEEPALIVE;
- }
- - COMPAT_pthread_mutex_lock(&mosq->callback_mutex);
- + pthread_mutex_lock(&mosq->callback_mutex);
- if(mosq->on_disconnect){
- mosq->in_callback = true;
- mosq->on_disconnect(mosq, mosq->userdata, rc);
- @@ -129,7 +129,7 @@ int mosquitto__check_keepalive(struct mosquitto *mosq)
- mosq->on_disconnect_v5(mosq, mosq->userdata, rc, NULL);
- mosq->in_callback = false;
- }
- - COMPAT_pthread_mutex_unlock(&mosq->callback_mutex);
- + pthread_mutex_unlock(&mosq->callback_mutex);
-
- return rc;
- #endif
- @@ -150,11 +150,11 @@ uint16_t mosquitto__mid_generate(struct mosquitto *mosq)
- uint16_t mid;
- assert(mosq);
-
- - COMPAT_pthread_mutex_lock(&mosq->mid_mutex);
- + pthread_mutex_lock(&mosq->mid_mutex);
- mosq->last_mid++;
- if(mosq->last_mid == 0) mosq->last_mid++;
- mid = mosq->last_mid;
- - COMPAT_pthread_mutex_unlock(&mosq->mid_mutex);
- + pthread_mutex_unlock(&mosq->mid_mutex);
-
- return mid;
- }
- @@ -280,14 +280,14 @@ int util__random_bytes(void *bytes, int count)
-
- int mosquitto__set_state(struct mosquitto *mosq, enum mosquitto_client_state state)
- {
- - COMPAT_pthread_mutex_lock(&mosq->state_mutex);
- + pthread_mutex_lock(&mosq->state_mutex);
- #ifdef WITH_BROKER
- if(mosq->state != mosq_cs_disused)
- #endif
- {
- mosq->state = state;
- }
- - COMPAT_pthread_mutex_unlock(&mosq->state_mutex);
- + pthread_mutex_unlock(&mosq->state_mutex);
-
- return MOSQ_ERR_SUCCESS;
- }
- @@ -296,9 +296,9 @@ enum mosquitto_client_state mosquitto__get_state(struct mosquitto *mosq)
- {
- enum mosquitto_client_state state;
-
- - COMPAT_pthread_mutex_lock(&mosq->state_mutex);
- + pthread_mutex_lock(&mosq->state_mutex);
- state = mosq->state;
- - COMPAT_pthread_mutex_unlock(&mosq->state_mutex);
- + pthread_mutex_unlock(&mosq->state_mutex);
-
- return state;
- }
- @@ -306,18 +306,18 @@ enum mosquitto_client_state mosquitto__get_state(struct mosquitto *mosq)
- #ifndef WITH_BROKER
- void mosquitto__set_request_disconnect(struct mosquitto *mosq, bool request_disconnect)
- {
- - COMPAT_pthread_mutex_lock(&mosq->state_mutex);
- + pthread_mutex_lock(&mosq->state_mutex);
- mosq->request_disconnect = request_disconnect;
- - COMPAT_pthread_mutex_unlock(&mosq->state_mutex);
- + pthread_mutex_unlock(&mosq->state_mutex);
- }
-
- bool mosquitto__get_request_disconnect(struct mosquitto *mosq)
- {
- bool request_disconnect;
-
- - COMPAT_pthread_mutex_lock(&mosq->state_mutex);
- + pthread_mutex_lock(&mosq->state_mutex);
- request_disconnect = mosq->request_disconnect;
- - COMPAT_pthread_mutex_unlock(&mosq->state_mutex);
- + pthread_mutex_unlock(&mosq->state_mutex);
-
- return request_disconnect;
- }
- --
- 2.39.5
|