FILE* stderr;
// Logging
- struct pakfire_log_stream* INFO;
- struct pakfire_log_stream* WARN;
- struct pakfire_log_stream* ERROR;
+ pakfire_log_stream* INFO;
+ pakfire_log_stream* WARN;
+ pakfire_log_stream* ERROR;
#ifdef ENABLE_DEBUG
- struct pakfire_log_stream* DEBUG;
+ pakfire_log_stream* DEBUG;
#endif /* ENABLE_DEBUG */
} streams;
pakfire_jail_input_callback input_callback, void* input_data,
pakfire_jail_output_callback output_callback, void* output_data,
char** output, size_t* output_length) {
- struct pakfire_log_stream* stdout = NULL;
- struct pakfire_log_stream* stderr = NULL;
+ pakfire_log_stream* stdout = NULL;
+ pakfire_log_stream* stderr = NULL;
int r;
// We cannot have both, an output callback and buffer
void* data;
};
-static void pakfire_log_stream_free(struct pakfire_log_stream* stream) {
+static void pakfire_log_stream_free(pakfire_log_stream* stream) {
if (stream->event)
stream->event = sd_event_source_unref(stream->event);
free(stream);
}
-int pakfire_log_stream_create(struct pakfire_log_stream** stream, pakfire_ctx* ctx,
+int pakfire_log_stream_create(pakfire_log_stream** stream, pakfire_ctx* ctx,
pakfire_log_stream_callback callback, void* data) {
- struct pakfire_log_stream* s = NULL;
+ pakfire_log_stream* s = NULL;
int r;
// Allocate a new object
return r;
}
-struct pakfire_log_stream* pakfire_log_stream_ref(struct pakfire_log_stream* stream) {
+pakfire_log_stream* pakfire_log_stream_ref(pakfire_log_stream* stream) {
++stream->nrefs;
return stream;
}
-struct pakfire_log_stream* pakfire_log_stream_unref(struct pakfire_log_stream* stream) {
+pakfire_log_stream* pakfire_log_stream_unref(pakfire_log_stream* stream) {
if (--stream->nrefs > 0)
return stream;
#define pakfire_log_stream_sanitize_line(self, line, buffer, buffer_length) \
__pakfire_log_stream_sanitize_line(self, line, sizeof(line), buffer, buffer_length)
-static int __pakfire_log_stream_sanitize_line(struct pakfire_log_stream* self,
+static int __pakfire_log_stream_sanitize_line(pakfire_log_stream* self,
char* line, ssize_t line_length, const char* buffer, ssize_t length) {
ssize_t i = 0;
int num;
return cursor;
}
-static int pakfire_log_stream_drain_buffer(struct pakfire_log_stream* stream) {
+static int pakfire_log_stream_drain_buffer(pakfire_log_stream* stream) {
char line[MAX_LINE_LENGTH] = {};
size_t length = 0;
int r;
}
static int __pakfire_log_stream(sd_event_source* s, int fd, uint32_t events, void* data) {
- struct pakfire_log_stream* stream = data;
+ pakfire_log_stream* stream = data;
int r = -EINVAL;
if (events & EPOLLIN) {
/*
To be called from the parent process...
*/
-int pakfire_log_stream_in_parent(struct pakfire_log_stream* stream, sd_event* loop) {
+int pakfire_log_stream_in_parent(pakfire_log_stream* stream, sd_event* loop) {
int r;
// Close the write end of the pipe
/*
To be called from the child process...
*/
-int pakfire_log_stream_in_child(struct pakfire_log_stream* stream) {
+int pakfire_log_stream_in_child(pakfire_log_stream* stream) {
// Close the read end of the pipe
if (stream->pipe[0] >= 0) {
close(stream->pipe[0]);
return 0;
}
-int pakfire_log_stream_printf(struct pakfire_log_stream* stream, const char* format, ...) {
+int pakfire_log_stream_printf(pakfire_log_stream* stream, const char* format, ...) {
va_list args;
int r;
return r;
}
-int pakfire_log_stream_vprintf(struct pakfire_log_stream* stream, const char* format, va_list args) {
+int pakfire_log_stream_vprintf(pakfire_log_stream* stream, const char* format, va_list args) {
char* buffer = NULL;
ssize_t length;
int r;
return r;
}
-int pakfire_log_stream_write(struct pakfire_log_stream* stream, const char* buffer, size_t length) {
+int pakfire_log_stream_write(pakfire_log_stream* stream, const char* buffer, size_t length) {
// Fail if the pipe isn't open
if (stream->pipe[1] < 0)
return -EPIPE;
return write(stream->pipe[1], buffer, length);
}
-int pakfire_log_stream_close(struct pakfire_log_stream* stream) {
+int pakfire_log_stream_close(pakfire_log_stream* stream) {
if (stream->pipe[0] >= 0) {
close(stream->pipe[0]);
stream->pipe[0] = -EBADF;
}
static ssize_t __pakfire_log_stream_write(void* cookie, const char* buffer, size_t length) {
- struct pakfire_log_stream* self = cookie;
+ pakfire_log_stream* self = cookie;
ssize_t bytes_written;
int r;
}
static int __pakfire_log_stream_close(void* cookie) {
- struct pakfire_log_stream* self = cookie;
+ pakfire_log_stream* self = cookie;
// Release the reference to the stream
if (self)
return 0;
}
-FILE* pakfire_log_stream_as_file(struct pakfire_log_stream* self) {
- struct pakfire_log_stream* stream = NULL;
+FILE* pakfire_log_stream_as_file(pakfire_log_stream* self) {
+ pakfire_log_stream* stream = NULL;
static cookie_io_functions_t functions = {
.write = __pakfire_log_stream_write,
.close = __pakfire_log_stream_close,
#include <pakfire/ctx.h>
-struct pakfire_log_stream;
+typedef struct pakfire_log_stream pakfire_log_stream;
typedef int (*pakfire_log_stream_callback)(pakfire_ctx* ctx,
void* data, const char* line, size_t length);
-int pakfire_log_stream_create(struct pakfire_log_stream** stream, pakfire_ctx* ctx,
+int pakfire_log_stream_create(pakfire_log_stream** stream, pakfire_ctx* ctx,
pakfire_log_stream_callback callback, void* data);
-struct pakfire_log_stream* pakfire_log_stream_ref(struct pakfire_log_stream* stream);
-struct pakfire_log_stream* pakfire_log_stream_unref(struct pakfire_log_stream* stream);
+pakfire_log_stream* pakfire_log_stream_ref(pakfire_log_stream* stream);
+pakfire_log_stream* pakfire_log_stream_unref(pakfire_log_stream* stream);
-int pakfire_log_stream_in_parent(struct pakfire_log_stream* stream, sd_event* loop);
-int pakfire_log_stream_in_child(struct pakfire_log_stream* stream);
+int pakfire_log_stream_in_parent(pakfire_log_stream* stream, sd_event* loop);
+int pakfire_log_stream_in_child(pakfire_log_stream* stream);
-int pakfire_log_stream_printf(struct pakfire_log_stream* stream,
+int pakfire_log_stream_printf(pakfire_log_stream* stream,
const char* format, ...) __attribute__((format(printf, 2, 3)));
-int pakfire_log_stream_vprintf(struct pakfire_log_stream* stream,
+int pakfire_log_stream_vprintf(pakfire_log_stream* stream,
const char* format, va_list args) __attribute__((format(printf, 2, 0)));
-int pakfire_log_stream_write(struct pakfire_log_stream* stream,
+int pakfire_log_stream_write(pakfire_log_stream* stream,
const char* buffer, size_t length);
-int pakfire_log_stream_close(struct pakfire_log_stream* stream);
+int pakfire_log_stream_close(pakfire_log_stream* stream);
-FILE* pakfire_log_stream_as_file(struct pakfire_log_stream* self);
+FILE* pakfire_log_stream_as_file(pakfire_log_stream* self);
#endif /* PAKFIRE_LOG_STREAM_H */