View | Details | Raw Unified | Return to bug 173643
Collapse All | Expand All

(-)php5-redis/Makefile (-4 / +3 lines)
Lines 6-13 Link Here
6
#
6
#
7
7
8
PORTNAME=	redis
8
PORTNAME=	redis
9
PORTVERSION=	2.2.1
9
PORTVERSION=	2.2.2
10
PORTREVISION=	1
11
CATEGORIES=	databases
10
CATEGORIES=	databases
12
MASTER_SITES=	https://github.com/nicolasff/phpredis/tarball/${PORTVERSION}/
11
MASTER_SITES=	https://github.com/nicolasff/phpredis/tarball/${PORTVERSION}/
13
PKGNAMEPREFIX=	php5-
12
PKGNAMEPREFIX=	php5-
Lines 18-26 Link Here
18
17
19
LICENSE=	PHP301
18
LICENSE=	PHP301
20
19
21
GITVERSION=	g882c7dc
20
GITVERSION=	4197a7f
22
FETCH_ARGS=	-pRr
21
FETCH_ARGS=	-pRr
23
WRKSRC=		${WRKDIR}/nicolasff-phpredis-250e81b
22
WRKSRC=		${WRKDIR}/nicolasff-phpredis-4197a7f
24
23
25
USE_PHP=	session
24
USE_PHP=	session
26
USE_PHP_BUILD=	yes
25
USE_PHP_BUILD=	yes
(-)php5-redis/distinfo (-2 / +2 lines)
Lines 1-2 Link Here
1
SHA256 (nicolasff-phpredis-2.2.1-0-gg882c7dc.tar.gz) = ef72e795c7d9038e8a4b83a948e6952eb9e424cf4b8313bfa6403176701efd3a
1
SHA256 (nicolasff-phpredis-2.2.2-0-g4197a7f.tar.gz) = 7e784a16d5ef4b6351e7237fb42d28153e820dbe3f1237886269e061a8467284
2
SIZE (nicolasff-phpredis-2.2.1-0-gg882c7dc.tar.gz) = 113427
2
SIZE (nicolasff-phpredis-2.2.2-0-g4197a7f.tar.gz) = 126081
(-)php5-redis/files/patch-echo-nothrow (-1027 lines)
Lines 1-1027 Link Here
1
diff --git a/README.markdown b/README.markdown
2
index 265ff2a..c49e5b6 100644
3
--- a/README.markdown
4
+++ README.markdown
5
@@ -186,7 +186,6 @@ Parameter value.
6
 $redis->getOption(Redis::OPT_SERIALIZER);	// return Redis::SERIALIZER_NONE, Redis::SERIALIZER_PHP, or Redis::SERIALIZER_IGBINARY.
7
 </pre>
8
 
9
-
10
 ## ping
11
 ##### *Description*
12
 
13
@@ -201,6 +200,20 @@ Check the current connection status
14
 *STRING*: `+PONG` on success. Throws a RedisException object on connectivity error, as described above.
15
 
16
 
17
+## echo
18
+##### *Description*
19
+
20
+Sends a string to Redis, which replies with the same string
21
+
22
+##### *Parameters*
23
+
24
+*STRING*: The message to send.
25
+
26
+##### *Return Value*
27
+
28
+*STRING*: the same message.
29
+
30
+
31
 ## get
32
 ##### *Description*
33
 
34
@@ -761,9 +774,9 @@ Adds a value to the set value stored at key. If this value is already in the set
35
 *BOOL* `TRUE` if value didn't exist and was added successfully, `FALSE` if the value is already present.
36
 ##### *Example*
37
 <pre>
38
-$redis->sAdd('key1' , 'set1'); /* TRUE, 'key1' => {'set1'} */
39
-$redis->sAdd('key1' , 'set2'); /* TRUE, 'key1' => {'set1', 'set2'}*/
40
-$redis->sAdd('key1' , 'set2'); /* FALSE, 'key1' => {'set1', 'set2'}*/
41
+$redis->sAdd('key1' , 'member1'); /* TRUE, 'key1' => {'member1'} */
42
+$redis->sAdd('key1' , 'member2'); /* TRUE, 'key1' => {'member1', 'member2'}*/
43
+$redis->sAdd('key1' , 'member2'); /* FALSE, 'key1' => {'member1', 'member2'}*/
44
 </pre>
45
 
46
 ## sRem, sRemove
47
@@ -776,10 +789,10 @@ Removes the specified member from the set value stored at key.
48
 *BOOL* `TRUE` if the member was present in the set, `FALSE` if it didn't.
49
 ##### *Example*
50
 <pre>
51
-$redis->sAdd('key1' , 'set1'); 
52
-$redis->sAdd('key1' , 'set2'); 
53
-$redis->sAdd('key1' , 'set3'); /* 'key1' => {'set1', 'set2', 'set3'}*/
54
-$redis->sRem('key1', 'set2'); /* 'key1' => {'set1', 'set3'} */
55
+$redis->sAdd('key1' , 'member1');
56
+$redis->sAdd('key1' , 'member2');
57
+$redis->sAdd('key1' , 'member3'); /* 'key1' => {'member1', 'member2', 'member3'}*/
58
+$redis->sRem('key1', 'member2'); /* 'key1' => {'member1', 'member3'} */
59
 </pre>
60
 
61
 ## sMove
62
@@ -793,13 +806,13 @@ Moves the specified member from the set at srcKey to the set at dstKey.
63
 *BOOL* If the operation is successful, return `TRUE`. If the srcKey and/or dstKey didn't exist, and/or the member didn't exist in srcKey, `FALSE` is returned.
64
 ##### *Example*
65
 <pre>
66
-$redis->sAdd('key1' , 'set11'); 
67
-$redis->sAdd('key1' , 'set12'); 
68
-$redis->sAdd('key1' , 'set13'); /* 'key1' => {'set11', 'set12', 'set13'}*/
69
-$redis->sAdd('key2' , 'set21'); 
70
-$redis->sAdd('key2' , 'set22'); /* 'key2' => {'set21', 'set22'}*/
71
-$redis->sMove('key1', 'key2', 'set13'); /* 'key1' =>  {'set11', 'set12'} */
72
-					/* 'key2' =>  {'set21', 'set22', 'set13'} */
73
+$redis->sAdd('key1' , 'member11');
74
+$redis->sAdd('key1' , 'member12');
75
+$redis->sAdd('key1' , 'member13'); /* 'key1' => {'member11', 'member12', 'member13'}*/
76
+$redis->sAdd('key2' , 'member21');
77
+$redis->sAdd('key2' , 'member22'); /* 'key2' => {'member21', 'member22'}*/
78
+$redis->sMove('key1', 'key2', 'member13'); /* 'key1' =>  {'member11', 'member12'} */
79
+					/* 'key2' =>  {'member21', 'member22', 'member13'} */
80
 
81
 </pre>
82
 
83
@@ -814,12 +827,12 @@ Checks if `value` is a member of the set stored at the key `key`.
84
 *BOOL* `TRUE` if `value` is a member of the set at key `key`, `FALSE` otherwise.
85
 ##### *Example*
86
 <pre>
87
-$redis->sAdd('key1' , 'set1'); 
88
-$redis->sAdd('key1' , 'set2'); 
89
-$redis->sAdd('key1' , 'set3'); /* 'key1' => {'set1', 'set2', 'set3'}*/
90
+$redis->sAdd('key1' , 'member1');
91
+$redis->sAdd('key1' , 'member2');
92
+$redis->sAdd('key1' , 'member3'); /* 'key1' => {'member1', 'member2', 'member3'}*/
93
 
94
-$redis->sIsMember('key1', 'set1'); /* TRUE */
95
-$redis->sIsMember('key1', 'setX'); /* FALSE */
96
+$redis->sIsMember('key1', 'member1'); /* TRUE */
97
+$redis->sIsMember('key1', 'memberX'); /* FALSE */
98
 
99
 </pre>
100
 
101
@@ -832,9 +845,9 @@ Returns the cardinality of the set identified by key.
102
 *LONG* the cardinality of the set identified by key, 0 if the set doesn't exist.
103
 ##### *Example*
104
 <pre>
105
-$redis->sAdd('key1' , 'set1'); 
106
-$redis->sAdd('key1' , 'set2'); 
107
-$redis->sAdd('key1' , 'set3'); /* 'key1' => {'set1', 'set2', 'set3'}*/
108
+$redis->sAdd('key1' , 'member1');
109
+$redis->sAdd('key1' , 'member2');
110
+$redis->sAdd('key1' , 'member3'); /* 'key1' => {'member1', 'member2', 'member3'}*/
111
 $redis->sCard('key1'); /* 3 */
112
 $redis->sCard('keyX'); /* 0 */
113
 </pre>
114
@@ -849,11 +862,11 @@ Removes and returns a random element from the set value at Key.
115
 *Bool* `FALSE` if set identified by key is empty or doesn't exist.
116
 ##### *Example*
117
 <pre>
118
-$redis->sAdd('key1' , 'set1'); 
119
-$redis->sAdd('key1' , 'set2'); 
120
-$redis->sAdd('key1' , 'set3'); /* 'key1' => {'set3', 'set1', 'set2'}*/
121
-$redis->sPop('key1'); /* 'set1', 'key1' => {'set3', 'set2'} */
122
-$redis->sPop('key1'); /* 'set3', 'key1' => {'set2'} */
123
+$redis->sAdd('key1' , 'member1');
124
+$redis->sAdd('key1' , 'member2');
125
+$redis->sAdd('key1' , 'member3'); /* 'key1' => {'member3', 'member1', 'member2'}*/
126
+$redis->sPop('key1'); /* 'member1', 'key1' => {'member3', 'member2'} */
127
+$redis->sPop('key1'); /* 'member3', 'key1' => {'member2'} */
128
 </pre>
129
 
130
 ## sRandMember
131
@@ -866,11 +879,11 @@ Returns a random element from the set value at Key, without removing it.
132
 *Bool* `FALSE` if set identified by key is empty or doesn't exist.
133
 ##### *Example*
134
 <pre>
135
-$redis->sAdd('key1' , 'set1'); 
136
-$redis->sAdd('key1' , 'set2'); 
137
-$redis->sAdd('key1' , 'set3'); /* 'key1' => {'set3', 'set1', 'set2'}*/
138
-$redis->sRandMember('key1'); /* 'set1', 'key1' => {'set3', 'set1', 'set2'} */
139
-$redis->sRandMember('key1'); /* 'set3', 'key1' => {'set3', 'set1', 'set2'} */
140
+$redis->sAdd('key1' , 'member1');
141
+$redis->sAdd('key1' , 'member2');
142
+$redis->sAdd('key1' , 'member3'); /* 'key1' => {'member3', 'member1', 'member2'}*/
143
+$redis->sRandMember('key1'); /* 'member1', 'key1' => {'member3', 'member1', 'member2'} */
144
+$redis->sRandMember('key1'); /* 'member3', 'key1' => {'member3', 'member1', 'member2'} */
145
 </pre>
146
 
147
 ## sInter
148
diff --git a/php_redis.h b/php_redis.h
149
index 1dfaa0f..fd8f024 100755
150
--- a/php_redis.h
151
+++ php_redis.h
152
@@ -29,6 +29,7 @@ PHP_METHOD(Redis, connect);
153
 PHP_METHOD(Redis, pconnect);
154
 PHP_METHOD(Redis, close);
155
 PHP_METHOD(Redis, ping);
156
+PHP_METHOD(Redis, echo);
157
 PHP_METHOD(Redis, get);
158
 PHP_METHOD(Redis, set);
159
 PHP_METHOD(Redis, setex);
160
diff --git a/redis.c b/redis.c
161
index 9ca3a14..3e15d73 100755
162
--- a/redis.c
163
+++ redis.c
164
@@ -76,6 +76,7 @@ static zend_function_entry redis_functions[] = {
165
      PHP_ME(Redis, pconnect, NULL, ZEND_ACC_PUBLIC)
166
      PHP_ME(Redis, close, NULL, ZEND_ACC_PUBLIC)
167
      PHP_ME(Redis, ping, NULL, ZEND_ACC_PUBLIC)
168
+     PHP_ME(Redis, echo, NULL, ZEND_ACC_PUBLIC)
169
      PHP_ME(Redis, get, NULL, ZEND_ACC_PUBLIC)
170
      PHP_ME(Redis, set, NULL, ZEND_ACC_PUBLIC)
171
      PHP_ME(Redis, setex, NULL, ZEND_ACC_PUBLIC)
172
@@ -324,7 +325,7 @@ static void redis_destructor_redis_sock(zend_rsrc_list_entry * rsrc TSRMLS_DC)
173
 /**
174
  * redis_sock_get
175
  */
176
-PHPAPI int redis_sock_get(zval *id, RedisSock **redis_sock TSRMLS_DC)
177
+PHPAPI int redis_sock_get(zval *id, RedisSock **redis_sock TSRMLS_DC, int no_throw)
178
 {
179
 
180
     zval **socket;
181
@@ -332,15 +333,21 @@ PHPAPI int redis_sock_get(zval *id, RedisSock **redis_sock TSRMLS_DC)
182
 
183
     if (Z_TYPE_P(id) != IS_OBJECT || zend_hash_find(Z_OBJPROP_P(id), "socket",
184
                                   sizeof("socket"), (void **) &socket) == FAILURE) {
185
-        zend_throw_exception(redis_exception_ce, "Redis server went away", 0 TSRMLS_CC);
186
+    	// Throw an exception unless we've been requested not to
187
+        if(!no_throw) {
188
+        	zend_throw_exception(redis_exception_ce, "Redis server went away", 0 TSRMLS_CC);
189
+        }
190
         return -1;
191
     }
192
 
193
     *redis_sock = (RedisSock *) zend_list_find(Z_LVAL_PP(socket), &resource_type);
194
 
195
     if (!*redis_sock || resource_type != le_redis_sock) {
196
-			zend_throw_exception(redis_exception_ce, "Redis server went away", 0 TSRMLS_CC);
197
-            return -1;
198
+		// Throw an exception unless we've been requested not to
199
+    	if(!no_throw) {
200
+    		zend_throw_exception(redis_exception_ce, "Redis server went away", 0 TSRMLS_CC);
201
+    	}
202
+		return -1;
203
     }
204
 
205
     return Z_LVAL_PP(socket);
206
@@ -471,7 +478,7 @@ PHP_METHOD(Redis,__destruct) {
207
 
208
 	// Grab our socket
209
 	RedisSock *redis_sock;
210
-	if (redis_sock_get(getThis(), &redis_sock TSRMLS_CC) < 0) {
211
+	if (redis_sock_get(getThis(), &redis_sock TSRMLS_CC, 1) < 0) {
212
 		RETURN_FALSE;
213
 	}
214
 
215
@@ -504,7 +511,7 @@ PHP_METHOD(Redis, pconnect)
216
 	} else {
217
 		/* reset multi/exec state if there is one. */
218
 		RedisSock *redis_sock;
219
-		if (redis_sock_get(getThis(), &redis_sock TSRMLS_CC) < 0) {
220
+		if (redis_sock_get(getThis(), &redis_sock TSRMLS_CC, 0) < 0) {
221
 			RETURN_FALSE;
222
 		}
223
 
224
@@ -547,7 +554,7 @@ PHPAPI int redis_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent) {
225
 	}
226
 
227
 	/* if there is a redis sock already we have to remove it from the list */
228
-	if (redis_sock_get(object, &redis_sock TSRMLS_CC) > 0) {
229
+	if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) > 0) {
230
 		if (zend_hash_find(Z_OBJPROP_P(object), "socket",
231
 					sizeof("socket"), (void **) &socket) == FAILURE) {
232
 			/* maybe there is a socket but the id isn't known.. what to do? */
233
@@ -587,7 +594,7 @@ PHP_METHOD(Redis, close)
234
         RETURN_FALSE;
235
     }
236
 
237
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
238
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
239
         RETURN_FALSE;
240
     }
241
 
242
@@ -617,7 +624,7 @@ PHP_METHOD(Redis, set)
243
         RETURN_FALSE;
244
     }
245
 
246
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
247
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
248
         RETURN_FALSE;
249
     }
250
 
251
@@ -656,7 +663,7 @@ PHP_METHOD(Redis, setex)
252
         RETURN_FALSE;
253
     }
254
 
255
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
256
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
257
         RETURN_FALSE;
258
     }
259
 
260
@@ -691,7 +698,7 @@ PHP_METHOD(Redis, setnx)
261
         RETURN_FALSE;
262
     }
263
 
264
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
265
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
266
         RETURN_FALSE;
267
     }
268
 
269
@@ -729,7 +736,7 @@ PHP_METHOD(Redis, getSet)
270
         RETURN_FALSE;
271
     }
272
 
273
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
274
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
275
         RETURN_FALSE;
276
     }
277
 
278
@@ -763,7 +770,7 @@ PHP_METHOD(Redis, randomKey)
279
         RETURN_FALSE;
280
     }
281
 
282
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
283
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
284
         RETURN_FALSE;
285
     }
286
 
287
@@ -778,6 +785,39 @@ PHP_METHOD(Redis, randomKey)
288
 }
289
 /* }}} */
290
 
291
+/* {{{ proto string Redis::echo(string key)
292
+ */
293
+PHP_METHOD(Redis, echo)
294
+{
295
+    zval *object;
296
+    RedisSock *redis_sock;
297
+    char *key = NULL, *cmd;
298
+    int key_len, cmd_len;
299
+	int key_free;
300
+
301
+    if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os",
302
+                                     &object, redis_ce,
303
+                                     &key, &key_len) == FAILURE) {
304
+        RETURN_FALSE;
305
+    }
306
+
307
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
308
+        RETURN_FALSE;
309
+    }
310
+
311
+	key_free = redis_key_prefix(redis_sock, &key, &key_len TSRMLS_CC);
312
+    cmd_len = redis_cmd_format_static(&cmd, "ECHO", "s", key, key_len);
313
+	if(key_free) efree(key);
314
+
315
+	REDIS_PROCESS_REQUEST(redis_sock, cmd, cmd_len);
316
+    IF_ATOMIC() {
317
+	  redis_string_response(INTERNAL_FUNCTION_PARAM_PASSTHRU, redis_sock, NULL, NULL);
318
+    }
319
+    REDIS_PROCESS_RESPONSE(redis_string_response);
320
+
321
+}
322
+/* }}} */
323
+
324
 /* {{{ proto string Redis::renameKey(string key_src, string key_dst)
325
  */
326
 PHP_METHOD(Redis, renameKey)
327
@@ -796,7 +836,7 @@ PHP_METHOD(Redis, renameKey)
328
         RETURN_FALSE;
329
     }
330
 
331
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
332
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
333
         RETURN_FALSE;
334
     }
335
 
336
@@ -833,7 +873,7 @@ PHP_METHOD(Redis, renameNx)
337
         RETURN_FALSE;
338
     }
339
 
340
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
341
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
342
         RETURN_FALSE;
343
     }
344
 
345
@@ -868,7 +908,7 @@ PHP_METHOD(Redis, get)
346
         RETURN_FALSE;
347
     }
348
 
349
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
350
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
351
         RETURN_FALSE;
352
     }
353
 
354
@@ -900,7 +940,7 @@ PHP_METHOD(Redis, ping)
355
         RETURN_FALSE;
356
     }
357
 
358
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
359
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
360
         RETURN_FALSE;
361
     }
362
 
363
@@ -929,7 +969,7 @@ PHPAPI void redis_atomic_increment(INTERNAL_FUNCTION_PARAMETERS, char *keyword,
364
         RETURN_FALSE;
365
     }
366
 
367
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
368
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
369
         RETURN_FALSE;
370
     }
371
 	key_free = redis_key_prefix(redis_sock, &key, &key_len TSRMLS_CC);
372
@@ -1055,7 +1095,7 @@ PHP_METHOD(Redis, getMultiple)
373
         RETURN_FALSE;
374
     }
375
 
376
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
377
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
378
         RETURN_FALSE;
379
     }
380
 
381
@@ -1141,7 +1181,7 @@ PHP_METHOD(Redis, exists)
382
                                      &key, &key_len) == FAILURE) {
383
         RETURN_FALSE;
384
     }
385
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
386
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
387
         RETURN_FALSE;
388
     }
389
 
390
@@ -1240,7 +1280,7 @@ PHP_METHOD(Redis, getKeys)
391
         RETURN_NULL();
392
     }
393
 
394
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
395
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
396
         RETURN_FALSE;
397
     }
398
 
399
@@ -1274,7 +1314,7 @@ PHP_METHOD(Redis, type)
400
         RETURN_NULL();
401
     }
402
 
403
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
404
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
405
         RETURN_FALSE;
406
     }
407
 
408
@@ -1304,7 +1344,7 @@ PHP_METHOD(Redis, append)
409
 		RETURN_NULL();
410
 	}
411
 
412
-	if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
413
+	if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
414
 		RETURN_FALSE;
415
 	}
416
 
417
@@ -1333,7 +1373,7 @@ PHP_METHOD(Redis, getRange)
418
 		RETURN_FALSE;
419
 	}
420
 
421
-	if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
422
+	if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
423
 		RETURN_FALSE;
424
 	}
425
 
426
@@ -1361,7 +1401,7 @@ PHP_METHOD(Redis, setRange)
427
 		RETURN_FALSE;
428
 	}
429
 
430
-	if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
431
+	if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
432
 		RETURN_FALSE;
433
 	}
434
 
435
@@ -1389,7 +1429,7 @@ PHP_METHOD(Redis, getBit)
436
 		RETURN_FALSE;
437
 	}
438
 
439
-	if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
440
+	if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
441
 		RETURN_FALSE;
442
 	}
443
 
444
@@ -1418,7 +1458,7 @@ PHP_METHOD(Redis, setBit)
445
 		RETURN_FALSE;
446
 	}
447
 
448
-	if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
449
+	if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
450
 		RETURN_FALSE;
451
 	}
452
 
453
@@ -1447,7 +1487,7 @@ PHP_METHOD(Redis, strlen)
454
 		RETURN_NULL();
455
 	}
456
 
457
-	if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
458
+	if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
459
 		RETURN_FALSE;
460
 	}
461
 
462
@@ -1477,7 +1517,7 @@ generic_push_function(INTERNAL_FUNCTION_PARAMETERS, char *keyword, int keyword_l
463
         RETURN_NULL();
464
     }
465
 
466
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
467
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
468
         RETURN_FALSE;
469
     }
470
 
471
@@ -1550,7 +1590,7 @@ PHP_METHOD(Redis, lInsert)
472
 		RETURN_NULL();
473
 	}
474
 
475
-	if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
476
+	if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
477
 		RETURN_FALSE;
478
 	}
479
 	
480
@@ -1599,7 +1639,7 @@ generic_pop_function(INTERNAL_FUNCTION_PARAMETERS, char *keyword, int keyword_le
481
         RETURN_FALSE;
482
     }
483
 
484
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
485
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
486
         RETURN_FALSE;
487
     }
488
 
489
@@ -1689,7 +1729,7 @@ PHP_METHOD(Redis, lSize)
490
         RETURN_FALSE;
491
     }
492
 
493
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
494
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
495
         RETURN_FALSE;
496
     }
497
 
498
@@ -1725,7 +1765,7 @@ PHP_METHOD(Redis, lRemove)
499
         RETURN_NULL();
500
     }
501
 
502
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
503
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
504
         RETURN_FALSE;
505
     }
506
 
507
@@ -1761,7 +1801,7 @@ PHP_METHOD(Redis, listTrim)
508
         RETURN_FALSE;
509
     }
510
 
511
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
512
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
513
         RETURN_FALSE;
514
     }
515
 
516
@@ -1794,7 +1834,7 @@ PHP_METHOD(Redis, lGet)
517
         RETURN_NULL();
518
     }
519
 
520
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
521
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
522
         RETURN_FALSE;
523
     }
524
 
525
@@ -1827,7 +1867,7 @@ PHP_METHOD(Redis, lGetRange)
526
         RETURN_FALSE;
527
     }
528
 
529
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
530
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
531
         RETURN_FALSE;
532
     }
533
 
534
@@ -1878,7 +1918,7 @@ PHP_METHOD(Redis, sSize)
535
         RETURN_FALSE;
536
     }
537
 
538
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
539
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
540
         RETURN_FALSE;
541
     }
542
 
543
@@ -1930,7 +1970,7 @@ PHP_METHOD(Redis, sMove)
544
         RETURN_FALSE;
545
     }
546
 
547
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
548
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
549
         RETURN_FALSE;
550
     }
551
 
552
@@ -1985,7 +2025,7 @@ PHP_METHOD(Redis, sContains)
553
         return;
554
     }
555
 
556
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
557
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
558
         RETURN_FALSE;
559
     }
560
 
561
@@ -2018,7 +2058,7 @@ PHP_METHOD(Redis, sMembers)
562
         RETURN_FALSE;
563
     }
564
 
565
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
566
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
567
         RETURN_FALSE;
568
     }
569
 
570
@@ -2059,7 +2099,7 @@ PHPAPI int generic_multiple_args_cmd(INTERNAL_FUNCTION_PARAMETERS, char *keyword
571
     }
572
 
573
 	/* get redis socket */
574
-    if (redis_sock_get(getThis(), out_sock TSRMLS_CC) < 0) {
575
+    if (redis_sock_get(getThis(), out_sock TSRMLS_CC, 0) < 0) {
576
 		ZVAL_BOOL(return_value, 0);
577
 		return FAILURE;
578
     }
579
@@ -2392,7 +2432,7 @@ PHP_METHOD(Redis, sort) {
580
         RETURN_FALSE;
581
     }
582
 
583
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
584
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
585
         RETURN_FALSE;
586
     }
587
 
588
@@ -2603,7 +2643,7 @@ PHPAPI void generic_sort_cmd(INTERNAL_FUNCTION_PARAMETERS, char *sort, int use_a
589
         RETURN_FALSE;
590
     }
591
 
592
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
593
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
594
         RETURN_FALSE;
595
     }
596
     if(key_len == 0) {
597
@@ -2798,7 +2838,7 @@ PHPAPI void generic_expire_cmd(INTERNAL_FUNCTION_PARAMETERS, char *keyword, int
598
         RETURN_FALSE;
599
     }
600
 
601
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
602
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
603
         RETURN_FALSE;
604
     }
605
 
606
@@ -2847,7 +2887,7 @@ PHP_METHOD(Redis, lSet) {
607
         RETURN_FALSE;
608
     }
609
 
610
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
611
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
612
         RETURN_FALSE;
613
     }
614
 
615
@@ -2874,7 +2914,7 @@ PHPAPI void generic_empty_cmd_impl(INTERNAL_FUNCTION_PARAMETERS, char *cmd, int
616
         RETURN_FALSE;
617
     }
618
 
619
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
620
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
621
         RETURN_FALSE;
622
     }
623
 
624
@@ -2921,7 +2961,7 @@ PHPAPI void generic_empty_long_cmd(INTERNAL_FUNCTION_PARAMETERS, char *cmd, int
625
         RETURN_FALSE;
626
     }
627
 
628
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
629
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
630
         RETURN_FALSE;
631
     }
632
 
633
@@ -2988,7 +3028,7 @@ PHP_METHOD(Redis, auth) {
634
         RETURN_FALSE;
635
     }
636
 
637
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
638
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
639
         RETURN_FALSE;
640
     }
641
 
642
@@ -3017,7 +3057,7 @@ PHP_METHOD(Redis, persist) {
643
         RETURN_FALSE;
644
     }
645
 
646
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
647
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
648
         RETURN_FALSE;
649
     }
650
 
651
@@ -3048,7 +3088,7 @@ PHP_METHOD(Redis, ttl) {
652
         RETURN_FALSE;
653
     }
654
 
655
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
656
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
657
         RETURN_FALSE;
658
     }
659
 
660
@@ -3079,7 +3119,7 @@ PHP_METHOD(Redis, info) {
661
         RETURN_FALSE;
662
     }
663
 
664
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
665
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
666
         RETURN_FALSE;
667
     }
668
 
669
@@ -3118,7 +3158,7 @@ PHP_METHOD(Redis, select) {
670
         RETURN_FALSE;
671
     }
672
 
673
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
674
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
675
         RETURN_FALSE;
676
     }
677
 
678
@@ -3148,7 +3188,7 @@ PHP_METHOD(Redis, move) {
679
         RETURN_FALSE;
680
     }
681
 
682
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
683
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
684
         RETURN_FALSE;
685
     }
686
 
687
@@ -3183,7 +3223,7 @@ generic_mset(INTERNAL_FUNCTION_PARAMETERS, char *kw, void (*fun)(INTERNAL_FUNCTI
688
         RETURN_FALSE;
689
     }
690
 
691
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
692
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
693
         RETURN_FALSE;
694
     }
695
 
696
@@ -3307,7 +3347,7 @@ PHP_METHOD(Redis, rpoplpush)
697
     zval *object;
698
     RedisSock *redis_sock;
699
     char *srckey = NULL, *dstkey = NULL;
700
-    int srckey_len, dstkey_len, cmd_len;
701
+    int srckey_len, dstkey_len;
702
 
703
     if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Oss",
704
                                      &object, redis_ce, &srckey, &srckey_len,
705
@@ -3315,7 +3355,7 @@ PHP_METHOD(Redis, rpoplpush)
706
         RETURN_FALSE;
707
     }
708
 
709
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
710
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
711
         RETURN_FALSE;
712
     }
713
 
714
@@ -3339,7 +3379,7 @@ PHP_METHOD(Redis, brpoplpush)
715
         RETURN_FALSE;
716
     }
717
 
718
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
719
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
720
         RETURN_FALSE;
721
     }
722
 
723
@@ -3367,7 +3407,7 @@ PHP_METHOD(Redis, zAdd) {
724
 	int argc = ZEND_NUM_ARGS(), i;
725
 
726
 	/* get redis socket */
727
-    if (redis_sock_get(getThis(), &redis_sock TSRMLS_CC) < 0) {
728
+    if (redis_sock_get(getThis(), &redis_sock TSRMLS_CC, 0) < 0) {
729
         RETURN_FALSE;
730
     }
731
 
732
@@ -3466,7 +3506,7 @@ PHP_METHOD(Redis, zRange)
733
         RETURN_FALSE;
734
     }
735
 
736
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
737
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
738
         RETURN_FALSE;
739
     }
740
 
741
@@ -3529,7 +3569,7 @@ PHP_METHOD(Redis, zDeleteRangeByScore)
742
         RETURN_FALSE;
743
     }
744
 
745
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
746
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
747
         RETURN_FALSE;
748
     }
749
 
750
@@ -3562,7 +3602,7 @@ PHP_METHOD(Redis, zDeleteRangeByRank)
751
         RETURN_FALSE;
752
     }
753
 
754
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
755
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
756
         RETURN_FALSE;
757
     }
758
 
759
@@ -3596,7 +3636,7 @@ PHP_METHOD(Redis, zReverseRange)
760
         RETURN_FALSE;
761
     }
762
 
763
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
764
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
765
         RETURN_FALSE;
766
     }
767
 
768
@@ -3649,7 +3689,7 @@ redis_generic_zrange_by_score(INTERNAL_FUNCTION_PARAMETERS, char *keyword) {
769
         RETURN_FALSE;
770
     }
771
 
772
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
773
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
774
         RETURN_FALSE;
775
     }
776
 
777
@@ -3755,7 +3795,7 @@ PHP_METHOD(Redis, zCount)
778
         RETURN_FALSE;
779
     }
780
 
781
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
782
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
783
         RETURN_FALSE;
784
     }
785
 
786
@@ -3786,7 +3826,7 @@ PHP_METHOD(Redis, zCard)
787
         RETURN_FALSE;
788
     }
789
 
790
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
791
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
792
         RETURN_FALSE;
793
     }
794
 
795
@@ -3820,7 +3860,7 @@ PHP_METHOD(Redis, zScore)
796
         RETURN_FALSE;
797
     }
798
 
799
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
800
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
801
         RETURN_FALSE;
802
     }
803
 
804
@@ -3853,7 +3893,7 @@ PHPAPI void generic_rank_method(INTERNAL_FUNCTION_PARAMETERS, char *keyword, int
805
         RETURN_FALSE;
806
     }
807
 
808
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
809
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
810
         RETURN_FALSE;
811
     }
812
 
813
@@ -3903,7 +3943,7 @@ PHPAPI void generic_incrby_method(INTERNAL_FUNCTION_PARAMETERS, char *keyword, i
814
         RETURN_FALSE;
815
     }
816
 
817
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
818
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
819
         RETURN_FALSE;
820
     }
821
 
822
@@ -3948,7 +3988,7 @@ PHPAPI void generic_z_command(INTERNAL_FUNCTION_PARAMETERS, char *command, int c
823
 		RETURN_FALSE;
824
 	}
825
 
826
-    if(redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
827
+    if(redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
828
 		RETURN_FALSE;
829
     }
830
 
831
@@ -4126,7 +4166,7 @@ generic_hset(INTERNAL_FUNCTION_PARAMETERS, char *kw, void (*fun)(INTERNAL_FUNCTI
832
         RETURN_FALSE;
833
     }
834
 
835
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
836
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
837
         RETURN_FALSE;
838
     }
839
 
840
@@ -4170,7 +4210,7 @@ PHP_METHOD(Redis, hGet)
841
         RETURN_FALSE;
842
     }
843
 
844
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
845
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
846
         RETURN_FALSE;
847
     }
848
 	key_free = redis_key_prefix(redis_sock, &key, &key_len TSRMLS_CC);
849
@@ -4200,7 +4240,7 @@ PHP_METHOD(Redis, hLen)
850
         RETURN_FALSE;
851
     }
852
 
853
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
854
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
855
         RETURN_FALSE;
856
     }
857
 
858
@@ -4232,7 +4272,7 @@ generic_hash_command_2(INTERNAL_FUNCTION_PARAMETERS, char *keyword, int keyword_
859
             return NULL;
860
     }
861
 
862
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
863
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
864
             ZVAL_BOOL(return_value, 0);
865
             return NULL;
866
     }
867
@@ -4293,7 +4333,7 @@ generic_hash_command_1(INTERNAL_FUNCTION_PARAMETERS, char *keyword, int keyword_
868
             return NULL;
869
     }
870
 
871
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
872
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
873
             ZVAL_BOOL(return_value, 0);
874
             return NULL;
875
     }
876
@@ -4441,7 +4481,7 @@ PHP_METHOD(Redis, hIncrBy)
877
         RETURN_FALSE;
878
     }
879
 
880
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
881
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
882
         RETURN_FALSE;
883
     }
884
 
885
@@ -4492,7 +4532,7 @@ PHP_METHOD(Redis, hMget) {
886
         RETURN_FALSE;
887
     }
888
 
889
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
890
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
891
         RETURN_FALSE;
892
     }
893
     nb_fields = zend_hash_num_elements(Z_ARRVAL_P(z_array));
894
@@ -4572,7 +4612,7 @@ PHP_METHOD(Redis, hMset)
895
         RETURN_FALSE;
896
     }
897
 
898
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
899
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
900
         RETURN_FALSE;
901
     }
902
 
903
@@ -4681,7 +4721,7 @@ PHP_METHOD(Redis, multi)
904
 
905
     /* if the flag is activated, send the command, the reply will be "QUEUED" or -ERR */
906
 
907
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
908
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
909
         RETURN_FALSE;
910
     }
911
 
912
@@ -4730,7 +4770,7 @@ PHP_METHOD(Redis, discard)
913
         RETURN_FALSE;
914
     }
915
 
916
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
917
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
918
         RETURN_FALSE;
919
     }
920
 
921
@@ -4832,7 +4872,7 @@ PHP_METHOD(Redis, exec)
922
                                      &object, redis_ce) == FAILURE) {
923
         RETURN_FALSE;
924
     }
925
-   	if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
926
+   	if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
927
        	RETURN_FALSE;
928
     }
929
 
930
@@ -4931,7 +4971,7 @@ PHP_METHOD(Redis, pipeline)
931
     }
932
 
933
     /* if the flag is activated, send the command, the reply will be "QUEUED" or -ERR */
934
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
935
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
936
         RETURN_FALSE;
937
     }
938
 	redis_sock->mode = PIPELINE;
939
@@ -4963,7 +5003,7 @@ PHP_METHOD(Redis, publish)
940
         RETURN_NULL();
941
     }
942
 
943
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
944
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
945
         RETURN_FALSE;
946
     }
947
 
948
@@ -5004,7 +5044,7 @@ PHP_METHOD(Redis, subscribe)
949
 		RETURN_FALSE;	
950
 	}
951
 
952
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
953
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
954
         RETURN_FALSE;
955
     }
956
 
957
@@ -5164,7 +5204,7 @@ PHP_METHOD(Redis, unsubscribe)
958
 									 &object, redis_ce, &array) == FAILURE) {
959
 		RETURN_FALSE;	
960
 	}
961
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
962
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
963
         RETURN_FALSE;
964
     }
965
 
966
@@ -5248,7 +5288,7 @@ PHP_METHOD(Redis, slaveof)
967
 									 &object, redis_ce, &host, &host_len, &port) == FAILURE) {
968
 		RETURN_FALSE;
969
 	}
970
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
971
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
972
         RETURN_FALSE;
973
     }
974
 
975
@@ -5280,7 +5320,7 @@ PHP_METHOD(Redis, object)
976
 									 &object, redis_ce, &info, &info_len, &key, &key_len) == FAILURE) {
977
 		RETURN_FALSE;
978
 	}
979
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
980
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
981
         RETURN_FALSE;
982
     }
983
 
984
@@ -5318,7 +5358,7 @@ PHP_METHOD(Redis, getOption)  {
985
 		RETURN_FALSE;
986
 	}
987
 
988
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
989
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
990
         RETURN_FALSE;
991
     }
992
 
993
@@ -5354,7 +5394,7 @@ PHP_METHOD(Redis, setOption) {
994
 		RETURN_FALSE;
995
 	}
996
 
997
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
998
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
999
         RETURN_FALSE;
1000
     }
1001
 
1002
@@ -5414,7 +5454,7 @@ PHP_METHOD(Redis, config)
1003
 		RETURN_FALSE;
1004
 	}
1005
 
1006
-    if (redis_sock_get(object, &redis_sock TSRMLS_CC) < 0) {
1007
+    if (redis_sock_get(object, &redis_sock TSRMLS_CC, 0) < 0) {
1008
         RETURN_FALSE;
1009
     }
1010
 
1011
diff --git a/tests/TestRedis.php b/tests/TestRedis.php
1012
index 1033b01..46af355 100644
1013
--- a/tests/TestRedis.php
1014
+++ tests/TestRedis.php
1015
@@ -115,6 +115,12 @@ class Redis_Test extends TestSuite
1016
 	 $this->assertEquals($s, $this->redis->get('x'));
1017
     }
1018
 
1019
+	public function testEcho() {
1020
+		$this->assertEquals($this->redis->echo("hello"), "hello");
1021
+		$this->assertEquals($this->redis->echo(""), "");
1022
+		$this->assertEquals($this->redis->echo(" 0123 "), " 0123 ");
1023
+	}
1024
+
1025
     public function testErr() {
1026
 
1027
 	 $this->redis->set('x', '-ERR');

Return to bug 173643