From: Michael Tremer Date: Fri, 27 Jun 2025 14:23:27 +0000 (+0000) Subject: buffer: Create its own type X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7d80b648f33abe85ba2448700b56bb3f037b03fd;p=pakfire.git buffer: Create its own type Signed-off-by: Michael Tremer --- diff --git a/src/pakfire/buffer.c b/src/pakfire/buffer.c index 4e05752e..231f026f 100644 --- a/src/pakfire/buffer.c +++ b/src/pakfire/buffer.c @@ -30,19 +30,19 @@ // Shrink the buffer once we are wasting more than this #define MAX_WASTAGE (CHUNK_SIZE * 8) -void pakfire_buffer_set_max_length(struct pakfire_buffer* self, size_t max_length) { +void pakfire_buffer_set_max_length(pakfire_buffer* self, size_t max_length) { self->max_length = max_length; } -size_t pakfire_buffer_length(struct pakfire_buffer* self) { +size_t pakfire_buffer_length(pakfire_buffer* self) { return self->length; } -int pakfire_buffer_is_empty(struct pakfire_buffer* self) { +int pakfire_buffer_is_empty(pakfire_buffer* self) { return (self->length == 0); } -int pakfire_buffer_is_full(struct pakfire_buffer* self) { +int pakfire_buffer_is_full(pakfire_buffer* self) { // Cannot be full if we don't have no maximum size if (!self->max_length) return 0; @@ -50,11 +50,11 @@ int pakfire_buffer_is_full(struct pakfire_buffer* self) { return (self->length >= self->max_length); } -void pakfire_buffer_clear(struct pakfire_buffer* buffer) { +void pakfire_buffer_clear(pakfire_buffer* buffer) { buffer->length = 0; } -void pakfire_buffer_free(struct pakfire_buffer* buffer) { +void pakfire_buffer_free(pakfire_buffer* buffer) { if (buffer->data) free(buffer->data); @@ -62,7 +62,7 @@ void pakfire_buffer_free(struct pakfire_buffer* buffer) { } // Rounds up length to the nearest chunk size -static size_t pakfire_buffer_align(struct pakfire_buffer* self, size_t length) { +static size_t pakfire_buffer_align(pakfire_buffer* self, size_t length) { // Always have at least one chunk if (!length) return CHUNK_SIZE; @@ -77,7 +77,7 @@ static size_t pakfire_buffer_align(struct pakfire_buffer* self, size_t length) { return length; } -static int pakfire_buffer_resize(struct pakfire_buffer* self, size_t length) { +static int pakfire_buffer_resize(pakfire_buffer* self, size_t length) { // Check maximum length and refuse to grow if (self->max_length && (length > self->max_length)) return -ENOBUFS; @@ -101,7 +101,7 @@ static int pakfire_buffer_resize(struct pakfire_buffer* self, size_t length) { } // Grows the buffer -static int pakfire_buffer_grow(struct pakfire_buffer* self, size_t length) { +static int pakfire_buffer_grow(pakfire_buffer* self, size_t length) { // Check if we actually need to grow if (self->__allocated >= self->length + length) return 0; @@ -110,7 +110,7 @@ static int pakfire_buffer_grow(struct pakfire_buffer* self, size_t length) { } // Shrinks the buffer to its minimum size -static int pakfire_buffer_shrink(struct pakfire_buffer* self) { +static int pakfire_buffer_shrink(pakfire_buffer* self) { // Shrink whenever we hit the wastage level if (self->__allocated - self->length < MAX_WASTAGE) return 0; @@ -118,7 +118,7 @@ static int pakfire_buffer_shrink(struct pakfire_buffer* self) { return pakfire_buffer_resize(self, self->length); } -int pakfire_buffer_push(struct pakfire_buffer* self, const char* data, size_t length) { +int pakfire_buffer_push(pakfire_buffer* self, const char* data, size_t length) { int r; // Check inputs @@ -141,7 +141,7 @@ int pakfire_buffer_push(struct pakfire_buffer* self, const char* data, size_t le return length; } -int pakfire_buffer_pop(struct pakfire_buffer* self, size_t length) { +int pakfire_buffer_pop(pakfire_buffer* self, size_t length) { // Check if we actually have enough data if (self->length < length) return -EINVAL; @@ -153,7 +153,7 @@ int pakfire_buffer_pop(struct pakfire_buffer* self, size_t length) { return pakfire_buffer_shrink(self); } -int pakfire_buffer_read(struct pakfire_buffer* self, int fd) { +int pakfire_buffer_read(pakfire_buffer* self, int fd) { ssize_t total_bytes_read = 0; ssize_t bytes_read = 0; int r; @@ -184,7 +184,7 @@ int pakfire_buffer_read(struct pakfire_buffer* self, int fd) { return total_bytes_read; } -int pakfire_buffer_write(struct pakfire_buffer* self, int fd) { +int pakfire_buffer_write(pakfire_buffer* self, int fd) { ssize_t bytes_written = 0; int r; @@ -205,7 +205,7 @@ int pakfire_buffer_write(struct pakfire_buffer* self, int fd) { return bytes_written; } -int pakfire_buffer_fill(struct pakfire_buffer* self, +int pakfire_buffer_fill(pakfire_buffer* self, pakfire_ctx* ctx, pakfire_buffer_input_callback callback, void* data) { ssize_t bytes_written = 0; int r; @@ -234,7 +234,7 @@ int pakfire_buffer_fill(struct pakfire_buffer* self, return bytes_written; } -size_t pakfire_buffer_find_line(struct pakfire_buffer* self) { +size_t pakfire_buffer_find_line(pakfire_buffer* self) { char* p = NULL; // Nothing to do if there is no data diff --git a/src/pakfire/buffer.h b/src/pakfire/buffer.h index 826ba11a..96935f91 100644 --- a/src/pakfire/buffer.h +++ b/src/pakfire/buffer.h @@ -26,7 +26,7 @@ typedef ssize_t (*pakfire_buffer_input_callback) (pakfire_ctx* ctx, void* data, char* buffer, size_t length); -struct pakfire_buffer { +typedef struct pakfire_buffer { char* data; // Store how large the allocated buffer is @@ -37,26 +37,26 @@ struct pakfire_buffer { // Defines the maximum length this buffer can grow to size_t max_length; -}; +} pakfire_buffer; -void pakfire_buffer_set_max_length(struct pakfire_buffer* buffer, size_t max_length); +void pakfire_buffer_set_max_length(pakfire_buffer* buffer, size_t max_length); -size_t pakfire_buffer_length(struct pakfire_buffer* self); -int pakfire_buffer_is_empty(struct pakfire_buffer* self); -int pakfire_buffer_is_full(struct pakfire_buffer* self); +size_t pakfire_buffer_length(pakfire_buffer* self); +int pakfire_buffer_is_empty(pakfire_buffer* self); +int pakfire_buffer_is_full(pakfire_buffer* self); -void pakfire_buffer_clear(struct pakfire_buffer* buffer); -void pakfire_buffer_free(struct pakfire_buffer* buffer); +void pakfire_buffer_clear(pakfire_buffer* buffer); +void pakfire_buffer_free(pakfire_buffer* buffer); -int pakfire_buffer_push(struct pakfire_buffer* self, const char* data, size_t length); -int pakfire_buffer_pop(struct pakfire_buffer* self, size_t length); +int pakfire_buffer_push(pakfire_buffer* self, const char* data, size_t length); +int pakfire_buffer_pop(pakfire_buffer* self, size_t length); -int pakfire_buffer_read(struct pakfire_buffer* self, int fd); -int pakfire_buffer_write(struct pakfire_buffer* self, int fd); +int pakfire_buffer_read(pakfire_buffer* self, int fd); +int pakfire_buffer_write(pakfire_buffer* self, int fd); -int pakfire_buffer_fill(struct pakfire_buffer* self, +int pakfire_buffer_fill(pakfire_buffer* self, pakfire_ctx* ctx, pakfire_buffer_input_callback callback, void* data); -size_t pakfire_buffer_find_line(struct pakfire_buffer* self); +size_t pakfire_buffer_find_line(pakfire_buffer* self); #endif /* PAKFIRE_BUFFER_H */ diff --git a/src/pakfire/jail.c b/src/pakfire/jail.c index 5e75f583..13c3a34b 100644 --- a/src/pakfire/jail.c +++ b/src/pakfire/jail.c @@ -154,7 +154,7 @@ typedef struct pakfire_jail_exec { } streams; // Standard Input Buffer - struct pakfire_buffer stdin; + pakfire_buffer stdin; int stdin_done; // Timeout diff --git a/src/pakfire/log_stream.c b/src/pakfire/log_stream.c index 64c4c3b9..e7a3ccef 100644 --- a/src/pakfire/log_stream.c +++ b/src/pakfire/log_stream.c @@ -42,7 +42,7 @@ struct pakfire_log_stream { int pipe[2]; // Buffer - struct pakfire_buffer buffer; + pakfire_buffer buffer; // Event Source sd_event_source* event; diff --git a/src/pakfire/pty.c b/src/pakfire/pty.c index 351372c2..46819e1e 100644 --- a/src/pakfire/pty.c +++ b/src/pakfire/pty.c @@ -45,7 +45,7 @@ struct pakfire_pty_stdio { unsigned close_fd:1; // Buffer - struct pakfire_buffer buffer; + pakfire_buffer buffer; // Terminal Attributes struct termios attrs; diff --git a/src/pakfire/repo.c b/src/pakfire/repo.c index 5bc79440..3de7bd2f 100644 --- a/src/pakfire/repo.c +++ b/src/pakfire/repo.c @@ -1208,8 +1208,8 @@ ERROR: } static int pakfire_repo_verify_metadata( - struct pakfire_repo* self, const struct pakfire_buffer* repomd) { - struct pakfire_buffer signature = {}; + struct pakfire_repo* self, const pakfire_buffer* repomd) { + pakfire_buffer signature = {}; struct pakfire_xfer* xfer = NULL; FILE* f = NULL; int r; @@ -1261,7 +1261,7 @@ ERROR: static int pakfire_repo_download_metadata(struct pakfire_repo* repo, const char* path, int force) { struct pakfire_repomd repomd = {}; - struct pakfire_buffer buffer = {}; + pakfire_buffer buffer = {}; struct pakfire_xfer* xfer = NULL; struct json_object* json = NULL; char* error = NULL; diff --git a/src/pakfire/xfer.c b/src/pakfire/xfer.c index ea56b823..2481185f 100644 --- a/src/pakfire/xfer.c +++ b/src/pakfire/xfer.c @@ -123,10 +123,10 @@ struct pakfire_xfer { } output; // WebSocket Receive Buffer - struct pakfire_buffer recv_buffer; + pakfire_buffer recv_buffer; // WebSocket Send Buffer - struct pakfire_buffer send_buffer; + pakfire_buffer send_buffer; // State enum pakfire_xfer_state { diff --git a/tests/libpakfire/buffer.c b/tests/libpakfire/buffer.c index a472d70f..b989eddd 100644 --- a/tests/libpakfire/buffer.c +++ b/tests/libpakfire/buffer.c @@ -23,7 +23,7 @@ #include "../testsuite.h" static int test_allocate(const struct test* t) { - struct pakfire_buffer buffer = {}; + pakfire_buffer buffer = {}; int r = EXIT_FAILURE; // The buffer should be empty, and not full @@ -55,7 +55,7 @@ FAIL: } static int test_find_line(const struct test* t) { - struct pakfire_buffer buffer = {}; + pakfire_buffer buffer = {}; int r = EXIT_FAILURE; const char* input = "ABC\nDEFG\nHIJKL\n";