@@ -12,6 +12,14 @@ extern zend_class_entry *redis_ce;
1212extern  zend_class_entry  * redis_exception_ce ;
1313extern  zend_class_entry  * spl_ce_RuntimeException ;
1414
15+ PHPAPI  void  redis_stream_close (RedisSock  * redis_sock  TSRMLS_DC )
16+ {
17+ 	if  (!redis_sock -> persistent ) {
18+ 		php_stream_close (redis_sock -> stream );
19+ 	} else  {
20+ 		php_stream_pclose (redis_sock -> stream );
21+ 	}
22+ }
1523
1624PHPAPI  int  redis_check_eof (RedisSock  * redis_sock  TSRMLS_DC )
1725{
@@ -21,11 +29,7 @@ PHPAPI int redis_check_eof(RedisSock *redis_sock TSRMLS_DC)
2129    while (eof ) {
2230	if (count ++  ==  10 ) { /* too many failures */ 
2331	    if (redis_sock -> stream ) { /* close stream if still here */ 
24- 			if  (!redis_sock -> persistent ) {
25-                 php_stream_close (redis_sock -> stream );
26- 			} else  {
27-                 php_stream_pclose (redis_sock -> stream );
28- 			}
32+ 			redis_stream_close (redis_sock  TSRMLS_CC );
2933                redis_sock -> stream  =  NULL ;
3034				redis_sock -> mode    =  ATOMIC ;
3135                redis_sock -> status  =  REDIS_SOCK_STATUS_FAILED ;
@@ -34,11 +38,7 @@ PHPAPI int redis_check_eof(RedisSock *redis_sock TSRMLS_DC)
3438	    return  -1 ;
3539	}
3640	if (redis_sock -> stream ) { /* close existing stream before reconnecting */ 
37- 			if  (!redis_sock -> persistent ) {
38- 				php_stream_close (redis_sock -> stream );
39- 			} else  {
40-                 php_stream_pclose (redis_sock -> stream );
41- 			}
41+ 			redis_stream_close (redis_sock  TSRMLS_CC );
4242            redis_sock -> stream  =  NULL ;
4343			redis_sock -> mode    =  ATOMIC ;
4444	}
@@ -58,11 +58,7 @@ PHPAPI zval *redis_sock_read_multibulk_reply_zval(INTERNAL_FUNCTION_PARAMETERS,
5858    }
5959
6060    if (php_stream_gets (redis_sock -> stream , inbuf , 1024 ) ==  NULL ) {
61- 		if  (!redis_sock -> persistent ) {
62- 			php_stream_close (redis_sock -> stream );
63- 		} else  {
64- 			php_stream_pclose (redis_sock -> stream );
65- 		}
61+ 		redis_stream_close (redis_sock  TSRMLS_CC );
6662        redis_sock -> stream  =  NULL ;
6763        redis_sock -> status  =  REDIS_SOCK_STATUS_FAILED ;
6864        redis_sock -> mode  =  ATOMIC ;
@@ -132,11 +128,7 @@ PHPAPI char *redis_sock_read(RedisSock *redis_sock, int *buf_len TSRMLS_DC)
132128    }
133129
134130    if (php_stream_gets (redis_sock -> stream , inbuf , 1024 ) ==  NULL ) {
135- 		if  (!redis_sock -> persistent ) {
136- 			php_stream_close (redis_sock -> stream );
137- 		} else  {
138- 			php_stream_pclose (redis_sock -> stream );
139- 		}
131+ 		redis_stream_close (redis_sock  TSRMLS_CC );
140132        redis_sock -> stream  =  NULL ;
141133        redis_sock -> status  =  REDIS_SOCK_STATUS_FAILED ;
142134        redis_sock -> mode  =  ATOMIC ;
@@ -617,11 +609,7 @@ PHPAPI int redis_sock_read_multibulk_reply_zipped_with_flag(INTERNAL_FUNCTION_PA
617609        return  -1 ;
618610    }
619611    if (php_stream_gets (redis_sock -> stream , inbuf , 1024 ) ==  NULL ) {
620- 		if  (!redis_sock -> persistent ) {
621- 			php_stream_close (redis_sock -> stream );
622- 		} else  {
623- 			php_stream_pclose (redis_sock -> stream );
624- 		}
612+ 		redis_stream_close (redis_sock  TSRMLS_CC );
625613        redis_sock -> stream  =  NULL ;
626614        redis_sock -> stream  =  NULL ;
627615        redis_sock -> status  =  REDIS_SOCK_STATUS_FAILED ;
@@ -875,11 +863,7 @@ PHPAPI int redis_sock_read_multibulk_reply(INTERNAL_FUNCTION_PARAMETERS, RedisSo
875863        return  -1 ;
876864    }
877865    if (php_stream_gets (redis_sock -> stream , inbuf , 1024 ) ==  NULL ) {
878- 		if  (!redis_sock -> persistent ) {
879- 			php_stream_close (redis_sock -> stream );
880- 		} else  {
881- 			php_stream_pclose (redis_sock -> stream );
882- 		}
866+ 		redis_stream_close (redis_sock  TSRMLS_CC );
883867        redis_sock -> stream  =  NULL ;
884868        redis_sock -> status  =  REDIS_SOCK_STATUS_FAILED ;
885869        redis_sock -> mode  =  ATOMIC ;
@@ -941,11 +925,7 @@ PHPAPI int redis_sock_read_multibulk_reply_assoc(INTERNAL_FUNCTION_PARAMETERS, R
941925        return  -1 ;
942926    }
943927    if (php_stream_gets (redis_sock -> stream , inbuf , 1024 ) ==  NULL ) {
944- 		if  (!redis_sock -> persistent ) {
945- 			php_stream_close (redis_sock -> stream );
946- 		} else  {
947- 			php_stream_pclose (redis_sock -> stream );
948- 		}
928+ 		redis_stream_close (redis_sock  TSRMLS_CC );
949929        redis_sock -> stream  =  NULL ;
950930        redis_sock -> status  =  REDIS_SOCK_STATUS_FAILED ;
951931        redis_sock -> mode  =  ATOMIC ;
0 commit comments