Diff between 148a5a8e208c1c866dbcd590d78f582a5a336288 and 11f685d4e982c5fcaa16e5c49380ad6124082364

Changed Files

File Additions Deletions Status
src/log.c +12 -5 modified

Full Patch

diff --git a/src/log.c b/src/log.c
index e12a930..f5a281a 100644
--- a/src/log.c
+++ b/src/log.c
@@ -47,6 +47,7 @@ struct log_hdr {
 	uint16_t index;
 	uint16_t len;
 	uint8_t  priority;
+	uint8_t  ident_len;
 } __attribute__((packed));
 
 static int logging_fd = -1;
@@ -86,9 +87,11 @@ static void logging_close(void)
 
 static void logging_log(int priority, const char *format, va_list ap)
 {
+	char *ident = "bluetoothd";
+	uint8_t ident_len = strlen(ident) + 1;
 	struct log_hdr hdr;
 	struct msghdr msg;
-	struct iovec iov[2];
+	struct iovec iov[3];
 	uint16_t len;
 	char *str;
 
@@ -99,18 +102,22 @@ static void logging_log(int priority, const char *format, va_list ap)
 
 	hdr.opcode = cpu_to_le16(0x0000);
 	hdr.index = cpu_to_le16(0xffff);
-	hdr.len = cpu_to_le16(len + 1);
+	hdr.len = cpu_to_le16(2 + ident_len + len);
 	hdr.priority = priority;
+	hdr.ident_len = ident_len;
 
 	iov[0].iov_base = &hdr;
 	iov[0].iov_len = sizeof(hdr);
 
-	iov[1].iov_base = str;
-	iov[1].iov_len = len;
+	iov[1].iov_base = ident;
+	iov[1].iov_len = ident_len;
+
+	iov[2].iov_base = str;
+	iov[2].iov_len = len;
 
 	memset(&msg, 0, sizeof(msg));
 	msg.msg_iov = iov;
-	msg.msg_iovlen = 2;
+	msg.msg_iovlen = 3;
 
 	if (sendmsg(logging_fd, &msg, 0) < 0) {
 		close(logging_fd);