diff options
author | Antenore Gatta <antenore@simbiosi.org> | 2016-03-02 05:44:07 +0300 |
---|---|---|
committer | Giovanni Panozzo <giovanni@panozzo.it> | 2016-03-05 14:47:26 +0300 |
commit | 7dcf017b49f63ac475eec1cfad31be4747486461 (patch) | |
tree | 6847e5edd31400eca2db82f0f50d220454df5aa2 /remmina | |
parent | 61336c637bc96d278828a5e85e4786dab1c0243c (diff) |
Keepalive fixes for FreeBSD
Diffstat (limited to 'remmina')
-rw-r--r-- | remmina/src/remmina_ssh.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/remmina/src/remmina_ssh.c b/remmina/src/remmina_ssh.c index 22247a0b6..207732a73 100644 --- a/remmina/src/remmina_ssh.c +++ b/remmina/src/remmina_ssh.c @@ -79,6 +79,13 @@ #ifdef HAVE_NETINET_TCP_H #include <netinet/tcp.h> + +#if defined(__FreeBSD__) || defined(__OpenBSD__) +#ifndef SOL_TCP +#define SOL_TCP IPPROTO_TCP +#endif +#endif + #define SSH_SOCKET_TCP_KEEPIDLE 5 #define SSH_SOCKET_TCP_KEEPCNT 3 #define SSH_SOCKET_TCP_KEEPINTVL 3 @@ -456,22 +463,30 @@ remmina_ssh_init_session (RemminaSSH *ssh) if(setsockopt (sshsock, SOL_SOCKET, SO_KEEPALIVE, &optval, sizeof (optval)) < 0){ remmina_log_printf ("[SSH] TCP KeepAlive not set\n"); } +#ifdef TCP_KEEPIDLE optval = SSH_SOCKET_TCP_KEEPIDLE; if (setsockopt(sshsock, IPPROTO_TCP, TCP_KEEPIDLE, &optval, sizeof (optval)) < 0) { remmina_log_printf ("[SSH] TCP_KEEPIDLE not set\n"); } +#endif +#ifdef TCP_KEEPCNT optval = SSH_SOCKET_TCP_KEEPCNT; if (setsockopt(sshsock, IPPROTO_TCP, TCP_KEEPCNT, &optval, sizeof (optval)) < 0) { remmina_log_printf ("[SSH] TCP_KEEPCNT not set\n"); } +#endif +#ifdef TCP_KEEPINTVL optval = SSH_SOCKET_TCP_KEEPINTVL; if (setsockopt(sshsock, IPPROTO_TCP, TCP_KEEPINTVL, &optval, sizeof (optval)) < 0) { remmina_log_printf ("[SSH] TCP_KEEPINTVL not set\n"); } +#endif +#ifdef TCP_USER_TIMEOUT optval = SSH_SOCKET_TCP_USER_TIMEOUT; if (setsockopt(sshsock, IPPROTO_TCP, TCP_USER_TIMEOUT, &optval, sizeof (optval)) < 0) { remmina_log_printf ("[SSH] TCP_USER_TIMEOUT not set\n"); } +#endif } #endif |