struct connman_session;
-/*
- * The session are identified through the pid is only a temporary solution
- */
struct connman_session_policy {
const char *name;
int priority;
- int (*get_bool) (const char *id, const char *key, connman_bool_t *val);
- int (*get_string) (const char *id, const char *key, char **val);
+ int (*get_bool) (struct connman_session *session,
+ const char *key, connman_bool_t *val);
+ int (*get_string) (struct connman_session *session,
+ const char *key, char **val);
};
int connman_session_policy_register(struct connman_session_policy *config);
void connman_session_policy_unregister(struct connman_session_policy *config);
-int connman_session_update_bool(const char *id, const char *key,
+int connman_session_update_bool(struct connman_session *session, const char *key,
connman_bool_t val);
-int connman_session_update_string(const char *id, const char *key,
+int connman_session_update_string(struct connman_session *session, const char *key,
const char *val);
#ifdef __cplusplus
#include <connman/log.h>
#include <connman/session.h>
-static int policy_get_bool(const char *id, const char *key, connman_bool_t *val)
+static int policy_get_bool(struct connman_session *session,
+ const char *key, connman_bool_t *val)
{
- DBG("id %s key %s", id, key);
+ DBG("sesion %p key %s", session, key);
if (g_str_equal(key, "Priority") == TRUE)
*val = FALSE;
return 0;
}
-static int policy_get_string(const char *id, const char *key, char **val)
+static int policy_get_string(struct connman_session *session,
+ const char *key, char **val)
{
- DBG("id %s key %s", id, key);
+ DBG("session %p key %s", session, key);
if (g_str_equal(key, "RoamingPolicy") == TRUE)
*val = "default";
return -EINVAL;
}
- return (*session->policy->get_bool)(id, key, val);
+ return (*session->policy->get_bool)(session, key, val);
}
static int policy_get_string(struct connman_session *session, const char *id,
return -EINVAL;
}
- return (*session->policy->get_string)(id, key, val);
+ return (*session->policy->get_string)(session, key, val);
}
static int assign_policy_plugin(struct connman_session *session)
return policy2->priority - policy1->priority;
}
-static struct connman_session *session_lookup_by_id(const char *id)
-{
- struct connman_session *session;
- GHashTableIter iter;
- gpointer key, value;
-
- DBG("id %s", id);
-
- g_hash_table_iter_init(&iter, session_hash);
-
- while (g_hash_table_iter_next(&iter, &key, &value) == TRUE) {
- session = value;
-
- if (g_strcmp0(session->owner, id) == FALSE)
- continue;
-
- return session;
- }
-
- DBG("No session found by id %s", id);
-
- return NULL;
-}
-
-int connman_session_update_bool(const char *id, const char *key,
+int connman_session_update_bool(struct connman_session *session, const char *key,
connman_bool_t val)
{
- struct connman_session *session;
struct session_info *info;
- session = session_lookup_by_id(id);
if (session == NULL)
return -EINVAL;
return -EINVAL;
}
-int connman_session_update_string(const char *id, const char *key,
+int connman_session_update_string(struct connman_session *session, const char *key,
const char *val)
{
- struct connman_session *session;
struct session_info *info;
- session = session_lookup_by_id(id);
if (session == NULL)
return -EINVAL;