|Subject:||Add TCP keepalive modification support for Linux|
This patch adds support for modifying various TCP keepalive parameters if Socket::Linux is installed. This is significant, as the default keepalive settings are for 2 hours, while many institutions set their firewalls, etc, to lower thresh holds for dropping connections. If keepalive is set to 1 and Socket::Linux is available, then the following 3 items can be set: =item keepalive_idle =E<gt> N The time (in seconds) the connection needs to remain idle before TCP starts sending keepalive probes, if the socket option SO_KEEPALIVE has been set on this socket. Only works if Socket::Linux is available. =item keepalive_interval =E<gt> N The time (in seconds) between individual keepalive probes. Only works if Socket::Linux is available. =item keepalive_probe =E<gt> N The maximum number of keepalive probes TCP should send before dropping the connection. Only works if Socket::Linux is available. At my work, I was able to test this, given that we have two servers with a firewall in between, that closes connections that are idle for 30 minutes. ldap-test1.pl just sets keepalive to 1: [zimbra@edge01-zcs tmp]$ ./ldap-test1.pl First size is: 2985 Sleeping 31 minutes Starting second search. ERROR: Unable to verify ldap connection - exiting You can see after 31 minutes, the connection had been closed by the firewall, and it was unable to do a second search. ldap-test2.pl uses the new parameters to lower the thresh hold for sending probes from 2 hours to 5 minutes. Its results are much better: [zimbra@edge01-zcs ~]$ /tmp/ldap-test2.pl First size is: 2985 Sleeping 31 minutes Starting second search. Second size is: 2985
Message body not shown because it is not plain text.