]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/misc-progs/ipsecctrl.c
ipsec: change ipsecctrl for status and reload of charon.
[people/pmueller/ipfire-2.x.git] / src / misc-progs / ipsecctrl.c
index 2e8ca53bfe40e918a585af80200ee231a9f73f08..ae3899619deeb23b4216fa3428a63cb2fee4fc3a 100644 (file)
@@ -141,16 +141,11 @@ int decode_line (char *s,
     issue ipsec commmands to turn on connection 'name'
 */
 void turn_connection_on (char *name, char *type) {
-        char command[STRING_SIZE];
-       FILE *file = NULL;
-
-       if (file = fopen("/var/run/vpn-watch.pid", "r")) {
-           safe_system("kill -9 $(cat /var/run/vpn-watch.pid)");
-           safe_system("unlink /var/run/vpn-watch.pid");
-           close(file);
-       }
+/*
+    if you find a way to start a single connection without changing all add it
+    here. Change also vpn-watch.
+*/
         safe_system("/etc/rc.d/init.d/ipsec restart >/dev/null");
-        safe_system("/usr/local/bin/vpn-watch &");
 }
 /*
     issue ipsec commmands to turn off connection 'name'
@@ -183,16 +178,24 @@ int main(int argc, char *argv[]) {
 
         if (strcmp(argv[1], "I") == 0) {
                 safe_system("/usr/sbin/ipsec whack --status");
+                safe_system("/usr/sbin/ipsec stroke status");
                 exit(0);
         }
 
         if (strcmp(argv[1], "R") == 0) {
                 safe_system("/usr/sbin/ipsec whack --rereadall >/dev/null");
+                safe_system("/usr/sbin/ipsec stroke rereadall >/dev/null");
                 exit(0);
         }
 
  /* Get vpnwatch pid */
 
+
+       if ((argc == 2) && (file = fopen("/var/run/vpn-watch.pid", "r"))) {
+           safe_system("kill -9 $(cat /var/run/vpn-watch.pid)");
+           safe_system("unlink /var/run/vpn-watch.pid");
+           close(file);
+       }
  
         /* FIXME: workaround for pclose() issue - still no real idea why
          * this is happening */
@@ -338,6 +341,8 @@ int main(int argc, char *argv[]) {
 
         // start the system
         if ((argc == 2) && strcmp(argv[1], "S") == 0) {
+               safe_system("/etc/rc.d/init.d/ipsec restart >/dev/null");
+               safe_system("/usr/local/bin/vpn-watch &");
                 exit(0);
         }