]> git.ipfire.org Git - pakfire.git/commitdiff
execute: Avoid calling read() multiple times when reading logs
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 1 May 2021 15:29:08 +0000 (15:29 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 1 May 2021 15:29:08 +0000 (15:29 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/execute.c

index 069d6955e516e922dfec4c920eae57aff8bb8711..db8036399fa5f95bace0d729855d97d9fb2c640d 100644 (file)
@@ -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;