Return legit responses for some static files.

git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4687 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
2023-12-21 02:04:20 +00:00
parent 6ecbfe3de6
commit 7dc8b86ee2
2 changed files with 121 additions and 8 deletions

View File

@ -170,7 +170,8 @@ static void _http_add_body_bytes(tf_http_connection_t* connection, const void* d
if (connection->body_length == connection->content_length)
{
tf_http_request_t request =
tf_http_request_t* request = tf_malloc(sizeof(tf_http_request_t));
*request = (tf_http_request_t)
{
.connection = connection,
.phase = k_http_callback_phase_headers_received,
@ -180,7 +181,7 @@ static void _http_add_body_bytes(tf_http_connection_t* connection, const void* d
.headers_count = connection->headers_length,
.user_data = connection->user_data,
};
connection->callback(&request);
connection->callback(request);
_http_reset_connection(connection);
}
}
@ -387,8 +388,15 @@ static const char* _http_status_text(int status)
{
switch (status)
{
case 101: return "Switching Protocols";
case 200: return "OK";
case 303: return "See other";
case 304: return "Not Modified";
case 400: return "Bad Request";
case 401: return "Unauthorized";
case 403: return "Forbidden";
case 404: return "File not found";
case 500: return "Internal server error";
default: return "Unknown";
}
}
@ -455,6 +463,7 @@ void tf_http_respond(tf_http_request_t* request, int status, const char** header
*shutdown_request = (uv_shutdown_t) { .data = request };
uv_shutdown(shutdown_request, (uv_stream_t*)&request->connection->tcp, _http_on_shutdown);
}
tf_free(request);
}
size_t tf_http_get_body(const tf_http_request_t* request, const void** out_data)