diff options
author | michael-grunder <michael.grunder@gmail.com> | 2019-05-29 19:42:29 +0300 |
---|---|---|
committer | Michael Grunder <michael.grunder@gmail.com> | 2019-06-03 17:53:21 +0300 |
commit | 6e4941706835d32bfce6b2843f791ef9720b7b88 (patch) | |
tree | 574bb6a1089bafdf38d034c366053176266b3474 /redis_commands.c | |
parent | 19f3efcfe6e1a32451a543fa186a8f38d250d941 (diff) |
Allow PING to take an optional argument.
Addresses #1563
Diffstat (limited to 'redis_commands.c')
-rw-r--r-- | redis_commands.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/redis_commands.c b/redis_commands.c index 7466ca0a..b74092ed 100644 --- a/redis_commands.c +++ b/redis_commands.c @@ -168,6 +168,26 @@ redis_build_script_cmd(smart_string *cmd, int argc, zval *z_args) return cmd; } +/* Command that takes one optional string */ +int redis_opt_str_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, char *kw, + char **cmd, int *cmd_len, short *slot, void **ctx) +{ + char *arg = NULL; + size_t arglen; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s!", &arg, &arglen) == FAILURE) { + return FAILURE; + } + + if (arg != NULL) { + *cmd_len = REDIS_CMD_SPPRINTF(cmd, kw, "s", arg, arglen); + } else { + *cmd_len = REDIS_CMD_SPPRINTF(cmd, kw, ""); + } + + return SUCCESS; +} + /* Generic command where we just take a string and do nothing to it*/ int redis_str_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock, char *kw, char **cmd, int *cmd_len, short *slot, void **ctx) |