Hi All,

OpenVPN 2.3.4 will currently throw a warning of "NOTE: setsockopt TCP_NODELAY=1 
failed (No kernel support)” when attempting to use the TCP_NODELAY socket 
option on Mac OS X/Darwin. Kernel support is there, however the required header 
file where TCP_NODELAY is defined is not being included. This patch simply 
alters syshead.h to include <netinet/tcp.h> on Darwin platforms.


--- src/openvpn/syshead.h.orig  2014-05-01 21:12:22.000000000 +1000
+++ src/openvpn/syshead.h       2014-06-26 17:43:30.000000000 +1000
@@ -349,6 +349,14 @@
 
 #endif /* TARGET_DRAGONFLY */
 
+#ifdef TARGET_DARWIN
+
+#ifdef HAVE_NETINET_TCP_H
+#include <netinet/tcp.h>
+#endif
+
+#endif /* TARGET_DARWIN */
+
 #ifdef WIN32
 #include <iphlpapi.h>
 #include <ntddndis.h>


Tested under 10.7 to 10.10dp2. "Socket flags: TCP_NODELAY=1 succeeded” when 
running with debug enabled. In addition the latest beta version of Viscosity is 
using a copy of OpenVPN with this patch applied: no issues have been reported 
from testers thus far.

Regards,
James

--
James Bekkema
SparkLabs Developer
http://www.sparklabs.com
http://www.twitter.com/sparklabs
supp...@sparklabs.com


Reply via email to