diff --git a/src/log.c b/src/log.c
index e12a930..f5a281a 100644
--- a/src/log.c
+++ b/src/log.c
uint16_t index;
uint16_t len;
uint8_t priority;
+ uint8_t ident_len;
} __attribute__((packed));
static int logging_fd = -1;
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;
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);