summaryrefslogtreecommitdiff
path: root/databases/redis62/files/patch-deps-hiredis-net.c
diff options
context:
space:
mode:
authorYasuhiro Kimura <yasu@FreeBSD.org>2022-02-01 16:40:15 +0900
committerYasuhiro Kimura <yasu@FreeBSD.org>2022-04-28 11:18:31 +0900
commit36836207bca52685e109a0601b215e836a452c28 (patch)
tree8464fad0f6862917bdc19ef96bfc721181fb6225 /databases/redis62/files/patch-deps-hiredis-net.c
parentsecurity/vuxml: Document multiple vulnerabilities in redis (diff)
databases/redis62: Copy from databases/redis
Copy databases/redis to databases/redis62 as a preparation for updating databases/redis to 7.0.
Diffstat (limited to 'databases/redis62/files/patch-deps-hiredis-net.c')
-rw-r--r--databases/redis62/files/patch-deps-hiredis-net.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/databases/redis62/files/patch-deps-hiredis-net.c b/databases/redis62/files/patch-deps-hiredis-net.c
new file mode 100644
index 000000000000..3fd2b5996f97
--- /dev/null
+++ b/databases/redis62/files/patch-deps-hiredis-net.c
@@ -0,0 +1,39 @@
+--- deps/hiredis/net.c.orig 2019-11-28 14:32:05.942453000 -0500
++++ deps/hiredis/net.c 2019-11-28 14:39:08.326408000 -0500
+@@ -178,14 +178,34 @@
+ __redisSetError(c,REDIS_ERR_OTHER,strerror(errno));
+ return REDIS_ERR;
+ }
+-#else
+-#if defined(__GLIBC__) && !defined(__FreeBSD_kernel__)
++#elif defined(__GLIBC__)
+ if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPIDLE, &val, sizeof(val)) < 0) {
+ __redisSetError(c,REDIS_ERR_OTHER,strerror(errno));
+ return REDIS_ERR;
+ }
+
+ val = interval/3;
++ if (val == 0) val = 1;
++ if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPINTVL, &val, sizeof(val)) < 0) {
++ __redisSetError(c,REDIS_ERR_OTHER,strerror(errno));
++ return REDIS_ERR;
++ }
++
++ val = 3;
++ if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPCNT, &val, sizeof(val)) < 0) {
++ __redisSetError(c,REDIS_ERR_OTHER,strerror(errno));
++ return REDIS_ERR;
++ }
++#else
++#if !defined(__sun) && defined(TCP_KEEPIDLE) && defined(TCP_KEEPINTL) && \
++ defined(TCP_KEEPCNT)
++ val = interval;
++ if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPIDLE, &val, sizeof(val)) < 0) {
++ __redisSetError(c,REDIS_ERR_OTHER,strerror(errno));
++ return REDIS_ERR;
++ }
++
++ val = internal/3;
+ if (val == 0) val = 1;
+ if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPINTVL, &val, sizeof(val)) < 0) {
+ __redisSetError(c,REDIS_ERR_OTHER,strerror(errno));