Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpredis/phpredis.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Favre-Felix <n.favrefelix@gmail.com>2010-05-13 19:58:49 +0400
committerNicolas Favre-Felix <n.favrefelix@gmail.com>2010-05-13 19:58:49 +0400
commit576dd065e0ea1ef6a7f8364c66abb70ad82d8bb0 (patch)
tree42c248de9ddb2ebb6e5f3532ccfef9a120095ca4 /redis.c
parenta8558c777a305ad82f0504a9a3f48ba5a49265fe (diff)
More MULTI/EXEC/PIPELINE fixes.
Diffstat (limited to 'redis.c')
-rwxr-xr-xredis.c40
1 files changed, 17 insertions, 23 deletions
diff --git a/redis.c b/redis.c
index ae368338..e11bf345 100755
--- a/redis.c
+++ b/redis.c
@@ -2569,27 +2569,22 @@ PHP_METHOD(Redis, zRangeByScore)
efree(limit);
}
- if (redis_sock_write(redis_sock, cmd, cmd_len) < 0) {
- efree(cmd);
- RETURN_FALSE;
- }
- efree(cmd);
-
- if (redis_sock_read_multibulk_reply(INTERNAL_FUNCTION_PARAM_PASSTHRU,
- redis_sock, NULL TSRMLS_CC) < 0) {
- RETURN_FALSE;
- }
-
- if(!withscores) {
- return;
+ REDIS_PROCESS_REQUEST(redis_sock, cmd, cmd_len);
+ if(withscores) {
+ /* with scores! we have to transform the return array.
+ * return_value currently holds this: [elt0, val0, elt1, val1 ... ]
+ * we want [elt0 => val0, elt1 => val1], etc.
+ */
+ IF_ATOMIC() {
+ redis_sock_read_multibulk_reply_zipped(INTERNAL_FUNCTION_PARAM_PASSTHRU, redis_sock, NULL TSRMLS_CC);
+ }
+ REDIS_PROCESS_RESPONSE(redis_sock_read_multibulk_reply_zipped);
+ } else {
+ IF_ATOMIC() {
+ redis_sock_read_multibulk_reply(INTERNAL_FUNCTION_PARAM_PASSTHRU, redis_sock, NULL TSRMLS_CC);
+ }
+ REDIS_PROCESS_RESPONSE(redis_sock_read_multibulk_reply);
}
- /* with scores! we have to transform the return array.
- * return_value currently holds this: [elt0, val0, elt1, val1 ... ]
- * we want [elt0 => val0, elt1 => val1], etc.
- */
- IF_NOT_MULTI() {
- array_zip_values_and_scores(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1);
- } ELSE_IF_MULTI()
}
/* }}} */
@@ -2645,10 +2640,9 @@ PHP_METHOD(Redis, zScore)
REDIS_PROCESS_REQUEST(redis_sock, cmd, cmd_len);
IF_ATOMIC() {
- redis_bulk_double_response(INTERNAL_FUNCTION_PARAM_PASSTHRU, redis_sock TSRMLS_CC);
+ redis_bulk_double_response(INTERNAL_FUNCTION_PARAM_PASSTHRU, redis_sock, NULL TSRMLS_CC);
}
REDIS_PROCESS_RESPONSE(redis_bulk_double_response);
-
}
PHPAPI void generic_incrby_method(INTERNAL_FUNCTION_PARAMETERS, char *keyword, int keyword_len TSRMLS_DC) {
@@ -2673,7 +2667,7 @@ PHPAPI void generic_incrby_method(INTERNAL_FUNCTION_PARAMETERS, char *keyword, i
REDIS_PROCESS_REQUEST(redis_sock, cmd, cmd_len);
IF_ATOMIC() {
- redis_bulk_double_response(INTERNAL_FUNCTION_PARAM_PASSTHRU, redis_sock TSRMLS_CC);
+ redis_bulk_double_response(INTERNAL_FUNCTION_PARAM_PASSTHRU, redis_sock, NULL TSRMLS_CC);
}
REDIS_PROCESS_RESPONSE(redis_bulk_double_response);