Module: kamailio Branch: master Commit: b14044fac93ef4b43584dd0e14f2b985d41745d6 URL: https://github.com/kamailio/kamailio/commit/b14044fac93ef4b43584dd0e14f2b985d41745d6
Author: PertsevRoman <pertsev.ro...@gmail.com> Committer: Daniel-Constantin Mierla <mico...@gmail.com> Date: 2024-11-20T09:11:14+01:00 db_redis: fix: hiredis-cluster build fix - fixed preprocessing issues if WITH_HIREDIS_CLUSTER specified - GH #4015 --- Modified: src/modules/db_redis/Makefile Modified: src/modules/db_redis/redis_connection.h Modified: src/modules/db_redis/redis_dbase.c --- Diff: https://github.com/kamailio/kamailio/commit/b14044fac93ef4b43584dd0e14f2b985d41745d6.diff Patch: https://github.com/kamailio/kamailio/commit/b14044fac93ef4b43584dd0e14f2b985d41745d6.patch --- diff --git a/src/modules/db_redis/Makefile b/src/modules/db_redis/Makefile index 85d9b9a956f..d5e304cc28c 100644 --- a/src/modules/db_redis/Makefile +++ b/src/modules/db_redis/Makefile @@ -64,9 +64,9 @@ ifneq ($(HIREDIS_CLUSTER_BUILDER),) HIREDISCLUSTERDEFS = $(shell $(HIREDIS_CLUSTER_BUILDER) --cflags) HIREDISCLUSTERLIBS = $(shell $(HIREDIS_CLUSTER_BUILDER) --libs) HIREDISCLUSTERLIBSPATH = $(shell $(HIREDIS_CLUSTER_BUILDER) --libs-only-L | cut -c 3-) - ifneq ($(shell ls $(HIREDISCLUSTERLIBSPATH) | grep libhiredis_ssl.so),) + ifneq ($(shell ls $(HIREDISCLUSTERLIBSPATH) | grep libhiredis_cluster_ssl.so),) HIREDISCLUSTERDEFS += -DWITH_SSL - HIREDISCLUSTERLIBS += -lhiredis_ssl + HIREDISCLUSTERLIBS += -lhiredis_cluster_ssl endif DEFS+=-DWITH_HIREDIS_CLUSTER DEFS+=$(HIREDISCLUSTERDEFS) diff --git a/src/modules/db_redis/redis_connection.h b/src/modules/db_redis/redis_connection.h index 62bb81f40f2..5b6f819c08b 100644 --- a/src/modules/db_redis/redis_connection.h +++ b/src/modules/db_redis/redis_connection.h @@ -25,6 +25,9 @@ #ifdef WITH_HIREDIS_CLUSTER #include <hircluster.h> +#ifdef WITH_SSL +#include <hircluster_ssl.h> +#endif #else #ifdef WITH_HIREDIS_PATH #include <hiredis/hiredis.h> diff --git a/src/modules/db_redis/redis_dbase.c b/src/modules/db_redis/redis_dbase.c index b3624975cf4..062911b2e10 100644 --- a/src/modules/db_redis/redis_dbase.c +++ b/src/modules/db_redis/redis_dbase.c @@ -1020,43 +1020,51 @@ static int db_redis_scan_query_keys_pattern(km_redis_con_t *con, #endif #ifdef WITH_HIREDIS_CLUSTER + return 0; +err: + if(reply) + db_redis_free_reply(&reply); + return -1; } -#endif +#else -// for full table scans, we have to manually match all given keys -// but only do this once for repeated invocations -if(!*manual_keys) { - *manual_keys_count = _n; - *manual_keys = (int *)pkg_malloc(*manual_keys_count * sizeof(int)); - if(!*manual_keys) { - LM_ERR("Failed to allocate memory for manual keys\n"); - goto err; - } - memset(*manual_keys, 0, *manual_keys_count * sizeof(int)); - for(l = 0; l < _n; ++l) { - (*manual_keys)[l] = l; - } -} + // for full table scans, we have to manually match all given keys + // but only do this once for repeated invocations + if(!*manual_keys) { + *manual_keys_count = _n; + *manual_keys = (int *)pkg_malloc(*manual_keys_count * sizeof(int)); + if(!*manual_keys) { + LM_ERR("Failed to allocate memory for manual keys\n"); + goto err; + } + memset(*manual_keys, 0, *manual_keys_count * sizeof(int)); + for(l = 0; l < _n; ++l) { + (*manual_keys)[l] = l; + } + } -if(reply) { - db_redis_free_reply(&reply); -} + if(reply) { + db_redis_free_reply(&reply); + } -db_redis_key_free(&query_v); + db_redis_key_free(&query_v); -LM_DBG("got %lu entries by scan\n", (unsigned long)i); -return 0; + LM_DBG("got %lu entries by scan\n", (unsigned long)i); + return 0; -err : if(reply) db_redis_free_reply(&reply); -db_redis_key_free(&query_v); -db_redis_key_free(query_keys); -*query_keys_count = 0; -if(*manual_keys) { - pkg_free(*manual_keys); - *manual_keys = NULL; -} -return -1; -} + err: + if(reply) + db_redis_free_reply(&reply); + db_redis_key_free(&query_v); + db_redis_key_free(query_keys); + *query_keys_count = 0; + if(*manual_keys) { + pkg_free(*manual_keys); + *manual_keys = NULL; + } + return -1; + } +#endif static int db_redis_scan_query_keys(km_redis_con_t *con, const str *table_name, const int _n, redis_key_t **query_keys, int *query_keys_count, _______________________________________________ Kamailio - Development Mailing List -- sr-dev@lists.kamailio.org To unsubscribe send an email to sr-dev-le...@lists.kamailio.org Important: keep the mailing list in the recipients, do not reply only to the sender!