session: Assign config plugin to session
authorDaniel Wagner <daniel.wagner@bmw-carit.de>
Wed, 26 Sep 2012 08:48:26 +0000 (10:48 +0200)
committerDaniel Wagner <daniel.wagner@bmw-carit.de>
Thu, 27 Sep 2012 08:28:28 +0000 (10:28 +0200)
Let's pick the first plugin. If needed we can add some more smart code
later on.

src/session.c

index 6e7ea4d..134bf7a 100644 (file)
@@ -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);