Index: src/krb5-auth-dialog.c =================================================================== RCS file: /cvs/gnome/krb5-auth-dialog/src/krb5-auth-dialog.c,v retrieving revision 1.27 diff -u -d -p -U10 -r1.27 krb5-auth-dialog.c --- src/krb5-auth-dialog.c 18 Mar 2006 00:21:08 -0000 1.27 +++ src/krb5-auth-dialog.c 24 Jul 2006 14:52:49 -0000 @@ -277,20 +277,21 @@ auth_dialog_prompter (krb5_context ctx, password = gtk_entry_get_text (GTK_ENTRY (entry)); password_len = strlen (password); errcode = 0; break; case GTK_RESPONSE_CANCEL: canceled = TRUE; break; case GTK_RESPONSE_DELETE_EVENT: break; default: + g_warning ("Unknown Response: %d", response); g_assert_not_reached (); } g_source_remove (source_id); prompts[i].reply->data = (char *) password; prompts[i].reply->length = password_len; } /* Reset this, so we know the next time we get a TRUE value, it is accurate. */ @@ -368,21 +369,25 @@ credentials_expiring (gpointer *data) gboolean give_up; gboolean renewable; if (credentials_expiring_real (&renewable) && is_online) { give_up = canceled && (creds_expiry == canceled_creds_expiry); if (!give_up) { do { retval = grab_credentials (renewable); give_up = canceled && (creds_expiry == canceled_creds_expiry); - } while ((retval != 0) && !give_up); + } while ((retval != 0) && + (retval != KRB5_REALM_CANT_RESOLVE) && + (retval != KRB5_KDC_UNREACH) && + invalid_password && + !give_up); } } return TRUE; } static void set_options_using_creds(krb5_context context, krb5_creds *creds, krb5_get_init_creds_opt *opts)