ports/167924: [PATCH] databases/php5-redis: add nothrow patch from upstream

Martin Matuska mm at FreeBSD.org
Tue May 15 13:40:02 UTC 2012


>Number:         167924
>Category:       ports
>Synopsis:       [PATCH] databases/php5-redis: add nothrow patch from upstream
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue May 15 13:40:01 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Martin Matuska
>Release:        FreeBSD 9.0-STABLE amd64
>Organization:
>Environment:
System: FreeBSD neo 9.0-STABLE FreeBSD 9.0-STABLE #1 r235218M: Thu May 10 12:01:50 CEST
>Description:
Add nothrow patch and echo debug command from upstream
(c4a5370a82 and ee3a23acd2)

https://github.com/nicolasff/phpredis/commit/c4a5370a821ec29b990d5ea6e95b7fb13bc669c1
https://github.com/nicolasff/phpredis/commit/ee3a23acd273803bfec1fe6e53515fb15a756a2d

Added file(s):
- files/patch-echo-nothrow

Port maintainer (m.tsatsenko at gmail.com) is cc'd.

Generated with FreeBSD Port Tools 0.99_6 (mode: change, diff: CVS)
>How-To-Repeat:
>Fix:

--- php5-redis-2.2.1_1.patch begins here ---
Index: Makefile
===================================================================
RCS file: /home/pcvs/ports/databases/php5-redis/Makefile,v
retrieving revision 1.7
diff -u -r1.7 Makefile
--- Makefile	18 Apr 2012 17:18:15 -0000	1.7
+++ Makefile	15 May 2012 13:30:16 -0000
@@ -7,6 +7,7 @@
 
 PORTNAME=	redis
 PORTVERSION=	2.2.1
+PORTREVISION=	1
 CATEGORIES=	databases
 MASTER_SITES=	https://github.com/nicolasff/phpredis/tarball/${PORTVERSION}/
 PKGNAMEPREFIX=	php5-
Index: files/patch-echo-nothrow
===================================================================
RCS file: files/patch-echo-nothrow
diff -N files/patch-echo-nothrow
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-echo-nothrow	15 May 2012 13:30:16 -0000
@@ -0,0 +1,879 @@
+index 1dfaa0f..fd8f024 100755
+--- a/php_redis.h
++++ php_redis.h
+@@ -29,6 +29,7 @@ PHP_METHOD(Redis, connect);
+ PHP_METHOD(Redis, pconnect);
+ PHP_METHOD(Redis, close);
+ PHP_METHOD(Redis, ping);
++PHP_METHOD(Redis, echo);
+ PHP_METHOD(Redis, get);
+ PHP_METHOD(Redis, set);
+ PHP_METHOD(Redis, setex);
+diff --git a/redis.c b/redis.c
+index 9ca3a14..3e15d73 100755
+--- a/redis.c
++++ redis.c
+@@ -76,6 +76,7 @@ static zend_function_entry redis_functions[] = {
+      PHP_ME(Redis, pconnect, NULL, ZEND_ACC_PUBLIC)
+      PHP_ME(Redis, close, NULL, ZEND_ACC_PUBLIC)
+      PHP_ME(Redis, ping, NULL, ZEND_ACC_PUBLIC)
++     PHP_ME(Redis, echo, NULL, ZEND_ACC_PUBLIC)
+      PHP_ME(Redis, get, NULL, ZEND_ACC_PUBLIC)
+      PHP_ME(Redis, set, NULL, ZEND_ACC_PUBLIC)
+      PHP_ME(Redis, setex, NULL, ZEND_ACC_PUBLIC)
+@@ -324,7 +325,7 @@ static void redis_destructor_redis_sock(zend_rsrc_list_entry * rsrc TSRMLS_DC)
+ /**
+  * redis_sock_get
+  */
+-PHPAPI int redis_sock_get(zval *id, RedisSock **redis_sock TSRMLS_DC)
++PHPAPI int redis_sock_get(zval *id, RedisSock **redis_sock TSRMLS_DC, int no_throw)
+ {
+ 
+     zval **socket;
+@@ -332,15 +333,21 @@ PHPAPI int redis_sock_get(zval *id, RedisSock **redis_sock TSRMLS_DC)
+ 
+     if (Z_TYPE_P(id) != IS_OBJECT || zend_hash_find(Z_OBJPROP_P(id), "socket",
+                                   sizeof("socket"), (void **) &socket) == FAILURE) {
+-        zend_throw_exception(redis_exception_ce, "Redis server went away", 0 TSRMLS_CC);
++    	// Throw an exception unless we've been requested not to
++        if(!no_throw) {
++        	zend_throw_exception(redis_exception_ce, "Redis server went away", 0 TSRMLS_CC);
++        }
+         return -1;
+     }
+ 
+     *redis_sock = (RedisSock *) zend_list_find(Z_LVAL_PP(socket), &resource_type);
+ 
+     if (!*redis_sock || resource_type != le_redis_sock) {
+-			zend_throw_exception(redis_exception_ce, "Redis server went away", 0 TSRMLS_CC);
+-            return -1;
++		// Throw an exception unless we've been requested not to
++    	if(!no_throw) {
++    		zend_throw_exception(redis_exception_ce, "Redis server went away", 0 TSRMLS_CC);
++    	}
++		return -1;
+     }
+ 
+     return Z_LVAL_PP(socket);
+@@ -471,7 +478,7 @@ PHP_METHOD(Redis,__destruct) {
+ 
+ 	// Grab our socket
+ 	RedisSock *redis_sock;
+-	if (redis_sock_get(getThis(), &redis_sock TSRMLS_CC) < 0) {
++	if (redis_sock_get(getThis(), &redis_sock TSRMLS_CC, 1) < 0) {
+ 		RETURN_FALSE;
+ 	}
+ 
+@@ -504,7 +511,7 @@ PHP_METHOD(Redis, pconnect)
+ 	} else {
+ 		/* reset multi/exec state if there is one. */
+ 		RedisSock *redis_sock;
+-		if (redis_sock_get(getThis(), &redis_sock TSRMLS_CC) < 0) {
++		if (redis_sock_get(getThis(), &redis_sock TSRMLS_CC, 0) < 0) {
+ 			RETURN_FALSE;
+ 		}
+ 
+@@ -547,7 +554,7 @@ PHPAPI int redis_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent) {
+ 	}
+ 
+ 	/* if there is a redis sock already we have to remove it from the list */
+-	if (redis_sock_get(object, &redis_sock TSRMLS_CC) > 0) {
++	if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) > 0) {
+ 		if (zend_hash_find(Z_OBJPROP_P(object), "socket",
+ 					sizeof("socket"), (void **) &socket) == FAILURE) {
+ 			/* maybe there is a socket but the id isn't known.. what to do? */
+@@ -587,7 +594,7 @@ PHP_METHOD(Redis, close)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -617,7 +624,7 @@ PHP_METHOD(Redis, set)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -656,7 +663,7 @@ PHP_METHOD(Redis, setex)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -691,7 +698,7 @@ PHP_METHOD(Redis, setnx)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -729,7 +736,7 @@ PHP_METHOD(Redis, getSet)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -763,7 +770,7 @@ PHP_METHOD(Redis, randomKey)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -778,6 +785,39 @@ PHP_METHOD(Redis, randomKey)
+ }
+ /* }}} */
+ 
++/* {{{ proto string Redis::echo(string key)
++ */
++PHP_METHOD(Redis, echo)
++{
++    zval *object;
++    RedisSock *redis_sock;
++    char *key = NULL, *cmd;
++    int key_len, cmd_len;
++	int key_free;
++
++    if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os",
++                                     &object, redis_ce,
++                                     &key, &key_len) == FAILURE) {
++        RETURN_FALSE;
++    }
++
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
++        RETURN_FALSE;
++    }
++
++	key_free = redis_key_prefix(redis_sock, &key, &key_len TSRMLS_CC);
++    cmd_len = redis_cmd_format_static(&cmd, "ECHO", "s", key, key_len);
++	if(key_free) efree(key);
++
++	REDIS_PROCESS_REQUEST(redis_sock, cmd, cmd_len);
++    IF_ATOMIC() {
++	  redis_string_response(INTERNAL_FUNCTION_PARAM_PASSTHRU, redis_sock, NULL, NULL);
++    }
++    REDIS_PROCESS_RESPONSE(redis_string_response);
++
++}
++/* }}} */
++
+ /* {{{ proto string Redis::renameKey(string key_src, string key_dst)
+  */
+ PHP_METHOD(Redis, renameKey)
+@@ -796,7 +836,7 @@ PHP_METHOD(Redis, renameKey)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -833,7 +873,7 @@ PHP_METHOD(Redis, renameNx)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -868,7 +908,7 @@ PHP_METHOD(Redis, get)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -900,7 +940,7 @@ PHP_METHOD(Redis, ping)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -929,7 +969,7 @@ PHPAPI void redis_atomic_increment(INTERNAL_FUNCTION_PARAMETERS, char *keyword,
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 	key_free = redis_key_prefix(redis_sock, &key, &key_len TSRMLS_CC);
+@@ -1055,7 +1095,7 @@ PHP_METHOD(Redis, getMultiple)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -1141,7 +1181,7 @@ PHP_METHOD(Redis, exists)
+                                      &key, &key_len) == FAILURE) {
+         RETURN_FALSE;
+     }
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -1240,7 +1280,7 @@ PHP_METHOD(Redis, getKeys)
+         RETURN_NULL();
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -1274,7 +1314,7 @@ PHP_METHOD(Redis, type)
+         RETURN_NULL();
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -1304,7 +1344,7 @@ PHP_METHOD(Redis, append)
+ 		RETURN_NULL();
+ 	}
+ 
+-	if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++	if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+ 		RETURN_FALSE;
+ 	}
+ 
+@@ -1333,7 +1373,7 @@ PHP_METHOD(Redis, getRange)
+ 		RETURN_FALSE;
+ 	}
+ 
+-	if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++	if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+ 		RETURN_FALSE;
+ 	}
+ 
+@@ -1361,7 +1401,7 @@ PHP_METHOD(Redis, setRange)
+ 		RETURN_FALSE;
+ 	}
+ 
+-	if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++	if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+ 		RETURN_FALSE;
+ 	}
+ 
+@@ -1389,7 +1429,7 @@ PHP_METHOD(Redis, getBit)
+ 		RETURN_FALSE;
+ 	}
+ 
+-	if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++	if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+ 		RETURN_FALSE;
+ 	}
+ 
+@@ -1418,7 +1458,7 @@ PHP_METHOD(Redis, setBit)
+ 		RETURN_FALSE;
+ 	}
+ 
+-	if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++	if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+ 		RETURN_FALSE;
+ 	}
+ 
+@@ -1447,7 +1487,7 @@ PHP_METHOD(Redis, strlen)
+ 		RETURN_NULL();
+ 	}
+ 
+-	if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++	if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+ 		RETURN_FALSE;
+ 	}
+ 
+@@ -1477,7 +1517,7 @@ generic_push_function(INTERNAL_FUNCTION_PARAMETERS, char *keyword, int keyword_l
+         RETURN_NULL();
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -1550,7 +1590,7 @@ PHP_METHOD(Redis, lInsert)
+ 		RETURN_NULL();
+ 	}
+ 
+-	if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++	if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+ 		RETURN_FALSE;
+ 	}
+ 	
+@@ -1599,7 +1639,7 @@ generic_pop_function(INTERNAL_FUNCTION_PARAMETERS, char *keyword, int keyword_le
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -1689,7 +1729,7 @@ PHP_METHOD(Redis, lSize)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -1725,7 +1765,7 @@ PHP_METHOD(Redis, lRemove)
+         RETURN_NULL();
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -1761,7 +1801,7 @@ PHP_METHOD(Redis, listTrim)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -1794,7 +1834,7 @@ PHP_METHOD(Redis, lGet)
+         RETURN_NULL();
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -1827,7 +1867,7 @@ PHP_METHOD(Redis, lGetRange)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -1878,7 +1918,7 @@ PHP_METHOD(Redis, sSize)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -1930,7 +1970,7 @@ PHP_METHOD(Redis, sMove)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -1985,7 +2025,7 @@ PHP_METHOD(Redis, sContains)
+         return;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -2018,7 +2058,7 @@ PHP_METHOD(Redis, sMembers)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -2059,7 +2099,7 @@ PHPAPI int generic_multiple_args_cmd(INTERNAL_FUNCTION_PARAMETERS, char *keyword
+     }
+ 
+ 	/* get redis socket */
+-    if (redis_sock_get(getThis(), out_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(getThis(), out_sock TSRMLS_CC, 0) < 0) {
+ 		ZVAL_BOOL(return_value, 0);
+ 		return FAILURE;
+     }
+@@ -2392,7 +2432,7 @@ PHP_METHOD(Redis, sort) {
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -2603,7 +2643,7 @@ PHPAPI void generic_sort_cmd(INTERNAL_FUNCTION_PARAMETERS, char *sort, int use_a
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+     if(key_len == 0) {
+@@ -2798,7 +2838,7 @@ PHPAPI void generic_expire_cmd(INTERNAL_FUNCTION_PARAMETERS, char *keyword, int
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -2847,7 +2887,7 @@ PHP_METHOD(Redis, lSet) {
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -2874,7 +2914,7 @@ PHPAPI void generic_empty_cmd_impl(INTERNAL_FUNCTION_PARAMETERS, char *cmd, int
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -2921,7 +2961,7 @@ PHPAPI void generic_empty_long_cmd(INTERNAL_FUNCTION_PARAMETERS, char *cmd, int
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -2988,7 +3028,7 @@ PHP_METHOD(Redis, auth) {
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -3017,7 +3057,7 @@ PHP_METHOD(Redis, persist) {
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -3048,7 +3088,7 @@ PHP_METHOD(Redis, ttl) {
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -3079,7 +3119,7 @@ PHP_METHOD(Redis, info) {
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -3118,7 +3158,7 @@ PHP_METHOD(Redis, select) {
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -3148,7 +3188,7 @@ PHP_METHOD(Redis, move) {
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -3183,7 +3223,7 @@ generic_mset(INTERNAL_FUNCTION_PARAMETERS, char *kw, void (*fun)(INTERNAL_FUNCTI
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -3307,7 +3347,7 @@ PHP_METHOD(Redis, rpoplpush)
+     zval *object;
+     RedisSock *redis_sock;
+     char *srckey = NULL, *dstkey = NULL;
+-    int srckey_len, dstkey_len, cmd_len;
++    int srckey_len, dstkey_len;
+ 
+     if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Oss",
+                                      &object, redis_ce, &srckey, &srckey_len,
+@@ -3315,7 +3355,7 @@ PHP_METHOD(Redis, rpoplpush)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -3339,7 +3379,7 @@ PHP_METHOD(Redis, brpoplpush)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -3367,7 +3407,7 @@ PHP_METHOD(Redis, zAdd) {
+ 	int argc = ZEND_NUM_ARGS(), i;
+ 
+ 	/* get redis socket */
+-    if (redis_sock_get(getThis(), &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(getThis(), &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -3466,7 +3506,7 @@ PHP_METHOD(Redis, zRange)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -3529,7 +3569,7 @@ PHP_METHOD(Redis, zDeleteRangeByScore)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -3562,7 +3602,7 @@ PHP_METHOD(Redis, zDeleteRangeByRank)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -3596,7 +3636,7 @@ PHP_METHOD(Redis, zReverseRange)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -3649,7 +3689,7 @@ redis_generic_zrange_by_score(INTERNAL_FUNCTION_PARAMETERS, char *keyword) {
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -3755,7 +3795,7 @@ PHP_METHOD(Redis, zCount)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -3786,7 +3826,7 @@ PHP_METHOD(Redis, zCard)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -3820,7 +3860,7 @@ PHP_METHOD(Redis, zScore)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -3853,7 +3893,7 @@ PHPAPI void generic_rank_method(INTERNAL_FUNCTION_PARAMETERS, char *keyword, int
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -3903,7 +3943,7 @@ PHPAPI void generic_incrby_method(INTERNAL_FUNCTION_PARAMETERS, char *keyword, i
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -3948,7 +3988,7 @@ PHPAPI void generic_z_command(INTERNAL_FUNCTION_PARAMETERS, char *command, int c
+ 		RETURN_FALSE;
+ 	}
+ 
+-    if(redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if(redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+ 		RETURN_FALSE;
+     }
+ 
+@@ -4126,7 +4166,7 @@ generic_hset(INTERNAL_FUNCTION_PARAMETERS, char *kw, void (*fun)(INTERNAL_FUNCTI
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -4170,7 +4210,7 @@ PHP_METHOD(Redis, hGet)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 	key_free = redis_key_prefix(redis_sock, &key, &key_len TSRMLS_CC);
+@@ -4200,7 +4240,7 @@ PHP_METHOD(Redis, hLen)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -4232,7 +4272,7 @@ generic_hash_command_2(INTERNAL_FUNCTION_PARAMETERS, char *keyword, int keyword_
+             return NULL;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+             ZVAL_BOOL(return_value, 0);
+             return NULL;
+     }
+@@ -4293,7 +4333,7 @@ generic_hash_command_1(INTERNAL_FUNCTION_PARAMETERS, char *keyword, int keyword_
+             return NULL;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+             ZVAL_BOOL(return_value, 0);
+             return NULL;
+     }
+@@ -4441,7 +4481,7 @@ PHP_METHOD(Redis, hIncrBy)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -4492,7 +4532,7 @@ PHP_METHOD(Redis, hMget) {
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+     nb_fields = zend_hash_num_elements(Z_ARRVAL_P(z_array));
+@@ -4572,7 +4612,7 @@ PHP_METHOD(Redis, hMset)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -4681,7 +4721,7 @@ PHP_METHOD(Redis, multi)
+ 
+     /* if the flag is activated, send the command, the reply will be "QUEUED" or -ERR */
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -4730,7 +4770,7 @@ PHP_METHOD(Redis, discard)
+         RETURN_FALSE;
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -4832,7 +4872,7 @@ PHP_METHOD(Redis, exec)
+                                      &object, redis_ce) == FAILURE) {
+         RETURN_FALSE;
+     }
+-   	if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++   	if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+        	RETURN_FALSE;
+     }
+ 
+@@ -4931,7 +4971,7 @@ PHP_METHOD(Redis, pipeline)
+     }
+ 
+     /* if the flag is activated, send the command, the reply will be "QUEUED" or -ERR */
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 	redis_sock->mode = PIPELINE;
+@@ -4963,7 +5003,7 @@ PHP_METHOD(Redis, publish)
+         RETURN_NULL();
+     }
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -5004,7 +5044,7 @@ PHP_METHOD(Redis, subscribe)
+ 		RETURN_FALSE;	
+ 	}
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -5164,7 +5204,7 @@ PHP_METHOD(Redis, unsubscribe)
+ 									 &object, redis_ce, &array) == FAILURE) {
+ 		RETURN_FALSE;	
+ 	}
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -5248,7 +5288,7 @@ PHP_METHOD(Redis, slaveof)
+ 									 &object, redis_ce, &host, &host_len, &port) == FAILURE) {
+ 		RETURN_FALSE;
+ 	}
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -5280,7 +5320,7 @@ PHP_METHOD(Redis, object)
+ 									 &object, redis_ce, &info, &info_len, &key, &key_len) == FAILURE) {
+ 		RETURN_FALSE;
+ 	}
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -5318,7 +5358,7 @@ PHP_METHOD(Redis, getOption)  {
+ 		RETURN_FALSE;
+ 	}
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -5354,7 +5394,7 @@ PHP_METHOD(Redis, setOption) {
+ 		RETURN_FALSE;
+ 	}
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+@@ -5414,7 +5454,7 @@ PHP_METHOD(Redis, config)
+ 		RETURN_FALSE;
+ 	}
+ 
+-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
++    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
+         RETURN_FALSE;
+     }
+ 
+diff --git a/tests/TestRedis.php b/tests/TestRedis.php
+index 1033b01..46af355 100644
+--- a/tests/TestRedis.php
++++ tests/TestRedis.php
+@@ -115,6 +115,12 @@ class Redis_Test extends TestSuite
+ 	 $this->assertEquals($s, $this->redis->get('x'));
+     }
+ 
++	public function testEcho() {
++		$this->assertEquals($this->redis->echo("hello"), "hello");
++		$this->assertEquals($this->redis->echo(""), "");
++		$this->assertEquals($this->redis->echo(" 0123 "), " 0123 ");
++	}
++
+     public function testErr() {
+ 
+ 	 $this->redis->set('x', '-ERR');
--- php5-redis-2.2.1_1.patch ends here ---

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list