Skip to content

Commit 66cdeb6

Browse files
Allow integer connect_timeout in RedisArray
Addresses phpredis#520
1 parent 0c4ddd9 commit 66cdeb6

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

redis_array.c

+8-3
Original file line numberDiff line numberDiff line change
@@ -280,11 +280,16 @@ PHP_METHOD(RedisArray, __construct)
280280

281281
/* extract connect_timeout option */
282282
if (FAILURE != zend_hash_find(hOpts, "connect_timeout", sizeof("connect_timeout"), (void**)&z_connect_timeout_pp)) {
283-
if (Z_TYPE_PP(z_connect_timeout_pp) == IS_DOUBLE || Z_TYPE_PP(z_connect_timeout_pp) == IS_STRING) {
283+
if (Z_TYPE_PP(z_connect_timeout_pp) == IS_DOUBLE ||
284+
Z_TYPE_PP(z_connect_timeout_pp) == IS_STRING ||
285+
Z_TYPE_PP(z_connect_timeout_pp) == IS_LONG)
286+
{
284287
if (Z_TYPE_PP(z_connect_timeout_pp) == IS_DOUBLE) {
285288
d_connect_timeout = Z_DVAL_PP(z_connect_timeout_pp);
286-
}
287-
else {
289+
} else if (Z_TYPE_PP(z_connect_timeout_pp) == IS_LONG) {
290+
d_connect_timeout = Z_LVAL_PP(z_connect_timeout_pp);
291+
php_printf("Connect timeout: %f\n", d_connect_timeout);
292+
} else {
288293
d_connect_timeout = atof(Z_STRVAL_PP(z_connect_timeout_pp));
289294
}
290295
}

redis_array_impl.c

+7-3
Original file line numberDiff line numberDiff line change
@@ -278,11 +278,15 @@ RedisArray *ra_load_array(const char *name TSRMLS_DC) {
278278
array_init(z_params_connect_timeout);
279279
sapi_module.treat_data(PARSE_STRING, estrdup(INI_STR("redis.arrays.connecttimeout")), z_params_connect_timeout TSRMLS_CC);
280280
if (zend_hash_find(Z_ARRVAL_P(z_params_connect_timeout), name, strlen(name) + 1, (void **) &z_data_pp) != FAILURE) {
281-
if (Z_TYPE_PP(z_data_pp) == IS_DOUBLE || Z_TYPE_PP(z_data_pp) == IS_STRING) {
281+
if (Z_TYPE_PP(z_data_pp) == IS_DOUBLE ||
282+
Z_TYPE_PP(z_data_pp) == IS_STRING ||
283+
Z_TYPE_PP(z_data_pp) == IS_LONG)
284+
{
282285
if (Z_TYPE_PP(z_data_pp) == IS_DOUBLE) {
283286
d_connect_timeout = Z_DVAL_PP(z_data_pp);
284-
}
285-
else {
287+
} else if (Z_TYPE_PP(z_data_pp) == IS_LONG) {
288+
d_connect_timeout = Z_LVAL_PP(z_data_pp);
289+
} else {
286290
d_connect_timeout = atof(Z_STRVAL_PP(z_data_pp));
287291
}
288292
}

0 commit comments

Comments
 (0)