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;