Re: [virt-tools-list] [PATCH virt-viewer v2] remote-viewer: Pass guri to remote_viewer_session_connected

2017-11-14 Thread Eduardo Lima (Etrunko)
On 14/11/17 14:38, Victor Toso wrote:
> Hi,
> 
> On Tue, Nov 14, 2017 at 02:14:25PM -0200, Eduardo Lima (Etrunko) wrote:
>> On 14/11/17 13:47, Victor Toso wrote:
>>> On Thu, Oct 26, 2017 at 03:39:31PM +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) 
 ---
  src/remote-viewer.c | 18 +-
  1 file changed, 9 insertions(+), 9 deletions(-)

 diff --git a/src/remote-viewer.c b/src/remote-viewer.c
 index fb5376c..58dc04f 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)
  {
 @@ -1075,17 +1071,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);
>>>
>>> Could you also change the if (uri == NULL) in above function to a
>>> g_return_if_fail(uri != NULL) as it should not happen anymore...
>>>
>>
>> I don't really get what you mean here, as I explained on the commit
>> message, uri *can* be NULL. In this case, we will use the guri, which is
>> now passed as user_data argument to the callback.
> 
> You are right, you just did not get what I mean here.
> 
> If virt_viewer_session_get_uri() returns NULL we use the guri which
> *cannot be null* - That means that we can change the check in
> remote_viewer_recent_add() from if (uri == NULL) return; to
> g_return_if_fail() instead.
> 
> This is more like a suggestion. Another possibility is just to remove
> the check (in remote_viewer_recent_add()) entirely) as we should have
> critical messages elsewhere if guri is null.
> 

Now I got it, you were talking about the other function, but commented
on this block of code in remote_viewer_session_connected(), thus my
confusion. I will change the check as suggested.

Thanks, Eduardo.

> Cheers,
> 
>>
>>> Either way,
>>> Reviewed-by: Victor Toso 
>>>
  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 +1093,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 +1201,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
 virt-tools-list@redhat.com
 https://www.redhat.com/mailman/listinfo/virt-tools-list
>>
>>
>> -- 
>> Eduardo de Barros Lima (E

Re: [virt-tools-list] [PATCH virt-viewer v2] remote-viewer: Pass guri to remote_viewer_session_connected

2017-11-14 Thread Victor Toso
Hi,

On Tue, Nov 14, 2017 at 02:14:25PM -0200, Eduardo Lima (Etrunko) wrote:
> On 14/11/17 13:47, Victor Toso wrote:
> > On Thu, Oct 26, 2017 at 03:39:31PM +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) 
> >> ---
> >>  src/remote-viewer.c | 18 +-
> >>  1 file changed, 9 insertions(+), 9 deletions(-)
> >>
> >> diff --git a/src/remote-viewer.c b/src/remote-viewer.c
> >> index fb5376c..58dc04f 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)
> >>  {
> >> @@ -1075,17 +1071,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);
> > 
> > Could you also change the if (uri == NULL) in above function to a
> > g_return_if_fail(uri != NULL) as it should not happen anymore...
> > 
> 
> I don't really get what you mean here, as I explained on the commit
> message, uri *can* be NULL. In this case, we will use the guri, which is
> now passed as user_data argument to the callback.

You are right, you just did not get what I mean here.

If virt_viewer_session_get_uri() returns NULL we use the guri which
*cannot be null* - That means that we can change the check in
remote_viewer_recent_add() from if (uri == NULL) return; to
g_return_if_fail() instead.

This is more like a suggestion. Another possibility is just to remove
the check (in remote_viewer_recent_add()) entirely) as we should have
critical messages elsewhere if guri is null.

Cheers,

> 
> > Either way,
> > Reviewed-by: Victor Toso 
> > 
> >>  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 +1093,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 +1201,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
> >> virt-tools-list@redhat.com
> >> https://www.redhat.com/mailman/listinfo/virt-tools-list
> 
> 
> -- 
> Eduardo de Barros Lima (Etrunko)
> Software Engineer - RedHat
> etru...@redhat.com


signature.asc
Description: PGP signature
___
virt-tools-list mailing list
virt-tools-list@redhat.com
https://www.redhat.com/mailman/listinfo/virt-tools-list

Re: [virt-tools-list] [PATCH virt-viewer v2] remote-viewer: Pass guri to remote_viewer_session_connected

2017-11-14 Thread Eduardo Lima (Etrunko)
On 14/11/17 13:47, Victor Toso wrote:
> On Thu, Oct 26, 2017 at 03:39:31PM +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) 
>> ---
>>  src/remote-viewer.c | 18 +-
>>  1 file changed, 9 insertions(+), 9 deletions(-)
>>
>> diff --git a/src/remote-viewer.c b/src/remote-viewer.c
>> index fb5376c..58dc04f 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)
>>  {
>> @@ -1075,17 +1071,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);
> 
> Could you also change the if (uri == NULL) in above function to a
> g_return_if_fail(uri != NULL) as it should not happen anymore...
> 

I don't really get what you mean here, as I explained on the commit
message, uri *can* be NULL. In this case, we will use the guri, which is
now passed as user_data argument to the callback.

> Either way,
> Reviewed-by: Victor Toso 
> 
>>  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 +1093,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 +1201,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
>> virt-tools-list@redhat.com
>> https://www.redhat.com/mailman/listinfo/virt-tools-list


-- 
Eduardo de Barros Lima (Etrunko)
Software Engineer - RedHat
etru...@redhat.com

___
virt-tools-list mailing list
virt-tools-list@redhat.com
https://www.redhat.com/mailman/listinfo/virt-tools-list


Re: [virt-tools-list] [PATCH virt-viewer v2] remote-viewer: Pass guri to remote_viewer_session_connected

2017-11-14 Thread Victor Toso
On Thu, Oct 26, 2017 at 03:39:31PM +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) 
> ---
>  src/remote-viewer.c | 18 +-
>  1 file changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/src/remote-viewer.c b/src/remote-viewer.c
> index fb5376c..58dc04f 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)
>  {
> @@ -1075,17 +1071,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);

Could you also change the if (uri == NULL) in above function to a
g_return_if_fail(uri != NULL) as it should not happen anymore...

Either way,
Reviewed-by: Victor Toso 

>  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 +1093,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 +1201,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
> virt-tools-list@redhat.com
> https://www.redhat.com/mailman/listinfo/virt-tools-list


signature.asc
Description: PGP signature
___
virt-tools-list mailing list
virt-tools-list@redhat.com
https://www.redhat.com/mailman/listinfo/virt-tools-list