From 921171286d10cf3d7da842e5045d1128c68018c5 Mon Sep 17 00:00:00 2001 From: "Roger A. Light" Date: Wed, 19 Sep 2018 13:01:13 +0100 Subject: [PATCH] Close spare sock at exit. --- src/mosquitto.c | 2 +- src/mosquitto_broker_internal.h | 1 + src/net.c | 10 ++++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/mosquitto.c b/src/mosquitto.c index 2f1ae403..61acd95b 100644 --- a/src/mosquitto.c +++ b/src/mosquitto.c @@ -432,7 +432,7 @@ int main(int argc, char *argv[]) } config__cleanup(int_db.config); - net__cleanup(); + net__broker_cleanup(); return rc; } diff --git a/src/mosquitto_broker_internal.h b/src/mosquitto_broker_internal.h index 375a802e..dce5efd2 100644 --- a/src/mosquitto_broker_internal.h +++ b/src/mosquitto_broker_internal.h @@ -515,6 +515,7 @@ int send__suback(struct mosquitto *context, uint16_t mid, uint32_t payloadlen, c * Network functions * ============================================================ */ void net__broker_init(void); +void net__broker_cleanup(void); int net__socket_accept(struct mosquitto_db *db, mosq_sock_t listensock); int net__socket_listen(struct mosquitto__listener *listener); int net__socket_get_address(mosq_sock_t sock, char *buf, int len); diff --git a/src/net.c b/src/net.c index 9928eba5..3b3e1029 100644 --- a/src/net.c +++ b/src/net.c @@ -69,6 +69,16 @@ void net__broker_init(void) } +void net__broker_cleanup(void) +{ + if(spare_sock != INVALID_SOCKET){ + COMPAT_CLOSE(spare_sock); + spare_sock = INVALID_SOCKET; + } + net__cleanup(); +} + + static void net__print_error(int log, const char *format_str) { #ifdef WIN32