diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2009-12-20 10:08:43 -0800 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2009-12-20 10:08:43 -0800 |
commit | 823603b2e793a96c15b57dd4d93ed3c9c894619b (patch) | |
tree | 29ec9af520bdb0b0f0f01cac880463a8df9e6a2f | |
parent | cfc737cc8b047b133ff6f0caaac17f8dd4e1bf9f (diff) | |
download | connman-823603b2e793a96c15b57dd4d93ed3c9c894619b.tar.gz connman-823603b2e793a96c15b57dd4d93ed3c9c894619b.tar.bz2 connman-823603b2e793a96c15b57dd4d93ed3c9c894619b.zip |
Fix update of Ethernet address and MTU values
-rw-r--r-- | src/ipconfig.c | 10 | ||||
-rw-r--r-- | src/service.c | 12 |
2 files changed, 18 insertions, 4 deletions
diff --git a/src/ipconfig.c b/src/ipconfig.c index 1298a784..45764f58 100644 --- a/src/ipconfig.c +++ b/src/ipconfig.c @@ -331,6 +331,12 @@ void __connman_ipconfig_newlink(int index, unsigned short type, index, type, type2str(type)); update: + if (ipdevice->config != NULL) { + g_free(ipdevice->config->eth); + ipdevice->config->eth = g_strdup(address); + ipdevice->config->mtu = mtu; + } + if (flags == ipdevice->flags) return; @@ -379,10 +385,6 @@ update: if (index != ipconfig->index) continue; - g_free(ipconfig->eth); - ipconfig->eth = g_strdup(address); - ipconfig->mtu = mtu; - if (up == TRUE && ipconfig->ops->up) ipconfig->ops->up(ipconfig); if (lower_up == TRUE && ipconfig->ops->lower_up) diff --git a/src/service.c b/src/service.c index 7e513950..21aaba44 100644 --- a/src/service.c +++ b/src/service.c @@ -387,6 +387,18 @@ static void append_ethernet(DBusMessageIter *iter, void *user_data) { struct connman_service *service = user_data; + switch (service->state) { + case CONNMAN_SERVICE_STATE_UNKNOWN: + case CONNMAN_SERVICE_STATE_IDLE: + case CONNMAN_SERVICE_STATE_FAILURE: + case CONNMAN_SERVICE_STATE_DISCONNECT: + return; + case CONNMAN_SERVICE_STATE_ASSOCIATION: + case CONNMAN_SERVICE_STATE_CONFIGURATION: + case CONNMAN_SERVICE_STATE_READY: + break; + } + if (service->ipconfig != NULL) __connman_ipconfig_append_ethernet(service->ipconfig, iter); } |