On Mon, Mar 16, 2015 at 11:29 AM, Pavel Grunt <pgrunt@xxxxxxxxxx> wrote: > Resolves part of https://bugzilla.redhat.com/show_bug.cgi?id=1201604 I´d use: Related to https://bugzilla. .... > --- > src/remote-viewer.c | 18 ++++++++++++++++-- > 1 file changed, 16 insertions(+), 2 deletions(-) > > diff --git a/src/remote-viewer.c b/src/remote-viewer.c > index 4541515..0c2956f 100644 > --- a/src/remote-viewer.c > +++ b/src/remote-viewer.c > @@ -703,6 +703,11 @@ parse_ovirt_uri(const gchar *uri_str, char **rest_uri, char **name, char **usern > return TRUE; > } > > +typedef struct { > + VirtViewerApp *app; > + gboolean dialog_cancelled; > +} AuthenticateInfo; > + > static gboolean > authenticate_cb(RestProxy *proxy, G_GNUC_UNUSED RestProxyAuth *auth, > G_GNUC_UNUSED gboolean retrying, gpointer user_data) > @@ -711,6 +716,7 @@ authenticate_cb(RestProxy *proxy, G_GNUC_UNUSED RestProxyAuth *auth, > gchar *password = NULL; > VirtViewerWindow *window; > gboolean success = FALSE; > + AuthenticateInfo *authenticate_info = (AuthenticateInfo *) user_data; You don't have to cast user_data here (it is a gpointer,which is a void *) > > g_object_get(proxy, > "username", &username, > @@ -719,11 +725,12 @@ authenticate_cb(RestProxy *proxy, G_GNUC_UNUSED RestProxyAuth *auth, > if (username == NULL || *username == '\0') > username = g_strdup(g_get_user_name()); > > - window = virt_viewer_app_get_main_window(VIRT_VIEWER_APP(user_data)); > + window = virt_viewer_app_get_main_window(VIRT_VIEWER_APP(authenticate_info->app)); > success = virt_viewer_auth_collect_credentials(virt_viewer_window_get_window(window), > "oVirt", > NULL, > &username, &password); > + authenticate_info->dialog_cancelled = !success; > if (success) { > g_object_set(G_OBJECT(proxy), > "username", username, > @@ -843,6 +850,9 @@ create_ovirt_session(VirtViewerApp *app, const char *uri, GError **err) > gchar *ticket = NULL; > gchar *host_subject = NULL; > gchar *guid = NULL; > + AuthenticateInfo authenticate_info = { > + .app = app, > + }; I know that the "dialog_cancelled" value will be set inside the callback. Even though, I'd prefer to have it initialized here. > > g_return_val_if_fail(VIRT_VIEWER_IS_APP(app), FALSE); > > @@ -858,9 +868,13 @@ create_ovirt_session(VirtViewerApp *app, const char *uri, GError **err) > NULL); > ovirt_set_proxy_options(proxy); > g_signal_connect(G_OBJECT(proxy), "authenticate", > - G_CALLBACK(authenticate_cb), app); > + G_CALLBACK(authenticate_cb), &authenticate_info); > > api = ovirt_proxy_fetch_api(proxy, &error); > + if (authenticate_info.dialog_cancelled) { > + g_clear_error(&error); > + goto error; > + } > if (error != NULL) { > g_debug("failed to get oVirt 'api' collection: %s", error->message); > goto error; > -- > 2.3.2 > > _______________________________________________ > virt-tools-list mailing list > virt-tools-list@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/virt-tools-list -- Fabiano Fidêncio _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list