The network_probe() function will be called several times until it
creates successfuly the service object.
In the case of the oFono plugin, the connman_device_add_network() is
called after the driver has been registered to the network. Therefore
the network->driver has been set but no device yet.
__connman_service_create_from_network() returns -EINVAL because
the device is not yet set.
The next call on network_probe() will bail out on 'if (network->driver
!= NULL) return -EALREADY;' so we have to reset it in the first round.
Fixes BMC #21705
case CONNMAN_NETWORK_TYPE_WIFI:
case CONNMAN_NETWORK_TYPE_WIMAX:
network->driver = driver;
- if (__connman_service_create_from_network(network) == NULL)
+ if (__connman_service_create_from_network(network) == NULL) {
+ network->driver = NULL;
return -EINVAL;
+ }
}
return 0;