From 1e8a6d5b4de3f729a935fe049cc9300c28132e5c Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Mon, 24 Feb 2014 16:50:48 +0100 Subject: [PATCH] android/avctp: Checks error on send_event In case of EINTR retry sending the event otherwise print the errno. --- android/avctp.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/android/avctp.c b/android/avctp.c index 8a0d6a166..bc1bd80eb 100644 --- a/android/avctp.c +++ b/android/avctp.c @@ -273,13 +273,23 @@ static gboolean avctp_passthrough_rsp(struct avctp *session, uint8_t code, static int send_event(int fd, uint16_t type, uint16_t code, int32_t value) { struct uinput_event event; + int err; memset(&event, 0, sizeof(event)); event.type = type; event.code = code; event.value = value; - return write(fd, &event, sizeof(event)); + do { + err = write(fd, &event, sizeof(event)); + } while (err < 0 && errno == EINTR); + + if (err < 0) { + err = -errno; + error("send_event: %s (%d)", strerror(-err), -err); + } + + return err; } static void send_key(int fd, uint16_t key, int pressed) -- 2.47.3