From 31cdd262306879d2132755c74ad99c6c04efe09d Mon Sep 17 00:00:00 2001 From: Kai Buschulte Date: Thu, 3 Nov 2022 09:17:34 +0100 Subject: [PATCH] Rename sub_count to subs_capacity sub_count is not the actual number of subscriptions. Renamed it to subs_capacity, as it keeps the value of allocated mosquitto__client_sub elements stored in the subs member of the mosquitto struct. Signed-off-by: Kai Buschulte --- lib/mosquitto_internal.h | 3 +-- src/handle_connect.c | 6 +++--- src/plugin_public.c | 4 ++-- src/subs.c | 24 ++++++++++++------------ 4 files changed, 18 insertions(+), 19 deletions(-) diff --git a/lib/mosquitto_internal.h b/lib/mosquitto_internal.h index eae0789c..e0c6b7d7 100644 --- a/lib/mosquitto_internal.h +++ b/lib/mosquitto_internal.h @@ -361,7 +361,7 @@ struct mosquitto { struct mosquitto__packet *out_packet_last; struct mosquitto__client_sub **subs; char *auth_method; - int sub_count; + int subs_capacity; /* allocated size of the subs instance */ # ifndef WITH_EPOLL int pollfd_index; # endif @@ -447,4 +447,3 @@ struct mosquitto { void do_client_disconnect(struct mosquitto *mosq, int reason_code, const mosquitto_property *properties); #endif - diff --git a/src/handle_connect.c b/src/handle_connect.c index 2abc4155..df25f348 100644 --- a/src/handle_connect.c +++ b/src/handle_connect.c @@ -164,11 +164,11 @@ int connect__on_authorised(struct mosquitto *context, void *auth_data_out, uint1 } context->subs = found_context->subs; found_context->subs = NULL; - context->sub_count = found_context->sub_count; - found_context->sub_count = 0; + context->subs_capacity = found_context->subs_capacity; + found_context->subs_capacity = 0; context->last_mid = found_context->last_mid; - for(i=0; isub_count; i++){ + for(i=0; isubs_capacity; i++){ if(context->subs[i]){ leaf = context->subs[i]->hier->subs; while(leaf){ diff --git a/src/plugin_public.c b/src/plugin_public.c index 5a0610e2..368c7670 100644 --- a/src/plugin_public.c +++ b/src/plugin_public.c @@ -172,7 +172,7 @@ BROKER_EXPORT int mosquitto_client_protocol_version(const struct mosquitto *clie BROKER_EXPORT int mosquitto_client_sub_count(const struct mosquitto *client) { if(client){ - return client->sub_count; + return client->subs_capacity; }else{ return 0; } @@ -371,7 +371,7 @@ static void check_subscription_acls(struct mosquitto *context) int rc; uint8_t reason; - for(i=0; isub_count; i++){ + for(i=0; isubs_capacity; i++){ if(context->subs[i] == NULL){ continue; } diff --git a/src/subs.c b/src/subs.c index b296526d..5fb40134 100644 --- a/src/subs.c +++ b/src/subs.c @@ -235,7 +235,7 @@ static int sub__add_shared(struct mosquitto *context, const char *sub, uint8_t q csub->shared = shared; bool assigned = false; - for(i=0; isub_count; i++){ + for(i=0; isubs_capacity; i++){ if(!context->subs[i]){ context->subs[i] = csub; assigned = true; @@ -243,7 +243,7 @@ static int sub__add_shared(struct mosquitto *context, const char *sub, uint8_t q } } if(assigned == false){ - subs = mosquitto__realloc(context->subs, sizeof(struct mosquitto__client_sub *)*(size_t)(context->sub_count + 1)); + subs = mosquitto__realloc(context->subs, sizeof(struct mosquitto__client_sub *)*(size_t)(context->subs_capacity + 1)); if(!subs){ sub__remove_shared_leaf(subhier, shared, newleaf); mosquitto__FREE(newleaf); @@ -251,8 +251,8 @@ static int sub__add_shared(struct mosquitto *context, const char *sub, uint8_t q return MOSQ_ERR_NOMEM; } context->subs = subs; - context->sub_count++; - context->subs[context->sub_count-1] = csub; + context->subs_capacity++; + context->subs[context->subs_capacity-1] = csub; } #ifdef WITH_SYS_TREE db.shared_subscription_count++; @@ -292,7 +292,7 @@ static int sub__add_normal(struct mosquitto *context, const char *sub, uint8_t q csub->shared = NULL; bool assigned = false; - for(i=0; isub_count; i++){ + for(i=0; isubs_capacity; i++){ if(!context->subs[i]){ context->subs[i] = csub; assigned = true; @@ -300,7 +300,7 @@ static int sub__add_normal(struct mosquitto *context, const char *sub, uint8_t q } } if(assigned == false){ - subs = mosquitto__realloc(context->subs, sizeof(struct mosquitto__client_sub *)*(size_t)(context->sub_count + 1)); + subs = mosquitto__realloc(context->subs, sizeof(struct mosquitto__client_sub *)*(size_t)(context->subs_capacity + 1)); if(!subs){ DL_DELETE(subhier->subs, newleaf); mosquitto__FREE(newleaf); @@ -308,8 +308,8 @@ static int sub__add_normal(struct mosquitto *context, const char *sub, uint8_t q return MOSQ_ERR_NOMEM; } context->subs = subs; - context->sub_count++; - context->subs[context->sub_count-1] = csub; + context->subs_capacity++; + context->subs[context->subs_capacity-1] = csub; } #ifdef WITH_SYS_TREE db.subscription_count++; @@ -379,7 +379,7 @@ static int sub__remove_normal(struct mosquitto *context, struct mosquitto__subhi * It would be nice to be able to use the reference directly, * but that would involve keeping a copy of the topic string in * each subleaf. Might be worth considering though. */ - for(i=0; isub_count; i++){ + for(i=0; isubs_capacity; i++){ if(context->subs[i] && context->subs[i]->hier == subhier){ mosquitto__FREE(context->subs[i]); break; @@ -415,7 +415,7 @@ static int sub__remove_shared(struct mosquitto *context, struct mosquitto__subhi * It would be nice to be able to use the reference directly, * but that would involve keeping a copy of the topic string in * each subleaf. Might be worth considering though. */ - for(i=0; isub_count; i++){ + for(i=0; isubs_capacity; i++){ if(context->subs[i] && context->subs[i]->hier == subhier && context->subs[i]->shared == shared){ @@ -696,7 +696,7 @@ int sub__clean_session(struct mosquitto *context) struct mosquitto__subleaf *leaf; struct mosquitto__subhier *hier; - for(i=0; isub_count; i++){ + for(i=0; isubs_capacity; i++){ if(context->subs[i] == NULL){ continue; } @@ -743,7 +743,7 @@ int sub__clean_session(struct mosquitto *context) } } mosquitto__FREE(context->subs); - context->sub_count = 0; + context->subs_capacity = 0; return MOSQ_ERR_SUCCESS; }