Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/Remmina/Remmina.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntenore Gatta <antenore@simbiosi.org>2016-03-02 05:44:07 +0300
committerGiovanni Panozzo <giovanni@panozzo.it>2016-03-05 14:47:26 +0300
commit7dcf017b49f63ac475eec1cfad31be4747486461 (patch)
tree6847e5edd31400eca2db82f0f50d220454df5aa2 /remmina
parent61336c637bc96d278828a5e85e4786dab1c0243c (diff)
Keepalive fixes for FreeBSD
Diffstat (limited to 'remmina')
-rw-r--r--remmina/src/remmina_ssh.c15
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