diff options
| author | Michael Biebl <biebl@debian.org> | 2017-02-16 00:00:34 +0100 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2017-02-16 00:00:34 +0100 |
| commit | a222e56e103f949b148a6942e385ccca2c26d9f3 (patch) | |
| tree | 7978165f4d291224c854adb4c96c863a924b4882 /clients/cli/connections.c | |
| parent | 7f4dff3943c64e1d0e5d13b2ac915088dde165e6 (diff) | |
New upstream version 1.6.2 upstream/1.6.2
Diffstat (limited to 'clients/cli/connections.c')
| -rw-r--r-- | clients/cli/connections.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/clients/cli/connections.c b/clients/cli/connections.c index c73f96a9..b40d517b 100644 --- a/clients/cli/connections.c +++ b/clients/cli/connections.c @@ -2704,6 +2704,7 @@ typedef struct { NmCli *nmc; GSList *queue; guint timeout_id; + GCancellable *cancellable; } ConnectionCbInfo; static void connection_cb_info_finish (ConnectionCbInfo *info, @@ -2773,6 +2774,9 @@ connection_cb_info_finish (ConnectionCbInfo *info, gpointer connection) if (info->timeout_id) g_source_remove (info->timeout_id); + + nm_clear_g_cancellable (&info->cancellable); + g_signal_handlers_disconnect_by_func (info->nmc->client, connection_removed_cb, info); g_slice_free (ConnectionCbInfo, info); quit (); @@ -8280,6 +8284,8 @@ delete_cb (GObject *con, GAsyncResult *result, gpointer user_data) GError *error = NULL; if (!nm_remote_connection_delete_finish (NM_REMOTE_CONNECTION (con), result, &error)) { + if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) + return; g_string_printf (info->nmc->return_text, _("Error: not all connections deleted.")); g_printerr (_("Error: Connection deletion failed: %s"), error->message); @@ -8366,6 +8372,7 @@ do_connection_delete (NmCli *nmc, int argc, char **argv) info->nmc = nmc; info->queue = queue; info->timeout_id = g_timeout_add_seconds (nmc->timeout, connection_op_timeout_cb, info); + info->cancellable = g_cancellable_new (); nmc->nowait_flag = (nmc->timeout == 0); nmc->should_wait++; @@ -8376,7 +8383,7 @@ do_connection_delete (NmCli *nmc, int argc, char **argv) /* Now delete the connections */ for (iter = queue; iter; iter = g_slist_next (iter)) nm_remote_connection_delete_async (NM_REMOTE_CONNECTION (iter->data), - NULL, delete_cb, info); + info->cancellable, delete_cb, info); finish: if (invalid_cons) { |