@@ -180,7 +180,7 @@ PS_OPEN_FUNC(redis)
180180 int weight = 1 ;
181181 double timeout = 86400.0 ;
182182 int persistent = 0 ;
183- char * prefix = NULL , * auth = NULL ;
183+ char * prefix = NULL , * auth = NULL , * persistent_id = NULL ;
184184
185185 /* translate unix: into file: */
186186 if (!strncmp (save_path + i , "unix:" , sizeof ("unix:" )- 1 )) {
@@ -222,6 +222,9 @@ PS_OPEN_FUNC(redis)
222222 if (zend_hash_find (Z_ARRVAL_P (params ), "persistent" , sizeof ("persistent" ), (void * * ) & param ) != FAILURE ) {
223223 persistent = (atol (Z_STRVAL_PP (param )) == 1 ? 1 : 0 );
224224 }
225+ if (zend_hash_find (Z_ARRVAL_P (params ), "persistent_id" , sizeof ("persistent_id" ), (void * * ) & param ) != FAILURE ) {
226+ persistent_id = estrndup (Z_STRVAL_PP (param ), Z_STRLEN_PP (param ));
227+ }
225228 if (zend_hash_find (Z_ARRVAL_P (params ), "prefix" , sizeof ("prefix" ), (void * * ) & param ) != FAILURE ) {
226229 prefix = estrndup (Z_STRVAL_PP (param ), Z_STRLEN_PP (param ));
227230 }
@@ -248,9 +251,9 @@ PS_OPEN_FUNC(redis)
248251
249252 RedisSock * redis_sock ;
250253 if (url -> path ) { /* unix */
251- redis_sock = redis_sock_create (url -> path , strlen (url -> path ), 0 , timeout , persistent );
254+ redis_sock = redis_sock_create (url -> path , strlen (url -> path ), 0 , timeout , persistent , persistent_id );
252255 } else {
253- redis_sock = redis_sock_create (url -> host , strlen (url -> host ), url -> port , timeout , persistent );
256+ redis_sock = redis_sock_create (url -> host , strlen (url -> host ), url -> port , timeout , persistent , persistent_id );
254257 }
255258 redis_pool_add (pool , redis_sock , weight , prefix , auth TSRMLS_CC );
256259
0 commit comments