Blob Blame History Raw
diff -up NetworkManager-0.7.996/src/nm-device-ethernet.c.foo NetworkManager-0.7.996/src/nm-device-ethernet.c
--- NetworkManager-0.7.996/src/nm-device-ethernet.c.foo	2009-11-04 14:14:04.101920888 -0800
+++ NetworkManager-0.7.996/src/nm-device-ethernet.c	2009-11-04 14:16:34.668863437 -0800
@@ -621,6 +621,9 @@ real_get_best_auto_connection (NMDevice 
 	return NULL;
 }
 
+#define IS_ACTIVATING_STATE(state) \
+	(state > NM_DEVICE_STATE_DISCONNECTED && state < NM_DEVICE_STATE_ACTIVATED)
+
 static void
 real_connection_secrets_updated (NMDevice *dev,
                                  NMConnection *connection,
@@ -632,8 +635,7 @@ real_connection_secrets_updated (NMDevic
 	gboolean valid = FALSE;
 	GSList *iter;
 
-	if (nm_device_get_state (dev) != NM_DEVICE_STATE_NEED_AUTH)
-		return;
+	g_return_if_fail (IS_ACTIVATING_STATE (nm_device_get_state (dev)));
 
 	/* PPPoE? */
 	if (caller == SECRETS_CALLER_PPP) {
@@ -663,6 +665,7 @@ real_connection_secrets_updated (NMDevic
 
 	/* Only caller could be ourselves for 802.1x */
 	g_return_if_fail (caller == SECRETS_CALLER_ETHERNET);
+	g_return_if_fail (nm_device_get_state (dev) == NM_DEVICE_STATE_NEED_AUTH);
 
 	for (iter = updated_settings; iter; iter = g_slist_next (iter)) {
 		const char *setting_name = (const char *) iter->data;