connman_bool_t __connman_network_get_weakness(struct connman_network *network);
int __connman_profile_add_network(struct connman_network *network);
+int __connman_profile_update_network(struct connman_network *network);
int __connman_profile_remove_network(struct connman_network *network);
#include <connman/service.h>
struct connman_service *__connman_service_lookup_from_network(struct connman_network *network);
struct connman_service *__connman_service_create_from_network(struct connman_network *network);
+void __connman_service_update_from_network(struct connman_network *network);
void __connman_service_remove_from_network(struct connman_network *network);
unsigned int __connman_service_get_order(struct connman_service *service);
if (network->secondary == TRUE)
return;
- if (g_strcmp0(network->group, group) == 0)
- return;
-
switch (network->type) {
case CONNMAN_NETWORK_TYPE_UNKNOWN:
case CONNMAN_NETWORK_TYPE_VENDOR:
break;
}
+ if (g_strcmp0(network->group, group) == 0) {
+ if (group != NULL)
+ __connman_profile_update_network(network);
+ return;
+ }
+
if (network->group != NULL) {
__connman_profile_remove_network(network);
return 0;
}
+int __connman_profile_update_network(struct connman_network *network)
+{
+ DBG("network %p", network);
+
+ __connman_service_update_from_network(network);
+
+ return 0;
+}
+
int __connman_profile_remove_network(struct connman_network *network)
{
DBG("network %p", network);
return service;
}
+void __connman_service_update_from_network(struct connman_network *network)
+{
+ struct connman_service *service;
+ connman_uint8_t strength;
+
+ service = __connman_service_lookup_from_network(network);
+ if (service == NULL)
+ return;
+
+ if (service->network == NULL)
+ return;
+
+ strength = connman_network_get_uint8(service->network, "Strength");
+ if (strength == service->strength)
+ return;
+
+ service->strength = strength;
+
+ strength_changed(service);
+}
+
void __connman_service_remove_from_network(struct connman_network *network)
{
struct connman_service *service;