From: Michael Tremer Date: Sat, 1 May 2021 15:29:08 +0000 (+0000) Subject: execute: Avoid calling read() multiple times when reading logs X-Git-Tag: 0.9.28~1285^2~162 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4010aa26065a8b69b4c57ae69d9dc6598794e5b2;p=pakfire.git execute: Avoid calling read() multiple times when reading logs Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/execute.c b/src/libpakfire/execute.c index 069d6955e..db8036399 100644 --- a/src/libpakfire/execute.c +++ b/src/libpakfire/execute.c @@ -83,21 +83,15 @@ static int pakfire_execute_logger_proxy(Pakfire pakfire, int fd, char line[BUFFER_SIZE + 1]; // Fill up buffer from fd - while (buffer->used < sizeof(buffer->data)) { + if (buffer->used < sizeof(buffer->data)) { ssize_t bytes_read = read(fd, buffer->data + buffer->used, sizeof(buffer->data) - buffer->used); // Handle errors if (bytes_read < 0) { - // Try again? - if (errno == EAGAIN) - continue; - ERROR(pakfire, "Could not read from fd %d: %s\n", fd, strerror(errno)); return -1; - - } else if (bytes_read == 0) - break; + } // Update buffer size buffer->used += bytes_read;