From 6997e142fd46c114e7d7bb6cc0da1fbf2ff172cc Mon Sep 17 00:00:00 2001 From: Aki Date: Fri, 1 May 2020 17:22:20 +0200 Subject: Added back response with a body --- http.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'http.c') diff --git a/http.c b/http.c index dc0e9c8..978af38 100644 --- a/http.c +++ b/http.c @@ -1,6 +1,9 @@ #include "http.h" #include +#include +#include +#include const char * method_str[] = { [METHOD_GET] = "GET", @@ -35,3 +38,24 @@ int respond_only_status(const int fd, const enum status status) return dprintf(fd, pattern, status_str[status]); } + +/// Sends a response with a status and a body to the client. +/// \param fd File descriptor of the client socket +/// \param status HTTP response status code +/// \param body Content that will be sent +/// \return Negative value if an error was encountered; numbers of bytes written otherwise +int respond_with_body(const int fd, const enum status status, const char * body) +{ + static const char * pattern = + "HTTP/1.1 %s\r\n" + "Connection: close\r\n" + "Content-Type: text/plain\r\n" + "\r\n"; + + if (0 > dprintf(fd, pattern, status_str[status])) + { + return -1; // TODO: Handle errors properly + } + + return send(fd, body, strlen(body), 0); +} -- cgit v1.1