Module: kamailio Branch: 5.2 Commit: eb5f2096282e93b14fecfc64f22aba0db467dec5 URL: https://github.com/kamailio/kamailio/commit/eb5f2096282e93b14fecfc64f22aba0db467dec5
Author: Daniel-Constantin Mierla <[email protected]> Committer: Daniel-Constantin Mierla <[email protected]> Date: 2019-04-03T11:43:39+02:00 tcpops: set tcp keepalive values when available per option - cover macos and *bsd for couple of options (cherry picked from commit 278fd5a892c14f23e9f2b8d1f3fd3232c1d319f3) --- Modified: src/modules/tcpops/tcpops.c --- Diff: https://github.com/kamailio/kamailio/commit/eb5f2096282e93b14fecfc64f22aba0db467dec5.diff Patch: https://github.com/kamailio/kamailio/commit/eb5f2096282e93b14fecfc64f22aba0db467dec5.patch --- diff --git a/src/modules/tcpops/tcpops.c b/src/modules/tcpops/tcpops.c index cab215365c..1c70eb3409 100644 --- a/src/modules/tcpops/tcpops.c +++ b/src/modules/tcpops/tcpops.c @@ -130,8 +130,13 @@ int tcpops_acquire_fd_from_tcpmain(int conid, int *fd) 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) { @@ -144,6 +149,7 @@ int tcpops_keepalive_disable(int fd, int closefd) LM_ERR("tcp_keepalive_disable() failed: this module does not support your platform\n"); return -1; } + #else int tcpops_keepalive_enable(int fd, int idle, int count, int interval, int closefd) @@ -156,11 +162,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)); return -1; } else { - +#ifdef HAVE_TCP_KEEPIDLE if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPIDLE, &idle, sizeof(idle))<0){ 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, sizeof(count))<0){ _______________________________________________ Kamailio (SER) - Development Mailing List [email protected] https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev
