|
@@ -105,8 +105,13 @@ error_release:
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
-#if !defined(HAVE_SO_KEEPALIVE) || !defined(HAVE_TCP_KEEPIDLE) || !defined(HAVE_TCP_KEEPCNT) || !defined(HAVE_TCP_KEEPINTVL)
|
|
|
|
- #warning "TCP keepalive is not fully supported by your platform"
|
|
|
|
|
|
+#if !defined(HAVE_SO_KEEPALIVE) || !defined(HAVE_TCP_KEEPCNT) || !defined(HAVE_TCP_KEEPINTVL)
|
|
|
|
+ #define KSR_TCPOPS_NOKEEPALIVE
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
+#ifdef KSR_TCPOPS_NOKEEPALIVE
|
|
|
|
+
|
|
|
|
+#warning "TCP keepalive options not supported by this platform"
|
|
|
|
|
|
int tcpops_keepalive_enable(int fd, int idle, int count, int interval, int closefd)
|
|
int tcpops_keepalive_enable(int fd, int idle, int count, int interval, int closefd)
|
|
{
|
|
{
|
|
@@ -119,6 +124,7 @@ int tcpops_keepalive_disable(int fd, int closefd)
|
|
LM_ERR("tcp_keepalive_disable() failed: this module does not support your platform\n");
|
|
LM_ERR("tcp_keepalive_disable() failed: this module does not support your platform\n");
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
+
|
|
#else
|
|
#else
|
|
|
|
|
|
int tcpops_keepalive_enable(int fd, int idle, int count, int interval, int closefd)
|
|
int tcpops_keepalive_enable(int fd, int idle, int count, int interval, int closefd)
|
|
@@ -131,11 +137,15 @@ int tcpops_keepalive_enable(int fd, int idle, int count, int interval, int close
|
|
LM_ERR("failed to enable SO_KEEPALIVE: %s\n", strerror(errno));
|
|
LM_ERR("failed to enable SO_KEEPALIVE: %s\n", strerror(errno));
|
|
return -1;
|
|
return -1;
|
|
} else {
|
|
} else {
|
|
-
|
|
|
|
|
|
+#ifdef HAVE_TCP_KEEPIDLE
|
|
if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPIDLE, &idle,
|
|
if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPIDLE, &idle,
|
|
sizeof(idle))<0){
|
|
sizeof(idle))<0){
|
|
LM_ERR("failed to set keepalive idle interval: %s\n", strerror(errno));
|
|
LM_ERR("failed to set keepalive idle interval: %s\n", strerror(errno));
|
|
}
|
|
}
|
|
|
|
+#else
|
|
|
|
+ #warning "TCP_KEEPIDLE option not supported by this platform"
|
|
|
|
+ LM_DBG("TCP_KEEPIDLE option not available - ignoring\n");
|
|
|
|
+#endif
|
|
|
|
|
|
if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPCNT, &count,
|
|
if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPCNT, &count,
|
|
sizeof(count))<0){
|
|
sizeof(count))<0){
|