summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2007-03-27 10:13:55 +0000
committerMarcel Holtmann <marcel@holtmann.org>2007-03-27 10:13:55 +0000
commitfe864ec0e6fe3e9be945cf1c02e5f343593c883f (patch)
treee1800679c20e6f8bef1a1c41f05c68da2ef8c4ce /common
parent0fb47243d42d7d945d78f468bc3c403ec79c2c2d (diff)
Add register_service() helper function
Diffstat (limited to 'common')
-rw-r--r--common/dbus.c30
-rw-r--r--common/dbus.h3
2 files changed, 33 insertions, 0 deletions
diff --git a/common/dbus.c b/common/dbus.c
index 6a7eeb0f..e4bcbba5 100644
--- a/common/dbus.c
+++ b/common/dbus.c
@@ -645,3 +645,33 @@ int set_nonblocking(int fd)
return 0;
}
+
+void register_service(DBusConnection *conn, const char *identifier,
+ const char *name, const char *description)
+{
+ DBusMessage *msg, *reply;
+
+ info("Registering service");
+
+ msg = dbus_message_new_method_call("org.bluez", "/org/bluez",
+ "org.bluez.Database", "RegisterService");
+ if (!msg) {
+ error("Can't create service register method");
+ return;
+ }
+
+ dbus_message_append_args(msg, DBUS_TYPE_STRING, &identifier,
+ DBUS_TYPE_STRING, &name,
+ DBUS_TYPE_STRING, &description, DBUS_TYPE_INVALID);
+
+ reply = dbus_connection_send_with_reply_and_block(conn, msg, -1, NULL);
+ if (!reply) {
+ error("Can't register service");
+ return;
+ }
+
+ dbus_message_unref(msg);
+ dbus_message_unref(reply);
+
+ dbus_connection_flush(conn);
+}
diff --git a/common/dbus.h b/common/dbus.h
index 4e4ed487..692db0ac 100644
--- a/common/dbus.h
+++ b/common/dbus.h
@@ -57,4 +57,7 @@ static inline DBusHandlerResult send_message_and_unref(DBusConnection *conn, DBu
int set_nonblocking(int fd);
+void register_service(DBusConnection *conn, const char *identifier,
+ const char *name, const char *description);
+
#endif /* __H_BLUEZ_DBUS_H__ */