diff options
author | Samuel Ortiz <sameo@linux.intel.com> | 2010-04-01 12:25:33 +0200 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2010-04-03 02:03:48 +0200 |
commit | d55c478a09cb438bdd7268effb75994b6abf885c (patch) | |
tree | 2a43a993dd5ab37218aa939b1bd07c51a8a9a1b8 /src/manager.c | |
parent | bb5932d21d06aa4e73d5a08c4122a025c1522da8 (diff) | |
download | connman-d55c478a09cb438bdd7268effb75994b6abf885c.tar.gz connman-d55c478a09cb438bdd7268effb75994b6abf885c.tar.bz2 connman-d55c478a09cb438bdd7268effb75994b6abf885c.zip |
Add session D-Bus manager API
Diffstat (limited to 'src/manager.c')
-rw-r--r-- | src/manager.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/manager.c b/src/manager.c index 141e9593..da0ee53d 100644 --- a/src/manager.c +++ b/src/manager.c @@ -538,6 +538,46 @@ static DBusMessage *unregister_counter(DBusConnection *conn, return g_dbus_create_reply(msg, DBUS_TYPE_INVALID); } +static DBusMessage *request_session(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + const char *bearer, *sender, *service_path; + struct connman_service *service; + + DBG("conn %p", conn); + + sender = dbus_message_get_sender(msg); + + dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &bearer, + DBUS_TYPE_INVALID); + + service = __connman_session_request(bearer, sender); + if (service == NULL) + return __connman_error_failed(msg, EINVAL); + + service_path = __connman_service_get_path(service); + + return g_dbus_create_reply(msg, DBUS_TYPE_OBJECT_PATH, &service_path, + DBUS_TYPE_INVALID); +} + +static DBusMessage *release_session(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + const char *sender; + int err; + + DBG("conn %p", conn); + + sender = dbus_message_get_sender(msg); + + err = __connman_session_release(sender); + if (err < 0) + return __connman_error_failed(msg, -err); + + return g_dbus_create_reply(msg, DBUS_TYPE_INVALID); +} + static GDBusMethodTable manager_methods[] = { { "GetProperties", "", "a{sv}", get_properties }, { "SetProperty", "sv", "", set_property }, @@ -558,6 +598,8 @@ static GDBusMethodTable manager_methods[] = { { "UnregisterAgent", "o", "", unregister_agent }, { "RegisterCounter", "ou", "", register_counter }, { "UnregisterCounter", "o", "", unregister_counter }, + { "RequestSession", "s", "o", request_session }, + { "ReleaseSession", "s", "", release_session }, { }, }; |