Commit 59b2db32 authored by CeRiAl's avatar CeRiAl

Service: Ensure cleanup of our configfiles in case of an error

parent 65fd7928
......@@ -132,8 +132,14 @@ enum {
};
static guint signals[LAST_SIGNAL] = { 0 };
static void
nm_l2tp_cleanup (void);
static gboolean
nm_l2tp_ipsec_error(GError **error, const char *msg) {
/* First, clean up config files */
nm_l2tp_cleanup ();
g_set_error_literal (error,
NM_VPN_PLUGIN_ERROR,
NM_VPN_PLUGIN_ERROR_LAUNCH_FAILED,
......@@ -604,14 +610,35 @@ nm_l2tp_secrets_validate (NMSettingVPN *s_vpn, GError **error)
static void
nm_l2tp_stop_ipsec(void);
static void
nm_l2tp_cleanup (void)
{
pid_t my_pid = getpid ();
char *filename;
filename = g_strdup_printf ("/var/run/nm-xl2tpd.conf.%d", my_pid);
unlink(filename);
g_free(filename);
filename = g_strdup_printf ("/var/run/nm-ppp-options.xl2tpd.%d", my_pid);
unlink(filename);
g_free(filename);
filename = g_strdup_printf ("/var/run/nm-ipsec-l2tp.%d/ipsec.conf", my_pid);
unlink(filename);
g_free(filename);
filename = g_strdup_printf ("/var/run/nm-ipsec-l2tp.%d", my_pid);
rmdir(filename);
g_free(filename);
}
static void
l2tpd_watch_cb (GPid pid, gint status, gpointer user_data)
{
NML2tpPlugin *plugin = NM_L2TP_PLUGIN (user_data);
NML2tpPluginPrivate *priv = NM_L2TP_PLUGIN_GET_PRIVATE (plugin);
guint error = 0;
pid_t my_pid = getpid ();
char *filename;
if (WIFEXITED (status)) {
error = WEXITSTATUS (status);
......@@ -634,22 +661,8 @@ l2tpd_watch_cb (GPid pid, gint status, gpointer user_data)
priv->ipsec_up = FALSE;
}
/* Cleaning up config files */
filename = g_strdup_printf ("/var/run/nm-xl2tpd.conf.%d", my_pid);
unlink(filename);
g_free(filename);
filename = g_strdup_printf ("/var/run/nm-ppp-options.xl2tpd.%d", my_pid);
unlink(filename);
g_free(filename);
filename = g_strdup_printf ("/var/run/nm-ipsec-l2tp.%d/ipsec.conf", my_pid);
unlink(filename);
g_free(filename);
filename = g_strdup_printf ("/var/run/nm-ipsec-l2tp.%d", my_pid);
rmdir(filename);
g_free(filename);
/* Clean up config files */
nm_l2tp_cleanup ();
/* Must be after data->state is set since signals use data->state */
switch (error) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment