From c54fc05bd45676b7d67126dde159a1e71ae60db6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20M=2E=20Pi=C3=B1eiro?= Date: Wed, 16 Jul 2025 15:31:18 +0200 Subject: [PATCH 1/3] Add HTTP content-type for WebP and AVIF This PR extends the _setContentTypeFromPath method to correctly identify and assign Content-Type headers for .webp (image/webp) and .avif (image/avif) files. Additionally, all HTTP headers are now formatted in Title Case, aligning with RFC 7231 and improving consistency across responses. Developers are encouraged to adopt AVIF or WebP formats over legacy image types such as GIF, PNG, or JPEG. Both formats are fully supported by all major modern browsers and typically offer significant file size reductions (often 50% or more) without perceptible quality loss. Conversion of assets is straightforward using tools like squoosh.app (free and online), which supports batch optimization and visual comparisons across formats. --- src/WebResponses.cpp | 4 + src/literals.h | 370 ++++++++++++++++++++++--------------------- 2 files changed, 191 insertions(+), 183 deletions(-) diff --git a/src/WebResponses.cpp b/src/WebResponses.cpp index 2f54e742..a8b69f61 100644 --- a/src/WebResponses.cpp +++ b/src/WebResponses.cpp @@ -662,6 +662,10 @@ void AsyncFileResponse::_setContentTypeFromPath(const String &path) { _contentType = T_image_svg_xml; } else if (strcmp(dot, T__jpg) == 0) { _contentType = T_image_jpeg; + } else if (strcmp(dot, T__webp) == 0) { + _contentType = T_image_webp; + } else if (strcmp(dot, T__avif) == 0) { + _contentType = T_image_avif; } else if (strcmp(dot, T__gif) == 0) { _contentType = T_image_gif; } else if (strcmp(dot, T__woff2) == 0) { diff --git a/src/literals.h b/src/literals.h index b3ea800d..69298d4c 100644 --- a/src/literals.h +++ b/src/literals.h @@ -3,194 +3,198 @@ #pragma once -namespace asyncsrv { +namespace asyncsrv +{ -static constexpr const char *empty = ""; + static constexpr const char *empty = ""; -static constexpr const char *T_inline = "inline"; -static constexpr const char *T_attachment = "attachment; filename=\"%s\""; + static constexpr const char *T__opaque = "\", opaque=\""; + static constexpr const char *T_100_CONTINUE = "100-continue"; + static constexpr const char *T_13 = "13"; + static constexpr const char *T_ACCEPT = "Accept"; + static constexpr const char *T_Accept_Ranges = "Accept-Ranges"; + static constexpr const char *T_attachment = "attachment; filename=\"%s\""; + static constexpr const char *T_AUTH = "Authorization"; + static constexpr const char *T_auth_nonce = "\", qop=\"auth\", nonce=\""; + static constexpr const char *T_BASIC = "Basic"; + static constexpr const char *T_BASIC_REALM = "Basic realm=\""; + static constexpr const char *T_BEARER = "Bearer"; + static constexpr const char *T_BODY = "body"; + static constexpr const char *T_Cache_Control = "Cache-Control"; + static constexpr const char *T_chunked = "chunked"; + static constexpr const char *T_close = "close"; + static constexpr const char *T_cnonce = "cnonce"; + static constexpr const char *T_Connection = "Connection"; + static constexpr const char *T_Content_Disposition = "Content-Disposition"; + static constexpr const char *T_Content_Encoding = "Content-Encoding"; + static constexpr const char *T_Content_Length = "Content-Length"; + static constexpr const char *T_Content_Type = "Content-Type"; + static constexpr const char *T_Content_Location = "Content-Location"; + static constexpr const char *T_Cookie = "Cookie"; + static constexpr const char *T_CORS_ACAC = "Access-Control-Allow-Credentials"; + static constexpr const char *T_CORS_ACAH = "Access-Control-Allow-Headers"; + static constexpr const char *T_CORS_ACAM = "Access-Control-Allow-Methods"; + static constexpr const char *T_CORS_ACAO = "Access-Control-Allow-Origin"; + static constexpr const char *T_CORS_ACMA = "Access-Control-Max-Age"; + static constexpr const char *T_CORS_O = "Origin"; + static constexpr const char *T_data_ = "data: "; + static constexpr const char *T_Date = "Date"; + static constexpr const char *T_DIGEST = "Digest"; + static constexpr const char *T_DIGEST_ = "Digest "; + static constexpr const char *T_ETag = "ETag"; + static constexpr const char *T_event_ = "event: "; + static constexpr const char *T_EXPECT = "Expect"; + static constexpr const char *T_FALSE = "false"; + static constexpr const char *T_filename = "filename"; + static constexpr const char *T_gzip = "gzip"; + static constexpr const char *T_Host = "host"; + static constexpr const char *T_HTTP_1_0 = "HTTP/1.0"; + static constexpr const char *T_HTTP_100_CONT = "HTTP/1.1 100 Continue\r\n\r\n"; + static constexpr const char *T_id__ = "id: "; + static constexpr const char *T_IMS = "If-Modified-Since"; + static constexpr const char *T_INM = "If-None-Match"; + static constexpr const char *T_inline = "inline"; + static constexpr const char *T_keep_alive = "keep-alive"; + static constexpr const char *T_Last_Event_ID = "Last-Event-ID"; + static constexpr const char *T_Last_Modified = "Last-Modified"; + static constexpr const char *T_LOCATION = "Location"; + static constexpr const char *T_LOGIN_REQ = "Login Required"; + static constexpr const char *T_MULTIPART_ = "multipart/"; + static constexpr const char *T_name = "name"; + static constexpr const char *T_nc = "nc"; + static constexpr const char *T_no_cache = "no-cache"; + static constexpr const char *T_nonce = "nonce"; + static constexpr const char *T_none = "none"; + static constexpr const char *T_opaque = "opaque"; + static constexpr const char *T_qop = "qop"; + static constexpr const char *T_realm = "realm"; + static constexpr const char *T_realm__ = "realm=\""; + static constexpr const char *T_response = "response"; + static constexpr const char *T_retry_ = "retry: "; + static constexpr const char *T_retry_after = "Retry-After"; + static constexpr const char *T_nn = "\n\n"; + static constexpr const char *T_rn = "\r\n"; + static constexpr const char *T_rnrn = "\r\n\r\n"; + static constexpr const char *T_Server = "Server"; + static constexpr const char *T_Transfer_Encoding = "Transfer-Encoding"; + static constexpr const char *T_TRUE = "true"; + static constexpr const char *T_UPGRADE = "Upgrade"; + static constexpr const char *T_uri = "uri"; + static constexpr const char *T_username = "username"; + static constexpr const char *T_WS = "websocket"; + static constexpr const char *T_WWW_AUTH = "WWW-Authenticate"; -static constexpr const char *T__opaque = "\", opaque=\""; -static constexpr const char *T_100_CONTINUE = "100-continue"; -static constexpr const char *T_13 = "13"; -static constexpr const char *T_ACCEPT = "accept"; -static constexpr const char *T_Accept_Ranges = "accept-ranges"; -static constexpr const char *T_app_xform_urlencoded = "application/x-www-form-urlencoded"; -static constexpr const char *T_AUTH = "authorization"; -static constexpr const char *T_auth_nonce = "\", qop=\"auth\", nonce=\""; -static constexpr const char *T_BASIC = "basic"; -static constexpr const char *T_BASIC_REALM = "basic realm=\""; -static constexpr const char *T_BEARER = "bearer"; -static constexpr const char *T_BODY = "body"; -static constexpr const char *T_Cache_Control = "cache-control"; -static constexpr const char *T_chunked = "chunked"; -static constexpr const char *T_close = "close"; -static constexpr const char *T_cnonce = "cnonce"; -static constexpr const char *T_Connection = "connection"; -static constexpr const char *T_Content_Disposition = "content-disposition"; -static constexpr const char *T_Content_Encoding = "content-encoding"; -static constexpr const char *T_Content_Length = "content-length"; -static constexpr const char *T_Content_Type = "content-type"; -static constexpr const char *T_Content_Location = "content-location"; -static constexpr const char *T_Cookie = "cookie"; -static constexpr const char *T_CORS_ACAC = "access-control-allow-credentials"; -static constexpr const char *T_CORS_ACAH = "access-control-allow-headers"; -static constexpr const char *T_CORS_ACAM = "access-control-allow-methods"; -static constexpr const char *T_CORS_ACAO = "access-control-allow-origin"; -static constexpr const char *T_CORS_ACMA = "access-control-max-age"; -static constexpr const char *T_CORS_O = "origin"; -static constexpr const char *T_data_ = "data: "; -static constexpr const char *T_Date = "date"; -static constexpr const char *T_DIGEST = "digest"; -static constexpr const char *T_DIGEST_ = "digest "; -static constexpr const char *T_ETag = "etag"; -static constexpr const char *T_event_ = "event: "; -static constexpr const char *T_EXPECT = "expect"; -static constexpr const char *T_FALSE = "false"; -static constexpr const char *T_filename = "filename"; -static constexpr const char *T_gzip = "gzip"; -static constexpr const char *T_Host = "host"; -static constexpr const char *T_HTTP_1_0 = "HTTP/1.0"; -static constexpr const char *T_HTTP_100_CONT = "HTTP/1.1 100 Continue\r\n\r\n"; -static constexpr const char *T_id__ = "id: "; -static constexpr const char *T_IMS = "if-modified-since"; -static constexpr const char *T_INM = "if-none-match"; -static constexpr const char *T_keep_alive = "keep-alive"; -static constexpr const char *T_Last_Event_ID = "last-event-id"; -static constexpr const char *T_Last_Modified = "last-modified"; -static constexpr const char *T_LOCATION = "location"; -static constexpr const char *T_LOGIN_REQ = "Login Required"; -static constexpr const char *T_MULTIPART_ = "multipart/"; -static constexpr const char *T_name = "name"; -static constexpr const char *T_nc = "nc"; -static constexpr const char *T_no_cache = "no-cache"; -static constexpr const char *T_nonce = "nonce"; -static constexpr const char *T_none = "none"; -static constexpr const char *T_opaque = "opaque"; -static constexpr const char *T_qop = "qop"; -static constexpr const char *T_realm = "realm"; -static constexpr const char *T_realm__ = "realm=\""; -static constexpr const char *T_response = "response"; -static constexpr const char *T_retry_ = "retry: "; -static constexpr const char *T_retry_after = "retry-after"; -static constexpr const char *T_nn = "\n\n"; -static constexpr const char *T_rn = "\r\n"; -static constexpr const char *T_rnrn = "\r\n\r\n"; -static constexpr const char *T_Server = "server"; -static constexpr const char *T_Transfer_Encoding = "transfer-encoding"; -static constexpr const char *T_TRUE = "true"; -static constexpr const char *T_UPGRADE = "upgrade"; -static constexpr const char *T_uri = "uri"; -static constexpr const char *T_username = "username"; -static constexpr const char *T_WS = "websocket"; -static constexpr const char *T_WWW_AUTH = "www-authenticate"; + // HTTP Methods + static constexpr const char *T_ANY = "ANY"; + static constexpr const char *T_GET = "GET"; + static constexpr const char *T_POST = "POST"; + static constexpr const char *T_PUT = "PUT"; + static constexpr const char *T_DELETE = "DELETE"; + static constexpr const char *T_PATCH = "PATCH"; + static constexpr const char *T_HEAD = "HEAD"; + static constexpr const char *T_OPTIONS = "OPTIONS"; + static constexpr const char *T_UNKNOWN = "UNKNOWN"; -// HTTP Methods + // Req content types + static constexpr const char *T_RCT_NOT_USED = "RCT_NOT_USED"; + static constexpr const char *T_RCT_DEFAULT = "RCT_DEFAULT"; + static constexpr const char *T_RCT_HTTP = "RCT_HTTP"; + static constexpr const char *T_RCT_WS = "RCT_WS"; + static constexpr const char *T_RCT_EVENT = "RCT_EVENT"; + static constexpr const char *T_ERROR = "ERROR"; -static constexpr const char *T_ANY = "ANY"; -static constexpr const char *T_GET = "GET"; -static constexpr const char *T_POST = "POST"; -static constexpr const char *T_PUT = "PUT"; -static constexpr const char *T_DELETE = "DELETE"; -static constexpr const char *T_PATCH = "PATCH"; -static constexpr const char *T_HEAD = "HEAD"; -static constexpr const char *T_OPTIONS = "OPTIONS"; -static constexpr const char *T_UNKNOWN = "UNKNOWN"; + // extensions & MIME-Types + static constexpr const char *T__avif = ".avif"; + static constexpr const char *T__css = ".css"; + static constexpr const char *T__eot = ".eot"; + static constexpr const char *T__gif = ".gif"; + static constexpr const char *T__gz = ".gz"; + static constexpr const char *T__htm = ".htm"; + static constexpr const char *T__html = ".html"; + static constexpr const char *T__ico = ".ico"; + static constexpr const char *T__jpg = ".jpg"; + static constexpr const char *T__js = ".js"; + static constexpr const char *T__json = ".json"; + static constexpr const char *T__pdf = ".pdf"; + static constexpr const char *T__png = ".png"; + static constexpr const char *T__svg = ".svg"; + static constexpr const char *T__ttf = ".ttf"; + static constexpr const char *T__webp = ".webp"; + static constexpr const char *T__woff = ".woff"; + static constexpr const char *T__woff2 = ".woff2"; + static constexpr const char *T__xml = ".xml"; + static constexpr const char *T__zip = ".zip"; + static constexpr const char *T_application_javascript = "application/javascript"; + static constexpr const char *T_application_json = "application/json"; + static constexpr const char *T_application_msgpack = "application/msgpack"; + static constexpr const char *T_application_pdf = "application/pdf"; + static constexpr const char *T_application_x_gzip = "application/x-gzip"; + static constexpr const char *T_app_xform_urlencoded = "application/x-www-form-urlencoded"; + static constexpr const char *T_application_zip = "application/zip"; + static constexpr const char *T_font_eot = "font/eot"; + static constexpr const char *T_font_ttf = "font/ttf"; + static constexpr const char *T_font_woff = "font/woff"; + static constexpr const char *T_font_woff2 = "font/woff2"; + static constexpr const char *T_image_avif = "image/avif"; + static constexpr const char *T_image_gif = "image/gif"; + static constexpr const char *T_image_jpeg = "image/jpeg"; + static constexpr const char *T_image_png = "image/png"; + static constexpr const char *T_image_svg_xml = "image/svg+xml"; + static constexpr const char *T_image_webp = "image/webp"; + static constexpr const char *T_image_x_icon = "image/x-icon"; + static constexpr const char *T_text_css = "text/css"; + static constexpr const char *T_text_event_stream = "text/event-stream"; + static constexpr const char *T_text_html = "text/html"; + static constexpr const char *T_text_plain = "text/plain"; + static constexpr const char *T_text_xml = "text/xml"; -// Req content types -static constexpr const char *T_RCT_NOT_USED = "RCT_NOT_USED"; -static constexpr const char *T_RCT_DEFAULT = "RCT_DEFAULT"; -static constexpr const char *T_RCT_HTTP = "RCT_HTTP"; -static constexpr const char *T_RCT_WS = "RCT_WS"; -static constexpr const char *T_RCT_EVENT = "RCT_EVENT"; -static constexpr const char *T_ERROR = "ERROR"; + // Response codes + static constexpr const char *T_HTTP_CODE_100 = "Continue"; + static constexpr const char *T_HTTP_CODE_101 = "Switching Protocols"; + static constexpr const char *T_HTTP_CODE_200 = "OK"; + static constexpr const char *T_HTTP_CODE_201 = "Created"; + static constexpr const char *T_HTTP_CODE_202 = "Accepted"; + static constexpr const char *T_HTTP_CODE_203 = "Non-Authoritative Information"; + static constexpr const char *T_HTTP_CODE_204 = "No Content"; + static constexpr const char *T_HTTP_CODE_205 = "Reset Content"; + static constexpr const char *T_HTTP_CODE_206 = "Partial Content"; + static constexpr const char *T_HTTP_CODE_300 = "Multiple Choices"; + static constexpr const char *T_HTTP_CODE_301 = "Moved Permanently"; + static constexpr const char *T_HTTP_CODE_302 = "Found"; + static constexpr const char *T_HTTP_CODE_303 = "See Other"; + static constexpr const char *T_HTTP_CODE_304 = "Not Modified"; + static constexpr const char *T_HTTP_CODE_305 = "Use Proxy"; + static constexpr const char *T_HTTP_CODE_307 = "Temporary Redirect"; + static constexpr const char *T_HTTP_CODE_400 = "Bad Request"; + static constexpr const char *T_HTTP_CODE_401 = "Unauthorized"; + static constexpr const char *T_HTTP_CODE_402 = "Payment Required"; + static constexpr const char *T_HTTP_CODE_403 = "Forbidden"; + static constexpr const char *T_HTTP_CODE_404 = "Not Found"; + static constexpr const char *T_HTTP_CODE_405 = "Method Not Allowed"; + static constexpr const char *T_HTTP_CODE_406 = "Not Acceptable"; + static constexpr const char *T_HTTP_CODE_407 = "Proxy Authentication Required"; + static constexpr const char *T_HTTP_CODE_408 = "Request Time-out"; + static constexpr const char *T_HTTP_CODE_409 = "Conflict"; + static constexpr const char *T_HTTP_CODE_410 = "Gone"; + static constexpr const char *T_HTTP_CODE_411 = "Length Required"; + static constexpr const char *T_HTTP_CODE_412 = "Precondition Failed"; + static constexpr const char *T_HTTP_CODE_413 = "Request Entity Too Large"; + static constexpr const char *T_HTTP_CODE_414 = "Request-URI Too Large"; + static constexpr const char *T_HTTP_CODE_415 = "Unsupported Media Type"; + static constexpr const char *T_HTTP_CODE_416 = "Requested Range Not Satisfiable"; + static constexpr const char *T_HTTP_CODE_417 = "Expectation Failed"; + static constexpr const char *T_HTTP_CODE_429 = "Too Many Requests"; + static constexpr const char *T_HTTP_CODE_500 = "Internal Server Error"; + static constexpr const char *T_HTTP_CODE_501 = "Not Implemented"; + static constexpr const char *T_HTTP_CODE_502 = "Bad Gateway"; + static constexpr const char *T_HTTP_CODE_503 = "Service Unavailable"; + static constexpr const char *T_HTTP_CODE_504 = "Gateway Time-out"; + static constexpr const char *T_HTTP_CODE_505 = "HTTP Version Not Supported"; + static constexpr const char *T_HTTP_CODE_ANY = "Unknown code"; -// extensions & MIME-Types -static constexpr const char *T__css = ".css"; -static constexpr const char *T__eot = ".eot"; -static constexpr const char *T__gif = ".gif"; -static constexpr const char *T__gz = ".gz"; -static constexpr const char *T__htm = ".htm"; -static constexpr const char *T__html = ".html"; -static constexpr const char *T__ico = ".ico"; -static constexpr const char *T__jpg = ".jpg"; -static constexpr const char *T__js = ".js"; -static constexpr const char *T__json = ".json"; -static constexpr const char *T__pdf = ".pdf"; -static constexpr const char *T__png = ".png"; -static constexpr const char *T__svg = ".svg"; -static constexpr const char *T__ttf = ".ttf"; -static constexpr const char *T__woff = ".woff"; -static constexpr const char *T__woff2 = ".woff2"; -static constexpr const char *T__xml = ".xml"; -static constexpr const char *T__zip = ".zip"; -static constexpr const char *T_application_javascript = "application/javascript"; -static constexpr const char *T_application_json = "application/json"; -static constexpr const char *T_application_msgpack = "application/msgpack"; -static constexpr const char *T_application_pdf = "application/pdf"; -static constexpr const char *T_application_x_gzip = "application/x-gzip"; -static constexpr const char *T_application_zip = "application/zip"; -static constexpr const char *T_font_eot = "font/eot"; -static constexpr const char *T_font_ttf = "font/ttf"; -static constexpr const char *T_font_woff = "font/woff"; -static constexpr const char *T_font_woff2 = "font/woff2"; -static constexpr const char *T_image_gif = "image/gif"; -static constexpr const char *T_image_jpeg = "image/jpeg"; -static constexpr const char *T_image_png = "image/png"; -static constexpr const char *T_image_svg_xml = "image/svg+xml"; -static constexpr const char *T_image_x_icon = "image/x-icon"; -static constexpr const char *T_text_css = "text/css"; -static constexpr const char *T_text_event_stream = "text/event-stream"; -static constexpr const char *T_text_html = "text/html"; -static constexpr const char *T_text_plain = "text/plain"; -static constexpr const char *T_text_xml = "text/xml"; + static constexpr const char *T_only_once_headers[] = {T_Accept_Ranges, T_Content_Length, T_Content_Type, T_Connection, T_CORS_ACAC, T_CORS_ACAH, + T_CORS_ACAM, T_CORS_ACAO, T_CORS_ACMA, T_CORS_O, T_Date, T_DIGEST, T_ETag, T_Last_Modified, T_LOCATION, T_retry_after, + T_Transfer_Encoding, T_Content_Location, T_Server, T_WWW_AUTH}; + static constexpr size_t T_only_once_headers_len = sizeof(T_only_once_headers) / sizeof(T_only_once_headers[0]); -// Response codes -static constexpr const char *T_HTTP_CODE_100 = "Continue"; -static constexpr const char *T_HTTP_CODE_101 = "Switching Protocols"; -static constexpr const char *T_HTTP_CODE_200 = "OK"; -static constexpr const char *T_HTTP_CODE_201 = "Created"; -static constexpr const char *T_HTTP_CODE_202 = "Accepted"; -static constexpr const char *T_HTTP_CODE_203 = "Non-Authoritative Information"; -static constexpr const char *T_HTTP_CODE_204 = "No Content"; -static constexpr const char *T_HTTP_CODE_205 = "Reset Content"; -static constexpr const char *T_HTTP_CODE_206 = "Partial Content"; -static constexpr const char *T_HTTP_CODE_300 = "Multiple Choices"; -static constexpr const char *T_HTTP_CODE_301 = "Moved Permanently"; -static constexpr const char *T_HTTP_CODE_302 = "Found"; -static constexpr const char *T_HTTP_CODE_303 = "See Other"; -static constexpr const char *T_HTTP_CODE_304 = "Not Modified"; -static constexpr const char *T_HTTP_CODE_305 = "Use Proxy"; -static constexpr const char *T_HTTP_CODE_307 = "Temporary Redirect"; -static constexpr const char *T_HTTP_CODE_400 = "Bad Request"; -static constexpr const char *T_HTTP_CODE_401 = "Unauthorized"; -static constexpr const char *T_HTTP_CODE_402 = "Payment Required"; -static constexpr const char *T_HTTP_CODE_403 = "Forbidden"; -static constexpr const char *T_HTTP_CODE_404 = "Not Found"; -static constexpr const char *T_HTTP_CODE_405 = "Method Not Allowed"; -static constexpr const char *T_HTTP_CODE_406 = "Not Acceptable"; -static constexpr const char *T_HTTP_CODE_407 = "Proxy Authentication Required"; -static constexpr const char *T_HTTP_CODE_408 = "Request Time-out"; -static constexpr const char *T_HTTP_CODE_409 = "Conflict"; -static constexpr const char *T_HTTP_CODE_410 = "Gone"; -static constexpr const char *T_HTTP_CODE_411 = "Length Required"; -static constexpr const char *T_HTTP_CODE_412 = "Precondition Failed"; -static constexpr const char *T_HTTP_CODE_413 = "Request Entity Too Large"; -static constexpr const char *T_HTTP_CODE_414 = "Request-URI Too Large"; -static constexpr const char *T_HTTP_CODE_415 = "Unsupported Media Type"; -static constexpr const char *T_HTTP_CODE_416 = "Requested range not satisfiable"; -static constexpr const char *T_HTTP_CODE_417 = "Expectation Failed"; -static constexpr const char *T_HTTP_CODE_429 = "Too Many Requests"; -static constexpr const char *T_HTTP_CODE_500 = "Internal Server Error"; -static constexpr const char *T_HTTP_CODE_501 = "Not Implemented"; -static constexpr const char *T_HTTP_CODE_502 = "Bad Gateway"; -static constexpr const char *T_HTTP_CODE_503 = "Service Unavailable"; -static constexpr const char *T_HTTP_CODE_504 = "Gateway Time-out"; -static constexpr const char *T_HTTP_CODE_505 = "HTTP Version not supported"; -static constexpr const char *T_HTTP_CODE_ANY = "Unknown code"; - -static constexpr const uint8_t T_only_once_headers_len = 11; -static constexpr const char *T_only_once_headers[] = {T_Content_Length, T_Content_Type, T_Date, T_ETag, T_Last_Modified, T_LOCATION, T_retry_after, - T_Transfer_Encoding, T_Content_Location, T_Server, T_WWW_AUTH}; - -} // namespace asyncsrv +} // namespace asyncsrv From 142fd0c873e5a5512a61a393af6fb147a85703ec Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Thu, 17 Jul 2025 09:00:48 +0000 Subject: [PATCH 2/3] ci(pre-commit): Apply automatic fixes --- src/literals.h | 375 +++++++++++++++++++++++++------------------------ 1 file changed, 188 insertions(+), 187 deletions(-) diff --git a/src/literals.h b/src/literals.h index 69298d4c..e5699ca7 100644 --- a/src/literals.h +++ b/src/literals.h @@ -3,198 +3,199 @@ #pragma once -namespace asyncsrv -{ +namespace asyncsrv { - static constexpr const char *empty = ""; +static constexpr const char *empty = ""; - static constexpr const char *T__opaque = "\", opaque=\""; - static constexpr const char *T_100_CONTINUE = "100-continue"; - static constexpr const char *T_13 = "13"; - static constexpr const char *T_ACCEPT = "Accept"; - static constexpr const char *T_Accept_Ranges = "Accept-Ranges"; - static constexpr const char *T_attachment = "attachment; filename=\"%s\""; - static constexpr const char *T_AUTH = "Authorization"; - static constexpr const char *T_auth_nonce = "\", qop=\"auth\", nonce=\""; - static constexpr const char *T_BASIC = "Basic"; - static constexpr const char *T_BASIC_REALM = "Basic realm=\""; - static constexpr const char *T_BEARER = "Bearer"; - static constexpr const char *T_BODY = "body"; - static constexpr const char *T_Cache_Control = "Cache-Control"; - static constexpr const char *T_chunked = "chunked"; - static constexpr const char *T_close = "close"; - static constexpr const char *T_cnonce = "cnonce"; - static constexpr const char *T_Connection = "Connection"; - static constexpr const char *T_Content_Disposition = "Content-Disposition"; - static constexpr const char *T_Content_Encoding = "Content-Encoding"; - static constexpr const char *T_Content_Length = "Content-Length"; - static constexpr const char *T_Content_Type = "Content-Type"; - static constexpr const char *T_Content_Location = "Content-Location"; - static constexpr const char *T_Cookie = "Cookie"; - static constexpr const char *T_CORS_ACAC = "Access-Control-Allow-Credentials"; - static constexpr const char *T_CORS_ACAH = "Access-Control-Allow-Headers"; - static constexpr const char *T_CORS_ACAM = "Access-Control-Allow-Methods"; - static constexpr const char *T_CORS_ACAO = "Access-Control-Allow-Origin"; - static constexpr const char *T_CORS_ACMA = "Access-Control-Max-Age"; - static constexpr const char *T_CORS_O = "Origin"; - static constexpr const char *T_data_ = "data: "; - static constexpr const char *T_Date = "Date"; - static constexpr const char *T_DIGEST = "Digest"; - static constexpr const char *T_DIGEST_ = "Digest "; - static constexpr const char *T_ETag = "ETag"; - static constexpr const char *T_event_ = "event: "; - static constexpr const char *T_EXPECT = "Expect"; - static constexpr const char *T_FALSE = "false"; - static constexpr const char *T_filename = "filename"; - static constexpr const char *T_gzip = "gzip"; - static constexpr const char *T_Host = "host"; - static constexpr const char *T_HTTP_1_0 = "HTTP/1.0"; - static constexpr const char *T_HTTP_100_CONT = "HTTP/1.1 100 Continue\r\n\r\n"; - static constexpr const char *T_id__ = "id: "; - static constexpr const char *T_IMS = "If-Modified-Since"; - static constexpr const char *T_INM = "If-None-Match"; - static constexpr const char *T_inline = "inline"; - static constexpr const char *T_keep_alive = "keep-alive"; - static constexpr const char *T_Last_Event_ID = "Last-Event-ID"; - static constexpr const char *T_Last_Modified = "Last-Modified"; - static constexpr const char *T_LOCATION = "Location"; - static constexpr const char *T_LOGIN_REQ = "Login Required"; - static constexpr const char *T_MULTIPART_ = "multipart/"; - static constexpr const char *T_name = "name"; - static constexpr const char *T_nc = "nc"; - static constexpr const char *T_no_cache = "no-cache"; - static constexpr const char *T_nonce = "nonce"; - static constexpr const char *T_none = "none"; - static constexpr const char *T_opaque = "opaque"; - static constexpr const char *T_qop = "qop"; - static constexpr const char *T_realm = "realm"; - static constexpr const char *T_realm__ = "realm=\""; - static constexpr const char *T_response = "response"; - static constexpr const char *T_retry_ = "retry: "; - static constexpr const char *T_retry_after = "Retry-After"; - static constexpr const char *T_nn = "\n\n"; - static constexpr const char *T_rn = "\r\n"; - static constexpr const char *T_rnrn = "\r\n\r\n"; - static constexpr const char *T_Server = "Server"; - static constexpr const char *T_Transfer_Encoding = "Transfer-Encoding"; - static constexpr const char *T_TRUE = "true"; - static constexpr const char *T_UPGRADE = "Upgrade"; - static constexpr const char *T_uri = "uri"; - static constexpr const char *T_username = "username"; - static constexpr const char *T_WS = "websocket"; - static constexpr const char *T_WWW_AUTH = "WWW-Authenticate"; +static constexpr const char *T__opaque = "\", opaque=\""; +static constexpr const char *T_100_CONTINUE = "100-continue"; +static constexpr const char *T_13 = "13"; +static constexpr const char *T_ACCEPT = "Accept"; +static constexpr const char *T_Accept_Ranges = "Accept-Ranges"; +static constexpr const char *T_attachment = "attachment; filename=\"%s\""; +static constexpr const char *T_AUTH = "Authorization"; +static constexpr const char *T_auth_nonce = "\", qop=\"auth\", nonce=\""; +static constexpr const char *T_BASIC = "Basic"; +static constexpr const char *T_BASIC_REALM = "Basic realm=\""; +static constexpr const char *T_BEARER = "Bearer"; +static constexpr const char *T_BODY = "body"; +static constexpr const char *T_Cache_Control = "Cache-Control"; +static constexpr const char *T_chunked = "chunked"; +static constexpr const char *T_close = "close"; +static constexpr const char *T_cnonce = "cnonce"; +static constexpr const char *T_Connection = "Connection"; +static constexpr const char *T_Content_Disposition = "Content-Disposition"; +static constexpr const char *T_Content_Encoding = "Content-Encoding"; +static constexpr const char *T_Content_Length = "Content-Length"; +static constexpr const char *T_Content_Type = "Content-Type"; +static constexpr const char *T_Content_Location = "Content-Location"; +static constexpr const char *T_Cookie = "Cookie"; +static constexpr const char *T_CORS_ACAC = "Access-Control-Allow-Credentials"; +static constexpr const char *T_CORS_ACAH = "Access-Control-Allow-Headers"; +static constexpr const char *T_CORS_ACAM = "Access-Control-Allow-Methods"; +static constexpr const char *T_CORS_ACAO = "Access-Control-Allow-Origin"; +static constexpr const char *T_CORS_ACMA = "Access-Control-Max-Age"; +static constexpr const char *T_CORS_O = "Origin"; +static constexpr const char *T_data_ = "data: "; +static constexpr const char *T_Date = "Date"; +static constexpr const char *T_DIGEST = "Digest"; +static constexpr const char *T_DIGEST_ = "Digest "; +static constexpr const char *T_ETag = "ETag"; +static constexpr const char *T_event_ = "event: "; +static constexpr const char *T_EXPECT = "Expect"; +static constexpr const char *T_FALSE = "false"; +static constexpr const char *T_filename = "filename"; +static constexpr const char *T_gzip = "gzip"; +static constexpr const char *T_Host = "host"; +static constexpr const char *T_HTTP_1_0 = "HTTP/1.0"; +static constexpr const char *T_HTTP_100_CONT = "HTTP/1.1 100 Continue\r\n\r\n"; +static constexpr const char *T_id__ = "id: "; +static constexpr const char *T_IMS = "If-Modified-Since"; +static constexpr const char *T_INM = "If-None-Match"; +static constexpr const char *T_inline = "inline"; +static constexpr const char *T_keep_alive = "keep-alive"; +static constexpr const char *T_Last_Event_ID = "Last-Event-ID"; +static constexpr const char *T_Last_Modified = "Last-Modified"; +static constexpr const char *T_LOCATION = "Location"; +static constexpr const char *T_LOGIN_REQ = "Login Required"; +static constexpr const char *T_MULTIPART_ = "multipart/"; +static constexpr const char *T_name = "name"; +static constexpr const char *T_nc = "nc"; +static constexpr const char *T_no_cache = "no-cache"; +static constexpr const char *T_nonce = "nonce"; +static constexpr const char *T_none = "none"; +static constexpr const char *T_opaque = "opaque"; +static constexpr const char *T_qop = "qop"; +static constexpr const char *T_realm = "realm"; +static constexpr const char *T_realm__ = "realm=\""; +static constexpr const char *T_response = "response"; +static constexpr const char *T_retry_ = "retry: "; +static constexpr const char *T_retry_after = "Retry-After"; +static constexpr const char *T_nn = "\n\n"; +static constexpr const char *T_rn = "\r\n"; +static constexpr const char *T_rnrn = "\r\n\r\n"; +static constexpr const char *T_Server = "Server"; +static constexpr const char *T_Transfer_Encoding = "Transfer-Encoding"; +static constexpr const char *T_TRUE = "true"; +static constexpr const char *T_UPGRADE = "Upgrade"; +static constexpr const char *T_uri = "uri"; +static constexpr const char *T_username = "username"; +static constexpr const char *T_WS = "websocket"; +static constexpr const char *T_WWW_AUTH = "WWW-Authenticate"; - // HTTP Methods - static constexpr const char *T_ANY = "ANY"; - static constexpr const char *T_GET = "GET"; - static constexpr const char *T_POST = "POST"; - static constexpr const char *T_PUT = "PUT"; - static constexpr const char *T_DELETE = "DELETE"; - static constexpr const char *T_PATCH = "PATCH"; - static constexpr const char *T_HEAD = "HEAD"; - static constexpr const char *T_OPTIONS = "OPTIONS"; - static constexpr const char *T_UNKNOWN = "UNKNOWN"; +// HTTP Methods +static constexpr const char *T_ANY = "ANY"; +static constexpr const char *T_GET = "GET"; +static constexpr const char *T_POST = "POST"; +static constexpr const char *T_PUT = "PUT"; +static constexpr const char *T_DELETE = "DELETE"; +static constexpr const char *T_PATCH = "PATCH"; +static constexpr const char *T_HEAD = "HEAD"; +static constexpr const char *T_OPTIONS = "OPTIONS"; +static constexpr const char *T_UNKNOWN = "UNKNOWN"; - // Req content types - static constexpr const char *T_RCT_NOT_USED = "RCT_NOT_USED"; - static constexpr const char *T_RCT_DEFAULT = "RCT_DEFAULT"; - static constexpr const char *T_RCT_HTTP = "RCT_HTTP"; - static constexpr const char *T_RCT_WS = "RCT_WS"; - static constexpr const char *T_RCT_EVENT = "RCT_EVENT"; - static constexpr const char *T_ERROR = "ERROR"; +// Req content types +static constexpr const char *T_RCT_NOT_USED = "RCT_NOT_USED"; +static constexpr const char *T_RCT_DEFAULT = "RCT_DEFAULT"; +static constexpr const char *T_RCT_HTTP = "RCT_HTTP"; +static constexpr const char *T_RCT_WS = "RCT_WS"; +static constexpr const char *T_RCT_EVENT = "RCT_EVENT"; +static constexpr const char *T_ERROR = "ERROR"; - // extensions & MIME-Types - static constexpr const char *T__avif = ".avif"; - static constexpr const char *T__css = ".css"; - static constexpr const char *T__eot = ".eot"; - static constexpr const char *T__gif = ".gif"; - static constexpr const char *T__gz = ".gz"; - static constexpr const char *T__htm = ".htm"; - static constexpr const char *T__html = ".html"; - static constexpr const char *T__ico = ".ico"; - static constexpr const char *T__jpg = ".jpg"; - static constexpr const char *T__js = ".js"; - static constexpr const char *T__json = ".json"; - static constexpr const char *T__pdf = ".pdf"; - static constexpr const char *T__png = ".png"; - static constexpr const char *T__svg = ".svg"; - static constexpr const char *T__ttf = ".ttf"; - static constexpr const char *T__webp = ".webp"; - static constexpr const char *T__woff = ".woff"; - static constexpr const char *T__woff2 = ".woff2"; - static constexpr const char *T__xml = ".xml"; - static constexpr const char *T__zip = ".zip"; - static constexpr const char *T_application_javascript = "application/javascript"; - static constexpr const char *T_application_json = "application/json"; - static constexpr const char *T_application_msgpack = "application/msgpack"; - static constexpr const char *T_application_pdf = "application/pdf"; - static constexpr const char *T_application_x_gzip = "application/x-gzip"; - static constexpr const char *T_app_xform_urlencoded = "application/x-www-form-urlencoded"; - static constexpr const char *T_application_zip = "application/zip"; - static constexpr const char *T_font_eot = "font/eot"; - static constexpr const char *T_font_ttf = "font/ttf"; - static constexpr const char *T_font_woff = "font/woff"; - static constexpr const char *T_font_woff2 = "font/woff2"; - static constexpr const char *T_image_avif = "image/avif"; - static constexpr const char *T_image_gif = "image/gif"; - static constexpr const char *T_image_jpeg = "image/jpeg"; - static constexpr const char *T_image_png = "image/png"; - static constexpr const char *T_image_svg_xml = "image/svg+xml"; - static constexpr const char *T_image_webp = "image/webp"; - static constexpr const char *T_image_x_icon = "image/x-icon"; - static constexpr const char *T_text_css = "text/css"; - static constexpr const char *T_text_event_stream = "text/event-stream"; - static constexpr const char *T_text_html = "text/html"; - static constexpr const char *T_text_plain = "text/plain"; - static constexpr const char *T_text_xml = "text/xml"; +// extensions & MIME-Types +static constexpr const char *T__avif = ".avif"; +static constexpr const char *T__css = ".css"; +static constexpr const char *T__eot = ".eot"; +static constexpr const char *T__gif = ".gif"; +static constexpr const char *T__gz = ".gz"; +static constexpr const char *T__htm = ".htm"; +static constexpr const char *T__html = ".html"; +static constexpr const char *T__ico = ".ico"; +static constexpr const char *T__jpg = ".jpg"; +static constexpr const char *T__js = ".js"; +static constexpr const char *T__json = ".json"; +static constexpr const char *T__pdf = ".pdf"; +static constexpr const char *T__png = ".png"; +static constexpr const char *T__svg = ".svg"; +static constexpr const char *T__ttf = ".ttf"; +static constexpr const char *T__webp = ".webp"; +static constexpr const char *T__woff = ".woff"; +static constexpr const char *T__woff2 = ".woff2"; +static constexpr const char *T__xml = ".xml"; +static constexpr const char *T__zip = ".zip"; +static constexpr const char *T_application_javascript = "application/javascript"; +static constexpr const char *T_application_json = "application/json"; +static constexpr const char *T_application_msgpack = "application/msgpack"; +static constexpr const char *T_application_pdf = "application/pdf"; +static constexpr const char *T_application_x_gzip = "application/x-gzip"; +static constexpr const char *T_app_xform_urlencoded = "application/x-www-form-urlencoded"; +static constexpr const char *T_application_zip = "application/zip"; +static constexpr const char *T_font_eot = "font/eot"; +static constexpr const char *T_font_ttf = "font/ttf"; +static constexpr const char *T_font_woff = "font/woff"; +static constexpr const char *T_font_woff2 = "font/woff2"; +static constexpr const char *T_image_avif = "image/avif"; +static constexpr const char *T_image_gif = "image/gif"; +static constexpr const char *T_image_jpeg = "image/jpeg"; +static constexpr const char *T_image_png = "image/png"; +static constexpr const char *T_image_svg_xml = "image/svg+xml"; +static constexpr const char *T_image_webp = "image/webp"; +static constexpr const char *T_image_x_icon = "image/x-icon"; +static constexpr const char *T_text_css = "text/css"; +static constexpr const char *T_text_event_stream = "text/event-stream"; +static constexpr const char *T_text_html = "text/html"; +static constexpr const char *T_text_plain = "text/plain"; +static constexpr const char *T_text_xml = "text/xml"; - // Response codes - static constexpr const char *T_HTTP_CODE_100 = "Continue"; - static constexpr const char *T_HTTP_CODE_101 = "Switching Protocols"; - static constexpr const char *T_HTTP_CODE_200 = "OK"; - static constexpr const char *T_HTTP_CODE_201 = "Created"; - static constexpr const char *T_HTTP_CODE_202 = "Accepted"; - static constexpr const char *T_HTTP_CODE_203 = "Non-Authoritative Information"; - static constexpr const char *T_HTTP_CODE_204 = "No Content"; - static constexpr const char *T_HTTP_CODE_205 = "Reset Content"; - static constexpr const char *T_HTTP_CODE_206 = "Partial Content"; - static constexpr const char *T_HTTP_CODE_300 = "Multiple Choices"; - static constexpr const char *T_HTTP_CODE_301 = "Moved Permanently"; - static constexpr const char *T_HTTP_CODE_302 = "Found"; - static constexpr const char *T_HTTP_CODE_303 = "See Other"; - static constexpr const char *T_HTTP_CODE_304 = "Not Modified"; - static constexpr const char *T_HTTP_CODE_305 = "Use Proxy"; - static constexpr const char *T_HTTP_CODE_307 = "Temporary Redirect"; - static constexpr const char *T_HTTP_CODE_400 = "Bad Request"; - static constexpr const char *T_HTTP_CODE_401 = "Unauthorized"; - static constexpr const char *T_HTTP_CODE_402 = "Payment Required"; - static constexpr const char *T_HTTP_CODE_403 = "Forbidden"; - static constexpr const char *T_HTTP_CODE_404 = "Not Found"; - static constexpr const char *T_HTTP_CODE_405 = "Method Not Allowed"; - static constexpr const char *T_HTTP_CODE_406 = "Not Acceptable"; - static constexpr const char *T_HTTP_CODE_407 = "Proxy Authentication Required"; - static constexpr const char *T_HTTP_CODE_408 = "Request Time-out"; - static constexpr const char *T_HTTP_CODE_409 = "Conflict"; - static constexpr const char *T_HTTP_CODE_410 = "Gone"; - static constexpr const char *T_HTTP_CODE_411 = "Length Required"; - static constexpr const char *T_HTTP_CODE_412 = "Precondition Failed"; - static constexpr const char *T_HTTP_CODE_413 = "Request Entity Too Large"; - static constexpr const char *T_HTTP_CODE_414 = "Request-URI Too Large"; - static constexpr const char *T_HTTP_CODE_415 = "Unsupported Media Type"; - static constexpr const char *T_HTTP_CODE_416 = "Requested Range Not Satisfiable"; - static constexpr const char *T_HTTP_CODE_417 = "Expectation Failed"; - static constexpr const char *T_HTTP_CODE_429 = "Too Many Requests"; - static constexpr const char *T_HTTP_CODE_500 = "Internal Server Error"; - static constexpr const char *T_HTTP_CODE_501 = "Not Implemented"; - static constexpr const char *T_HTTP_CODE_502 = "Bad Gateway"; - static constexpr const char *T_HTTP_CODE_503 = "Service Unavailable"; - static constexpr const char *T_HTTP_CODE_504 = "Gateway Time-out"; - static constexpr const char *T_HTTP_CODE_505 = "HTTP Version Not Supported"; - static constexpr const char *T_HTTP_CODE_ANY = "Unknown code"; +// Response codes +static constexpr const char *T_HTTP_CODE_100 = "Continue"; +static constexpr const char *T_HTTP_CODE_101 = "Switching Protocols"; +static constexpr const char *T_HTTP_CODE_200 = "OK"; +static constexpr const char *T_HTTP_CODE_201 = "Created"; +static constexpr const char *T_HTTP_CODE_202 = "Accepted"; +static constexpr const char *T_HTTP_CODE_203 = "Non-Authoritative Information"; +static constexpr const char *T_HTTP_CODE_204 = "No Content"; +static constexpr const char *T_HTTP_CODE_205 = "Reset Content"; +static constexpr const char *T_HTTP_CODE_206 = "Partial Content"; +static constexpr const char *T_HTTP_CODE_300 = "Multiple Choices"; +static constexpr const char *T_HTTP_CODE_301 = "Moved Permanently"; +static constexpr const char *T_HTTP_CODE_302 = "Found"; +static constexpr const char *T_HTTP_CODE_303 = "See Other"; +static constexpr const char *T_HTTP_CODE_304 = "Not Modified"; +static constexpr const char *T_HTTP_CODE_305 = "Use Proxy"; +static constexpr const char *T_HTTP_CODE_307 = "Temporary Redirect"; +static constexpr const char *T_HTTP_CODE_400 = "Bad Request"; +static constexpr const char *T_HTTP_CODE_401 = "Unauthorized"; +static constexpr const char *T_HTTP_CODE_402 = "Payment Required"; +static constexpr const char *T_HTTP_CODE_403 = "Forbidden"; +static constexpr const char *T_HTTP_CODE_404 = "Not Found"; +static constexpr const char *T_HTTP_CODE_405 = "Method Not Allowed"; +static constexpr const char *T_HTTP_CODE_406 = "Not Acceptable"; +static constexpr const char *T_HTTP_CODE_407 = "Proxy Authentication Required"; +static constexpr const char *T_HTTP_CODE_408 = "Request Time-out"; +static constexpr const char *T_HTTP_CODE_409 = "Conflict"; +static constexpr const char *T_HTTP_CODE_410 = "Gone"; +static constexpr const char *T_HTTP_CODE_411 = "Length Required"; +static constexpr const char *T_HTTP_CODE_412 = "Precondition Failed"; +static constexpr const char *T_HTTP_CODE_413 = "Request Entity Too Large"; +static constexpr const char *T_HTTP_CODE_414 = "Request-URI Too Large"; +static constexpr const char *T_HTTP_CODE_415 = "Unsupported Media Type"; +static constexpr const char *T_HTTP_CODE_416 = "Requested Range Not Satisfiable"; +static constexpr const char *T_HTTP_CODE_417 = "Expectation Failed"; +static constexpr const char *T_HTTP_CODE_429 = "Too Many Requests"; +static constexpr const char *T_HTTP_CODE_500 = "Internal Server Error"; +static constexpr const char *T_HTTP_CODE_501 = "Not Implemented"; +static constexpr const char *T_HTTP_CODE_502 = "Bad Gateway"; +static constexpr const char *T_HTTP_CODE_503 = "Service Unavailable"; +static constexpr const char *T_HTTP_CODE_504 = "Gateway Time-out"; +static constexpr const char *T_HTTP_CODE_505 = "HTTP Version Not Supported"; +static constexpr const char *T_HTTP_CODE_ANY = "Unknown code"; - static constexpr const char *T_only_once_headers[] = {T_Accept_Ranges, T_Content_Length, T_Content_Type, T_Connection, T_CORS_ACAC, T_CORS_ACAH, - T_CORS_ACAM, T_CORS_ACAO, T_CORS_ACMA, T_CORS_O, T_Date, T_DIGEST, T_ETag, T_Last_Modified, T_LOCATION, T_retry_after, - T_Transfer_Encoding, T_Content_Location, T_Server, T_WWW_AUTH}; - static constexpr size_t T_only_once_headers_len = sizeof(T_only_once_headers) / sizeof(T_only_once_headers[0]); +static constexpr const char *T_only_once_headers[] = { + T_Accept_Ranges, T_Content_Length, T_Content_Type, T_Connection, T_CORS_ACAC, T_CORS_ACAH, T_CORS_ACAM, T_CORS_ACAO, + T_CORS_ACMA, T_CORS_O, T_Date, T_DIGEST, T_ETag, T_Last_Modified, T_LOCATION, T_retry_after, + T_Transfer_Encoding, T_Content_Location, T_Server, T_WWW_AUTH +}; +static constexpr size_t T_only_once_headers_len = sizeof(T_only_once_headers) / sizeof(T_only_once_headers[0]); -} // namespace asyncsrv +} // namespace asyncsrv From cdc6c3c14ad93ecf9769ad4a975465119d778bd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20M=2E=20Pi=C3=B1eiro?= Date: Thu, 17 Jul 2025 20:08:01 +0200 Subject: [PATCH 3/3] revert Title Case changes in literals.h me-no-dev requests fulfilled: - please do not change the styling - to split it in two PRs --- src/literals.h | 91 +++++++++++++++++++++++++------------------------- 1 file changed, 45 insertions(+), 46 deletions(-) diff --git a/src/literals.h b/src/literals.h index e5699ca7..0b3c8003 100644 --- a/src/literals.h +++ b/src/literals.h @@ -7,42 +7,45 @@ namespace asyncsrv { static constexpr const char *empty = ""; +static constexpr const char *T_inline = "inline"; +static constexpr const char *T_attachment = "attachment; filename=\"%s\""; + static constexpr const char *T__opaque = "\", opaque=\""; static constexpr const char *T_100_CONTINUE = "100-continue"; static constexpr const char *T_13 = "13"; -static constexpr const char *T_ACCEPT = "Accept"; -static constexpr const char *T_Accept_Ranges = "Accept-Ranges"; -static constexpr const char *T_attachment = "attachment; filename=\"%s\""; -static constexpr const char *T_AUTH = "Authorization"; +static constexpr const char *T_ACCEPT = "accept"; +static constexpr const char *T_Accept_Ranges = "accept-ranges"; +static constexpr const char *T_app_xform_urlencoded = "application/x-www-form-urlencoded"; +static constexpr const char *T_AUTH = "authorization"; static constexpr const char *T_auth_nonce = "\", qop=\"auth\", nonce=\""; -static constexpr const char *T_BASIC = "Basic"; -static constexpr const char *T_BASIC_REALM = "Basic realm=\""; -static constexpr const char *T_BEARER = "Bearer"; +static constexpr const char *T_BASIC = "basic"; +static constexpr const char *T_BASIC_REALM = "basic realm=\""; +static constexpr const char *T_BEARER = "bearer"; static constexpr const char *T_BODY = "body"; -static constexpr const char *T_Cache_Control = "Cache-Control"; +static constexpr const char *T_Cache_Control = "cache-control"; static constexpr const char *T_chunked = "chunked"; static constexpr const char *T_close = "close"; static constexpr const char *T_cnonce = "cnonce"; -static constexpr const char *T_Connection = "Connection"; -static constexpr const char *T_Content_Disposition = "Content-Disposition"; -static constexpr const char *T_Content_Encoding = "Content-Encoding"; -static constexpr const char *T_Content_Length = "Content-Length"; -static constexpr const char *T_Content_Type = "Content-Type"; -static constexpr const char *T_Content_Location = "Content-Location"; -static constexpr const char *T_Cookie = "Cookie"; -static constexpr const char *T_CORS_ACAC = "Access-Control-Allow-Credentials"; -static constexpr const char *T_CORS_ACAH = "Access-Control-Allow-Headers"; -static constexpr const char *T_CORS_ACAM = "Access-Control-Allow-Methods"; -static constexpr const char *T_CORS_ACAO = "Access-Control-Allow-Origin"; -static constexpr const char *T_CORS_ACMA = "Access-Control-Max-Age"; -static constexpr const char *T_CORS_O = "Origin"; +static constexpr const char *T_Connection = "connection"; +static constexpr const char *T_Content_Disposition = "content-disposition"; +static constexpr const char *T_Content_Encoding = "content-encoding"; +static constexpr const char *T_Content_Length = "content-length"; +static constexpr const char *T_Content_Type = "content-type"; +static constexpr const char *T_Content_Location = "content-location"; +static constexpr const char *T_Cookie = "cookie"; +static constexpr const char *T_CORS_ACAC = "access-control-allow-credentials"; +static constexpr const char *T_CORS_ACAH = "access-control-allow-headers"; +static constexpr const char *T_CORS_ACAM = "access-control-allow-methods"; +static constexpr const char *T_CORS_ACAO = "access-control-allow-origin"; +static constexpr const char *T_CORS_ACMA = "access-control-max-age"; +static constexpr const char *T_CORS_O = "origin"; static constexpr const char *T_data_ = "data: "; -static constexpr const char *T_Date = "Date"; -static constexpr const char *T_DIGEST = "Digest"; -static constexpr const char *T_DIGEST_ = "Digest "; -static constexpr const char *T_ETag = "ETag"; +static constexpr const char *T_Date = "date"; +static constexpr const char *T_DIGEST = "digest"; +static constexpr const char *T_DIGEST_ = "digest "; +static constexpr const char *T_ETag = "etag"; static constexpr const char *T_event_ = "event: "; -static constexpr const char *T_EXPECT = "Expect"; +static constexpr const char *T_EXPECT = "expect"; static constexpr const char *T_FALSE = "false"; static constexpr const char *T_filename = "filename"; static constexpr const char *T_gzip = "gzip"; @@ -50,13 +53,12 @@ static constexpr const char *T_Host = "host"; static constexpr const char *T_HTTP_1_0 = "HTTP/1.0"; static constexpr const char *T_HTTP_100_CONT = "HTTP/1.1 100 Continue\r\n\r\n"; static constexpr const char *T_id__ = "id: "; -static constexpr const char *T_IMS = "If-Modified-Since"; -static constexpr const char *T_INM = "If-None-Match"; -static constexpr const char *T_inline = "inline"; +static constexpr const char *T_IMS = "if-modified-since"; +static constexpr const char *T_INM = "if-none-match"; static constexpr const char *T_keep_alive = "keep-alive"; -static constexpr const char *T_Last_Event_ID = "Last-Event-ID"; -static constexpr const char *T_Last_Modified = "Last-Modified"; -static constexpr const char *T_LOCATION = "Location"; +static constexpr const char *T_Last_Event_ID = "last-event-id"; +static constexpr const char *T_Last_Modified = "last-modified"; +static constexpr const char *T_LOCATION = "location"; static constexpr const char *T_LOGIN_REQ = "Login Required"; static constexpr const char *T_MULTIPART_ = "multipart/"; static constexpr const char *T_name = "name"; @@ -70,20 +72,21 @@ static constexpr const char *T_realm = "realm"; static constexpr const char *T_realm__ = "realm=\""; static constexpr const char *T_response = "response"; static constexpr const char *T_retry_ = "retry: "; -static constexpr const char *T_retry_after = "Retry-After"; +static constexpr const char *T_retry_after = "retry-after"; static constexpr const char *T_nn = "\n\n"; static constexpr const char *T_rn = "\r\n"; static constexpr const char *T_rnrn = "\r\n\r\n"; -static constexpr const char *T_Server = "Server"; -static constexpr const char *T_Transfer_Encoding = "Transfer-Encoding"; +static constexpr const char *T_Server = "server"; +static constexpr const char *T_Transfer_Encoding = "transfer-encoding"; static constexpr const char *T_TRUE = "true"; -static constexpr const char *T_UPGRADE = "Upgrade"; +static constexpr const char *T_UPGRADE = "upgrade"; static constexpr const char *T_uri = "uri"; static constexpr const char *T_username = "username"; static constexpr const char *T_WS = "websocket"; -static constexpr const char *T_WWW_AUTH = "WWW-Authenticate"; +static constexpr const char *T_WWW_AUTH = "www-authenticate"; // HTTP Methods + static constexpr const char *T_ANY = "ANY"; static constexpr const char *T_GET = "GET"; static constexpr const char *T_POST = "POST"; @@ -128,7 +131,6 @@ static constexpr const char *T_application_json = "application/json"; static constexpr const char *T_application_msgpack = "application/msgpack"; static constexpr const char *T_application_pdf = "application/pdf"; static constexpr const char *T_application_x_gzip = "application/x-gzip"; -static constexpr const char *T_app_xform_urlencoded = "application/x-www-form-urlencoded"; static constexpr const char *T_application_zip = "application/zip"; static constexpr const char *T_font_eot = "font/eot"; static constexpr const char *T_font_ttf = "font/ttf"; @@ -180,7 +182,7 @@ static constexpr const char *T_HTTP_CODE_412 = "Precondition Failed"; static constexpr const char *T_HTTP_CODE_413 = "Request Entity Too Large"; static constexpr const char *T_HTTP_CODE_414 = "Request-URI Too Large"; static constexpr const char *T_HTTP_CODE_415 = "Unsupported Media Type"; -static constexpr const char *T_HTTP_CODE_416 = "Requested Range Not Satisfiable"; +static constexpr const char *T_HTTP_CODE_416 = "Requested range not satisfiable"; static constexpr const char *T_HTTP_CODE_417 = "Expectation Failed"; static constexpr const char *T_HTTP_CODE_429 = "Too Many Requests"; static constexpr const char *T_HTTP_CODE_500 = "Internal Server Error"; @@ -188,14 +190,11 @@ static constexpr const char *T_HTTP_CODE_501 = "Not Implemented"; static constexpr const char *T_HTTP_CODE_502 = "Bad Gateway"; static constexpr const char *T_HTTP_CODE_503 = "Service Unavailable"; static constexpr const char *T_HTTP_CODE_504 = "Gateway Time-out"; -static constexpr const char *T_HTTP_CODE_505 = "HTTP Version Not Supported"; +static constexpr const char *T_HTTP_CODE_505 = "HTTP Version not supported"; static constexpr const char *T_HTTP_CODE_ANY = "Unknown code"; -static constexpr const char *T_only_once_headers[] = { - T_Accept_Ranges, T_Content_Length, T_Content_Type, T_Connection, T_CORS_ACAC, T_CORS_ACAH, T_CORS_ACAM, T_CORS_ACAO, - T_CORS_ACMA, T_CORS_O, T_Date, T_DIGEST, T_ETag, T_Last_Modified, T_LOCATION, T_retry_after, - T_Transfer_Encoding, T_Content_Location, T_Server, T_WWW_AUTH -}; -static constexpr size_t T_only_once_headers_len = sizeof(T_only_once_headers) / sizeof(T_only_once_headers[0]); +static constexpr const uint8_t T_only_once_headers_len = 11; +static constexpr const char *T_only_once_headers[] = {T_Content_Length, T_Content_Type, T_Date, T_ETag, T_Last_Modified, T_LOCATION, T_retry_after, + T_Transfer_Encoding, T_Content_Location, T_Server, T_WWW_AUTH}; } // namespace asyncsrv