[network-manager-applet/bg/vpn-request-crash-rh1775278: 3/5] applet: merge VPN request free functions



commit 831a2ceca15008aa2acd47d5b30417f82cd453e5
Author: Beniamino Galvani <bgalvani redhat com>
Date:   Fri Mar 27 10:57:07 2020 +0100

    applet: merge VPN request free functions

 src/applet-vpn-request.c | 111 ++++++++++++++++++++++-------------------------
 1 file changed, 53 insertions(+), 58 deletions(-)
---
diff --git a/src/applet-vpn-request.c b/src/applet-vpn-request.c
index 3dc6514b..b7d1d54a 100644
--- a/src/applet-vpn-request.c
+++ b/src/applet-vpn-request.c
@@ -59,7 +59,6 @@ typedef struct {
 
 /*****************************************************************************/
 
-static void request_data_free (RequestData *req_data);
 static void complete_request (VpnSecretsInfo *info);
 
 /*****************************************************************************/
@@ -582,10 +581,62 @@ auth_dialog_spawn (const char *con_id,
 
 /*****************************************************************************/
 
+static gboolean
+ensure_killed (gpointer data)
+{
+       pid_t pid = GPOINTER_TO_INT (data);
+
+       kill (pid, SIGKILL);
+       waitpid (pid, NULL, 0);
+       return FALSE;
+}
+
 static void
 free_vpn_secrets_info (SecretsRequest *req)
 {
-       request_data_free (((VpnSecretsInfo *) req)->req_data);
+
+       RequestData *req_data;
+       guint i;
+
+       req_data = ((VpnSecretsInfo *) req)->req_data;
+
+       if (!req_data)
+               return;
+
+       g_free (req_data->uuid);
+       g_free (req_data->id);
+       g_free (req_data->service_type);
+
+       nm_clear_g_source (&req_data->watch_id);
+
+       nm_clear_g_source (&req_data->channel_eventid);
+       if (req_data->channel)
+               g_io_channel_unref (req_data->channel);
+
+       if (req_data->pid) {
+               if (kill (req_data->pid, SIGTERM) == 0)
+                       g_timeout_add_seconds (2, ensure_killed, GINT_TO_POINTER (req_data->pid));
+               else {
+                       kill (req_data->pid, SIGKILL);
+                       waitpid (req_data->pid, NULL, 0);
+               }
+       }
+
+       if (req_data->child_response)
+               g_string_free (req_data->child_response, TRUE);
+
+       g_variant_builder_clear (&req_data->secrets_builder);
+
+       if (req_data->eui_secrets) {
+               for (i = 0; req_data->eui_secrets[i].name; i++) {
+                       g_free (req_data->eui_secrets[i].name);
+                       g_free (req_data->eui_secrets[i].label);
+                       g_free (req_data->eui_secrets[i].value);
+               }
+               g_free (req_data->eui_secrets);
+       }
+
+       g_slice_free (RequestData, req_data);
 }
 
 gboolean
@@ -675,59 +726,3 @@ applet_vpn_request_get_secrets (SecretsRequest *req, GError **error)
        /* Dump parts of the connection to the child */
        return TRUE;
 }
-
-/*****************************************************************************/
-
-static gboolean
-ensure_killed (gpointer data)
-{
-       pid_t pid = GPOINTER_TO_INT (data);
-
-       kill (pid, SIGKILL);
-       waitpid (pid, NULL, 0);
-       return FALSE;
-}
-
-static void
-request_data_free (RequestData *req_data)
-{
-       guint i;
-
-       if (!req_data)
-               return;
-
-       g_free (req_data->uuid);
-       g_free (req_data->id);
-       g_free (req_data->service_type);
-
-       nm_clear_g_source (&req_data->watch_id);
-
-       nm_clear_g_source (&req_data->channel_eventid);
-       if (req_data->channel)
-               g_io_channel_unref (req_data->channel);
-
-       if (req_data->pid) {
-               if (kill (req_data->pid, SIGTERM) == 0)
-                       g_timeout_add_seconds (2, ensure_killed, GINT_TO_POINTER (req_data->pid));
-               else {
-                       kill (req_data->pid, SIGKILL);
-                       waitpid (req_data->pid, NULL, 0);
-               }
-       }
-
-       if (req_data->child_response)
-               g_string_free (req_data->child_response, TRUE);
-
-       g_variant_builder_clear (&req_data->secrets_builder);
-
-       if (req_data->eui_secrets) {
-               for (i = 0; req_data->eui_secrets[i].name; i++) {
-                       g_free (req_data->eui_secrets[i].name);
-                       g_free (req_data->eui_secrets[i].label);
-                       g_free (req_data->eui_secrets[i].value);
-               }
-               g_free (req_data->eui_secrets);
-       }
-
-       g_slice_free (RequestData, req_data);
-}


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]