summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/session.h2
-rw-r--r--plugins/session_policy.c12
-rw-r--r--src/session.c21
3 files changed, 24 insertions, 11 deletions
diff --git a/include/session.h b/include/session.h
index b8f7a519..63e077be 100644
--- a/include/session.h
+++ b/include/session.h
@@ -79,6 +79,8 @@ void connman_session_policy_unregister(struct connman_session_policy *config);
GSList *connman_session_allowed_bearers_any(void);
void connman_session_free_bearers(GSList *bearers);
+struct connman_session_config *connman_session_create_default_config(void);
+
#ifdef __cplusplus
}
#endif
diff --git a/plugins/session_policy.c b/plugins/session_policy.c
index 5c2c418f..98d984ac 100644
--- a/plugins/session_policy.c
+++ b/plugins/session_policy.c
@@ -42,20 +42,10 @@ static struct connman_session_config *policy_create(
DBG("session %p", session);
- config = g_try_new0(struct connman_session_config, 1);
+ config = connman_session_create_default_config();
if (config == NULL)
return NULL;
- config->priority = FALSE;
- config->roaming_policy = CONNMAN_SESSION_ROAMING_POLICY_DEFAULT;
- config->type = CONNMAN_SESSION_TYPE_ANY;
- config->ecall = FALSE;
- config->allowed_bearers = connman_session_allowed_bearers_any();
- if (config->allowed_bearers == NULL) {
- g_free(config);
- return NULL;
- }
-
g_hash_table_replace(config_hash, session, config);
return config;
diff --git a/src/session.c b/src/session.c
index fe1f5033..de25f789 100644
--- a/src/session.c
+++ b/src/session.c
@@ -326,6 +326,27 @@ void connman_session_policy_unregister(struct connman_session_policy *policy)
remove_policy(policy);
}
+struct connman_session_config *connman_session_create_default_config(void)
+{
+ struct connman_session_config *config;
+
+ config = g_try_new0(struct connman_session_config, 1);
+ if (config == NULL)
+ return NULL;
+
+ config->priority = FALSE;
+ config->roaming_policy = CONNMAN_SESSION_ROAMING_POLICY_DEFAULT;
+ config->type = CONNMAN_SESSION_TYPE_ANY;
+ config->ecall = FALSE;
+ config->allowed_bearers = connman_session_allowed_bearers_any();
+ if (config->allowed_bearers == NULL) {
+ g_free(config);
+ return NULL;
+ }
+
+ return config;
+}
+
static enum connman_session_type apply_policy_on_type(
enum connman_session_type policy,
enum connman_session_type type)