From afc575aa1c5e15130aee054c72bbe0a8f0b8ab6b Mon Sep 17 00:00:00 2001 From: "Roger A. Light" Date: Thu, 29 Sep 2022 15:08:10 +0100 Subject: [PATCH] Simplify function calls. --- apps/db_dump/stubs.c | 3 +-- src/bridge.c | 4 ++-- src/handle_subscribe.c | 2 +- src/handle_unsubscribe.c | 2 +- src/mosquitto_broker_internal.h | 4 ++-- src/persist_read.c | 2 +- src/plugin_public.c | 6 +++--- src/subs.c | 13 +++++-------- test/unit/persist_read_stubs.c | 3 +-- test/unit/subs_test.c | 2 +- 10 files changed, 18 insertions(+), 23 deletions(-) diff --git a/apps/db_dump/stubs.c b/apps/db_dump/stubs.c index 353044ec..e9e2d853 100644 --- a/apps/db_dump/stubs.c +++ b/apps/db_dump/stubs.c @@ -114,14 +114,13 @@ int retain__store(const char *topic, struct mosquitto_base_msg *base_msg, char * return 0; } -int sub__add(struct mosquitto *context, const char *sub, uint8_t qos, uint32_t identifier, int options, struct mosquitto__subhier **root) +int sub__add(struct mosquitto *context, const char *sub, uint8_t qos, uint32_t identifier, int options) { UNUSED(context); UNUSED(sub); UNUSED(qos); UNUSED(identifier); UNUSED(options); - UNUSED(root); return 0; } diff --git a/src/bridge.c b/src/bridge.c index f845ad5c..ef3e3ae0 100644 --- a/src/bridge.c +++ b/src/bridge.c @@ -495,8 +495,8 @@ int bridge__connect(struct mosquitto *context) cur_topic->local_topic, qos, 0, - MQTT_SUB_OPT_NO_LOCAL | MQTT_SUB_OPT_RETAIN_AS_PUBLISHED, - &db.subs) > 0){ + MQTT_SUB_OPT_NO_LOCAL | MQTT_SUB_OPT_RETAIN_AS_PUBLISHED + ) > 0){ return 1; } diff --git a/src/handle_subscribe.c b/src/handle_subscribe.c index 70a553a9..278f07c2 100644 --- a/src/handle_subscribe.c +++ b/src/handle_subscribe.c @@ -194,7 +194,7 @@ int handle__subscribe(struct mosquitto *context) } if(allowed){ - rc2 = sub__add(context, sub, qos, subscription_identifier, subscription_options, &db.subs); + rc2 = sub__add(context, sub, qos, subscription_identifier, subscription_options); if(rc2 > 0){ mosquitto__FREE(sub); return rc2; diff --git a/src/handle_unsubscribe.c b/src/handle_unsubscribe.c index 2866c5e2..7d80994c 100644 --- a/src/handle_unsubscribe.c +++ b/src/handle_unsubscribe.c @@ -129,7 +129,7 @@ int handle__unsubscribe(struct mosquitto *context) log__printf(NULL, MOSQ_LOG_DEBUG, "\t%s", sub); if(allowed){ - rc = sub__remove(context, sub, db.subs, &reason); + rc = sub__remove(context, sub, &reason); plugin__handle_unsubscribe(context, sub, properties); plugin_persist__handle_subscription_delete(context, sub); }else{ diff --git a/src/mosquitto_broker_internal.h b/src/mosquitto_broker_internal.h index 50d1ba49..b40a4132 100644 --- a/src/mosquitto_broker_internal.h +++ b/src/mosquitto_broker_internal.h @@ -757,9 +757,9 @@ void db__expire_all_messages(struct mosquitto *context); /* ============================================================ * Subscription functions * ============================================================ */ -int sub__add(struct mosquitto *context, const char *sub, uint8_t qos, uint32_t identifier, int options, struct mosquitto__subhier **root); +int sub__add(struct mosquitto *context, const char *sub, uint8_t qos, uint32_t identifier, int options); struct mosquitto__subhier *sub__add_hier_entry(struct mosquitto__subhier *parent, struct mosquitto__subhier **sibling, const char *topic, uint16_t len); -int sub__remove(struct mosquitto *context, const char *sub, struct mosquitto__subhier *root, uint8_t *reason); +int sub__remove(struct mosquitto *context, const char *sub, uint8_t *reason); void sub__tree_print(struct mosquitto__subhier *root, int level); int sub__clean_session(struct mosquitto *context); int sub__messages_queue(const char *source_id, const char *topic, uint8_t qos, int retain, struct mosquitto_base_msg **base_msg); diff --git a/src/persist_read.c b/src/persist_read.c index c442348c..8954757f 100644 --- a/src/persist_read.c +++ b/src/persist_read.c @@ -548,7 +548,7 @@ static int persist__restore_sub(const char *client_id, const char *sub, uint8_t context = persist__find_or_add_context(client_id, 0); if(!context) return 1; - return sub__add(context, sub, qos, identifier, options, &db.subs); + return sub__add(context, sub, qos, identifier, options); } #endif diff --git a/src/plugin_public.c b/src/plugin_public.c index 1568911b..7fd2e24e 100644 --- a/src/plugin_public.c +++ b/src/plugin_public.c @@ -384,7 +384,7 @@ static void check_subscription_acls(struct mosquitto *context) MOSQ_ACL_SUBSCRIBE); if(rc != MOSQ_ERR_SUCCESS){ - sub__remove(context, context->subs[i]->topic_filter, db.subs, &reason); + sub__remove(context, context->subs[i]->topic_filter, &reason); } } } @@ -718,7 +718,7 @@ BROKER_EXPORT int mosquitto_subscription_add(const char *client_id, const char * HASH_FIND(hh_id, db.contexts_by_id, client_id, strlen(client_id), context); if(context){ - return sub__add(context, topic, subscription_options&0x03, subscription_identifier, subscription_options, &db.subs); + return sub__add(context, topic, subscription_options&0x03, subscription_identifier, subscription_options); }else{ return MOSQ_ERR_NOT_FOUND; } @@ -737,7 +737,7 @@ BROKER_EXPORT int mosquitto_subscription_delete(const char *client_id, const cha HASH_FIND(hh_id, db.contexts_by_id, client_id, strlen(client_id), context); if(context){ - return sub__remove(context, topic, db.subs, &reason); + return sub__remove(context, topic, &reason); }else{ return MOSQ_ERR_NOT_FOUND; } diff --git a/src/subs.c b/src/subs.c index 9887e204..b296526d 100644 --- a/src/subs.c +++ b/src/subs.c @@ -559,7 +559,7 @@ struct mosquitto__subhier *sub__add_hier_entry(struct mosquitto__subhier *parent } -int sub__add(struct mosquitto *context, const char *sub, uint8_t qos, uint32_t identifier, int options, struct mosquitto__subhier **root) +int sub__add(struct mosquitto *context, const char *sub, uint8_t qos, uint32_t identifier, int options) { int rc = 0; struct mosquitto__subhier *subhier; @@ -568,8 +568,6 @@ int sub__add(struct mosquitto *context, const char *sub, uint8_t qos, uint32_t i char **topics; size_t topiclen; - assert(root); - assert(*root); assert(sub); rc = sub__topic_tokenise(sub, &local_sub, &topics, &sharename); @@ -581,9 +579,9 @@ int sub__add(struct mosquitto *context, const char *sub, uint8_t qos, uint32_t i mosquitto__FREE(topics); return MOSQ_ERR_INVAL; } - HASH_FIND(hh, *root, topics[0], topiclen, subhier); + HASH_FIND(hh, db.subs, topics[0], topiclen, subhier); if(!subhier){ - subhier = sub__add_hier_entry(NULL, root, topics[0], (uint16_t)topiclen); + subhier = sub__add_hier_entry(NULL, &db.subs, topics[0], (uint16_t)topiclen); if(!subhier){ mosquitto__FREE(local_sub); mosquitto__FREE(topics); @@ -600,7 +598,7 @@ int sub__add(struct mosquitto *context, const char *sub, uint8_t qos, uint32_t i return rc; } -int sub__remove(struct mosquitto *context, const char *sub, struct mosquitto__subhier *root, uint8_t *reason) +int sub__remove(struct mosquitto *context, const char *sub, uint8_t *reason) { int rc = 0; struct mosquitto__subhier *subhier; @@ -608,13 +606,12 @@ int sub__remove(struct mosquitto *context, const char *sub, struct mosquitto__su char *local_sub = NULL; char **topics = NULL; - assert(root); assert(sub); rc = sub__topic_tokenise(sub, &local_sub, &topics, &sharename); if(rc) return rc; - HASH_FIND(hh, root, topics[0], strlen(topics[0]), subhier); + HASH_FIND(hh, db.subs, topics[0], strlen(topics[0]), subhier); if(subhier){ *reason = MQTT_RC_NO_SUBSCRIPTION_EXISTED; rc = sub__remove_recurse(context, subhier, topics, reason, sharename); diff --git a/test/unit/persist_read_stubs.c b/test/unit/persist_read_stubs.c index 5720d204..e6cac3b1 100644 --- a/test/unit/persist_read_stubs.c +++ b/test/unit/persist_read_stubs.c @@ -152,11 +152,10 @@ int acl__find_acls(struct mosquitto *context) } -int sub__add(struct mosquitto *context, const char *sub, uint8_t qos, uint32_t identifier, int options, struct mosquitto__subhier **root) +int sub__add(struct mosquitto *context, const char *sub, uint8_t qos, uint32_t identifier, int options) { UNUSED(context); UNUSED(options); - UNUSED(root); last_sub = strdup(sub); last_qos = qos; diff --git a/test/unit/subs_test.c b/test/unit/subs_test.c index a46b305a..1402be20 100644 --- a/test/unit/subs_test.c +++ b/test/unit/subs_test.c @@ -58,7 +58,7 @@ static void TEST_sub_add_single(void) db__open(&config); - rc = sub__add(&context, "a/b/c/d/e", 0, 0, 0, &db.subs); + rc = sub__add(&context, "a/b/c/d/e", 0, 0, 0); CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS); CU_ASSERT_PTR_NOT_NULL(db.subs); if(db.subs){