From: Bjoern Thorwirth <external.bjoern.thorwirth(a)de.bosch.com>
Called when state of session changes.
diff --git a/include/session.h b/include/session.h
index 48f1510..25a5e58 100644
--- a/include/session.h
+++ b/include/session.h
@@ -55,6 +55,12 @@ enum connman_session_id_type {
CONNMAN_SESSION_ID_TYPE_LSM = 3,
};
+enum connman_session_state {
+ CONNMAN_SESSION_STATE_DISCONNECTED = 0,
+ CONNMAN_SESSION_STATE_CONNECTED = 1,
+ CONNMAN_SESSION_STATE_ONLINE = 2,
+};
+
struct connman_session;
struct connman_session_config {
@@ -85,6 +91,8 @@ struct connman_session_policy {
GSList *bearers);
bool (*allowed)(struct connman_session *session,
struct connman_service *service);
+ void (*update_session_state)(struct connman_session* session,
+ enum connman_session_state state);
};
int connman_session_policy_register(struct connman_session_policy *config);
diff --git a/src/session.c b/src/session.c
index b77d9dc..0c8c0bb 100644
--- a/src/session.c
+++ b/src/session.c
@@ -38,12 +38,6 @@ static GHashTable *service_hash;
static struct connman_session *ecall_session;
static uint32_t session_mark = 256;
-enum connman_session_state {
- CONNMAN_SESSION_STATE_DISCONNECTED = 0,
- CONNMAN_SESSION_STATE_CONNECTED = 1,
- CONNMAN_SESSION_STATE_ONLINE = 2,
-};
-
struct session_info {
struct connman_session_config config;
enum connman_session_state state;
@@ -1691,6 +1685,10 @@ static void update_session_state(struct connman_session *session)
del_nat_rules(session);
update_routing_table(session);
add_nat_rules(session);
+
+ if (policy && policy->update_session_state)
+ policy->update_session_state(session, state);
+
session_notify(session);
}
diff --git a/tools/session-test.h b/tools/session-test.h
index 5e6d196..8512933 100644
--- a/tools/session-test.h
+++ b/tools/session-test.h
@@ -68,12 +68,6 @@ void util_session_cleanup(struct test_session *session);
typedef void (* notify_func_t) (struct test_session *session);
-enum connman_session_state {
- CONNMAN_SESSION_STATE_DISCONNECTED = 0,
- CONNMAN_SESSION_STATE_CONNECTED = 1,
- CONNMAN_SESSION_STATE_ONLINE = 2,
-};
-
struct test_session_info {
enum connman_session_state state;
char *name;
--
2.7.4
Show replies by date
Hi Bjoern,
On 04/25/2017 11:45 AM, sutar.mounesh(a)gmail.com wrote:
From: Bjoern Thorwirth
<external.bjoern.thorwirth(a)de.bosch.com>
Called when state of session changes.
Patch applied.
Thanks,
Daniel