mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/virt-viewer
synced 2025-12-29 08:42:19 +00:00
Session: add vfunc to check auth retry capability
The spice session implementation can retry authentication on its own, whereas the vnc session needs to tear down the session and re-connect in order to retry a failed authentication. Add API to determine this so that we can clean up some code related to authentication failures.
This commit is contained in:
parent
bac799c6e9
commit
5c0ed8a99f
@ -165,6 +165,12 @@ virt_viewer_session_spice_can_share_folder(VirtViewerSession *session)
|
||||
return spice_session_has_channel_type(self->priv->session, SPICE_CHANNEL_WEBDAV);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
virt_viewer_session_spice_can_retry_auth(VirtViewerSession *session G_GNUC_UNUSED)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
virt_viewer_session_spice_class_init(VirtViewerSessionSpiceClass *klass)
|
||||
{
|
||||
@ -186,6 +192,7 @@ virt_viewer_session_spice_class_init(VirtViewerSessionSpiceClass *klass)
|
||||
dclass->mime_type = virt_viewer_session_spice_mime_type;
|
||||
dclass->apply_monitor_geometry = virt_viewer_session_spice_apply_monitor_geometry;
|
||||
dclass->can_share_folder = virt_viewer_session_spice_can_share_folder;
|
||||
dclass->can_retry_auth = virt_viewer_session_spice_can_retry_auth;
|
||||
|
||||
g_type_class_add_private(klass, sizeof(VirtViewerSessionSpicePrivate));
|
||||
|
||||
|
||||
@ -678,6 +678,17 @@ gboolean virt_viewer_session_can_share_folder(VirtViewerSession *self)
|
||||
return klass->can_share_folder ? klass->can_share_folder(self) : FALSE;
|
||||
}
|
||||
|
||||
gboolean virt_viewer_session_can_retry_auth(VirtViewerSession *self)
|
||||
{
|
||||
VirtViewerSessionClass *klass;
|
||||
|
||||
g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(self), FALSE);
|
||||
|
||||
klass = VIRT_VIEWER_SESSION_GET_CLASS(self);
|
||||
|
||||
return klass->can_retry_auth ? klass->can_retry_auth(self) : FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* c-indent-level: 4
|
||||
|
||||
@ -96,6 +96,7 @@ struct _VirtViewerSessionClass {
|
||||
void (*session_cancelled)(VirtViewerSession *session);
|
||||
void (*apply_monitor_geometry)(VirtViewerSession *session, GdkRectangle* monitors, guint nmonitors);
|
||||
gboolean (*can_share_folder)(VirtViewerSession *session);
|
||||
gboolean (*can_retry_auth)(VirtViewerSession *session);
|
||||
};
|
||||
|
||||
GType virt_viewer_session_get_type(void);
|
||||
@ -132,6 +133,7 @@ gchar* virt_viewer_session_get_uri(VirtViewerSession *self);
|
||||
void virt_viewer_session_set_file(VirtViewerSession *self, VirtViewerFile *file);
|
||||
VirtViewerFile* virt_viewer_session_get_file(VirtViewerSession *self);
|
||||
gboolean virt_viewer_session_can_share_folder(VirtViewerSession *self);
|
||||
gboolean virt_viewer_session_can_retry_auth(VirtViewerSession *self);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user