Buffering now has optimal performance, bugs have been fixed, and some missing apis have been introduced. This implementation is also now more production worthy since it's less brittle now in terms of system errors. That's going to help redbean since lua i/o is all based on stdio. See #97
68 lines
2.2 KiB
Plaintext
68 lines
2.2 KiB
Plaintext
%{
|
|
#include "libc/str/str.h"
|
|
#include "net/http/http.h"
|
|
#define GPERF_DOWNCASE
|
|
%}
|
|
%compare-strncmp
|
|
%ignore-case
|
|
%language=ANSI-C
|
|
%readonly-tables
|
|
%struct-type
|
|
%define lookup-function-name LookupHttpHeader
|
|
struct HttpHeaderSlot { char *name; char code; };
|
|
%%
|
|
Accept, kHttpAccept
|
|
Accept-Charset, kHttpAcceptCharset
|
|
Accept-Encoding, kHttpAcceptEncoding
|
|
Accept-Language, kHttpAcceptLanguage
|
|
Age, kHttpAge
|
|
Allow, kHttpAllow
|
|
Authorization, kHttpAuthorization
|
|
Cache-Control, kHttpCacheControl
|
|
Chunked, kHttpChunked
|
|
Close, kHttpClose
|
|
Connection, kHttpConnection
|
|
Content-Base, kHttpContentBase
|
|
Content-Encoding, kHttpContentEncoding
|
|
Content-Language, kHttpContentLanguage
|
|
Content-Length, kHttpContentLength
|
|
Content-Location, kHttpContentLocation
|
|
Content-Md5, kHttpContentMd5
|
|
Content-Range, kHttpContentRange
|
|
Content-Type, kHttpContentType
|
|
Date, kHttpDate
|
|
ETag, kHttpEtag
|
|
Expires, kHttpExpires
|
|
From, kHttpFrom
|
|
Host, kHttpHost
|
|
If-Match, kHttpIfMatch
|
|
If-Modified-Since, kHttpIfModifiedSince
|
|
If-None-Match, kHttpIfNoneMatch
|
|
If-Range, kHttpIfRange
|
|
If-Unmodified-Since, kHttpIfUnmodifiedSince
|
|
Keep-Alive, kHttpKeepAlive
|
|
Max-Forwards, kHttpMaxForwards
|
|
Pragma, kHttpPragma
|
|
Proxy-Authenticate, kHttpProxyAuthenticate
|
|
Proxy-Authorization, kHttpProxyAuthorization
|
|
Proxy-Connection, kHttpProxyConnection
|
|
Range, kHttpRange
|
|
Referer, kHttpReferer
|
|
Transfer-Encoding, kHttpTransferEncoding
|
|
Upgrade, kHttpUpgrade
|
|
User-Agent, kHttpUserAgent
|
|
Via, kHttpVia
|
|
Location, kHttpLocation
|
|
Public, kHttpPublic
|
|
Retry-After, kHttpRetryAfter
|
|
Server, kHttpServer
|
|
Vary, kHttpVary
|
|
Warning, kHttpWarning
|
|
WWW-Authenticate, kHttpWwwAuthenticate
|
|
Last-Modified, kHttpLastModified
|
|
Cookie, kHttpCookie
|
|
Trailer, kHttpTrailer
|
|
TE, kHttpTe
|
|
DNT, kHttpDnt
|
|
Expect, kHttpExpect
|