From dc0f2ce9ba97ebb47e05b80a511da6eb29818b63 Mon Sep 17 00:00:00 2001 From: Shav Kinderlehrer Date: Tue, 23 Jul 2024 17:48:28 -0400 Subject: Merge old-molehole --- src/molerat/request.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100755 src/molerat/request.c (limited to 'src/molerat/request.c') diff --git a/src/molerat/request.c b/src/molerat/request.c new file mode 100755 index 0000000..1d59a09 --- /dev/null +++ b/src/molerat/request.c @@ -0,0 +1,34 @@ +#include +#include +#include + +#include "request.h" +#include "url.h" + +char *get_request_kind(enum RequestKind kind) { + switch (kind) { + case GET: + return "get"; + case PUT: + return "put"; + case DEL: + return "del"; + } +} + +char *request_to_string(struct request *req) { + int len = sizeof(struct request) + + 6; // +1 for null terminator +5 for request whitespace + + char *buf = malloc(len); + + char *kind = get_request_kind(req->kind); + char *host = req->url.host != NULL ? req->url.host : ""; + char *path = req->url.path != NULL ? req->url.path : ""; + char *query = req->url.query != NULL ? req->url.query : ""; + char *fragment = req->url.fragment != NULL ? req->url.fragment : ""; + + snprintf(buf, len, "%s %s%s%s%s\r\n\r\n", kind, host, path, query, fragment); + + return buf; +} -- cgit v1.2.3