]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-11858 [mod_hiredis] allow using single-quote when setting key to a value that...
authorChris Rienzo <chris@signalwire.com>
Wed, 22 May 2019 20:43:56 +0000 (20:43 +0000)
committerAndrey Volk <andywolk@gmail.com>
Wed, 17 Jul 2019 20:10:47 +0000 (00:10 +0400)
src/mod/applications/mod_hiredis/hiredis_profile.c
src/mod/applications/mod_hiredis/mod_hiredis.h

index a5fbec1da8ddaa9a5cd58f6bed558029006b21d5..ef42d22a91b97db8d688acc146082dc4896918d7 100644 (file)
@@ -304,7 +304,12 @@ static switch_status_t hiredis_context_execute_requests(hiredis_context_t *conte
                        /* eval needs special formatting to work properly */
                        redisAppendCommand(context->context, "eval %s %d %s", cur_request->request, cur_request->num_keys, cur_request->keys ? cur_request->keys : "");
                } else {
-                       redisAppendCommand(context->context, cur_request->request);
+                       if (cur_request->argc == 0) {
+                               cur_request->argc = switch_separate_string(cur_request->request, ' ', cur_request->argv, MOD_HIREDIS_MAX_ARGS);
+                       }
+                       if (cur_request->argc > 0) {
+                               redisAppendCommandArgv(context->context, cur_request->argc, (const char **)cur_request->argv, NULL);
+                       }
                }
        }
 
index faf8fb7a776a89e772260b4a9b685f76cbb859d5..b60fb530f9f13d0fde9cfac4ca7fa14312ac1344 100644 (file)
@@ -5,6 +5,8 @@
 #include <switch.h>
 #include <hiredis/hiredis.h>
 
+#define MOD_HIREDIS_MAX_ARGS 64
+
 typedef struct mod_hiredis_global_s {
        switch_memory_pool_t *pool;
        switch_hash_t *profiles;
@@ -25,6 +27,8 @@ typedef struct hiredis_request_s {
        switch_mutex_t *mutex;
        switch_thread_cond_t *cond;
        struct hiredis_request_s *next;
+       size_t argc;
+       char *argv[MOD_HIREDIS_MAX_ARGS];
 } hiredis_request_t;
 
 typedef struct mod_hiredis_context_s {