Blob Blame History Raw
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)