diff options
-rw-r--r-- | src/virt-viewer-app.c | 12 | ||||
-rw-r--r-- | src/virt-viewer-session-spice.c | 2 |
2 files changed, 11 insertions, 3 deletions
diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c index 2bf74f7..36db150 100644 --- a/src/virt-viewer-app.c +++ b/src/virt-viewer-app.c @@ -1488,7 +1488,7 @@ static void virt_viewer_app_cancelled(VirtViewerSession *session, } -static void virt_viewer_app_auth_refused(VirtViewerSession *session G_GNUC_UNUSED, +static void virt_viewer_app_auth_refused(VirtViewerSession *session, const char *msg, VirtViewerApp *self) { @@ -1496,6 +1496,15 @@ static void virt_viewer_app_auth_refused(VirtViewerSession *session G_GNUC_UNUSE int ret; VirtViewerAppPrivate *priv = self->priv; + if (virt_viewer_session_can_retry_auth(session)) { + virt_viewer_app_simple_message_dialog(self, + _("Unable to authenticate with remote desktop server at %s: %s\n"), + priv->pretty_address, msg); + return; + } + + /* if the session implementation cannot retry auth automatically, the + * VirtViewerApp needs to schedule a new connection to retry */ dialog = gtk_message_dialog_new(virt_viewer_window_get_window(priv->main_window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, @@ -1515,7 +1524,6 @@ static void virt_viewer_app_auth_refused(VirtViewerSession *session G_GNUC_UNUSE priv->authretry = FALSE; } - static void virt_viewer_app_auth_failed(VirtViewerSession *session G_GNUC_UNUSED, const char *msg, VirtViewerApp *self) diff --git a/src/virt-viewer-session-spice.c b/src/virt-viewer-session-spice.c index ec6ffa5..9976291 100644 --- a/src/virt-viewer-session-spice.c +++ b/src/virt-viewer-session-spice.c @@ -617,7 +617,7 @@ virt_viewer_session_spice_main_channel_event(SpiceChannel *channel, } if (self->priv->pass_try > 0) - g_signal_emit_by_name(session, "session-auth-failed", + g_signal_emit_by_name(session, "session-auth-refused", error != NULL ? error->message : _("Invalid password")); self->priv->pass_try++; |