Diff between ebaedcad5fddca4936022db57eee54a91cc5b49a and 4b98e3cfcb03790c9c452990b054868782b9481d

Changed Files

File Additions Deletions Status
src/eir.c +11 -0 modified
src/eir.h +3 -0 modified

Full Patch

diff --git a/src/eir.c b/src/eir.c
index aba0586..913a038 100644
--- a/src/eir.c
+++ b/src/eir.c
@@ -358,3 +358,14 @@ gboolean eir_has_data_type(uint8_t *data, size_t len, uint8_t type)
 
 	return FALSE;
 }
+
+size_t eir_append_data(uint8_t *eir, size_t eir_len, uint8_t type,
+						uint8_t *data, size_t data_len)
+{
+	eir[eir_len++] = sizeof(type) + data_len;
+	eir[eir_len++] = type;
+	memcpy(&eir[eir_len], data, data_len);
+	eir_len += data_len;
+
+	return eir_len;
+}
diff --git a/src/eir.h b/src/eir.h
index 4e6a05f..5d70f4d 100644
--- a/src/eir.h
+++ b/src/eir.h
@@ -55,3 +55,6 @@ void eir_create(const char *name, int8_t tx_power, uint16_t did_vendor,
 			GSList *uuids, uint8_t *data);
 
 gboolean eir_has_data_type(uint8_t *data, size_t len, uint8_t type);
+
+size_t eir_append_data(uint8_t *eir, size_t eir_len, uint8_t type,
+						uint8_t *data, size_t data_len);