-
Notifications
You must be signed in to change notification settings - Fork 30
/
Copy pathgen-enums.pl
executable file
·123 lines (119 loc) · 3.6 KB
/
gen-enums.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#!/usr/bin/perl
# Generate static table enums
use strict;
use warnings;
my @table = (
":authority", "",
":path", "/",
"age", "0",
"content-disposition", "",
"content-length", "0",
"cookie", "",
"date", "",
"etag", "",
"if-modified-since", "",
"if-none-match", "",
"last-modified", "",
"link", "",
"location", "",
"referer", "",
"set-cookie", "",
":method", "CONNECT",
":method", "DELETE",
":method", "GET",
":method", "HEAD",
":method", "OPTIONS",
":method", "POST",
":method", "PUT",
":scheme", "http",
":scheme", "https",
":status", "103",
":status", "200",
":status", "304",
":status", "404",
":status", "503",
"accept", "*/*",
"accept", "application/dns-message",
"accept-encoding", "gzip, deflate, br",
"accept-ranges", "bytes",
"access-control-allow-headers", "cache-control",
"access-control-allow-headers", "content-type",
"access-control-allow-origin", "*",
"cache-control", "max-age=0",
"cache-control", "max-age=2592000",
"cache-control", "max-age=604800",
"cache-control", "no-cache",
"cache-control", "no-store",
"cache-control", "public, max-age=31536000",
"content-encoding", "br",
"content-encoding", "gzip",
"content-type", "application/dns-message",
"content-type", "application/javascript",
"content-type", "application/json",
"content-type", "application/x-www-form-urlencoded",
"content-type", "image/gif",
"content-type", "image/jpeg",
"content-type", "image/png",
"content-type", "text/css",
"content-type", "text/html; charset=utf-8",
"content-type", "text/plain",
"content-type", "text/plain;charset=utf-8",
"range", "bytes=0-",
"strict-transport-security", "max-age=31536000",
"strict-transport-security", "max-age=31536000; includesubdomains",
"strict-transport-security", "max-age=31536000; includesubdomains; preload",
"vary", "accept-encoding",
"vary", "origin",
"x-content-type-options", "nosniff",
"x-xss-protection", "1; mode=block",
":status", "100",
":status", "204",
":status", "206",
":status", "302",
":status", "400",
":status", "403",
":status", "421",
":status", "425",
":status", "500",
"accept-language", "",
"access-control-allow-credentials", "FALSE",
"access-control-allow-credentials", "TRUE",
"access-control-allow-headers", "*",
"access-control-allow-methods", "get",
"access-control-allow-methods", "get, post, options",
"access-control-allow-methods", "options",
"access-control-expose-headers", "content-length",
"access-control-request-headers", "content-type",
"access-control-request-method", "get",
"access-control-request-method", "post",
"alt-svc", "clear",
"authorization", "",
"content-security-policy", "script-src 'none'; object-src 'none'; base-uri 'none'",
"early-data", "1",
"expect-ct", "",
"forwarded", "",
"if-range", "",
"origin", "",
"purpose", "prefetch",
"server", "",
"timing-allow-origin", "*",
"upgrade-insecure-requests", "1",
"user-agent", "",
"x-forwarded-for", "",
"x-frame-options", "deny",
"x-frame-options", "sameorigin",
);
my $idx = 0;
print "enum lsqpack_tnam {\n";
while (my ($name, $value) = splice(@table, 0, 2)) {
my $enum = "$name-$value";
$enum =~ tr/a-z/A-Z/;
$enum =~ tr/-/_/;
$enum =~ s~[^A-Z0-9_]~_~g;
$enum =~ s/_+/_/g;
$enum =~ s/_+$//;
$enum =~ s/^_+//;
print " LSQPACK_TNV_$enum = $idx, /* \"$name\" \"$value\" */\n";
++$idx;
}
print "};\n\n";