From 243a34d725873ca40b4ef514c26a4b7ae87bbe83 Mon Sep 17 00:00:00 2001 From: Dirk Engling Date: Sat, 24 Oct 2026 12:55:37 +0200 Subject: Replace libowfat's array with our new blob abstraction --- opentracker.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'opentracker.c') diff --git a/opentracker.c b/opentracker.c index 0ae98e6..354e837 100644 --- a/opentracker.c +++ b/opentracker.c @@ -163,7 +163,7 @@ static void handle_dead(const int64 sock) { for (i = 0; i < cookie->batches; ++i) iob_reset(cookie->batch + i); free(cookie->batch); - array_reset(&cookie->request); + buf_reset(&cookie->request); if (cookie->flag & (STRUCT_HTTP_FLAG_WAITINGFORTASK | STRUCT_HTTP_FLAG_CHUNKED_IN_TRANSFER)) mutex_workqueue_canceltask(sock); free(cookie); @@ -189,25 +189,24 @@ static void handle_read(const int64 sock, struct ot_workstruct *ws) { ws->keep_alive = 0; /* If we get the whole request in one packet, handle it without copying */ - if (!array_start(&cookie->request)) { + if (!cookie->request.data) { if ((ws->header_size = header_complete(ws->inbuf, byte_count))) { ws->request = ws->inbuf; ws->request_size = byte_count; http_handle_request(sock, ws); - } else - array_catb(&cookie->request, ws->inbuf, (size_t)byte_count); + } else if (buf_cat(&cookie->request, ws->inbuf, (size_t)byte_count)) + handle_dead(sock); return; } - array_catb(&cookie->request, ws->inbuf, byte_count); - if (array_failed(&cookie->request) || array_bytes(&cookie->request) > 8192) { + if (buf_cat(&cookie->request, ws->inbuf, (size_t)byte_count) || cookie->request.size > G_INBUF_SIZE) { http_issue_error(sock, ws, CODE_HTTPERROR_500); return; } - while ((ws->header_size = header_complete(array_start(&cookie->request), array_bytes(&cookie->request)))) { - ws->request = array_start(&cookie->request); - ws->request_size = array_bytes(&cookie->request); + while ((ws->header_size = header_complete(cookie->request.data, (ssize_t)cookie->request.size))) { + ws->request = cookie->request.data; + ws->request_size = (ssize_t)cookie->request.size; http_handle_request(sock, ws); #ifdef WANT_KEEPALIVE if (!ws->keep_alive) -- cgit v1.3