static void btnetwork_property_change(GDBusProxy *proxy, const char *name, DBusMessageIter *iter, void *user_data) { struct bluetooth_pan *pan; dbus_bool_t connected; bool proxy_connected, network_connected; if (strcmp(name, "Connected") != 0) return; pan = g_hash_table_lookup(networks, g_dbus_proxy_get_path(proxy)); if (!pan || !pan->network) return; dbus_message_iter_get_basic(iter, &connected); proxy_connected = connected; network_connected = connman_network_get_connected(pan->network); DBG("network %p network connected %d proxy connected %d", pan->network, network_connected, proxy_connected); if (network_connected != proxy_connected) connman_network_set_connected(pan->network, proxy_connected); }
static void mark_network_unavailable(gpointer key, gpointer value, gpointer user_data) { struct connman_network *network = value; if (connman_network_get_connected(network) == TRUE) return; connman_network_set_available(network, FALSE); }
static void mark_network_unavailable(gpointer key, gpointer value, gpointer user_data) { struct connman_network *network = value; if (connman_network_get_connected(network) || connman_network_get_connecting(network)) return; connman_network_set_available(network, false); }
static gboolean remove_unavailable_network(gpointer key, gpointer value, gpointer user_data) { struct connman_network *network = value; if (connman_network_get_connected(network) == TRUE) return FALSE; if (connman_network_get_available(network) == TRUE) return FALSE; return TRUE; }