diff options
author | Fabiano FidĂȘncio <fidencio@redhat.com> | 2015-10-13 19:28:21 +0200 |
---|---|---|
committer | Fabiano FidĂȘncio <fidencio@redhat.com> | 2015-12-15 15:08:35 +0100 |
commit | 4ce98dd1d4fbe6af4d9b4938f416527f024ef9c7 (patch) | |
tree | 88f7e131b382361c5ba4c453fb401700c5107b0b | |
parent | 14482a06511a24802f4fe07b28c47dcae43d3c6d (diff) | |
download | virt-viewer-4ce98dd1d4fbe6af4d9b4938f416527f024ef9c7.tar.gz virt-viewer-4ce98dd1d4fbe6af4d9b4938f416527f024ef9c7.tar.xz virt-viewer-4ce98dd1d4fbe6af4d9b4938f416527f024ef9c7.zip |
session: add virt_viewer_can_forward_ssh_agent()
Functions names say it all, it's only implemented for Spice, checking
for channel-ssh presence.
-rw-r--r-- | src/virt-viewer-session-spice.c | 9 | ||||
-rw-r--r-- | src/virt-viewer-session.c | 12 | ||||
-rw-r--r-- | src/virt-viewer-session.h | 2 |
3 files changed, 23 insertions, 0 deletions
diff --git a/src/virt-viewer-session-spice.c b/src/virt-viewer-session-spice.c index c146e33..f9a1c80 100644 --- a/src/virt-viewer-session-spice.c +++ b/src/virt-viewer-session-spice.c @@ -180,6 +180,14 @@ virt_viewer_session_spice_can_retry_auth(VirtViewerSession *session G_GNUC_UNUSE return TRUE; } +static gboolean +virt_viewer_session_spice_can_forward_ssh_agent(VirtViewerSession *session) +{ + VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session); + + return spice_session_has_channel_type(self->priv->session, SPICE_CHANNEL_SSH); +} + static void create_spice_session(VirtViewerSessionSpice *self); @@ -292,6 +300,7 @@ virt_viewer_session_spice_class_init(VirtViewerSessionSpiceClass *klass) 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; + dclass->can_forward_ssh_agent = virt_viewer_session_spice_can_forward_ssh_agent; g_type_class_add_private(klass, sizeof(VirtViewerSessionSpicePrivate)); diff --git a/src/virt-viewer-session.c b/src/virt-viewer-session.c index 0c9b564..a99144b 100644 --- a/src/virt-viewer-session.c +++ b/src/virt-viewer-session.c @@ -695,6 +695,18 @@ gboolean virt_viewer_session_can_retry_auth(VirtViewerSession *self) return klass->can_retry_auth ? klass->can_retry_auth(self) : FALSE; } +gboolean virt_viewer_session_can_forward_ssh_agent(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_forward_ssh_agent ? klass->can_forward_ssh_agent(self) : FALSE; +} + /* * Local variables: * c-indent-level: 4 diff --git a/src/virt-viewer-session.h b/src/virt-viewer-session.h index d3a9ccc..b2201d9 100644 --- a/src/virt-viewer-session.h +++ b/src/virt-viewer-session.h @@ -98,6 +98,7 @@ struct _VirtViewerSessionClass { void (*apply_monitor_geometry)(VirtViewerSession *session, GHashTable* monitors); gboolean (*can_share_folder)(VirtViewerSession *session); gboolean (*can_retry_auth)(VirtViewerSession *session); + gboolean (*can_forward_ssh_agent)(VirtViewerSession *session); }; GType virt_viewer_session_get_type(void); @@ -135,6 +136,7 @@ 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); +gboolean virt_viewer_session_can_forward_ssh_agent(VirtViewerSession *self); G_END_DECLS |