session: Add destroy function for plugins
authorDaniel Wagner <daniel.wagner@bmw-carit.de>
Wed, 14 Nov 2012 13:48:57 +0000 (14:48 +0100)
committerDaniel Wagner <daniel.wagner@bmw-carit.de>
Fri, 23 Nov 2012 12:47:24 +0000 (13:47 +0100)
The error handling can get easily get pretty hairy, e.g.
reallocating memory for allowed_bearers. If we hit this situation
we allow the plugin to shutdown the session. That is consistent
with what we do when there is a problem while creating a new
session.

include/session.h
src/session.c

index f75b751..c56c73b 100644 (file)
@@ -76,6 +76,7 @@ int connman_session_policy_register(struct connman_session_policy *config);
 void connman_session_policy_unregister(struct connman_session_policy *config);
 
 int connman_session_config_update(struct connman_session *session);
+void connman_session_destroy(struct connman_session *session);
 
 struct connman_session_config *connman_session_create_default_config(void);
 
index 68e3562..1287d19 100644 (file)
@@ -1814,6 +1814,13 @@ err:
        return err;
 }
 
+void connman_session_destroy(struct connman_session *session)
+{
+       DBG("session %p", session);
+
+       session_disconnect(session);
+}
+
 int __connman_session_destroy(DBusMessage *msg)
 {
        const char *owner, *session_path;
@@ -1835,7 +1842,7 @@ int __connman_session_destroy(DBusMessage *msg)
        if (g_strcmp0(owner, session->owner) != 0)
                return -EACCES;
 
-       session_disconnect(session);
+       connman_session_destroy(session);
 
        return 0;
 }