]> git.ipfire.org Git - pakfire.git/commitdiff
log stream: Add function to close the stream
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 28 Jan 2025 17:43:21 +0000 (17:43 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 28 Jan 2025 17:43:21 +0000 (17:43 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/pakfire/log_stream.c
src/pakfire/log_stream.h

index 2eeea58316da76229e40acccf6987a21457be238..5bed8fa18e2bd0d708ae446c210b52c64609a491 100644 (file)
@@ -50,10 +50,7 @@ static void pakfire_log_stream_free(struct pakfire_log_stream* stream) {
                stream->event = sd_event_source_unref(stream->event);
 
        // Close the pipe
-       if (stream->pipe[0] >= 0)
-               close(stream->pipe[0]);
-       if (stream->pipe[1] >= 0)
-               close(stream->pipe[1]);
+       pakfire_log_stream_close(stream);
 
        if (stream->ctx)
                pakfire_ctx_unref(stream->ctx);
@@ -231,3 +228,17 @@ int pakfire_log_stream_write(struct pakfire_log_stream* stream, const char* form
        // Send the message into the pipe
        return vdprintf(stream->pipe[1], format, args);
 }
+
+int pakfire_log_stream_close(struct pakfire_log_stream* stream) {
+       if (stream->pipe[0] >= 0) {
+               close(stream->pipe[0]);
+               stream->pipe[0] = -EBADF;
+       }
+
+       if (stream->pipe[1] >= 0) {
+               close(stream->pipe[1]);
+               stream->pipe[1] = -EBADF;
+       }
+
+       return 0;
+}
index 7d740a21f3363fad7ab3d74f00bddc2c49fd6031..e9167548526354853d8954b0d8dc1676d1a5b11f 100644 (file)
@@ -43,4 +43,6 @@ int pakfire_log_stream_in_child(struct pakfire_log_stream* stream);
 int pakfire_log_stream_write(struct pakfire_log_stream* stream,
        const char* format, va_list args) __attribute__((format(printf, 2, 0)));
 
+int pakfire_log_stream_close(struct pakfire_log_stream* stream);
+
 #endif /* PAKFIRE_LOG_STREAM_H */