From b067129678264fc1c5c0f611ce1b192e05c14669 Mon Sep 17 00:00:00 2001 From: Pavlo Yatsukhnenko Date: Wed, 27 May 2020 17:39:33 +0300 Subject: Issue #1600 Ssl context options in Redis::connect --- redis.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'redis.c') diff --git a/redis.c b/redis.c index 585915de..46278abd 100644 --- a/redis.c +++ b/redis.c @@ -959,7 +959,7 @@ PHP_METHOD(Redis, pconnect) PHP_REDIS_API int redis_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent) { - zval *object; + zval *object, *ssl = NULL; char *host = NULL, *persistent_id = NULL; zend_long port = -1, retry_interval = 0; size_t host_len, persistent_id_len; @@ -973,10 +973,10 @@ redis_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent) #endif if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), - "Os|lds!ld", &object, redis_ce, &host, + "Os|lds!lda", &object, redis_ce, &host, &host_len, &port, &timeout, &persistent_id, &persistent_id_len, &retry_interval, - &read_timeout) == FAILURE) + &read_timeout, &ssl) == FAILURE) { return FAILURE; } @@ -1016,6 +1016,10 @@ redis_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent) redis->sock = redis_sock_create(host, host_len, port, timeout, read_timeout, persistent, persistent_id, retry_interval); + if (ssl != NULL) { + redis_sock_set_stream_context(redis->sock, ssl); + } + if (redis_sock_server_open(redis->sock) < 0) { if (redis->sock->err) { REDIS_THROW_EXCEPTION(ZSTR_VAL(redis->sock->err), 0); -- cgit v1.2.3