[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ipfire-scm
Subject:    [IPFire-SCM] [git.ipfire.org] IPFire 2.x development tree branch, openvpn-n2n, updated. 2bcff894ac44
From:       git () ipfire ! org (Michael Tremer)
Date:       2011-06-25 15:58:23
Message-ID: 20110625155823.8386420352 () argus ! ipfire ! org
[Download RAW message or body]

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "IPFire 2.x development tree".

The branch, openvpn-n2n has been updated
       via  2bcff894ac444f5b8d5d6ab7d8c243974526d332 (commit)
      from  39877197d6f99832c9732edcf72a11fbddf43a30 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 2bcff894ac444f5b8d5d6ab7d8c243974526d332
Author: Michael Tremer <michael.tremer at ipfire.org>
Date:   Sat Jun 25 17:57:57 2011 +0200

    openvpnctrl: Support killing only the roadwarrior server.

-----------------------------------------------------------------------

Summary of changes:
 src/misc-progs/openvpnctrl.c |   36 ++++++++++++++++++++++++------------
 1 files changed, 24 insertions(+), 12 deletions(-)

Difference in files:
diff --git a/src/misc-progs/openvpnctrl.c b/src/misc-progs/openvpnctrl.c
index 847a3e2..68bbe2f 100644
--- a/src/misc-progs/openvpnctrl.c
+++ b/src/misc-progs/openvpnctrl.c
@@ -368,12 +368,16 @@ void setFirewallRules(void) {
 void stopDaemon(void) {
 	char command[STRING_SIZE];
 
-	snprintf(command, STRING_SIZE - 1, "/bin/killall openvpn");
-	executeCommand(command);
+	int pid = readPidFile("/var/run/openvpn.pid");
+	if (pid == NULL) {
+		exit(1);
+	}
+
+	fprintf(stderr, "Killing PID %d.\n", pid);
+	kill(pid, SIGTERM);
+
 	snprintf(command, STRING_SIZE - 1, "/bin/rm -f /var/run/openvpn.pid");
 	executeCommand(command);
-	snprintf(command, STRING_SIZE-1, "/sbin/modprobe -r tun");
-	executeCommand(command);
 }
 
 void startDaemon(void) {
@@ -429,6 +433,20 @@ void startNet2Net(char *name) {
 	executeCommand(command);
 }
 
+int readPidFile(const char *pidfile) {
+	FILE *fp = fopen(pidfile, "r");
+	if (fp == NULL) {
+		fprintf(stderr, "PID file not found: '%s'\n", pidfile);
+		exit(1);
+	}
+
+	int pid = NULL;
+	fscanf(fp, "%d", &pid);
+	fclose(fp);
+
+	return pid;
+}
+
 void killNet2Net(char *name) {
 	connection *conn = NULL;
 	connection *conn_iter;
@@ -451,17 +469,11 @@ void killNet2Net(char *name) {
 	char pidfile[STRING_SIZE];
 	snprintf(&pidfile, STRING_SIZE - 1, "/var/run/%sn2n.pid", conn->name);
 
-	FILE *fp = fopen(pidfile, "r");
-	if (fp == NULL) {
-		fprintf(stderr, "Could not determine PID for connection '%s'.\n", conn->name);
-		fprintf(stderr, "PID file not found: '%s'\n", pidfile);
+	int pid = readPidFile(pidfile);
+	if (pid == NULL) {
 		exit(1);
 	}
 
-	int pid;
-	fscanf(fp, "%d", &pid);
-	fclose(fp);
-
 	fprintf(stderr, "Killing PID %d.\n", pid);
 	kill(pid, SIGTERM);
 


hooks/post-receive
--
IPFire 2.x development tree

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic