This is only used for propagatong signal changes for now.
void (*scan_finished) (GSupplicantInterface *interface);
void (*network_added) (GSupplicantNetwork *network);
void (*network_removed) (GSupplicantNetwork *network);
void (*scan_finished) (GSupplicantInterface *interface);
void (*network_added) (GSupplicantNetwork *network);
void (*network_removed) (GSupplicantNetwork *network);
+ void (*network_changed) (GSupplicantNetwork *network,
+ const char *property);
void (*debug) (const char *str);
};
void (*debug) (const char *str);
};
callbacks_pointer->network_removed(network);
}
callbacks_pointer->network_removed(network);
}
+static void callback_network_changed(GSupplicantNetwork *network,
+ const char *property)
+{
+ if (callbacks_pointer == NULL)
+ return;
+
+ if (callbacks_pointer->network_changed == NULL)
+ return;
+
+ callbacks_pointer->network_changed(network, property);
+}
+
static void remove_interface(gpointer data)
{
GSupplicantInterface *interface = data;
static void remove_interface(gpointer data)
{
GSupplicantInterface *interface = data;
if (bss->signal > network->signal) {
network->signal = bss->signal;
network->best_bss = bss;
if (bss->signal > network->signal) {
network->signal = bss->signal;
network->best_bss = bss;
+ callback_network_changed(network, "Signal");
}
g_hash_table_replace(interface->bss_mapping, bss->path, network);
}
g_hash_table_replace(interface->bss_mapping, bss->path, network);
}
SUPPLICANT_DBG("New network signal for %s %d dBm", network->ssid, network->signal);
}
SUPPLICANT_DBG("New network signal for %s %d dBm", network->ssid, network->signal);
+
+ callback_network_changed(network, "Signal");
}
static void wps_credentials(const char *key, DBusMessageIter *iter,
}
static void wps_credentials(const char *key, DBusMessageIter *iter,