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);
// 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;
+}
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 */