Use PLOG and TEMP_FAILURE_RETRY for uevent socket errors

Use TEMP_FAILURE_RETRY() for recvmsg() to prevent failing
unnecessarily from EINTR.  Use PLOG(ERROR) in ueventd to display the
actual error if reading from the uevent socket does fail.

Test: build
Change-Id: I64a22698ce6ffc7573f75b57803551c7b6940e30
This commit is contained in:
Tom Cherry 2019-11-13 07:20:11 -08:00
parent 47cdf6c078
commit edad2bf9b6
2 changed files with 2 additions and 2 deletions

View file

@ -100,7 +100,7 @@ bool UeventListener::ReadUevent(Uevent* uevent) const {
int n = uevent_kernel_multicast_recv(device_fd_, msg, UEVENT_MSG_LEN);
if (n <= 0) {
if (errno != EAGAIN && errno != EWOULDBLOCK) {
LOG(ERROR) << "Error reading from Uevent Fd";
PLOG(ERROR) << "Error reading from Uevent Fd";
}
return false;
}

View file

@ -60,7 +60,7 @@ ssize_t uevent_kernel_recv(int socket, void* buffer, size_t length, bool require
struct ucred* cred;
*uid = -1;
ssize_t n = recvmsg(socket, &hdr, 0);
ssize_t n = TEMP_FAILURE_RETRY(recvmsg(socket, &hdr, 0));
if (n <= 0) {
return n;
}