diff options
| -rw-r--r-- | async.c | 17 | ||||
| -rw-r--r-- | async.h | 1 | 
2 files changed, 12 insertions, 6 deletions
| @@ -58,7 +58,7 @@      } while(0);  /* Forward declaration of function in hiredis.c */ -void __redisAppendCommand(redisContext *c, char *cmd, size_t len); +int __redisAppendCommand(redisContext *c, const char *cmd, size_t len);  /* Functions managing dictionary of callbacks for pub/sub. */  static unsigned int callbackHash(const void *key) { @@ -550,8 +550,8 @@ void redisAsyncHandleWrite(redisAsyncContext *ac) {  /* Sets a pointer to the first argument and its length starting at p. Returns   * the number of bytes to skip to get to the following argument. */ -static char *nextArgument(char *start, char **str, size_t *len) { -    char *p = start; +static const char *nextArgument(const char *start, const char **str, size_t *len) { +    const char *p = start;      if (p[0] != '$') {          p = strchr(p,'$');          if (p == NULL) return NULL; @@ -567,13 +567,13 @@ static char *nextArgument(char *start, char **str, size_t *len) {  /* Helper function for the redisAsyncCommand* family of functions. Writes a   * formatted command to the output buffer and registers the provided callback   * function with the context. */ -static int __redisAsyncCommand(redisAsyncContext *ac, redisCallbackFn *fn, void *privdata, char *cmd, size_t len) { +static int __redisAsyncCommand(redisAsyncContext *ac, redisCallbackFn *fn, void *privdata, const char *cmd, size_t len) {      redisContext *c = &(ac->c);      redisCallback cb;      int pvariant, hasnext; -    char *cstr, *astr; +    const char *cstr, *astr;      size_t clen, alen; -    char *p; +    const char *p;      sds sname;      int ret; @@ -662,3 +662,8 @@ int redisAsyncCommandArgv(redisAsyncContext *ac, redisCallbackFn *fn, void *priv      free(cmd);      return status;  } + +int redisAsyncFormattedCommand(redisAsyncContext *ac, redisCallbackFn *fn, void *privdata, const char *cmd, size_t len) { +    int status = __redisAsyncCommand(ac,fn,privdata,cmd,len); +    return status; +} @@ -118,6 +118,7 @@ void redisAsyncHandleWrite(redisAsyncContext *ac);  int redisvAsyncCommand(redisAsyncContext *ac, redisCallbackFn *fn, void *privdata, const char *format, va_list ap);  int redisAsyncCommand(redisAsyncContext *ac, redisCallbackFn *fn, void *privdata, const char *format, ...);  int redisAsyncCommandArgv(redisAsyncContext *ac, redisCallbackFn *fn, void *privdata, int argc, const char **argv, const size_t *argvlen); +int redisAsyncFormattedCommand(redisAsyncContext *ac, redisCallbackFn *fn, void *privdata, const char *cmd, size_t len);  #ifdef __cplusplus  } | 
