Renamed the injectApiHeader to sendHTTPHeader and cleaned it, also did other improvements

This commit is contained in:
anschrammh 2022-04-05 21:03:53 +02:00
parent 847b350f82
commit 651d0ee060

View File

@ -48,15 +48,11 @@ class WEBServer : public TCPServer<T>, public HttpConstants
}
//Helper function used for the webApi
static void injectApiHeader(char *header, const char *contentType, const char *content)
static void sendHTTPHeader(WiFiClient *client, const char *contentType, const size_t contentLength, HttpVersion version = HttpVersion::HTTP_1_1, HTTP_CODE HTTPCode = HTTP_CODE::HTTP_CODE_OK)
{
char *buffer = (char *)malloc(sizeof(char) * strlen(content) + 1);
if(buffer != NULL)
{
strcpy(buffer, content);
sprintf(header,"HTTP/1.1 200 OK\r\nContent-Type: %s\r\nContent-Length: %d\r\n\r\n%s",contentType,strlen(buffer), buffer);
free(buffer);
}
if(!client) return;
(void)HTTPCode;
client->printf("%s 200 OK\r\nContent-Type: %s\r\nContent-Length: %d\r\n\r\n", httpVersionToString(version), contentType, contentLength);
}
void setWWWDir(const char *WWWDir)
@ -666,47 +662,18 @@ class WEBServer : public TCPServer<T>, public HttpConstants
else return UNKNOWN_MIME;
}
static char *getHTTPHeader(HttpMIMEType httpMIMEType, size_t size)
static char *getHTTPHeader(HttpMIMEType httpMIMEType, const size_t size)
{
char *header = (char *) malloc(sizeof(char) /*strlen("HTTP/1.1 200 OK\r\nContent-Type: \r\nContent-Length: \r\nCache-Control: max-age=31536000\r\n\r\n")*/* (86 + 255/*Longest MIME-TYPE that RFC allows*/ + 10 /*Max unsigned long footprint*/ + 1));
switch(httpMIMEType)
{
case TEXT_HTML:
injectHeaderLayout(header,"text/html", size);
break;
case TEXT_CSS:
injectHeaderLayout(header,"text/css", size);
break;
case TEXT_JAVASCRIPT:
injectHeaderLayout(header,"text/javascript", size);
break;
case IMAGE_PNG:
injectHeaderLayout(header,"image/png", size);
break;
case IMAGE_JPEG:
injectHeaderLayout(header,"image/jpeg", size);
break;
case TEXT_PLAIN:
injectHeaderLayout(header,"text/plain", size);
break;
case AUDIO_MPEG:
injectHeaderLayout(header,"audio/mpeg", size);
break;
case APPLICATION_OCTET_STREAM:
injectHeaderLayout(header,"application/octet-stream", size);
break;
default:
injectHeaderLayout(header,"application/octet-stream", size);
break;
}
injectHeaderLayout(header, httpMIMETypeToString(httpMIMEType), size);
return header;
}
static void injectHeaderLayout(char *header, const char *contentType, size_t size)
static void injectHeaderLayout(char *header, const char *contentType, const size_t size)
{
sprintf(header,"HTTP/1.1 200 OK\r\nContent-Type: %s\r\nContent-Length: %u\r\nCache-Control: max-age=31536000\r\n\r\n",contentType,size);
sprintf(header,"HTTP/1.1 200 OK\r\nContent-Type: %s\r\nContent-Length: %u\r\nCache-Control: max-age=31536000\r\n\r\n", contentType, size);
}
static char *getFileExtension(char *name)