From: Victor Toso <me@xxxxxxxxxxxxxx> For whom is trying to collect the credentials, it might be necessary to know if a failure is due bad user input of credentials or if the user has cancelled or closed the dialog. Prior to this patch anything but GTK_RESPONSE_OK was considered a failure without any extra information. This patch changes makes GtkResponseType be the return value of virt_viewer_auth_collect_credentials(). The follow up patch will use this change. Related: https://bugzilla.redhat.com/show_bug.cgi?id=1446161 Signed-off-by: Victor Toso <victortoso@xxxxxxxxxx> --- src/remote-viewer.c | 14 +++++++------- src/virt-viewer-auth.c | 6 +++--- src/virt-viewer-auth.h | 10 +++++----- src/virt-viewer-session-spice.c | 22 +++++++++++----------- src/virt-viewer-session-vnc.c | 10 +++++----- src/virt-viewer.c | 10 ++++++---- 6 files changed, 37 insertions(+), 35 deletions(-) diff --git a/src/remote-viewer.c b/src/remote-viewer.c index 2db76bc..b6b0843 100644 --- a/src/remote-viewer.c +++ b/src/remote-viewer.c @@ -737,7 +737,7 @@ authenticate_cb(RestProxy *proxy, G_GNUC_UNUSED RestProxyAuth *auth, gchar *username = NULL; gchar *password = NULL; VirtViewerWindow *window; - gboolean success = FALSE; + GtkResponseType response; g_object_get(proxy, "username", &username, @@ -747,11 +747,11 @@ authenticate_cb(RestProxy *proxy, G_GNUC_UNUSED RestProxyAuth *auth, username = g_strdup(g_get_user_name()); window = virt_viewer_app_get_main_window(VIRT_VIEWER_APP(user_data)); - success = virt_viewer_auth_collect_credentials(virt_viewer_window_get_window(window), - "oVirt", - NULL, - &username, &password); - if (success) { + response = virt_viewer_auth_collect_credentials(virt_viewer_window_get_window(window), + "oVirt", + NULL, + &username, &password); + if (response == GTK_RESPONSE_OK) { g_object_set(G_OBJECT(proxy), "username", username, "password", password, @@ -764,7 +764,7 @@ authenticate_cb(RestProxy *proxy, G_GNUC_UNUSED RestProxyAuth *auth, g_free(username); g_free(password); - return success; + return (response == GTK_RESPONSE_OK); } static void diff --git a/src/virt-viewer-auth.c b/src/virt-viewer-auth.c index 67c770c..aafad89 100644 --- a/src/virt-viewer-auth.c +++ b/src/virt-viewer-auth.c @@ -44,7 +44,7 @@ show_password(GtkCheckButton *check_button G_GNUC_UNUSED, * field will be pre-filled with this value. The existing string will be freed * before setting the output parameter to the user-entered value. */ -gboolean +GtkResponseType virt_viewer_auth_collect_credentials(GtkWindow *window, const char *type, const char *address, @@ -59,7 +59,7 @@ virt_viewer_auth_collect_credentials(GtkWindow *window, GtkWidget *promptPassword; GtkWidget *labelMessage; GtkWidget *checkPassword; - int response; + GtkResponseType response; char *message; dialog = GTK_WIDGET(gtk_builder_get_object(creds, "auth")); @@ -113,7 +113,7 @@ virt_viewer_auth_collect_credentials(GtkWindow *window, gtk_widget_destroy(GTK_WIDGET(dialog)); g_object_unref(G_OBJECT(creds)); - return response == GTK_RESPONSE_OK; + return response; } /* diff --git a/src/virt-viewer-auth.h b/src/virt-viewer-auth.h index 25463fc..a748292 100644 --- a/src/virt-viewer-auth.h +++ b/src/virt-viewer-auth.h @@ -27,11 +27,11 @@ #include "virt-viewer-session.h" -gboolean virt_viewer_auth_collect_credentials(GtkWindow *window, - const char *type, - const char *address, - char **username, - char **password); +GtkResponseType virt_viewer_auth_collect_credentials(GtkWindow *window, + const char *type, + const char *address, + char **username, + char **password); #endif /* diff --git a/src/virt-viewer-session-spice.c b/src/virt-viewer-session-spice.c index 5f326aa..0870e7f 100644 --- a/src/virt-viewer-session-spice.c +++ b/src/virt-viewer-session-spice.c @@ -668,7 +668,7 @@ virt_viewer_session_spice_main_channel_event(SpiceChannel *channel, { VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session); gchar *password = NULL, *user = NULL; - gboolean ret; + GtkResponseType response; static gboolean username_required = FALSE; g_return_if_fail(self != NULL); @@ -717,13 +717,13 @@ virt_viewer_session_spice_main_channel_event(SpiceChannel *channel, } g_object_get(self->priv->session, "host", &host, NULL); - ret = virt_viewer_auth_collect_credentials(self->priv->main_window, - "SPICE", - host, - username_required ? &user : NULL, - &password); + response = virt_viewer_auth_collect_credentials(self->priv->main_window, + "SPICE", + host, + username_required ? &user : NULL, + &password); g_free(host); - if (!ret) { + if (response != GTK_RESPONSE_OK) { g_signal_emit_by_name(session, "session-cancelled"); } else { gboolean openfd; @@ -750,10 +750,10 @@ virt_viewer_session_spice_main_channel_event(SpiceChannel *channel, SpiceURI *proxy = spice_session_get_proxy_uri(self->priv->session); g_warn_if_fail(proxy != NULL); - ret = virt_viewer_auth_collect_credentials(self->priv->main_window, - "proxy", spice_uri_get_hostname(proxy), - &user, &password); - if (!ret) { + response = virt_viewer_auth_collect_credentials(self->priv->main_window, + "proxy", spice_uri_get_hostname(proxy), + &user, &password); + if (response != GTK_RESPONSE_OK) { g_signal_emit_by_name(session, "session-cancelled"); } else { spice_uri_set_user(proxy, user); diff --git a/src/virt-viewer-session-vnc.c b/src/virt-viewer-session-vnc.c index 26fb405..5bd2664 100644 --- a/src/virt-viewer-session-vnc.c +++ b/src/virt-viewer-session-vnc.c @@ -307,12 +307,12 @@ virt_viewer_session_vnc_auth_credential(GtkWidget *src G_GNUC_UNUSED, } if (wantUsername || wantPassword) { - gboolean ret = virt_viewer_auth_collect_credentials(self->priv->main_window, - "VNC", NULL, - wantUsername ? &username : NULL, - wantPassword ? &password : NULL); + GtkResponseType response = virt_viewer_auth_collect_credentials(self->priv->main_window, + "VNC", NULL, + wantUsername ? &username : NULL, + wantPassword ? &password : NULL); - if (!ret) { + if (response != GTK_RESPONSE_OK) { vnc_display_close(self->priv->vnc); g_signal_emit_by_name(self, "session-cancelled"); goto cleanup; diff --git a/src/virt-viewer.c b/src/virt-viewer.c index 5c321db..0925494 100644 --- a/src/virt-viewer.c +++ b/src/virt-viewer.c @@ -988,14 +988,16 @@ virt_viewer_auth_libvirt_credentials(virConnectCredentialPtr cred, if (username || password) { VirtViewerWindow *vwin = virt_viewer_app_get_main_window(VIRT_VIEWER_APP(app)); GtkWindow *win = virt_viewer_window_get_window(vwin); + GtkResponseType response; if (username && (*username == NULL || **username == '\0')) *username = g_strdup(g_get_user_name()); - priv->auth_cancelled = !virt_viewer_auth_collect_credentials(win, - "libvirt", - app->priv->uri, - username, password); + response = virt_viewer_auth_collect_credentials(win, + "libvirt", + app->priv->uri, + username, password); + priv->auth_cancelled = (response != GTK_RESPONSE_OK); if (priv->auth_cancelled) { ret = -1; goto cleanup; -- 2.13.0 _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list