Fix issues that caused the server to hang
This commit is contained in:
@@ -26,7 +26,7 @@
|
||||
#include <pthread.h>
|
||||
#include <poll.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>-
|
||||
#include <errno.h>
|
||||
#include <netdb.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <netinet/in.h>
|
||||
@@ -493,7 +493,8 @@ void socket_manager_free(SocketManager *sm);
|
||||
// can only be used once per manager.
|
||||
// Returns 0 on success, -1 on error.
|
||||
int socket_manager_listen_tcp(SocketManager *sm,
|
||||
HTTP_String addr, Port port);
|
||||
HTTP_String addr, Port port, int backlog,
|
||||
bool reuse_addr);
|
||||
|
||||
// Same as the previous function, but incoming
|
||||
// connections will be interpreted as TLS. You
|
||||
@@ -503,7 +504,8 @@ int socket_manager_listen_tcp(SocketManager *sm,
|
||||
// and secure connections.
|
||||
// Returns 0 on success, -1 on error.
|
||||
int socket_manager_listen_tls(SocketManager *sm,
|
||||
HTTP_String addr, Port port, HTTP_String cert_file,
|
||||
HTTP_String addr, Port port, int backlog,
|
||||
bool reuse_addr, HTTP_String cert_file,
|
||||
HTTP_String key_file);
|
||||
|
||||
// If the socket manager was configures to accept
|
||||
@@ -1012,6 +1014,10 @@ typedef struct {
|
||||
uint32_t input_buffer_limit;
|
||||
uint32_t output_buffer_limit;
|
||||
|
||||
bool trace_bytes;
|
||||
bool reuse_addr;
|
||||
int backlog;
|
||||
|
||||
// Array of connections. The counter contains the
|
||||
// number of structs such that state=FREE.
|
||||
int num_conns;
|
||||
@@ -1054,6 +1060,15 @@ void http_server_free(HTTP_Server *server);
|
||||
void http_server_set_input_limit(HTTP_Server *server, uint32_t limit);
|
||||
void http_server_set_output_limit(HTTP_Server *server, uint32_t limit);
|
||||
|
||||
// TODO: Comment
|
||||
void http_server_set_trace_bytes(HTTP_Server *server, bool value);
|
||||
|
||||
// TODO: Comment
|
||||
void http_server_set_reuse_addr(HTTP_Server *server, bool reuse);
|
||||
|
||||
// TODO: comment
|
||||
void http_server_set_backlog(HTTP_Server *server, int backlog);
|
||||
|
||||
// Enable listening for plain HTTP requests at the
|
||||
// specified interface.
|
||||
int http_server_listen_tcp(HTTP_Server *server,
|
||||
@@ -1062,9 +1077,8 @@ int http_server_listen_tcp(HTTP_Server *server,
|
||||
// Enable listening for HTTPS requests at the specified
|
||||
// interfact, using the specified certificate and key
|
||||
// to verify the connection.
|
||||
int http_server_listen_tls(HTTP_Server *server,
|
||||
HTTP_String addr, Port port, HTTP_String cert_file_name,
|
||||
HTTP_String key_file_name);
|
||||
int http_server_listen_tls(HTTP_Server *server, HTTP_String addr, Port port,
|
||||
HTTP_String cert_file_name, HTTP_String key_file_name);
|
||||
|
||||
// Add the certificate for an additional domain when
|
||||
// the server is listening for HTTPS requests.
|
||||
@@ -1120,7 +1134,7 @@ void http_response_builder_body(HTTP_ResponseBuilder builder, HTTP_String str);
|
||||
|
||||
// Mark the response as complete. This will invalidate
|
||||
// the response builder handle.
|
||||
void http_response_builder_send(HTTP_ResponseBuilder builder, HTTP_String str);
|
||||
void http_response_builder_send(HTTP_ResponseBuilder builder);
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright 2025 Francesco Cozzuto
|
||||
|
||||
Reference in New Issue
Block a user