Hi,

In openbsd 6.0 is the openvpn package is broken because the route add and 
delete commands are different from 5.9 and before.

Mon Sep  5 13:27:46 2016 /sbin/route delete -net 0.0.0.0 192.168.2.1
delete net 0.0.0.0: gateway 192.168.2.1: not in table
Mon Sep  5 13:27:46 2016 ERROR: OpenBSD/NetBSD route delete command failed: 
external program exited with error status: 1
Mon Sep  5 13:27:46 2016 /sbin/route add -net 0.0.0.0 10.10.10.237 -netmask 
0.0.0.0
add net 0.0.0.0: gateway 10.10.10.237: File exists

I have created a patch for version 2.3.12 see attachment.

Best regards,

Sander van Kranenburg

--- route.c     Tue Aug 23 16:16:22 2016
+++ /root/route.c       Sun Sep 11 18:17:43 2016
@@ -1501,10 +1501,19 @@
     argv_printf_cat (&argv, "-rtt %d", r->metric);
 #endif

-  argv_printf_cat (&argv, "-net %s %s -netmask %s",
+if( count_netmask_bits(netmask) < 32)
+  {
+  argv_printf_cat (&argv, "-net %s/%d %s",
              network,
-             gateway,
-             netmask);
+             count_netmask_bits(netmask),
+             gateway);
+}
+else
+{
+  argv_printf_cat (&argv, "-host %s %s",
+              network,
+              gateway);
+}

   /* FIXME -- add on-link support for OpenBSD/NetBSD */

@@ -1880,11 +1889,21 @@

 #elif defined(TARGET_OPENBSD) || defined(TARGET_NETBSD)

-  argv_printf (&argv, "%s delete -net %s %s -netmask %s",
+if (count_netmask_bits(netmask) < 32)
+  {
+  argv_printf (&argv, "%s delete -net %s/%d %s",
                ROUTE_PATH,
              network,
-             gateway,
-             netmask);
+             count_netmask_bits(netmask),
+             gateway);
+  }
+else
+  {
+  argv_printf (&argv, "%s delete -host %s %s",
+                ROUTE_PATH,
+              network,
+              gateway);
+  }

   argv_msg (D_ROUTE, &argv);
   openvpn_execve_check (&argv, es, 0, "ERROR: OpenBSD/NetBSD route delete 
command failed");

Reply via email to