diff --git a/src/HttpErrors.h b/src/HttpErrors.h new file mode 100644 index 0000000..f6c92ff --- /dev/null +++ b/src/HttpErrors.h @@ -0,0 +1,40 @@ +/* + * Authored by Alex Hultman, 2018-2023. + * Intellectual property of third-party. + + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + + * http://www.apache.org/licenses/LICENSE-2.0 + + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef UWS_HTTP_ERRORS +#define UWS_HTTP_ERRORS + +#include + +namespace uWS { +/* Possible errors from http parsing */ +enum HttpError { + HTTP_ERROR_505_HTTP_VERSION_NOT_SUPPORTED = 1, + HTTP_ERROR_431_REQUEST_HEADER_FIELDS_TOO_LARGE = 2, + HTTP_ERROR_400_BAD_REQUEST = 3 +}; + +/* Returned parser errors match this LUT. */ +static const std::string_view httpErrorResponses[] = { + "", /* Zeroth place is no error so don't use it */ + "HTTP/1.1 505 HTTP Version Not Supported\r\n\r\n

HTTP Version Not Supported

This server does not support HTTP/1.0.


uWebSockets/20 Server", + "HTTP/1.1 431 Request Header Fields Too Large\r\n\r\n

Request Header Fields Too Large


uWebSockets/20 Server", + "HTTP/1.1 400 Bad Request\r\n\r\n

Bad Request


uWebSockets/20 Server" +}; +} + +#endif \ No newline at end of file diff --git a/src/HttpParser.h b/src/HttpParser.h index 99463ec..797be36 100644 --- a/src/HttpParser.h +++ b/src/HttpParser.h @@ -33,24 +33,10 @@ #include "BloomFilter.h" #include "ProxyParser.h" #include "QueryParser.h" +#include "HttpErrors.h" namespace uWS { -/* Possible errors from http parsing */ -enum HttpError { - HTTP_ERROR_505_HTTP_VERSION_NOT_SUPPORTED = 1, - HTTP_ERROR_431_REQUEST_HEADER_FIELDS_TOO_LARGE = 2, - HTTP_ERROR_400_BAD_REQUEST = 3 -}; - -/* Returned parser errors match this LUT. */ -static const std::string_view httpErrorResponses[] = { - "", /* Zeroth place is no error so don't use it */ - "HTTP/1.1 505 HTTP Version Not Supported\r\n\r\n

HTTP Version Not Supported

This server does not support HTTP/1.0.


uWebSockets/20 Server", - "HTTP/1.1 431 Request Header Fields Too Large\r\n\r\n

Request Header Fields Too Large


uWebSockets/20 Server", - "HTTP/1.1 400 Bad Request\r\n\r\n

Bad Request


uWebSockets/20 Server" -}; - /* We require at least this much post padding */ static const unsigned int MINIMUM_HTTP_POST_PADDING = 32; static void *FULLPTR = (void *)~(uintptr_t)0;