[network-manager-openswan/dcbw/cleanups: 14/17] core: "ipsec setup start" doesn't stick around either
- From: Dan Williams <dcbw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [network-manager-openswan/dcbw/cleanups: 14/17] core: "ipsec setup start" doesn't stick around either
- Date: Thu, 7 Aug 2014 22:52:22 +0000 (UTC)
commit a736f621dfb7bcbfaa46465d566130ecf988fec6
Author: Dan Williams <dcbw redhat com>
Date: Thu Aug 7 13:10:33 2014 -0500
core: "ipsec setup start" doesn't stick around either
The command just starts the ipsec service and then exits, so if we
kill the VPN connection when it stops, we kill it every single time
and long before anything has happened. Just don't do that.
Instead only fail if a child process exits with a non-zero exit
code, which probably does indicate an error.
src/nm-openswan-service.c | 33 +++++++--------------------------
1 files changed, 7 insertions(+), 26 deletions(-)
---
diff --git a/src/nm-openswan-service.c b/src/nm-openswan-service.c
index c109e39..70b8efa 100644
--- a/src/nm-openswan-service.c
+++ b/src/nm-openswan-service.c
@@ -236,8 +236,10 @@ pluto_watch_cb (GPid pid, gint status, gpointer user_data)
if (WIFEXITED (status)) {
error = WEXITSTATUS (status);
- if (error != 0)
+ if (error != 0) {
g_warning ("pluto_watch: pluto exited with error code %d", error);
+ nm_vpn_plugin_failure (NM_VPN_PLUGIN (plugin), NM_VPN_PLUGIN_FAILURE_CONNECT_FAILED);
+ }
} else if (WIFSTOPPED (status))
g_warning ("pluto_watch: pluto stopped unexpectedly with signal %d", WSTOPSIG (status));
else if (WIFSIGNALED (status))
@@ -248,36 +250,15 @@ pluto_watch_cb (GPid pid, gint status, gpointer user_data)
/* Reap child if needed. */
waitpid (pid, NULL, WNOHANG);
- if (debug)
- g_message ("pluto_watch: reaped child pid %d", pid);
-
- /* Must be after data->state is set since signals use data->state */
- switch (error) {
- case 2:
- /* Couldn't log in due to bad user/pass */
- nm_vpn_plugin_failure (NM_VPN_PLUGIN (plugin), NM_VPN_PLUGIN_FAILURE_LOGIN_FAILED);
- break;
- case 1:
- /* Other error (couldn't bind to address, etc) */
- nm_vpn_plugin_failure (NM_VPN_PLUGIN (plugin), NM_VPN_PLUGIN_FAILURE_CONNECT_FAILED);
- break;
- default:
- break;
- }
-
- if(pid == priv->pid || error) {
+ if (pid == priv->pid) {
priv->pid = 0;
-
if (debug)
g_message ("pluto_watch: nm pluto service is stopping");
-
- nm_vpn_plugin_set_state (NM_VPN_PLUGIN (plugin), NM_VPN_SERVICE_STATE_STOPPED);
+ } else {
+ if (debug)
+ g_message ("pluto_watch: nm pluto service will continue after reaping a child");
}
- if (debug)
- g_message ("pluto_watch: nm pluto service will continue after reaping a child");
-
- /*closing pid*/
g_spawn_close_pid (pid);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]