void __connman_network_set_device(struct connman_network *network,
struct connman_device *device);
+connman_bool_t __connman_network_has_driver(struct connman_network *network);
+
#include <connman/rtnl.h>
int __connman_rtnl_init(void);
__connman_device_has_driver(element->device) == FALSE)
return FALSE;
+ if (filter->type == CONNMAN_ELEMENT_TYPE_NETWORK &&
+ __connman_network_has_driver(element->network) == FALSE)
+ return FALSE;
+
dbus_message_iter_append_basic(filter->iter,
DBUS_TYPE_OBJECT_PATH, &element->path);
struct connman_network_driver *driver;
void *driver_data;
+ connman_bool_t registered;
+
struct connman_device *device;
struct {
return -EIO;
}
+ network->registered = TRUE;
+
emit_networks_signal();
return 0;
static void unregister_interface(struct connman_element *element)
{
+ struct connman_network * network = element->network;
+
DBG("element %p name %s", element, element->name);
+ network->registered = FALSE;
+
emit_networks_signal();
g_dbus_unregister_interface(connection, element->path,
CONNMAN_NETWORK_INTERFACE);
}
+connman_bool_t __connman_network_has_driver(struct connman_network *network)
+{
+ if (network == NULL || network->driver == NULL)
+ return FALSE;
+
+ return network->registered;
+}
+
static GSList *driver_list = NULL;
static gint compare_priority(gconstpointer a, gconstpointer b)