summaryrefslogtreecommitdiff
path: root/src/manager.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2010-05-13 14:24:32 +0200
committerMarcel Holtmann <marcel@holtmann.org>2010-05-13 14:24:32 +0200
commit83a6632160cc24de958206623264772e532b254a (patch)
tree28dc6d47e7fbdd1ab7295a205c4897ced4c8fe6b /src/manager.c
parent4b4d04c50a07db309b03e8000a4a165a102c97d6 (diff)
downloadconnman-83a6632160cc24de958206623264772e532b254a.tar.gz
connman-83a6632160cc24de958206623264772e532b254a.tar.bz2
connman-83a6632160cc24de958206623264772e532b254a.zip
Add initial support for LookupService helper method
Diffstat (limited to 'src/manager.c')
-rw-r--r--src/manager.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/manager.c b/src/manager.c
index 6561a78c..b806ba29 100644
--- a/src/manager.c
+++ b/src/manager.c
@@ -413,6 +413,25 @@ static DBusMessage *disable_technology(DBusConnection *conn,
return NULL;
}
+static DBusMessage *lookup_service(DBusConnection *conn,
+ DBusMessage *msg, void *data)
+{
+ const char *pattern, *path;
+ int err;
+
+ DBG("conn %p", conn);
+
+ dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &pattern,
+ DBUS_TYPE_INVALID);
+
+ err = __connman_service_lookup(pattern, &path);
+ if (err < 0)
+ return __connman_error_failed(msg, -err);
+
+ return g_dbus_create_reply(msg, DBUS_TYPE_STRING, &path,
+ DBUS_TYPE_INVALID);
+}
+
static DBusMessage *connect_service(DBusConnection *conn,
DBusMessage *msg, void *data)
{
@@ -596,6 +615,7 @@ static GDBusMethodTable manager_methods[] = {
G_DBUS_METHOD_FLAG_ASYNC },
{ "DisableTechnology", "s", "", disable_technology,
G_DBUS_METHOD_FLAG_ASYNC },
+ { "LookupService", "s", "o", lookup_service, },
{ "ConnectService", "a{sv}", "o", connect_service,
G_DBUS_METHOD_FLAG_ASYNC },
{ "ConnectProvider", "a{sv}", "o", connect_provider,