<p></p>
<h3>Description</h3>
<p>Detected that a command like this was not returning <0</p>
<pre><code>if(redis_cmd("test", "HSET dd field1", "r")) {
  [...]
}
</code></pre>
<p>Same command on redis-cli:</p>
<pre><code># redis-cli
127.0.0.1:6379> HSET dd field1
(error) ERR wrong number of arguments for 'hset' command
</code></pre>
<h3>Troubleshooting</h3>
<h4>Reproduction</h4>
<p>I've added some debug to the code and I find out that the command is returning:</p>
<pre><code>Apr 23 10:55:02 spce proxy[12880]: DEBUG: ndb_redis [redis_client.c:956]: redisc_exec(): rpl->rplRedis->type:3
</code></pre>
<p>That's an INTEGER. From hiredis/read.h:</p>
<pre><code>#define REDIS_REPLY_INTEGER 3
#define REDIS_REPLY_NIL 4
#define REDIS_REPLY_STATUS 5
#define REDIS_REPLY_ERROR 6
</code></pre>
<p>I've created a simple test code to check the same command:</p>
<pre><code>#include <stdio.h>
#include <stdarg.h>
#include "hiredis.h"

void check(redisContext *c, const char *cmd, ...) {
        va_list ap;
        va_start(ap,cmd);
        redisReply *r = redisvCommand(c, cmd, ap);
        va_end(ap);

        if(r == NULL) {
                printf("reply NULL\n");
        }
        printf("reply->type:%d\n", r->type);
        freeReplyObject(r);
}

int main(void) {
        redisContext *c = redisConnect("127.0.0.1", 6379);

        if (c == NULL || c->err) {
            if (c) {
                printf("Error: %s\n", c->errstr);
            } else {
                printf("Can't allocate redis context\n");
            }
            return 1;
        }
        check(c, "HSET dd field");
        redisFree(c);
        return 0;
}
</code></pre>
<pre><code>root@spce:/usr/local/devel# cc t.c -o t -lhiredis -I/usr/include/hiredis
root@spce:/usr/local/devel# ./t
reply->type:6
</code></pre>
<p>No problems there. The reply is ERROR.</p>
<h3>Additional Information</h3>
<ul>
<li><strong>Kamailio Version</strong> - output of <code>kamailio -v</code></li>
</ul>
<pre><code>version: kamailio 5.3.3 (x86_64/linux)
flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, NO_SIG_DEBUG, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED
ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: unknown
compiled with gcc 8.3.0
</code></pre>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/kamailio/kamailio/issues/2300">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABO7UZOKNOLLCRQZRISYGPTROE623ANCNFSM4MP3VTMA">unsubscribe</a>.<img src="https://github.com/notifications/beacon/ABO7UZNDI2YP2WGGLIRDHFTROE623A5CNFSM4MP3VTMKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4JBAPSLQ.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/kamailio/kamailio/issues/2300",
"url": "https://github.com/kamailio/kamailio/issues/2300",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>