|
|
|
@ -706,6 +706,7 @@ static int json_get_hash(struct redis_hash *out, struct call* c, |
|
|
|
static unsigned int MAXKEYLENGTH = 512; |
|
|
|
char key_concatted[MAXKEYLENGTH]; |
|
|
|
int rc=0; |
|
|
|
str tmpstr; |
|
|
|
|
|
|
|
if (!c) |
|
|
|
goto err; |
|
|
|
@ -723,7 +724,7 @@ static int json_get_hash(struct redis_hash *out, struct call* c, |
|
|
|
goto err; |
|
|
|
} |
|
|
|
|
|
|
|
out->ht = g_hash_table_new_full(g_str_hash, g_str_equal, free, freeReplyObject); |
|
|
|
out->ht = g_hash_table_new_full(g_str_hash, g_str_equal, free, free); |
|
|
|
if (!out->ht) |
|
|
|
goto err; |
|
|
|
|
|
|
|
@ -736,10 +737,10 @@ static int json_get_hash(struct redis_hash *out, struct call* c, |
|
|
|
rlog(LOG_ERROR, "Could not read json member: %s",*members); |
|
|
|
goto err3; |
|
|
|
} |
|
|
|
str_init(&out->s,(char*)json_reader_get_string_value_uri_enc(c->root_reader,&out->s.len)); |
|
|
|
str_init(&tmpstr,(char*)json_reader_get_string_value_uri_enc(c->root_reader,&tmpstr.len)); |
|
|
|
char* tmp = strdup(*members); |
|
|
|
|
|
|
|
if (g_hash_table_insert_check(out->ht, tmp, str_dup(&out->s)) != TRUE) { |
|
|
|
if (g_hash_table_insert_check(out->ht, tmp, str_dup(&tmpstr)) != TRUE) { |
|
|
|
ilog(LOG_WARNING,"Key %s already exists", tmp); |
|
|
|
goto err3; |
|
|
|
} |
|
|
|
@ -783,8 +784,7 @@ static int redis_hash_get_str(str *out, const struct redis_hash *h, const char * |
|
|
|
out->len = 0; |
|
|
|
return -1; |
|
|
|
} |
|
|
|
out->s = r->s; |
|
|
|
out->len = r->len; |
|
|
|
*out = *r; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
@ -1400,7 +1400,7 @@ static void json_restore_call(struct redis *r, struct callmaster *m, const str * |
|
|
|
|
|
|
|
rr_jsonStr = redis_get(r, REDIS_REPLY_STRING, "GET " PB, STR(callid)); |
|
|
|
if (!rr_jsonStr) { |
|
|
|
rlog(LOG_ERR, "Could not retrieve json data from redis for key: %s", callid->s); |
|
|
|
rlog(LOG_ERR, "Could not retrieve json data from redis for key: "STR_FORMAT, STR_FMT(callid)); |
|
|
|
goto err1; |
|
|
|
} |
|
|
|
|
|
|
|
@ -1553,7 +1553,7 @@ static void restore_thread(void *call_p, void *ctx_p) { |
|
|
|
redisReply *call = call_p; |
|
|
|
struct redis *r; |
|
|
|
str callid; |
|
|
|
str_init(&callid,call->str); |
|
|
|
str_init_len(&callid, call->str, call->len); |
|
|
|
|
|
|
|
rlog(LOG_DEBUG, "Processing call ID '%.*s' from Redis", REDIS_FMT(call)); |
|
|
|
|
|
|
|
|