On 14/11/17 15:01, Victor Toso wrote: > Hi, > > On Tue, Nov 14, 2017 at 02:54:30PM -0200, Eduardo Lima (Etrunko) wrote: >> When connecting to a VM via oVirt instance, the original uri can not be >> retrieved using virt_viewer_session_get_uri(). Consequently, it was >> never saved, even though the connection succeeds and the actual callback >> for "session-connected" signal, which saves the URI, is invoked. >> >> To solve this problem, we always pass a copy of the guri as user-data >> parameter for the callback, and if the call to >> virt_viewer_session_get_uri() returns NULL, the parameter is used >> instead. >> >> Resolves: https://bugzilla.redhat.com/1459792 >> >> Signed-off-by: Eduardo Lima (Etrunko) <[email protected]> > > Reviewed-by: Victor Toso <[email protected]> >
Pushed, thanks.
> Thanks,
>> ---
>> src/remote-viewer.c | 21 ++++++++++-----------
>> 1 file changed, 10 insertions(+), 11 deletions(-)
>>
>> diff --git a/src/remote-viewer.c b/src/remote-viewer.c
>> index fb5376c..786b26b 100644
>> --- a/src/remote-viewer.c
>> +++ b/src/remote-viewer.c
>> @@ -85,10 +85,6 @@ static void spice_foreign_menu_updated(RemoteViewer
>> *self);
>> static void foreign_menu_title_changed(SpiceCtrlForeignMenu *menu,
>> GParamSpec *pspec, RemoteViewer *self);
>> #endif
>>
>> -static gboolean
>> -remote_viewer_initial_connect(RemoteViewer *self, const gchar *type,
>> - VirtViewerFile *vvfile, GError **error);
>> -
>> static void
>> remote_viewer_dispose (GObject *object)
>> {
>> @@ -1064,8 +1060,7 @@ remote_viewer_recent_add(gchar *uri, const gchar
>> *mime_type)
>> .mime_type = (char*)mime_type,
>> };
>>
>> - if (uri == NULL)
>> - return;
>> + g_return_if_fail(uri != NULL);
>>
>> recent = gtk_recent_manager_get_default();
>> meta.display_name = uri;
>> @@ -1075,17 +1070,21 @@ remote_viewer_recent_add(gchar *uri, const gchar
>> *mime_type)
>>
>> static void
>> remote_viewer_session_connected(VirtViewerSession *session,
>> - VirtViewerApp *self G_GNUC_UNUSED)
>> + gchar *guri)
>> {
>> gchar *uri = virt_viewer_session_get_uri(session);
>> const gchar *mime = virt_viewer_session_mime_type(session);
>>
>> + if (uri == NULL)
>> + uri = g_strdup(guri);
>> +
>> remote_viewer_recent_add(uri, mime);
>> g_free(uri);
>> + g_free(guri);
>> }
>>
>> static gboolean
>> -remote_viewer_initial_connect(RemoteViewer *self, const gchar *type,
>> +remote_viewer_initial_connect(RemoteViewer *self, const gchar *type, const
>> gchar *guri,
>> VirtViewerFile *vvfile, GError **error)
>> {
>> VirtViewerApp *app = VIRT_VIEWER_APP(self);
>> @@ -1093,8 +1092,9 @@ remote_viewer_initial_connect(RemoteViewer *self,
>> const gchar *type,
>> if (!virt_viewer_app_create_session(app, type, error))
>> return FALSE;
>>
>> +
>> g_signal_connect(virt_viewer_app_get_session(app), "session-connected",
>> - G_CALLBACK(remote_viewer_session_connected), app);
>> + G_CALLBACK(remote_viewer_session_connected),
>> g_strdup(guri));
>>
>> virt_viewer_session_set_file(virt_viewer_app_get_session(app), vvfile);
>> #ifdef HAVE_OVIRT
>> @@ -1200,12 +1200,11 @@ retry_dialog:
>> } else
>> #endif
>> {
>> - if (!remote_viewer_initial_connect(self, type, vvfile, &error))
>> + if (!remote_viewer_initial_connect(self, type, guri, vvfile,
>> &error))
>> goto cleanup;
>> }
>> }
>>
>> -
>> ret = VIRT_VIEWER_APP_CLASS(remote_viewer_parent_class)->start(app,
>> &error);
>>
>> cleanup:
>> --
>> 2.13.6
>>
>> _______________________________________________
>> virt-tools-list mailing list
>> [email protected]
>> https://www.redhat.com/mailman/listinfo/virt-tools-list
--
Eduardo de Barros Lima (Etrunko)
Software Engineer - RedHat
[email protected]
signature.asc
Description: OpenPGP digital signature
_______________________________________________ virt-tools-list mailing list [email protected] https://www.redhat.com/mailman/listinfo/virt-tools-list
