- /* TCP keep-alive */
- if (conf.tcp_keepalive > 0) {
- int ret = 0;
-#ifdef linux
- int tcp_ka_idl, tcp_ka_int, tcp_ka_cnt;
-
- tcp_ka_idl = 1;
- tcp_ka_cnt = 3;
- tcp_ka_int = conf.tcp_keepalive;
- ret = setsockopt(sock, SOL_TCP, TCP_KEEPIDLE, &tcp_ka_idl, sizeof(tcp_ka_idl)) ||
- setsockopt(sock, SOL_TCP, TCP_KEEPINTVL, &tcp_ka_int, sizeof(tcp_ka_int)) ||
- setsockopt(sock, SOL_TCP, TCP_KEEPCNT, &tcp_ka_cnt, sizeof(tcp_ka_cnt));
-#endif
-
- if (ret || setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, &yes, sizeof(yes)))
- fprintf(stderr, "Notice: Unable to enable TCP keep-alive: %s\n",
- strerror(errno));
- }
-