@@ -180,7 +180,7 @@ PS_OPEN_FUNC(redis)
180
180
int weight = 1 ;
181
181
double timeout = 86400.0 ;
182
182
int persistent = 0 ;
183
- char * prefix = NULL , * auth = NULL ;
183
+ char * prefix = NULL , * auth = NULL , * persistent_id = NULL ;
184
184
185
185
/* translate unix: into file: */
186
186
if (!strncmp (save_path + i , "unix:" , sizeof ("unix:" )- 1 )) {
@@ -222,6 +222,9 @@ PS_OPEN_FUNC(redis)
222
222
if (zend_hash_find (Z_ARRVAL_P (params ), "persistent" , sizeof ("persistent" ), (void * * ) & param ) != FAILURE ) {
223
223
persistent = (atol (Z_STRVAL_PP (param )) == 1 ? 1 : 0 );
224
224
}
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
+ }
225
228
if (zend_hash_find (Z_ARRVAL_P (params ), "prefix" , sizeof ("prefix" ), (void * * ) & param ) != FAILURE ) {
226
229
prefix = estrndup (Z_STRVAL_PP (param ), Z_STRLEN_PP (param ));
227
230
}
@@ -248,9 +251,9 @@ PS_OPEN_FUNC(redis)
248
251
249
252
RedisSock * redis_sock ;
250
253
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 );
252
255
} 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 );
254
257
}
255
258
redis_pool_add (pool , redis_sock , weight , prefix , auth TSRMLS_CC );
256
259
0 commit comments