Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpredis/phpredis.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavlo Yatsukhnenko <yatsukhnenko@gmail.com>2020-05-27 17:39:33 +0300
committerPavlo Yatsukhnenko <yatsukhnenko@gmail.com>2020-06-02 17:38:12 +0300
commitb067129678264fc1c5c0f611ce1b192e05c14669 (patch)
treece58b1efd08c14d84af94453df1d40f36568cbb6 /library.c
parentf9c7bb5788c39614c23e3bb9ec42ec8d6d5bbaa1 (diff)
Issue #1600
Ssl context options in Redis::connect
Diffstat (limited to 'library.c')
-rw-r--r--library.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/library.c b/library.c
index a67f79bb..fcbb4fd7 100644
--- a/library.c
+++ b/library.c
@@ -1921,7 +1921,7 @@ PHP_REDIS_API int redis_sock_connect(RedisSock *redis_sock)
redis_sock->stream = php_stream_xport_create(host, host_len,
0, STREAM_XPORT_CLIENT | STREAM_XPORT_CONNECT,
persistent_id ? ZSTR_VAL(persistent_id) : NULL,
- tv_ptr, NULL, &estr, &err);
+ tv_ptr, redis_sock->stream_ctx, &estr, &err);
if (persistent_id) {
zend_string_release(persistent_id);
@@ -2043,6 +2043,24 @@ redis_sock_set_err(RedisSock *redis_sock, const char *msg, int msg_len)
}
}
+PHP_REDIS_API int
+redis_sock_set_stream_context(RedisSock *redis_sock, zval *options)
+{
+ zend_string *zkey;
+ zval *z_ele;
+
+ if (!redis_sock || Z_TYPE_P(options) != IS_ARRAY) {
+ return FAILURE;
+ } else if (!redis_sock->stream_ctx) {
+ redis_sock->stream_ctx = php_stream_context_alloc();
+ }
+ ZEND_HASH_FOREACH_STR_KEY_VAL(Z_ARRVAL_P(options), zkey, z_ele) {
+ php_stream_context_set_option(redis_sock->stream_ctx, "ssl", ZSTR_VAL(zkey), z_ele);
+ } ZEND_HASH_FOREACH_END();
+
+ return SUCCESS;
+}
+
/**
* redis_sock_read_multibulk_reply
*/