Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
hiredis
Commits
c8b5d62c
Commit
c8b5d62c
authored
Jul 31, 2023
by
michael-grunder
Browse files
Make redisEnableKeepAlive a no-op on AF_UNIX connections.
Fixes #1185
parent
e07ae7d3
Changes
3
Hide whitespace changes
Inline
Side-by-side
.gitignore
View file @
c8b5d62c
...
...
@@ -7,3 +7,4 @@
/*.pc
*.dSYM
tags
compile_commands.json
net.c
View file @
c8b5d62c
...
...
@@ -173,6 +173,10 @@ int redisKeepAlive(redisContext *c, int interval) {
int
val
=
1
;
redisFD
fd
=
c
->
fd
;
/* TCP_KEEPALIVE makes no sense with AF_UNIX connections */
if
(
c
->
connection_type
==
REDIS_CONN_UNIX
)
return
REDIS_ERR
;
#ifndef _WIN32
if
(
setsockopt
(
fd
,
SOL_SOCKET
,
SO_KEEPALIVE
,
&
val
,
sizeof
(
val
))
==
-
1
){
__redisSetError
(
c
,
REDIS_ERR_OTHER
,
strerror
(
errno
));
...
...
test.c
View file @
c8b5d62c
...
...
@@ -431,6 +431,24 @@ static void test_tcp_options(struct config cfg) {
redisFree
(
c
);
}
static
void
test_unix_keepalive
(
struct
config
cfg
)
{
redisContext
*
c
;
redisReply
*
r
;
c
=
do_connect
(
cfg
);
test
(
"Setting TCP_KEEPALIVE on a unix socket returns an error: "
);
test_cond
(
redisEnableKeepAlive
(
c
)
==
REDIS_ERR
&&
c
->
err
==
0
);
test
(
"Setting TCP_KEEPALIVE on a unix socket doesn't break the connection: "
);
r
=
redisCommand
(
c
,
"PING"
);
test_cond
(
r
!=
NULL
&&
r
->
type
==
REDIS_REPLY_STATUS
&&
r
->
len
==
4
&&
!
memcmp
(
r
->
str
,
"PONG"
,
4
));
freeReplyObject
(
r
);
redisFree
(
c
);
}
static
void
test_reply_reader
(
void
)
{
redisReader
*
reader
;
void
*
reply
,
*
root
;
...
...
@@ -2363,6 +2381,7 @@ int main(int argc, char **argv) {
test_blocking_connection_timeouts
(
cfg
);
test_blocking_io_errors
(
cfg
);
test_invalid_timeout_errors
(
cfg
);
test_unix_keepalive
(
cfg
);
if
(
throughput
)
test_throughput
(
cfg
);
}
else
{
test_skipped
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment