diff --git a/src/knownnetworks.c b/src/knownnetworks.c index b3916242..a5ad3f11 100644 --- a/src/knownnetworks.c +++ b/src/knownnetworks.c @@ -44,12 +44,9 @@ static struct l_queue *known_networks; static size_t num_known_hidden_networks; static struct l_fswatch *storage_dir_watch; -static int timespec_compare(const void *a, const void *b, void *user_data) +static int timespec_compare(const struct timespec *tsa, + const struct timespec *tsb) { - const struct network_info *ni_a = a; - const struct network_info *ni_b = b; - const struct timespec *tsa = &ni_a->connected_time; - const struct timespec *tsb = &ni_b->connected_time; if (tsa->tv_sec > tsb->tv_sec) return -1; @@ -66,6 +63,14 @@ static int timespec_compare(const void *a, const void *b, void *user_data) return 0; } +static int connected_time_compare(const void *a, const void *b, void *user_data) +{ + const struct network_info *ni_a = a; + const struct network_info *ni_b = b; + + return timespec_compare(&ni_a->connected_time, &ni_b->connected_time); +} + const char *known_network_get_path(const struct network_info *network) { static char path[256]; @@ -112,7 +117,7 @@ static void known_network_update(struct network_info *orig_network, else network = network_info_add_known(ssid, security); - if (timespec_compare(&network->connected_time, connected_time, NULL) && + if (timespec_compare(&network->connected_time, connected_time) && orig_network) { l_dbus_property_changed(dbus_get_bus(), known_network_get_path(network), @@ -120,7 +125,8 @@ static void known_network_update(struct network_info *orig_network, "LastConnectedTime"); l_queue_remove(known_networks, network); - l_queue_insert(known_networks, network, timespec_compare, NULL); + l_queue_insert(known_networks, network, connected_time_compare, + NULL); } memcpy(&network->connected_time, connected_time, @@ -145,7 +151,7 @@ static void known_network_update(struct network_info *orig_network, if (orig_network) return; - l_queue_insert(known_networks, network, timespec_compare, NULL); + l_queue_insert(known_networks, network, connected_time_compare, NULL); known_network_register_dbus(network); }