Fix more compilation errors

This commit is contained in:
2025-11-21 15:12:32 +01:00
parent 93ccb5d6a1
commit aab1b8e7b8
10 changed files with 1892 additions and 1763 deletions
+40 -8
View File
@@ -1,6 +1,25 @@
static void http_server_conn_init(HTTP_ServerConn *conn,
SocketHandle handle, uint32_t input_buffer_limit,
uint32_t output_buffer_limit)
{
conn->state = HTTP_SERVER_CONN_BUFFERING;
conn->handle = handle;
byte_queue_init(&conn->input, input_buffer_limit);
byte_queue_init(&conn->output, output_buffer_limit);
}
static void http_server_conn_free(HTTP_ServerConn *conn)
{
byte_queue_free(&conn->output);
byte_queue_free(&conn->input);
}
int http_server_init(HTTP_Server *server)
{
server->input_buffer_limit = 1<<20;
server->output_buffer_limit = 1<<20;
server->num_conns = 0;
for (int i = 0; i < HTTP_SERVER_CAPACITY; i++)
server->conns[i].state = HTTP_SERVER_CONN_FREE;
@@ -9,7 +28,7 @@ int http_server_init(HTTP_Server *server)
server->ready_head = 0;
if (socket_manager_init(&server->sockets,
&server->socket_pool, HTTP_SERVER_CAPACITY) < 0)
server->socket_pool, HTTP_SERVER_CAPACITY) < 0)
return -1;
return 0;
}
@@ -28,6 +47,16 @@ void http_server_free(HTTP_Server *server)
}
}
void http_server_set_input_limit(HTTP_Server *server, uint32_t limit)
{
server->input_buffer_limit = limit;
}
void http_server_set_output_limit(HTTP_Server *server, uint32_t limit)
{
server->output_buffer_limit = limit;
}
int http_server_listen_tcp(HTTP_Server *server,
String addr, Port port)
{
@@ -101,7 +130,7 @@ check_request_buffer(HTTP_Server *server, HTTP_ServerConn *conn)
// Ready
assert(ret == 1);
conn->state = HTTP_SERVER_CONN_STATUS;
conn->state = HTTP_SERVER_CONN_WAIT_STATUS;
conn->request_len = ret;
conn->response_offset = byte_queue_offset(&conn->output);
@@ -133,7 +162,7 @@ int http_server_process_events(HTTP_Server *server,
struct pollfd *polled, int num_polled)
{
SocketEvent events[HTTP_SERVER_CAPACITY];
int num_events = socket_manger_translate_events(&server->sockets, polled, num_polled);
int num_events = socket_manager_translate_events(&server->sockets, polled, num_polled);
if (num_events < 0)
return -1;
@@ -162,7 +191,10 @@ int http_server_process_events(HTTP_Server *server,
}
conn = &server->conns[i];
http_server_conn_init(conn, events[i].handle);
http_server_conn_init(conn,
events[i].handle,
server->input_buffer_limit,
server->output_buffer_limit);
server->num_conns++;
socket_set_user(&server->sockets, events[i].handle, conn);
@@ -226,11 +258,11 @@ builder_to_conn(HTTP_ResponseBuilder builder)
if (server == NULL)
return NULL;
if (server->index > HTTP_SERVER_CAPACITY)
if (builder.index > HTTP_SERVER_CAPACITY)
return NULL;
HTTP_ServerConn *conn = server->conns[server->index];
if (conn->gen != builder.gen)
HTTP_ServerConn *conn = server->conns[builder.index];
if (builder.gen != conn->gen)
return NULL;
return conn;
@@ -295,7 +327,7 @@ void http_response_builder_body(HTTP_ResponseBuilder builder, String str)
if (conn->state != HTTP_SERVER_CONN_WAIT_BODY)
return;
byte_queue_write(&conn->output, str);
byte_queue_write(&conn->output, str.ptr, str.len);
}
void http_response_builder_send(HTTP_ResponseBuilder builder, String str)