aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/webcore/HTTPHeaderNames.gperf
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-06-22 23:21:48 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-06-22 23:21:48 -0700
commit729d445b6885f69dd2c6355f38707bd42851c791 (patch)
treef87a7c408929ea3f57bbb7ace380cf869da83c0e /src/bun.js/bindings/webcore/HTTPHeaderNames.gperf
parent25f820c6bf1d8ec6d444ef579cc036b8c0607b75 (diff)
downloadbun-jarred/rename.tar.gz
bun-jarred/rename.tar.zst
bun-jarred/rename.zip
change the directory structurejarred/rename
Diffstat (limited to 'src/bun.js/bindings/webcore/HTTPHeaderNames.gperf')
-rw-r--r--src/bun.js/bindings/webcore/HTTPHeaderNames.gperf295
1 files changed, 295 insertions, 0 deletions
diff --git a/src/bun.js/bindings/webcore/HTTPHeaderNames.gperf b/src/bun.js/bindings/webcore/HTTPHeaderNames.gperf
new file mode 100644
index 000000000..66a4b24e8
--- /dev/null
+++ b/src/bun.js/bindings/webcore/HTTPHeaderNames.gperf
@@ -0,0 +1,295 @@
+
+%{
+/*
+ * Copyright (C) 2014 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/// This file is generated by create-http-header-name-table, do not edit.
+
+#include "config.h"
+#include "HTTPHeaderNames.h"
+
+#include <wtf/text/StringView.h>
+
+IGNORE_WARNINGS_BEGIN("implicit-fallthrough")
+
+// Older versions of gperf like to use the `register` keyword.
+#define register
+
+namespace WebCore {
+
+static const struct HeaderNameString {
+ const char* const name;
+ unsigned length;
+} headerNameStrings[] = {
+ { "Accept", 6 },
+ { "Accept-Charset", 14 },
+ { "Accept-Encoding", 15 },
+ { "Accept-Language", 15 },
+ { "Accept-Ranges", 13 },
+ { "Access-Control-Allow-Credentials", 32 },
+ { "Access-Control-Allow-Headers", 28 },
+ { "Access-Control-Allow-Methods", 28 },
+ { "Access-Control-Allow-Origin", 27 },
+ { "Access-Control-Expose-Headers", 29 },
+ { "Access-Control-Max-Age", 22 },
+ { "Access-Control-Request-Headers", 30 },
+ { "Access-Control-Request-Method", 29 },
+ { "Age", 3 },
+ { "Authorization", 13 },
+ { "Cache-Control", 13 },
+ { "Connection", 10 },
+ { "Content-Disposition", 19 },
+ { "Content-Encoding", 16 },
+ { "Content-Language", 16 },
+ { "Content-Length", 14 },
+ { "Content-Location", 16 },
+ { "Content-Range", 13 },
+ { "Content-Security-Policy", 23 },
+ { "Content-Security-Policy-Report-Only", 35 },
+ { "Content-Type", 12 },
+ { "Cookie", 6 },
+ { "Cookie2", 7 },
+ { "Cross-Origin-Embedder-Policy", 28 },
+ { "Cross-Origin-Embedder-Policy-Report-Only", 40 },
+ { "Cross-Origin-Opener-Policy", 26 },
+ { "Cross-Origin-Opener-Policy-Report-Only", 38 },
+ { "Cross-Origin-Resource-Policy", 28 },
+ { "DNT", 3 },
+ { "Date", 4 },
+ { "Default-Style", 13 },
+ { "ETag", 4 },
+ { "Expect", 6 },
+ { "Expires", 7 },
+ { "Host", 4 },
+ { "Icy-MetaInt", 11 },
+ { "Icy-Metadata", 12 },
+ { "If-Match", 8 },
+ { "If-Modified-Since", 17 },
+ { "If-None-Match", 13 },
+ { "If-Range", 8 },
+ { "If-Unmodified-Since", 19 },
+ { "Keep-Alive", 10 },
+ { "Last-Event-ID", 13 },
+ { "Last-Modified", 13 },
+ { "Link", 4 },
+ { "Location", 8 },
+ { "Origin", 6 },
+ { "Ping-From", 9 },
+ { "Ping-To", 7 },
+ { "Pragma", 6 },
+ { "Proxy-Authorization", 19 },
+ { "Purpose", 7 },
+ { "Range", 5 },
+ { "Referer", 7 },
+ { "Referrer-Policy", 15 },
+ { "Refresh", 7 },
+ { "Report-To", 9 },
+ { "Sec-Fetch-Dest", 14 },
+ { "Sec-Fetch-Mode", 14 },
+ { "Sec-WebSocket-Accept", 20 },
+ { "Sec-WebSocket-Extensions", 24 },
+ { "Sec-WebSocket-Key", 17 },
+ { "Sec-WebSocket-Protocol", 22 },
+ { "Sec-WebSocket-Version", 21 },
+ { "Server-Timing", 13 },
+ { "Service-Worker", 14 },
+ { "Service-Worker-Allowed", 22 },
+ { "Service-Worker-Navigation-Preload", 33 },
+ { "Set-Cookie", 10 },
+ { "Set-Cookie2", 11 },
+ { "SourceMap", 9 },
+ { "TE", 2 },
+ { "Timing-Allow-Origin", 19 },
+ { "Trailer", 7 },
+ { "Transfer-Encoding", 17 },
+ { "Upgrade", 7 },
+ { "Upgrade-Insecure-Requests", 25 },
+ { "User-Agent", 10 },
+ { "Vary", 4 },
+ { "Via", 3 },
+ { "X-Content-Type-Options", 22 },
+ { "X-DNS-Prefetch-Control", 22 },
+ { "X-Frame-Options", 15 },
+ { "X-SourceMap", 11 },
+ { "X-Temp-Tablet", 13 },
+ { "X-XSS-Protection", 16 },
+};
+
+
+%}
+
+%language=C++
+%readonly-tables
+%global-table
+%compare-strncmp
+%ignore-case
+%struct-type
+struct HeaderNameHashEntry {
+ const char* name;
+ HTTPHeaderName headerName;
+};
+%define class-name HTTPHeaderNamesHash
+%define lookup-function-name findHeaderNameImpl
+%define hash-function-name header_name_hash_function
+%define word-array-name header_name_wordlist
+%enum
+%%
+Accept, HTTPHeaderName::Accept
+Accept-Charset, HTTPHeaderName::AcceptCharset
+Accept-Encoding, HTTPHeaderName::AcceptEncoding
+Accept-Language, HTTPHeaderName::AcceptLanguage
+Accept-Ranges, HTTPHeaderName::AcceptRanges
+Access-Control-Allow-Credentials, HTTPHeaderName::AccessControlAllowCredentials
+Access-Control-Allow-Headers, HTTPHeaderName::AccessControlAllowHeaders
+Access-Control-Allow-Methods, HTTPHeaderName::AccessControlAllowMethods
+Access-Control-Allow-Origin, HTTPHeaderName::AccessControlAllowOrigin
+Access-Control-Expose-Headers, HTTPHeaderName::AccessControlExposeHeaders
+Access-Control-Max-Age, HTTPHeaderName::AccessControlMaxAge
+Access-Control-Request-Headers, HTTPHeaderName::AccessControlRequestHeaders
+Access-Control-Request-Method, HTTPHeaderName::AccessControlRequestMethod
+Age, HTTPHeaderName::Age
+Authorization, HTTPHeaderName::Authorization
+Cache-Control, HTTPHeaderName::CacheControl
+Connection, HTTPHeaderName::Connection
+Content-Disposition, HTTPHeaderName::ContentDisposition
+Content-Encoding, HTTPHeaderName::ContentEncoding
+Content-Language, HTTPHeaderName::ContentLanguage
+Content-Length, HTTPHeaderName::ContentLength
+Content-Location, HTTPHeaderName::ContentLocation
+Content-Range, HTTPHeaderName::ContentRange
+Content-Security-Policy, HTTPHeaderName::ContentSecurityPolicy
+Content-Security-Policy-Report-Only, HTTPHeaderName::ContentSecurityPolicyReportOnly
+Content-Type, HTTPHeaderName::ContentType
+Cookie, HTTPHeaderName::Cookie
+Cookie2, HTTPHeaderName::Cookie2
+Cross-Origin-Embedder-Policy, HTTPHeaderName::CrossOriginEmbedderPolicy
+Cross-Origin-Embedder-Policy-Report-Only, HTTPHeaderName::CrossOriginEmbedderPolicyReportOnly
+Cross-Origin-Opener-Policy, HTTPHeaderName::CrossOriginOpenerPolicy
+Cross-Origin-Opener-Policy-Report-Only, HTTPHeaderName::CrossOriginOpenerPolicyReportOnly
+Cross-Origin-Resource-Policy, HTTPHeaderName::CrossOriginResourcePolicy
+DNT, HTTPHeaderName::DNT
+Date, HTTPHeaderName::Date
+Default-Style, HTTPHeaderName::DefaultStyle
+ETag, HTTPHeaderName::ETag
+Expect, HTTPHeaderName::Expect
+Expires, HTTPHeaderName::Expires
+Host, HTTPHeaderName::Host
+Icy-MetaInt, HTTPHeaderName::IcyMetaInt
+Icy-Metadata, HTTPHeaderName::IcyMetadata
+If-Match, HTTPHeaderName::IfMatch
+If-Modified-Since, HTTPHeaderName::IfModifiedSince
+If-None-Match, HTTPHeaderName::IfNoneMatch
+If-Range, HTTPHeaderName::IfRange
+If-Unmodified-Since, HTTPHeaderName::IfUnmodifiedSince
+Keep-Alive, HTTPHeaderName::KeepAlive
+Last-Event-ID, HTTPHeaderName::LastEventID
+Last-Modified, HTTPHeaderName::LastModified
+Link, HTTPHeaderName::Link
+Location, HTTPHeaderName::Location
+Origin, HTTPHeaderName::Origin
+Ping-From, HTTPHeaderName::PingFrom
+Ping-To, HTTPHeaderName::PingTo
+Pragma, HTTPHeaderName::Pragma
+Proxy-Authorization, HTTPHeaderName::ProxyAuthorization
+Purpose, HTTPHeaderName::Purpose
+Range, HTTPHeaderName::Range
+Referer, HTTPHeaderName::Referer
+Referrer-Policy, HTTPHeaderName::ReferrerPolicy
+Refresh, HTTPHeaderName::Refresh
+Report-To, HTTPHeaderName::ReportTo
+Sec-Fetch-Dest, HTTPHeaderName::SecFetchDest
+Sec-Fetch-Mode, HTTPHeaderName::SecFetchMode
+Sec-WebSocket-Accept, HTTPHeaderName::SecWebSocketAccept
+Sec-WebSocket-Extensions, HTTPHeaderName::SecWebSocketExtensions
+Sec-WebSocket-Key, HTTPHeaderName::SecWebSocketKey
+Sec-WebSocket-Protocol, HTTPHeaderName::SecWebSocketProtocol
+Sec-WebSocket-Version, HTTPHeaderName::SecWebSocketVersion
+Server-Timing, HTTPHeaderName::ServerTiming
+Service-Worker, HTTPHeaderName::ServiceWorker
+Service-Worker-Allowed, HTTPHeaderName::ServiceWorkerAllowed
+Service-Worker-Navigation-Preload, HTTPHeaderName::ServiceWorkerNavigationPreload
+Set-Cookie, HTTPHeaderName::SetCookie
+Set-Cookie2, HTTPHeaderName::SetCookie2
+SourceMap, HTTPHeaderName::SourceMap
+TE, HTTPHeaderName::TE
+Timing-Allow-Origin, HTTPHeaderName::TimingAllowOrigin
+Trailer, HTTPHeaderName::Trailer
+Transfer-Encoding, HTTPHeaderName::TransferEncoding
+Upgrade, HTTPHeaderName::Upgrade
+Upgrade-Insecure-Requests, HTTPHeaderName::UpgradeInsecureRequests
+User-Agent, HTTPHeaderName::UserAgent
+Vary, HTTPHeaderName::Vary
+Via, HTTPHeaderName::Via
+X-Content-Type-Options, HTTPHeaderName::XContentTypeOptions
+X-DNS-Prefetch-Control, HTTPHeaderName::XDNSPrefetchControl
+X-Frame-Options, HTTPHeaderName::XFrameOptions
+X-SourceMap, HTTPHeaderName::XSourceMap
+X-Temp-Tablet, HTTPHeaderName::XTempTablet
+X-XSS-Protection, HTTPHeaderName::XXSSProtection
+%%
+bool findHTTPHeaderName(StringView stringView, HTTPHeaderName& headerName)
+{
+ unsigned length = stringView.length();
+ if (length > maxHTTPHeaderNameLength || length < minHTTPHeaderNameLength)
+ return false;
+
+ if (stringView.is8Bit()) {
+ if (auto nameAndString = HTTPHeaderNamesHash::findHeaderNameImpl(reinterpret_cast<const char*>(stringView.characters8()), length)) {
+ headerName = nameAndString->headerName;
+ return true;
+ }
+ } else {
+ LChar characters[maxHTTPHeaderNameLength];
+ for (unsigned i = 0; i < length; ++i) {
+ UChar character = stringView.characters16()[i];
+ if (!isASCII(character))
+ return false;
+
+ characters[i] = static_cast<LChar>(character);
+ }
+
+ if (auto nameAndString = HTTPHeaderNamesHash::findHeaderNameImpl(reinterpret_cast<const char*>(characters), length)) {
+ headerName = nameAndString->headerName;
+ return true;
+ }
+ }
+
+ return false;
+}
+
+StringView httpHeaderNameString(HTTPHeaderName headerName)
+{
+ ASSERT(static_cast<unsigned>(headerName) < numHTTPHeaderNames);
+
+ const auto& name = headerNameStrings[static_cast<unsigned>(headerName)];
+
+ return StringView { reinterpret_cast<const LChar*>(name.name), static_cast<unsigned>(name.length) };
+}
+
+} // namespace WebCore
+
+#if defined(__clang__)
+IGNORE_WARNINGS_END
+#endif