It can happen that, after a unproper ConnMan exit, a device is still up. Once ConnMan is restarted cleanup_devices() will put this device down. But then, it will never set it up again.
04:08:45 connmand[254]: src/device.c:__connman_device_init() 04:08:45 connmand[254]: src/inet.c:__connman_inet_get_address_netmask() index 2 04:08:45 connmand[254]: src/device.c:cleanup_devices() cleaning up wlan0 index 2 (...) 04:08:45 connmand[254]: wlan0 {newlink} index 2 operstate 2 <DOWN> (...) 04:08:45 connmand[254]: plugins/wifi.c:wifi_newlink() index 2 flags 36866 change 0 04:08:45 connmand[254]: src/technology.c:__connman_technology_add_device() device 0x35e8a8 type WiFi 04:08:45 connmand[254]: src/technology.c:technology_get() type 3 04:08:45 connmand[254]: src/technology.c:technology_find() type 3 04:08:45 connmand[254]: src/device.c:__connman_device_enable() device 0x35e8a8 Reported by Richard Röjfors <richard.rojf...@gmail.com> --- src/device.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/device.c b/src/device.c index a97d790..1a5f0e6 100644 --- a/src/device.c +++ b/src/device.c @@ -185,6 +185,10 @@ int __connman_device_enable(struct connman_device *device) if (device->powered_pending == PENDING_NONE && device->powered) return -EALREADY; + err = connman_inet_ifup(device->index); + if (err < 0 && err != -EALREADY) + return err; + device->powered_pending = PENDING_ENABLE; err = device->driver->enable(device); -- 1.8.5.5 _______________________________________________ connman mailing list connman@connman.net https://lists.connman.net/mailman/listinfo/connman