summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorDaniel Wagner <daniel.wagner@bmw-carit.de>2012-10-31 10:33:31 +0100
committerPatrik Flykt <patrik.flykt@linux.intel.com>2012-11-05 14:43:33 +0200
commit571da6449e813c3cf1a3f9515818d69bbc2e264d (patch)
treedfdbeece268dd464411fa722ca41a4f3aef3f58b /plugins
parenta475f99d89f5f9615c31400f4a7126be871c3152 (diff)
downloadconnman-571da6449e813c3cf1a3f9515818d69bbc2e264d.tar.gz
connman-571da6449e813c3cf1a3f9515818d69bbc2e264d.tar.bz2
connman-571da6449e813c3cf1a3f9515818d69bbc2e264d.zip
session: Add callback to policy create()
Instead returning directly a config when create() is called in policy plugin, use a callback function for handing over a valid configuration from the plugin to the session core. This prepares support for asynchronous create call.
Diffstat (limited to 'plugins')
-rw-r--r--plugins/session_policy.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/plugins/session_policy.c b/plugins/session_policy.c
index 98d984ac..85929f96 100644
--- a/plugins/session_policy.c
+++ b/plugins/session_policy.c
@@ -35,20 +35,26 @@
static GHashTable *config_hash;
-static struct connman_session_config *policy_create(
- struct connman_session *session)
+static int policy_create(struct connman_session *session,
+ connman_session_config_cb callback,
+ void *user_data)
{
struct connman_session_config *config;
DBG("session %p", session);
+ if (callback == NULL)
+ return -EINVAL;
+
config = connman_session_create_default_config();
if (config == NULL)
- return NULL;
+ return -ENOMEM;
g_hash_table_replace(config_hash, session, config);
- return config;
+ (*callback)(session, config, user_data, 0);
+
+ return 0;
}
static void policy_destroy(struct connman_session *session)