]> www.infradead.org Git - users/dwmw2/vpnc-scripts.git/commitdiff
vpnc-script-win: add legacy IP split-exclude handling
authorDaniel Lenski <dlenski@gmail.com>
Tue, 30 Mar 2021 23:05:05 +0000 (16:05 -0700)
committerDaniel Lenski <dlenski@gmail.com>
Thu, 1 Apr 2021 01:11:39 +0000 (01:11 +0000)
Based on https://lists.infradead.org/pipermail/openconnect-devel/2020-June/004869.html

Signed-off-by: Daniel Lenski <dlenski@gmail.com>
vpnc-script-win.js

index 6eac05947076179f2144d9780770b7057dd8eacb..5a3ac57bd075de59f109e78ec913c17fa5b49b33 100644 (file)
@@ -147,6 +147,17 @@ case "connect":
             run("route add 128.0.0.0 mask 128.0.0.0 " + internal_gw);
         }
     }
+
+    // Add excluded routes
+    if (env("CISCO_SPLIT_EXC")) {
+        for (var i = 0 ; i < parseInt(env("CISCO_SPLIT_EXC")); i++) {
+            var network = env("CISCO_SPLIT_EXC_" + i + "_ADDR");
+            var netmask = env("CISCO_SPLIT_EXC_" + i + "_MASK");
+            var netmasklen = env("CISCO_SPLIT_EXC_" + i + "_MASKLEN");
+            run("route add " + network + " mask " + netmask +
+                " " + gw);
+        }
+    }
     echo("Legacy IP route configuration done.");
 
     if (env("INTERNAL_IP6_ADDRESS")) {
@@ -189,4 +200,14 @@ case "connect":
 case "disconnect":
     // Delete direct route for the VPN gateway
     run("route delete " + env("VPNGATEWAY") + " mask 255.255.255.255");
+
+    // Delete Legacy IP split-exclude routes
+    if (env("CISCO_SPLIT_EXC")) {
+        for (var i = 0 ; i < parseInt(env("CISCO_SPLIT_EXC")); i++) {
+            var network = env("CISCO_SPLIT_EXC_" + i + "_ADDR");
+            var netmask = env("CISCO_SPLIT_EXC_" + i + "_MASK");
+            var netmasklen = env("CISCO_SPLIT_EXC_" + i + "_MASKLEN");
+            exec("route delete " + network + " mask " + netmask );
+        }
+    }
 }