diff options
| -rw-r--r-- | common/dbus.c | 30 | ||||
| -rw-r--r-- | common/dbus.h | 3 | 
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__ */  | 
