Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/Remmina/Remmina.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--remmina-plugins/spice/spice_plugin.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/remmina-plugins/spice/spice_plugin.c b/remmina-plugins/spice/spice_plugin.c
index 2b9230d56..4ef3be695 100644
--- a/remmina-plugins/spice/spice_plugin.c
+++ b/remmina-plugins/spice/spice_plugin.c
@@ -60,9 +60,14 @@ static gboolean remmina_plugin_spice_close_connection(RemminaProtocolWidget *gp)
TRACE_CALL(__func__);
RemminaPluginSpiceData *gpdata = GET_PLUGIN_DATA(gp);
- spice_session_disconnect(gpdata->session);
+ if (gpdata->session)
+ {
+ spice_session_disconnect(gpdata->session);
+ g_object_unref(gpdata->session);
+ gpdata->session = NULL;
+ remmina_plugin_service->protocol_plugin_emit_signal(gp, "disconnect");
+ }
- remmina_plugin_service->protocol_plugin_emit_signal(gp, "disconnect");
return FALSE;
}
@@ -78,6 +83,14 @@ static void remmina_plugin_spice_main_channel_event_cb(SpiceChannel *channel, Sp
case SPICE_CHANNEL_OPENED:
remmina_plugin_service->protocol_plugin_emit_signal(gp, "connect");
break;
+ case SPICE_CHANNEL_ERROR_AUTH:
+ remmina_plugin_service->protocol_plugin_set_error(gp, _("Invalid password."));
+ remmina_plugin_service->protocol_plugin_emit_signal(gp, "disconnect");
+ break;
+ case SPICE_CHANNEL_ERROR_CONNECT:
+ remmina_plugin_service->protocol_plugin_set_error(gp, _("Connection to SPICE server failed."));
+ remmina_plugin_service->protocol_plugin_emit_signal(gp, "disconnect");
+ break;
default:
break;
}