Commit bb3c4c17 authored by Pieter Noordhuis's avatar Pieter Noordhuis
Browse files

Make redisKeepAlive work on OSX

parent 9dff5105
...@@ -13,4 +13,8 @@ ...@@ -13,4 +13,8 @@
#define _XOPEN_SOURCE #define _XOPEN_SOURCE
#endif #endif
#if __APPLE__ && __MACH__
#define _OSX
#endif
#endif #endif
...@@ -122,6 +122,13 @@ int redisKeepAlive(redisContext *c, int interval) { ...@@ -122,6 +122,13 @@ int redisKeepAlive(redisContext *c, int interval) {
return REDIS_ERR; return REDIS_ERR;
} }
#ifdef _OSX
val = interval;
if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPALIVE, &val, sizeof(val)) < 0) {
__redisSetError(c,REDIS_ERR_OTHER,strerror(errno));
return REDIS_ERR;
}
#else
val = interval; val = interval;
if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPIDLE, &val, sizeof(val)) < 0) { if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPIDLE, &val, sizeof(val)) < 0) {
__redisSetError(c,REDIS_ERR_OTHER,strerror(errno)); __redisSetError(c,REDIS_ERR_OTHER,strerror(errno));
...@@ -140,6 +147,7 @@ int redisKeepAlive(redisContext *c, int interval) { ...@@ -140,6 +147,7 @@ int redisKeepAlive(redisContext *c, int interval) {
__redisSetError(c,REDIS_ERR_OTHER,strerror(errno)); __redisSetError(c,REDIS_ERR_OTHER,strerror(errno));
return REDIS_ERR; return REDIS_ERR;
} }
#endif
return REDIS_OK; return REDIS_OK;
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment