From daddb941d574aa4fa058cff0e4ef9173d30ec28b Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Mon, 13 Aug 2012 12:46:37 +0200 Subject: [PATCH] dbusoob: Add support for Class in AddRemoteData Class received in AddRemoteData is stored for future use when device object is created. --- plugins/dbusoob.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/plugins/dbusoob.c b/plugins/dbusoob.c index 2ae80fa28..97de9c025 100644 --- a/plugins/dbusoob.c +++ b/plugins/dbusoob.c @@ -43,6 +43,7 @@ #include "event.h" #include "error.h" #include "oob.h" +#include "storage.h" #define OOB_INTERFACE "org.bluez.OutOfBand" @@ -55,6 +56,7 @@ struct oob_data { char *addr; uint8_t *hash; uint8_t *randomizer; + uint32_t class; }; static GSList *oob_requests = NULL; @@ -189,6 +191,12 @@ static gboolean parse_data(DBusMessageIter *data, struct oob_data *remote_data) if (size != 16) return FALSE; + } else if (strcasecmp(key, "Class") == 0) { + if (var != DBUS_TYPE_UINT32) + return FALSE; + + dbus_message_iter_get_basic(&value, + &remote_data->class); } dbus_message_iter_next(data); @@ -223,6 +231,13 @@ static gboolean store_data(struct btd_adapter *adapter, struct oob_data *data) return FALSE; } + if (data->class) { + bdaddr_t local; + adapter_get_address(adapter, &local); + + write_remote_class(&local, &bdaddr, data->class); + } + return TRUE; } -- 2.47.3