From db269a1ab34d16c03e8087eaf786e7b3c9a135e4 Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Sun, 25 Apr 2021 00:08:21 +0200 Subject: [PATCH] added functions to convert between HTTP client and server encoding --- src/libgame/http.c | 18 ++++++++++++++++++ src/libgame/http.h | 2 ++ 2 files changed, 20 insertions(+) diff --git a/src/libgame/http.c b/src/libgame/http.c index 2a41b5bb..74fafb37 100644 --- a/src/libgame/http.c +++ b/src/libgame/http.c @@ -33,6 +33,24 @@ char *GetHttpError(void) return http_error; } +void ConvertHttpRequestBodyToServerEncoding(struct HttpRequest *request) +{ + char *body_utf8 = getUTF8FromLatin1(request->body); + + strcpy(request->body, body_utf8); + checked_free(body_utf8); +} + +void ConvertHttpResponseBodyToClientEncoding(struct HttpResponse *response) +{ + char *body_latin1 = getLatin1FromUTF8(response->body); + + strcpy(response->body, body_latin1); + checked_free(body_latin1); + + response->body_size = strlen(response->body); +} + static void SetHttpResponseToDefaults(struct HttpResponse *response) { response->head[0] = '\0'; diff --git a/src/libgame/http.h b/src/libgame/http.h index b002ec65..3a1dc3e3 100644 --- a/src/libgame/http.h +++ b/src/libgame/http.h @@ -44,6 +44,8 @@ struct HttpResponse char *GetHttpError(void); +void ConvertHttpRequestBodyToServerEncoding(struct HttpRequest *); +void ConvertHttpResponseBodyToClientEncoding(struct HttpResponse *); boolean DoHttpRequest(struct HttpRequest *, struct HttpResponse *); #endif -- 2.34.1