diff --git a/src/http.c b/src/http.c index fafcf5b0..d7d57a98 100644 --- a/src/http.c +++ b/src/http.c @@ -76,6 +76,11 @@ bool _http_find_handler(tf_http_t* http, const char* path, tf_http_callback_t** return false; } +static void _http_on_write(uv_write_t* write, int status) +{ + tf_free(write); +} + void _http_on_read(uv_stream_t* stream, ssize_t read_size, const uv_buf_t* buffer) { tf_http_connection_t* connection = stream->data; @@ -116,6 +121,16 @@ void _http_on_read(uv_stream_t* stream, ssize_t read_size, const uv_buf_t* buffe .user_data = connection->user_data, }; connection->callback(&request); + + const char* payload = "HTTP/1.0 200 OK\r\nContent-Length: 13\r\n\r\nHello, world!"; + uv_write_t* write = tf_malloc(sizeof(uv_write_t) + strlen(payload)); + *write = (uv_write_t) { 0 }; + memcpy(write + 1, payload, strlen(payload)); + int r = uv_write(write, stream, &(uv_buf_t) { .base = (char*)(write + 1), .len = strlen(payload) }, 1, _http_on_write); + if (r) + { + tf_printf("uv_write: %s\n", uv_strerror(r)); + } } } else