DBUS_TYPE_STRING, "IPv4.Broadcast" },
{ CONNMAN_PROPERTY_ID_IPV4_NAMESERVER,
DBUS_TYPE_STRING, "IPv4.Nameserver" },
-
- { CONNMAN_PROPERTY_ID_WIFI_SECURITY,
- DBUS_TYPE_STRING, "WiFi.Security" },
- { CONNMAN_PROPERTY_ID_WIFI_PASSPHRASE,
- DBUS_TYPE_STRING, "WiFi.Passphrase" },
-
{ }
};
g_free(element->ipv4.broadcast);
g_free(element->ipv4.nameserver);
g_free(element->devname);
- g_free(element->devpath);
g_free(element->path);
g_free(element->name);
g_free(element);
element->ipv4.nameserver = g_strdup(*((const char **) value));
__connman_element_unlock(element);
break;
- case CONNMAN_PROPERTY_ID_WIFI_SECURITY:
- __connman_element_lock(element);
- g_free(element->wifi.security);
- element->wifi.security = g_strdup(*((const char **) value));
- __connman_element_unlock(element);
- break;
- case CONNMAN_PROPERTY_ID_WIFI_PASSPHRASE:
- __connman_element_lock(element);
- g_free(element->wifi.passphrase);
- element->wifi.passphrase = g_strdup(*((const char **) value));
- __connman_element_unlock(element);
- break;
default:
return -EINVAL;
}
*((char **) value) = element->ipv4.nameserver;
__connman_element_unlock(element);
break;
- case CONNMAN_PROPERTY_ID_WIFI_SECURITY:
- if (element->wifi.security == NULL)
- return connman_element_get_value(element->parent,
- id, value);
- __connman_element_lock(element);
- *((char **) value) = element->wifi.security;
- __connman_element_unlock(element);
- break;
- case CONNMAN_PROPERTY_ID_WIFI_PASSPHRASE:
- if (element->wifi.passphrase == NULL)
- return connman_element_get_value(element->parent,
- id, value);
- __connman_element_lock(element);
- *((char **) value) = element->wifi.passphrase;
- __connman_element_unlock(element);
- break;
default:
return -EINVAL;
}
*((char **) value) = property->value;
found = TRUE;
break;
+ case DBUS_TYPE_BYTE:
+ memcpy(value, property->value, 1);
+ found = TRUE;
+ break;
}
break;
}
__connman_element_unlock(element);
+ if (found == FALSE && element->parent != NULL)
+ return connman_element_get_static_property(element->parent,
+ name, value);
+
return found;
}
g_dbus_send_message(conn, signal);
}
-static void set_signal_strength(struct connman_element *connection)
-{
- struct connman_element *element = connection;
-
- while (element != NULL) {
- if (element->type == CONNMAN_ELEMENT_TYPE_NETWORK) {
- connection->strength = element->strength;
- break;
- }
-
- element = element->parent;
- }
-}
-
static void probe_element(struct connman_element *element)
{
GSList *list;
g_node_append_data(node, element);
if (element->type == CONNMAN_ELEMENT_TYPE_CONNECTION) {
- set_signal_strength(element);
emit_connections_signal(connection);
emit_state_change(connection, "online");
}
static gboolean update_element(GNode *node, gpointer user_data)
{
struct connman_element *element = node->data;
- struct connman_element *root = user_data;
DBG("element %p name %s", element, element->name);
if (element->driver && element->driver->update)
element->driver->update(element);
- if (element->type == CONNMAN_ELEMENT_TYPE_CONNECTION &&
- root->type == CONNMAN_ELEMENT_TYPE_NETWORK) {
- if (element->strength != root->strength)
- element->strength = root->strength;
- }
-
emit_element_signal(connection, "ElementUpdated", element);
return FALSE;
started = TRUE;
+ __connman_storage_init_device();
+
__connman_connection_init();
__connman_ipv4_init();
__connman_detect_init();