summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Wagner <daniel.wagner@bmw-carit.de>2012-09-26 10:48:26 +0200
committerDaniel Wagner <daniel.wagner@bmw-carit.de>2012-09-27 10:28:28 +0200
commit131bf5b3228de622edc77568c8249141d5adf222 (patch)
treece72e7bdc47885a33496cc06fb6a4777c8af4cee
parent5b6b35cc5ab199938353c09be0f3455a4a5bd9b0 (diff)
downloadconnman-131bf5b3228de622edc77568c8249141d5adf222.tar.gz
connman-131bf5b3228de622edc77568c8249141d5adf222.tar.bz2
connman-131bf5b3228de622edc77568c8249141d5adf222.zip
session: Assign config plugin to session
Let's pick the first plugin. If needed we can add some more smart code later on.
-rw-r--r--src/session.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/session.c b/src/session.c
index 6e7ea4d8..134bf7a6 100644
--- a/src/session.c
+++ b/src/session.c
@@ -276,6 +276,24 @@ static int policy_get_string(struct connman_session *session, const char *id,
return (*session->policy->get_string)(id, key, val);
}
+static int assign_policy_plugin(struct connman_session *session)
+{
+ GSList *list;
+ struct connman_session_policy *policy;
+
+ if (session->policy != NULL)
+ return -EALREADY;
+
+ for (list = policy_list; list != NULL; list = list->next) {
+ policy = list->data;
+
+ session->policy = policy;
+ break;
+ }
+
+ return 0;
+}
+
static gint compare_priority(gconstpointer a, gconstpointer b)
{
const struct connman_session_policy *policy1 = a;
@@ -1583,6 +1601,8 @@ int __connman_session_create(DBusMessage *msg)
g_dbus_add_disconnect_watch(connection, session->owner,
owner_disconnect, session, NULL);
+ assign_policy_plugin(session);
+
policy_get_bool(session, owner, "Priority", &priority);
policy_get_bool(session, owner, "EmergencyCall", &ecall_app);
policy_get_string(session, owner, "RoamingPolicy", &roaming_policy_str);