FS-11858 [mod_hiredis] allow using single-quote when setting key to a value that has spaces

This commit is contained in:
Chris Rienzo 2019-05-22 20:43:56 +00:00 committed by Andrey Volk
parent fb695c528e
commit e73f319aec
2 changed files with 10 additions and 1 deletions

View 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);
}
}
}

View 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 {