libei: log the error when writing a message

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Peter Hutterer 2020-09-24 10:14:41 +10:00
parent 8eb7dde2cf
commit 08da49debf

View file

@ -129,7 +129,7 @@ ei_proto_parse_message(struct brei_message *bmsg, size_t *consumed)
}
static inline void
log_wire_message(struct ei *ei, const ClientMessage *msg)
log_wire_message(struct ei *ei, const ClientMessage *msg, int error)
{
const char *message = NULL;
@ -152,7 +152,8 @@ log_wire_message(struct ei *ei, const ClientMessage *msg)
assert(!"Unimplemented message type");
break;
}
log_debug(ei, "sending wire message %s\n", message);
log_debug(ei, "sending wire message %s (%s)\n", message,
strerror(-error));
#undef MSG_STRING_CASE
}
@ -160,8 +161,6 @@ log_wire_message(struct ei *ei, const ClientMessage *msg)
static int
ei_proto_send_msg(struct ei *ei, const ClientMessage *msg)
{
log_wire_message(ei, msg);
size_t msglen = client_message__get_packed_size(msg);
Frame frame = FRAME__INIT;
frame.length = msglen;
@ -170,14 +169,17 @@ ei_proto_send_msg(struct ei *ei, const ClientMessage *msg)
uint8_t buf[framelen + msglen];
frame__pack(&frame, buf);
client_message__pack(msg, buf + framelen);
return min(0, xsend(source_get_fd(ei->source), buf, sizeof(buf)));
int rc = min(0, xsend(source_get_fd(ei->source), buf, sizeof(buf)));
log_wire_message(ei, msg, rc);
return rc;
}
static int
ei_proto_send_msg_with_fds(struct ei *ei, const ClientMessage *msg, int *fds)
{
log_wire_message(ei, msg);
size_t msglen = client_message__get_packed_size(msg);
Frame frame = FRAME__INIT;
frame.length = msglen;
@ -187,7 +189,10 @@ ei_proto_send_msg_with_fds(struct ei *ei, const ClientMessage *msg, int *fds)
frame__pack(&frame, buf);
client_message__pack(msg, buf + framelen);
return min(0, xsend_with_fd(source_get_fd(ei->source), buf, sizeof(buf), fds));
int rc = min(0, xsend_with_fd(source_get_fd(ei->source), buf, sizeof(buf), fds));
log_wire_message(ei, msg, rc);
return rc;
}
int