The attached patch makes the --pass-tos option work on FreeBSD. If
included in OpenVPN a configure test would probably be necessary.
This is one of several things we modified in OpenVPN while evaluating it
for deployment. Thought I'd share the fixes.
Cheers,
Nate Nielsen
diff -U3 ../openvpn-2.0.orig/socket.h ./socket.h
--- ../openvpn-2.0.orig/socket.h Sun Apr 10 21:43:58 2005
+++ ./socket.h Tue Aug 9 16:47:40 2005
@@ -748,7 +755,11 @@
link_socket_set_tos (struct link_socket *ls)
{
if (ls && ls->ptos_defined)
- setsockopt (ls->sd, IPPROTO_IP, IP_TOS, &ls->ptos, sizeof (ls->ptos));
+ {
+ int tos = ls->ptos;
+ setsockopt (ls->sd, IPPROTO_IP, IP_TOS, &tos, sizeof (tos));
+ }
+
}
#endif