]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/misc-progs/ipsecctrl.c
ipsecctrl: Call ipsec-interfaces script when turning up/shutting down connections
[people/pmueller/ipfire-2.x.git] / src / misc-progs / ipsecctrl.c
index 8e6b46ec84d5ef4a1202dbacc73e6512df203a74..2a64775f025fcb6cef634bf00c173ff90d834c0c 100644 (file)
@@ -119,6 +119,9 @@ void turn_connection_on(char *name, char *type) {
        // Reload the IPsec firewall policy
        safe_system("/usr/lib/firewall/ipsec-policy >/dev/null");
 
+       // Create or destroy interfaces
+       safe_system("/usr/local/bin/ipsec-interfaces >/dev/null");
+
        // Reload the configuration into the daemon (#10339).
        ipsec_reload();
 
@@ -148,6 +151,9 @@ void turn_connection_off (char *name) {
 
        // Reload the IPsec firewall policy
        safe_system("/usr/lib/firewall/ipsec-policy >/dev/null");
+
+       // Create or destroy interfaces
+       safe_system("/usr/local/bin/ipsec-interfaces >/dev/null");
 }
 
 int main(int argc, char *argv[]) {
@@ -181,6 +187,7 @@ int main(int argc, char *argv[]) {
                 if (strcmp(argv[1], "D") == 0) {
                         safe_system("/usr/sbin/ipsec stop >/dev/null 2>&1");
                        safe_system("/usr/lib/firewall/ipsec-policy >/dev/null");
+                       safe_system("/usr/local/bin/ipsec-interfaces >/dev/null");
                         exit(0);
                 }
         }
@@ -207,6 +214,7 @@ int main(int argc, char *argv[]) {
        // start the system
         if ((argc == 2) && strcmp(argv[1], "S") == 0) {
                safe_system("/usr/lib/firewall/ipsec-policy >/dev/null");
+               safe_system("/usr/local/bin/ipsec-interfaces >/dev/null");
                safe_system("/usr/sbin/ipsec restart >/dev/null");
                 exit(0);
         }