GDBus: If an authentication method fail, don't give up, just try the next one

This problem was reported in bug 647602.

https://bugzilla.gnome.org/show_bug.cgi?id=647602

Signed-off-by: David Zeuthen <davidz@redhat.com>
This commit is contained in:
David Zeuthen 2011-04-13 18:40:47 -04:00
parent 3b997d92c1
commit e38ef14e8b

View File

@ -663,7 +663,8 @@ _g_dbus_auth_run_client (GDBusAuth *auth,
if (line == NULL)
goto out;
debug_print ("CLIENT: WaitingForReject, read '%s'", line);
foobar:
choose_mechanism:
if (!g_str_has_prefix (line, "REJECTED "))
{
g_set_error (error,
@ -739,7 +740,7 @@ _g_dbus_auth_run_client (GDBusAuth *auth,
}
else if (g_str_has_prefix (line, "REJECTED "))
{
goto foobar;
goto choose_mechanism;
}
else
{
@ -841,6 +842,13 @@ _g_dbus_auth_run_client (GDBusAuth *auth,
}
state = CLIENT_STATE_WAITING_FOR_OK;
}
else if (g_str_has_prefix (line, "REJECTED "))
{
/* could be the chosen authentication method just doesn't work. Try
* another one...
*/
goto choose_mechanism;
}
else
{
g_set_error (error,