puma 2.2.0 → 8.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/History.md +3334 -0
- data/LICENSE +23 -20
- data/README.md +387 -100
- data/bin/puma-wild +25 -0
- data/bin/pumactl +1 -1
- data/docs/5.0-Upgrade.md +98 -0
- data/docs/6.0-Upgrade.md +56 -0
- data/docs/7.0-Upgrade.md +52 -0
- data/docs/8.0-Upgrade.md +100 -0
- data/docs/architecture.md +74 -0
- data/docs/compile_options.md +55 -0
- data/docs/deployment.md +137 -0
- data/docs/fork_worker.md +41 -0
- data/docs/grpc.md +62 -0
- data/docs/images/favicon.svg +1 -0
- data/docs/images/puma-connection-flow-no-reactor.png +0 -0
- data/docs/images/puma-connection-flow.png +0 -0
- data/docs/images/puma-general-arch.png +0 -0
- data/docs/images/running-puma.svg +1 -0
- data/docs/images/standard-logo.svg +1 -0
- data/docs/java_options.md +54 -0
- data/docs/jungle/README.md +9 -0
- data/docs/jungle/rc.d/README.md +74 -0
- data/docs/jungle/rc.d/puma +61 -0
- data/docs/jungle/rc.d/puma.conf +10 -0
- data/docs/kubernetes.md +73 -0
- data/docs/nginx.md +5 -5
- data/docs/plugins.md +42 -0
- data/docs/rails_dev_mode.md +28 -0
- data/docs/restart.md +65 -0
- data/docs/signals.md +98 -0
- data/docs/stats.md +148 -0
- data/docs/systemd.md +253 -0
- data/docs/testing_benchmarks_local_files.md +150 -0
- data/docs/testing_test_rackup_ci_files.md +36 -0
- data/ext/puma_http11/PumaHttp11Service.java +2 -2
- data/ext/puma_http11/extconf.rb +59 -2
- data/ext/puma_http11/http11_parser.c +319 -487
- data/ext/puma_http11/http11_parser.h +15 -13
- data/ext/puma_http11/http11_parser.java.rl +64 -94
- data/ext/puma_http11/http11_parser.rl +27 -24
- data/ext/puma_http11/http11_parser_common.rl +8 -8
- data/ext/puma_http11/mini_ssl.c +696 -38
- data/ext/puma_http11/no_ssl/PumaHttp11Service.java +15 -0
- data/ext/puma_http11/org/jruby/puma/EnvKey.java +241 -0
- data/ext/puma_http11/org/jruby/puma/Http11.java +241 -145
- data/ext/puma_http11/org/jruby/puma/Http11Parser.java +174 -221
- data/ext/puma_http11/org/jruby/puma/MiniSSL.java +413 -193
- data/ext/puma_http11/puma_http11.c +183 -175
- data/lib/puma/app/status.rb +77 -29
- data/lib/puma/binder.rb +349 -119
- data/lib/puma/cli.rb +163 -801
- data/lib/puma/client.rb +627 -144
- data/lib/puma/client_env.rb +171 -0
- data/lib/puma/cluster/worker.rb +183 -0
- data/lib/puma/cluster/worker_handle.rb +127 -0
- data/lib/puma/cluster.rb +634 -0
- data/lib/puma/cluster_accept_loop_delay.rb +91 -0
- data/lib/puma/commonlogger.rb +115 -0
- data/lib/puma/configuration.rb +420 -198
- data/lib/puma/const.rb +266 -115
- data/lib/puma/control_cli.rb +219 -120
- data/lib/puma/detect.rb +56 -2
- data/lib/puma/dsl.rb +1562 -0
- data/lib/puma/error_logger.rb +115 -0
- data/lib/puma/events.rb +44 -60
- data/lib/puma/io_buffer.rb +48 -5
- data/lib/puma/jruby_restart.rb +2 -51
- data/lib/puma/json_serialization.rb +96 -0
- data/lib/puma/launcher/bundle_pruner.rb +102 -0
- data/lib/puma/launcher.rb +501 -0
- data/lib/puma/log_writer.rb +153 -0
- data/lib/puma/minissl/context_builder.rb +96 -0
- data/lib/puma/minissl.rb +355 -37
- data/lib/puma/null_io.rb +79 -12
- data/lib/puma/plugin/systemd.rb +90 -0
- data/lib/puma/plugin/tmp_restart.rb +36 -0
- data/lib/puma/plugin.rb +111 -0
- data/lib/puma/rack/builder.rb +297 -0
- data/lib/puma/rack/urlmap.rb +93 -0
- data/lib/puma/rack_default.rb +21 -4
- data/lib/puma/reactor.rb +102 -133
- data/lib/puma/response.rb +532 -0
- data/lib/puma/runner.rb +211 -0
- data/lib/puma/sd_notify.rb +146 -0
- data/lib/puma/server.rb +582 -445
- data/lib/puma/server_plugin_control.rb +32 -0
- data/lib/puma/single.rb +72 -0
- data/lib/puma/state_file.rb +69 -0
- data/lib/puma/thread_pool.rb +389 -57
- data/lib/puma/util.rb +125 -0
- data/lib/puma.rb +80 -6
- data/lib/rack/handler/puma.rb +125 -47
- data/tools/Dockerfile +26 -0
- data/tools/trickletest.rb +44 -0
- metadata +88 -148
- data/COPYING +0 -55
- data/Gemfile +0 -10
- data/History.txt +0 -302
- data/Manifest.txt +0 -60
- data/Rakefile +0 -165
- data/TODO +0 -5
- data/docs/config.md +0 -0
- data/ext/puma_http11/ext_help.h +0 -15
- data/ext/puma_http11/io_buffer.c +0 -154
- data/lib/puma/accept_nonblock.rb +0 -23
- data/lib/puma/capistrano.rb +0 -34
- data/lib/puma/compat.rb +0 -11
- data/lib/puma/daemon_ext.rb +0 -20
- data/lib/puma/delegation.rb +0 -11
- data/lib/puma/java_io_buffer.rb +0 -45
- data/lib/puma/rack_patch.rb +0 -25
- data/puma.gemspec +0 -45
- data/test/test_app_status.rb +0 -88
- data/test/test_cli.rb +0 -171
- data/test/test_config.rb +0 -16
- data/test/test_http10.rb +0 -27
- data/test/test_http11.rb +0 -126
- data/test/test_integration.rb +0 -154
- data/test/test_iobuffer.rb +0 -38
- data/test/test_minissl.rb +0 -25
- data/test/test_null_io.rb +0 -31
- data/test/test_persistent.rb +0 -238
- data/test/test_puma_server.rb +0 -224
- data/test/test_rack_handler.rb +0 -10
- data/test/test_rack_server.rb +0 -141
- data/test/test_thread_pool.rb +0 -146
- data/test/test_unix_socket.rb +0 -39
- data/test/test_ws.rb +0 -89
- data/tools/jungle/init.d/README.md +0 -54
- data/tools/jungle/init.d/puma +0 -332
- data/tools/jungle/init.d/run-puma +0 -3
- data/tools/jungle/upstart/README.md +0 -61
- data/tools/jungle/upstart/puma-manager.conf +0 -31
- data/tools/jungle/upstart/puma.conf +0 -52
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
|
|
2
|
-
#line 1 "ext/
|
|
2
|
+
#line 1 "ext/puma_http11/http11_parser.rl"
|
|
3
3
|
/**
|
|
4
4
|
* Copyright (c) 2005 Zed A. Shaw
|
|
5
5
|
* You can redistribute it and/or modify it under the same terms as Ruby.
|
|
6
|
+
* License 3-clause BSD
|
|
6
7
|
*/
|
|
7
8
|
#include "http11_parser.h"
|
|
8
9
|
#include <stdio.h>
|
|
@@ -13,12 +14,14 @@
|
|
|
13
14
|
|
|
14
15
|
/*
|
|
15
16
|
* capitalizes all lower-case ASCII characters,
|
|
16
|
-
* converts dashes to underscores.
|
|
17
|
+
* converts dashes to underscores, and underscores to commas.
|
|
17
18
|
*/
|
|
18
19
|
static void snake_upcase_char(char *c)
|
|
19
20
|
{
|
|
20
21
|
if (*c >= 'a' && *c <= 'z')
|
|
21
22
|
*c &= ~0x20;
|
|
23
|
+
else if (*c == '_')
|
|
24
|
+
*c = ',';
|
|
22
25
|
else if (*c == '-')
|
|
23
26
|
*c = '_';
|
|
24
27
|
}
|
|
@@ -30,30 +33,28 @@ static void snake_upcase_char(char *c)
|
|
|
30
33
|
/** Machine **/
|
|
31
34
|
|
|
32
35
|
|
|
33
|
-
#line
|
|
36
|
+
#line 81 "ext/puma_http11/http11_parser.rl"
|
|
34
37
|
|
|
35
38
|
|
|
36
39
|
/** Data **/
|
|
37
40
|
|
|
38
|
-
#line
|
|
39
|
-
static const int
|
|
40
|
-
static const int
|
|
41
|
-
static const int
|
|
41
|
+
#line 42 "ext/puma_http11/http11_parser.c"
|
|
42
|
+
static const int puma_parser_start = 1;
|
|
43
|
+
static const int puma_parser_first_final = 46;
|
|
44
|
+
static const int puma_parser_error = 0;
|
|
42
45
|
|
|
43
|
-
static const int http_parser_en_main = 1;
|
|
44
46
|
|
|
47
|
+
#line 85 "ext/puma_http11/http11_parser.rl"
|
|
45
48
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
int http_parser_init(http_parser *parser) {
|
|
49
|
+
int puma_parser_init(puma_parser *parser) {
|
|
49
50
|
int cs = 0;
|
|
50
51
|
|
|
51
|
-
#line
|
|
52
|
+
#line 53 "ext/puma_http11/http11_parser.c"
|
|
52
53
|
{
|
|
53
|
-
cs =
|
|
54
|
+
cs = puma_parser_start;
|
|
54
55
|
}
|
|
55
56
|
|
|
56
|
-
#line
|
|
57
|
+
#line 89 "ext/puma_http11/http11_parser.rl"
|
|
57
58
|
parser->cs = cs;
|
|
58
59
|
parser->body_start = 0;
|
|
59
60
|
parser->content_len = 0;
|
|
@@ -69,7 +70,7 @@ int http_parser_init(http_parser *parser) {
|
|
|
69
70
|
|
|
70
71
|
|
|
71
72
|
/** exec **/
|
|
72
|
-
size_t
|
|
73
|
+
size_t puma_parser_execute(puma_parser *parser, const char *buffer, size_t len, size_t off) {
|
|
73
74
|
const char *p, *pe;
|
|
74
75
|
int cs = parser->cs;
|
|
75
76
|
|
|
@@ -79,10 +80,10 @@ size_t http_parser_execute(http_parser *parser, const char *buffer, size_t len,
|
|
|
79
80
|
pe = buffer+len;
|
|
80
81
|
|
|
81
82
|
/* assert(*pe == '\0' && "pointer does not end on NUL"); */
|
|
82
|
-
assert(pe - p == len - off && "pointers aren't same distance");
|
|
83
|
+
assert((size_t) (pe - p) == len - off && "pointers aren't same distance");
|
|
83
84
|
|
|
84
85
|
|
|
85
|
-
#line
|
|
86
|
+
#line 87 "ext/puma_http11/http11_parser.c"
|
|
86
87
|
{
|
|
87
88
|
if ( p == pe )
|
|
88
89
|
goto _test_eof;
|
|
@@ -106,31 +107,31 @@ st0:
|
|
|
106
107
|
cs = 0;
|
|
107
108
|
goto _out;
|
|
108
109
|
tr0:
|
|
109
|
-
#line
|
|
110
|
+
#line 37 "ext/puma_http11/http11_parser.rl"
|
|
110
111
|
{ MARK(mark, p); }
|
|
111
112
|
goto st2;
|
|
112
113
|
st2:
|
|
113
114
|
if ( ++p == pe )
|
|
114
115
|
goto _test_eof2;
|
|
115
116
|
case 2:
|
|
116
|
-
#line
|
|
117
|
+
#line 118 "ext/puma_http11/http11_parser.c"
|
|
117
118
|
switch( (*p) ) {
|
|
118
119
|
case 32: goto tr2;
|
|
119
|
-
case 36: goto
|
|
120
|
-
case 95: goto
|
|
120
|
+
case 36: goto st27;
|
|
121
|
+
case 95: goto st27;
|
|
121
122
|
}
|
|
122
123
|
if ( (*p) < 48 ) {
|
|
123
124
|
if ( 45 <= (*p) && (*p) <= 46 )
|
|
124
|
-
goto
|
|
125
|
+
goto st27;
|
|
125
126
|
} else if ( (*p) > 57 ) {
|
|
126
127
|
if ( 65 <= (*p) && (*p) <= 90 )
|
|
127
|
-
goto
|
|
128
|
+
goto st27;
|
|
128
129
|
} else
|
|
129
|
-
goto
|
|
130
|
+
goto st27;
|
|
130
131
|
goto st0;
|
|
131
132
|
tr2:
|
|
132
|
-
#line
|
|
133
|
-
{
|
|
133
|
+
#line 50 "ext/puma_http11/http11_parser.rl"
|
|
134
|
+
{
|
|
134
135
|
parser->request_method(parser, PTR_TO(mark), LEN(mark, p));
|
|
135
136
|
}
|
|
136
137
|
goto st3;
|
|
@@ -138,7 +139,7 @@ st3:
|
|
|
138
139
|
if ( ++p == pe )
|
|
139
140
|
goto _test_eof3;
|
|
140
141
|
case 3:
|
|
141
|
-
#line
|
|
142
|
+
#line 143 "ext/puma_http11/http11_parser.c"
|
|
142
143
|
switch( (*p) ) {
|
|
143
144
|
case 42: goto tr4;
|
|
144
145
|
case 43: goto tr5;
|
|
@@ -155,68 +156,68 @@ case 3:
|
|
|
155
156
|
goto tr5;
|
|
156
157
|
goto st0;
|
|
157
158
|
tr4:
|
|
158
|
-
#line
|
|
159
|
+
#line 37 "ext/puma_http11/http11_parser.rl"
|
|
159
160
|
{ MARK(mark, p); }
|
|
160
161
|
goto st4;
|
|
161
162
|
st4:
|
|
162
163
|
if ( ++p == pe )
|
|
163
164
|
goto _test_eof4;
|
|
164
165
|
case 4:
|
|
165
|
-
#line
|
|
166
|
+
#line 167 "ext/puma_http11/http11_parser.c"
|
|
166
167
|
switch( (*p) ) {
|
|
167
168
|
case 32: goto tr8;
|
|
168
169
|
case 35: goto tr9;
|
|
169
170
|
}
|
|
170
171
|
goto st0;
|
|
171
172
|
tr8:
|
|
172
|
-
#line
|
|
173
|
-
{
|
|
173
|
+
#line 53 "ext/puma_http11/http11_parser.rl"
|
|
174
|
+
{
|
|
174
175
|
parser->request_uri(parser, PTR_TO(mark), LEN(mark, p));
|
|
175
176
|
}
|
|
176
177
|
goto st5;
|
|
177
178
|
tr31:
|
|
178
|
-
#line
|
|
179
|
+
#line 37 "ext/puma_http11/http11_parser.rl"
|
|
179
180
|
{ MARK(mark, p); }
|
|
180
|
-
#line
|
|
181
|
+
#line 56 "ext/puma_http11/http11_parser.rl"
|
|
181
182
|
{
|
|
182
183
|
parser->fragment(parser, PTR_TO(mark), LEN(mark, p));
|
|
183
184
|
}
|
|
184
185
|
goto st5;
|
|
185
|
-
|
|
186
|
-
#line
|
|
186
|
+
tr33:
|
|
187
|
+
#line 56 "ext/puma_http11/http11_parser.rl"
|
|
187
188
|
{
|
|
188
189
|
parser->fragment(parser, PTR_TO(mark), LEN(mark, p));
|
|
189
190
|
}
|
|
190
191
|
goto st5;
|
|
191
|
-
|
|
192
|
-
#line
|
|
192
|
+
tr37:
|
|
193
|
+
#line 69 "ext/puma_http11/http11_parser.rl"
|
|
193
194
|
{
|
|
194
195
|
parser->request_path(parser, PTR_TO(mark), LEN(mark,p));
|
|
195
196
|
}
|
|
196
|
-
#line
|
|
197
|
-
{
|
|
197
|
+
#line 53 "ext/puma_http11/http11_parser.rl"
|
|
198
|
+
{
|
|
198
199
|
parser->request_uri(parser, PTR_TO(mark), LEN(mark, p));
|
|
199
200
|
}
|
|
200
201
|
goto st5;
|
|
201
|
-
|
|
202
|
-
#line
|
|
202
|
+
tr41:
|
|
203
|
+
#line 60 "ext/puma_http11/http11_parser.rl"
|
|
203
204
|
{ MARK(query_start, p); }
|
|
204
|
-
#line
|
|
205
|
-
{
|
|
205
|
+
#line 61 "ext/puma_http11/http11_parser.rl"
|
|
206
|
+
{
|
|
206
207
|
parser->query_string(parser, PTR_TO(query_start), LEN(query_start, p));
|
|
207
208
|
}
|
|
208
|
-
#line
|
|
209
|
-
{
|
|
209
|
+
#line 53 "ext/puma_http11/http11_parser.rl"
|
|
210
|
+
{
|
|
210
211
|
parser->request_uri(parser, PTR_TO(mark), LEN(mark, p));
|
|
211
212
|
}
|
|
212
213
|
goto st5;
|
|
213
|
-
|
|
214
|
-
#line
|
|
215
|
-
{
|
|
214
|
+
tr44:
|
|
215
|
+
#line 61 "ext/puma_http11/http11_parser.rl"
|
|
216
|
+
{
|
|
216
217
|
parser->query_string(parser, PTR_TO(query_start), LEN(query_start, p));
|
|
217
218
|
}
|
|
218
|
-
#line
|
|
219
|
-
{
|
|
219
|
+
#line 53 "ext/puma_http11/http11_parser.rl"
|
|
220
|
+
{
|
|
220
221
|
parser->request_uri(parser, PTR_TO(mark), LEN(mark, p));
|
|
221
222
|
}
|
|
222
223
|
goto st5;
|
|
@@ -224,19 +225,19 @@ st5:
|
|
|
224
225
|
if ( ++p == pe )
|
|
225
226
|
goto _test_eof5;
|
|
226
227
|
case 5:
|
|
227
|
-
#line
|
|
228
|
+
#line 229 "ext/puma_http11/http11_parser.c"
|
|
228
229
|
if ( (*p) == 72 )
|
|
229
230
|
goto tr10;
|
|
230
231
|
goto st0;
|
|
231
232
|
tr10:
|
|
232
|
-
#line
|
|
233
|
+
#line 37 "ext/puma_http11/http11_parser.rl"
|
|
233
234
|
{ MARK(mark, p); }
|
|
234
235
|
goto st6;
|
|
235
236
|
st6:
|
|
236
237
|
if ( ++p == pe )
|
|
237
238
|
goto _test_eof6;
|
|
238
239
|
case 6:
|
|
239
|
-
#line
|
|
240
|
+
#line 241 "ext/puma_http11/http11_parser.c"
|
|
240
241
|
if ( (*p) == 84 )
|
|
241
242
|
goto st7;
|
|
242
243
|
goto st0;
|
|
@@ -294,21 +295,21 @@ case 13:
|
|
|
294
295
|
goto st13;
|
|
295
296
|
goto st0;
|
|
296
297
|
tr18:
|
|
297
|
-
#line
|
|
298
|
-
{
|
|
299
|
-
parser->
|
|
298
|
+
#line 65 "ext/puma_http11/http11_parser.rl"
|
|
299
|
+
{
|
|
300
|
+
parser->server_protocol(parser, PTR_TO(mark), LEN(mark, p));
|
|
300
301
|
}
|
|
301
302
|
goto st14;
|
|
302
303
|
tr26:
|
|
303
|
-
#line
|
|
304
|
+
#line 46 "ext/puma_http11/http11_parser.rl"
|
|
304
305
|
{ MARK(mark, p); }
|
|
305
|
-
#line
|
|
306
|
+
#line 47 "ext/puma_http11/http11_parser.rl"
|
|
306
307
|
{
|
|
307
308
|
parser->http_field(parser, PTR_TO(field_start), parser->field_len, PTR_TO(mark), LEN(mark, p));
|
|
308
309
|
}
|
|
309
310
|
goto st14;
|
|
310
311
|
tr29:
|
|
311
|
-
#line
|
|
312
|
+
#line 47 "ext/puma_http11/http11_parser.rl"
|
|
312
313
|
{
|
|
313
314
|
parser->http_field(parser, PTR_TO(field_start), parser->field_len, PTR_TO(mark), LEN(mark, p));
|
|
314
315
|
}
|
|
@@ -317,7 +318,7 @@ st14:
|
|
|
317
318
|
if ( ++p == pe )
|
|
318
319
|
goto _test_eof14;
|
|
319
320
|
case 14:
|
|
320
|
-
#line
|
|
321
|
+
#line 322 "ext/puma_http11/http11_parser.c"
|
|
321
322
|
if ( (*p) == 10 )
|
|
322
323
|
goto st15;
|
|
323
324
|
goto st0;
|
|
@@ -357,34 +358,34 @@ case 16:
|
|
|
357
358
|
goto tr22;
|
|
358
359
|
goto st0;
|
|
359
360
|
tr22:
|
|
360
|
-
#line
|
|
361
|
-
{
|
|
362
|
-
parser->body_start = p - buffer + 1;
|
|
361
|
+
#line 73 "ext/puma_http11/http11_parser.rl"
|
|
362
|
+
{
|
|
363
|
+
parser->body_start = p - buffer + 1;
|
|
363
364
|
parser->header_done(parser, p + 1, pe - p - 1);
|
|
364
|
-
{p++; cs =
|
|
365
|
+
{p++; cs = 46; goto _out;}
|
|
365
366
|
}
|
|
366
|
-
goto
|
|
367
|
-
|
|
367
|
+
goto st46;
|
|
368
|
+
st46:
|
|
368
369
|
if ( ++p == pe )
|
|
369
|
-
goto
|
|
370
|
-
case
|
|
371
|
-
#line
|
|
370
|
+
goto _test_eof46;
|
|
371
|
+
case 46:
|
|
372
|
+
#line 373 "ext/puma_http11/http11_parser.c"
|
|
372
373
|
goto st0;
|
|
373
374
|
tr21:
|
|
374
|
-
#line
|
|
375
|
+
#line 40 "ext/puma_http11/http11_parser.rl"
|
|
375
376
|
{ MARK(field_start, p); }
|
|
376
|
-
#line
|
|
377
|
+
#line 41 "ext/puma_http11/http11_parser.rl"
|
|
377
378
|
{ snake_upcase_char((char *)p); }
|
|
378
379
|
goto st17;
|
|
379
380
|
tr23:
|
|
380
|
-
#line
|
|
381
|
+
#line 41 "ext/puma_http11/http11_parser.rl"
|
|
381
382
|
{ snake_upcase_char((char *)p); }
|
|
382
383
|
goto st17;
|
|
383
384
|
st17:
|
|
384
385
|
if ( ++p == pe )
|
|
385
386
|
goto _test_eof17;
|
|
386
387
|
case 17:
|
|
387
|
-
#line
|
|
388
|
+
#line 389 "ext/puma_http11/http11_parser.c"
|
|
388
389
|
switch( (*p) ) {
|
|
389
390
|
case 33: goto tr23;
|
|
390
391
|
case 58: goto tr24;
|
|
@@ -410,72 +411,85 @@ case 17:
|
|
|
410
411
|
goto tr23;
|
|
411
412
|
goto st0;
|
|
412
413
|
tr24:
|
|
413
|
-
#line
|
|
414
|
-
{
|
|
414
|
+
#line 42 "ext/puma_http11/http11_parser.rl"
|
|
415
|
+
{
|
|
415
416
|
parser->field_len = LEN(field_start, p);
|
|
416
417
|
}
|
|
417
418
|
goto st18;
|
|
418
419
|
tr27:
|
|
419
|
-
#line
|
|
420
|
+
#line 46 "ext/puma_http11/http11_parser.rl"
|
|
420
421
|
{ MARK(mark, p); }
|
|
421
422
|
goto st18;
|
|
422
423
|
st18:
|
|
423
424
|
if ( ++p == pe )
|
|
424
425
|
goto _test_eof18;
|
|
425
426
|
case 18:
|
|
426
|
-
#line
|
|
427
|
+
#line 428 "ext/puma_http11/http11_parser.c"
|
|
427
428
|
switch( (*p) ) {
|
|
428
429
|
case 13: goto tr26;
|
|
429
430
|
case 32: goto tr27;
|
|
431
|
+
case 127: goto st0;
|
|
430
432
|
}
|
|
433
|
+
if ( (*p) > 8 ) {
|
|
434
|
+
if ( 10 <= (*p) && (*p) <= 31 )
|
|
435
|
+
goto st0;
|
|
436
|
+
} else if ( (*p) >= 0 )
|
|
437
|
+
goto st0;
|
|
431
438
|
goto tr25;
|
|
432
439
|
tr25:
|
|
433
|
-
#line
|
|
440
|
+
#line 46 "ext/puma_http11/http11_parser.rl"
|
|
434
441
|
{ MARK(mark, p); }
|
|
435
442
|
goto st19;
|
|
436
443
|
st19:
|
|
437
444
|
if ( ++p == pe )
|
|
438
445
|
goto _test_eof19;
|
|
439
446
|
case 19:
|
|
440
|
-
#line
|
|
441
|
-
|
|
442
|
-
goto tr29;
|
|
447
|
+
#line 448 "ext/puma_http11/http11_parser.c"
|
|
448
|
+
switch( (*p) ) {
|
|
449
|
+
case 13: goto tr29;
|
|
450
|
+
case 127: goto st0;
|
|
451
|
+
}
|
|
452
|
+
if ( (*p) > 8 ) {
|
|
453
|
+
if ( 10 <= (*p) && (*p) <= 31 )
|
|
454
|
+
goto st0;
|
|
455
|
+
} else if ( (*p) >= 0 )
|
|
456
|
+
goto st0;
|
|
443
457
|
goto st19;
|
|
444
458
|
tr9:
|
|
445
|
-
#line
|
|
446
|
-
{
|
|
459
|
+
#line 53 "ext/puma_http11/http11_parser.rl"
|
|
460
|
+
{
|
|
447
461
|
parser->request_uri(parser, PTR_TO(mark), LEN(mark, p));
|
|
448
462
|
}
|
|
449
463
|
goto st20;
|
|
450
|
-
|
|
451
|
-
#line
|
|
464
|
+
tr38:
|
|
465
|
+
#line 69 "ext/puma_http11/http11_parser.rl"
|
|
452
466
|
{
|
|
453
467
|
parser->request_path(parser, PTR_TO(mark), LEN(mark,p));
|
|
454
468
|
}
|
|
455
|
-
#line
|
|
456
|
-
{
|
|
469
|
+
#line 53 "ext/puma_http11/http11_parser.rl"
|
|
470
|
+
{
|
|
457
471
|
parser->request_uri(parser, PTR_TO(mark), LEN(mark, p));
|
|
458
472
|
}
|
|
459
473
|
goto st20;
|
|
460
|
-
|
|
461
|
-
#line
|
|
474
|
+
tr42:
|
|
475
|
+
#line 60 "ext/puma_http11/http11_parser.rl"
|
|
462
476
|
{ MARK(query_start, p); }
|
|
463
|
-
#line
|
|
464
|
-
{
|
|
477
|
+
#line 61 "ext/puma_http11/http11_parser.rl"
|
|
478
|
+
{
|
|
465
479
|
parser->query_string(parser, PTR_TO(query_start), LEN(query_start, p));
|
|
466
480
|
}
|
|
467
|
-
#line
|
|
468
|
-
{
|
|
481
|
+
#line 53 "ext/puma_http11/http11_parser.rl"
|
|
482
|
+
{
|
|
469
483
|
parser->request_uri(parser, PTR_TO(mark), LEN(mark, p));
|
|
470
484
|
}
|
|
471
485
|
goto st20;
|
|
472
|
-
|
|
473
|
-
#line
|
|
474
|
-
{
|
|
486
|
+
tr45:
|
|
487
|
+
#line 61 "ext/puma_http11/http11_parser.rl"
|
|
488
|
+
{
|
|
475
489
|
parser->query_string(parser, PTR_TO(query_start), LEN(query_start, p));
|
|
476
490
|
}
|
|
477
|
-
#line
|
|
478
|
-
{
|
|
491
|
+
#line 53 "ext/puma_http11/http11_parser.rl"
|
|
492
|
+
{
|
|
479
493
|
parser->request_uri(parser, PTR_TO(mark), LEN(mark, p));
|
|
480
494
|
}
|
|
481
495
|
goto st20;
|
|
@@ -483,10 +497,9 @@ st20:
|
|
|
483
497
|
if ( ++p == pe )
|
|
484
498
|
goto _test_eof20;
|
|
485
499
|
case 20:
|
|
486
|
-
#line
|
|
500
|
+
#line 501 "ext/puma_http11/http11_parser.c"
|
|
487
501
|
switch( (*p) ) {
|
|
488
502
|
case 32: goto tr31;
|
|
489
|
-
case 37: goto tr32;
|
|
490
503
|
case 60: goto st0;
|
|
491
504
|
case 62: goto st0;
|
|
492
505
|
case 127: goto st0;
|
|
@@ -498,17 +511,16 @@ case 20:
|
|
|
498
511
|
goto st0;
|
|
499
512
|
goto tr30;
|
|
500
513
|
tr30:
|
|
501
|
-
#line
|
|
514
|
+
#line 37 "ext/puma_http11/http11_parser.rl"
|
|
502
515
|
{ MARK(mark, p); }
|
|
503
516
|
goto st21;
|
|
504
517
|
st21:
|
|
505
518
|
if ( ++p == pe )
|
|
506
519
|
goto _test_eof21;
|
|
507
520
|
case 21:
|
|
508
|
-
#line
|
|
521
|
+
#line 522 "ext/puma_http11/http11_parser.c"
|
|
509
522
|
switch( (*p) ) {
|
|
510
|
-
case 32: goto
|
|
511
|
-
case 37: goto st22;
|
|
523
|
+
case 32: goto tr33;
|
|
512
524
|
case 60: goto st0;
|
|
513
525
|
case 62: goto st0;
|
|
514
526
|
case 127: goto st0;
|
|
@@ -519,611 +531,442 @@ case 21:
|
|
|
519
531
|
} else if ( (*p) >= 0 )
|
|
520
532
|
goto st0;
|
|
521
533
|
goto st21;
|
|
522
|
-
|
|
523
|
-
#line
|
|
534
|
+
tr5:
|
|
535
|
+
#line 37 "ext/puma_http11/http11_parser.rl"
|
|
524
536
|
{ MARK(mark, p); }
|
|
525
537
|
goto st22;
|
|
526
538
|
st22:
|
|
527
539
|
if ( ++p == pe )
|
|
528
540
|
goto _test_eof22;
|
|
529
541
|
case 22:
|
|
530
|
-
#line
|
|
531
|
-
if ( (*p) < 65 ) {
|
|
532
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
|
533
|
-
goto st23;
|
|
534
|
-
} else if ( (*p) > 70 ) {
|
|
535
|
-
if ( 97 <= (*p) && (*p) <= 102 )
|
|
536
|
-
goto st23;
|
|
537
|
-
} else
|
|
538
|
-
goto st23;
|
|
539
|
-
goto st0;
|
|
540
|
-
st23:
|
|
541
|
-
if ( ++p == pe )
|
|
542
|
-
goto _test_eof23;
|
|
543
|
-
case 23:
|
|
544
|
-
if ( (*p) < 65 ) {
|
|
545
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
|
546
|
-
goto st21;
|
|
547
|
-
} else if ( (*p) > 70 ) {
|
|
548
|
-
if ( 97 <= (*p) && (*p) <= 102 )
|
|
549
|
-
goto st21;
|
|
550
|
-
} else
|
|
551
|
-
goto st21;
|
|
552
|
-
goto st0;
|
|
553
|
-
tr5:
|
|
554
|
-
#line 34 "ext/http11/http11_parser.rl"
|
|
555
|
-
{ MARK(mark, p); }
|
|
556
|
-
goto st24;
|
|
557
|
-
st24:
|
|
558
|
-
if ( ++p == pe )
|
|
559
|
-
goto _test_eof24;
|
|
560
|
-
case 24:
|
|
561
|
-
#line 562 "ext/http11/http11_parser.c"
|
|
542
|
+
#line 543 "ext/puma_http11/http11_parser.c"
|
|
562
543
|
switch( (*p) ) {
|
|
563
|
-
case 43: goto
|
|
564
|
-
case 58: goto
|
|
544
|
+
case 43: goto st22;
|
|
545
|
+
case 58: goto st23;
|
|
565
546
|
}
|
|
566
547
|
if ( (*p) < 48 ) {
|
|
567
548
|
if ( 45 <= (*p) && (*p) <= 46 )
|
|
568
|
-
goto
|
|
549
|
+
goto st22;
|
|
569
550
|
} else if ( (*p) > 57 ) {
|
|
570
551
|
if ( (*p) > 90 ) {
|
|
571
552
|
if ( 97 <= (*p) && (*p) <= 122 )
|
|
572
|
-
goto
|
|
553
|
+
goto st22;
|
|
573
554
|
} else if ( (*p) >= 65 )
|
|
574
|
-
goto
|
|
555
|
+
goto st22;
|
|
575
556
|
} else
|
|
576
|
-
goto
|
|
557
|
+
goto st22;
|
|
577
558
|
goto st0;
|
|
578
559
|
tr7:
|
|
579
|
-
#line
|
|
560
|
+
#line 37 "ext/puma_http11/http11_parser.rl"
|
|
580
561
|
{ MARK(mark, p); }
|
|
581
|
-
goto
|
|
582
|
-
|
|
562
|
+
goto st23;
|
|
563
|
+
st23:
|
|
583
564
|
if ( ++p == pe )
|
|
584
|
-
goto
|
|
585
|
-
case
|
|
586
|
-
#line
|
|
565
|
+
goto _test_eof23;
|
|
566
|
+
case 23:
|
|
567
|
+
#line 568 "ext/puma_http11/http11_parser.c"
|
|
587
568
|
switch( (*p) ) {
|
|
588
569
|
case 32: goto tr8;
|
|
589
570
|
case 34: goto st0;
|
|
590
571
|
case 35: goto tr9;
|
|
591
|
-
case 37: goto st26;
|
|
592
572
|
case 60: goto st0;
|
|
593
573
|
case 62: goto st0;
|
|
594
574
|
case 127: goto st0;
|
|
595
575
|
}
|
|
596
576
|
if ( 0 <= (*p) && (*p) <= 31 )
|
|
597
577
|
goto st0;
|
|
598
|
-
goto
|
|
599
|
-
st26:
|
|
600
|
-
if ( ++p == pe )
|
|
601
|
-
goto _test_eof26;
|
|
602
|
-
case 26:
|
|
603
|
-
if ( (*p) < 65 ) {
|
|
604
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
|
605
|
-
goto st27;
|
|
606
|
-
} else if ( (*p) > 70 ) {
|
|
607
|
-
if ( 97 <= (*p) && (*p) <= 102 )
|
|
608
|
-
goto st27;
|
|
609
|
-
} else
|
|
610
|
-
goto st27;
|
|
611
|
-
goto st0;
|
|
612
|
-
st27:
|
|
613
|
-
if ( ++p == pe )
|
|
614
|
-
goto _test_eof27;
|
|
615
|
-
case 27:
|
|
616
|
-
if ( (*p) < 65 ) {
|
|
617
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
|
618
|
-
goto st25;
|
|
619
|
-
} else if ( (*p) > 70 ) {
|
|
620
|
-
if ( 97 <= (*p) && (*p) <= 102 )
|
|
621
|
-
goto st25;
|
|
622
|
-
} else
|
|
623
|
-
goto st25;
|
|
624
|
-
goto st0;
|
|
578
|
+
goto st23;
|
|
625
579
|
tr6:
|
|
626
|
-
#line
|
|
580
|
+
#line 37 "ext/puma_http11/http11_parser.rl"
|
|
627
581
|
{ MARK(mark, p); }
|
|
628
|
-
goto
|
|
629
|
-
|
|
630
|
-
if ( ++p == pe )
|
|
631
|
-
goto _test_eof28;
|
|
632
|
-
case 28:
|
|
633
|
-
#line 634 "ext/http11/http11_parser.c"
|
|
634
|
-
switch( (*p) ) {
|
|
635
|
-
case 32: goto tr42;
|
|
636
|
-
case 34: goto st0;
|
|
637
|
-
case 35: goto tr43;
|
|
638
|
-
case 37: goto st29;
|
|
639
|
-
case 59: goto tr45;
|
|
640
|
-
case 60: goto st0;
|
|
641
|
-
case 62: goto st0;
|
|
642
|
-
case 63: goto tr46;
|
|
643
|
-
case 127: goto st0;
|
|
644
|
-
}
|
|
645
|
-
if ( 0 <= (*p) && (*p) <= 31 )
|
|
646
|
-
goto st0;
|
|
647
|
-
goto st28;
|
|
648
|
-
st29:
|
|
649
|
-
if ( ++p == pe )
|
|
650
|
-
goto _test_eof29;
|
|
651
|
-
case 29:
|
|
652
|
-
if ( (*p) < 65 ) {
|
|
653
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
|
654
|
-
goto st30;
|
|
655
|
-
} else if ( (*p) > 70 ) {
|
|
656
|
-
if ( 97 <= (*p) && (*p) <= 102 )
|
|
657
|
-
goto st30;
|
|
658
|
-
} else
|
|
659
|
-
goto st30;
|
|
660
|
-
goto st0;
|
|
661
|
-
st30:
|
|
662
|
-
if ( ++p == pe )
|
|
663
|
-
goto _test_eof30;
|
|
664
|
-
case 30:
|
|
665
|
-
if ( (*p) < 65 ) {
|
|
666
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
|
667
|
-
goto st28;
|
|
668
|
-
} else if ( (*p) > 70 ) {
|
|
669
|
-
if ( 97 <= (*p) && (*p) <= 102 )
|
|
670
|
-
goto st28;
|
|
671
|
-
} else
|
|
672
|
-
goto st28;
|
|
673
|
-
goto st0;
|
|
674
|
-
tr45:
|
|
675
|
-
#line 66 "ext/http11/http11_parser.rl"
|
|
676
|
-
{
|
|
677
|
-
parser->request_path(parser, PTR_TO(mark), LEN(mark,p));
|
|
678
|
-
}
|
|
679
|
-
goto st31;
|
|
680
|
-
st31:
|
|
582
|
+
goto st24;
|
|
583
|
+
st24:
|
|
681
584
|
if ( ++p == pe )
|
|
682
|
-
goto
|
|
683
|
-
case
|
|
684
|
-
#line
|
|
585
|
+
goto _test_eof24;
|
|
586
|
+
case 24:
|
|
587
|
+
#line 588 "ext/puma_http11/http11_parser.c"
|
|
685
588
|
switch( (*p) ) {
|
|
686
|
-
case 32: goto
|
|
589
|
+
case 32: goto tr37;
|
|
687
590
|
case 34: goto st0;
|
|
688
|
-
case 35: goto
|
|
689
|
-
case 37: goto st32;
|
|
591
|
+
case 35: goto tr38;
|
|
690
592
|
case 60: goto st0;
|
|
691
593
|
case 62: goto st0;
|
|
692
|
-
case 63: goto
|
|
594
|
+
case 63: goto tr39;
|
|
693
595
|
case 127: goto st0;
|
|
694
596
|
}
|
|
695
597
|
if ( 0 <= (*p) && (*p) <= 31 )
|
|
696
598
|
goto st0;
|
|
697
|
-
goto
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
goto _test_eof32;
|
|
701
|
-
case 32:
|
|
702
|
-
if ( (*p) < 65 ) {
|
|
703
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
|
704
|
-
goto st33;
|
|
705
|
-
} else if ( (*p) > 70 ) {
|
|
706
|
-
if ( 97 <= (*p) && (*p) <= 102 )
|
|
707
|
-
goto st33;
|
|
708
|
-
} else
|
|
709
|
-
goto st33;
|
|
710
|
-
goto st0;
|
|
711
|
-
st33:
|
|
712
|
-
if ( ++p == pe )
|
|
713
|
-
goto _test_eof33;
|
|
714
|
-
case 33:
|
|
715
|
-
if ( (*p) < 65 ) {
|
|
716
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
|
717
|
-
goto st31;
|
|
718
|
-
} else if ( (*p) > 70 ) {
|
|
719
|
-
if ( 97 <= (*p) && (*p) <= 102 )
|
|
720
|
-
goto st31;
|
|
721
|
-
} else
|
|
722
|
-
goto st31;
|
|
723
|
-
goto st0;
|
|
724
|
-
tr46:
|
|
725
|
-
#line 66 "ext/http11/http11_parser.rl"
|
|
599
|
+
goto st24;
|
|
600
|
+
tr39:
|
|
601
|
+
#line 69 "ext/puma_http11/http11_parser.rl"
|
|
726
602
|
{
|
|
727
603
|
parser->request_path(parser, PTR_TO(mark), LEN(mark,p));
|
|
728
604
|
}
|
|
729
|
-
goto
|
|
730
|
-
|
|
605
|
+
goto st25;
|
|
606
|
+
st25:
|
|
731
607
|
if ( ++p == pe )
|
|
732
|
-
goto
|
|
733
|
-
case
|
|
734
|
-
#line
|
|
608
|
+
goto _test_eof25;
|
|
609
|
+
case 25:
|
|
610
|
+
#line 611 "ext/puma_http11/http11_parser.c"
|
|
735
611
|
switch( (*p) ) {
|
|
736
|
-
case 32: goto
|
|
612
|
+
case 32: goto tr41;
|
|
737
613
|
case 34: goto st0;
|
|
738
|
-
case 35: goto
|
|
739
|
-
case 37: goto tr55;
|
|
614
|
+
case 35: goto tr42;
|
|
740
615
|
case 60: goto st0;
|
|
741
616
|
case 62: goto st0;
|
|
742
617
|
case 127: goto st0;
|
|
743
618
|
}
|
|
744
619
|
if ( 0 <= (*p) && (*p) <= 31 )
|
|
745
620
|
goto st0;
|
|
746
|
-
goto
|
|
747
|
-
|
|
748
|
-
#line
|
|
621
|
+
goto tr40;
|
|
622
|
+
tr40:
|
|
623
|
+
#line 60 "ext/puma_http11/http11_parser.rl"
|
|
749
624
|
{ MARK(query_start, p); }
|
|
750
|
-
goto
|
|
751
|
-
|
|
625
|
+
goto st26;
|
|
626
|
+
st26:
|
|
752
627
|
if ( ++p == pe )
|
|
753
|
-
goto
|
|
754
|
-
case
|
|
755
|
-
#line
|
|
628
|
+
goto _test_eof26;
|
|
629
|
+
case 26:
|
|
630
|
+
#line 631 "ext/puma_http11/http11_parser.c"
|
|
756
631
|
switch( (*p) ) {
|
|
757
|
-
case 32: goto
|
|
632
|
+
case 32: goto tr44;
|
|
758
633
|
case 34: goto st0;
|
|
759
|
-
case 35: goto
|
|
760
|
-
case 37: goto st36;
|
|
634
|
+
case 35: goto tr45;
|
|
761
635
|
case 60: goto st0;
|
|
762
636
|
case 62: goto st0;
|
|
763
637
|
case 127: goto st0;
|
|
764
638
|
}
|
|
765
639
|
if ( 0 <= (*p) && (*p) <= 31 )
|
|
766
640
|
goto st0;
|
|
767
|
-
goto
|
|
768
|
-
|
|
769
|
-
#line 57 "ext/http11/http11_parser.rl"
|
|
770
|
-
{ MARK(query_start, p); }
|
|
771
|
-
goto st36;
|
|
772
|
-
st36:
|
|
773
|
-
if ( ++p == pe )
|
|
774
|
-
goto _test_eof36;
|
|
775
|
-
case 36:
|
|
776
|
-
#line 777 "ext/http11/http11_parser.c"
|
|
777
|
-
if ( (*p) < 65 ) {
|
|
778
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
|
779
|
-
goto st37;
|
|
780
|
-
} else if ( (*p) > 70 ) {
|
|
781
|
-
if ( 97 <= (*p) && (*p) <= 102 )
|
|
782
|
-
goto st37;
|
|
783
|
-
} else
|
|
784
|
-
goto st37;
|
|
785
|
-
goto st0;
|
|
786
|
-
st37:
|
|
787
|
-
if ( ++p == pe )
|
|
788
|
-
goto _test_eof37;
|
|
789
|
-
case 37:
|
|
790
|
-
if ( (*p) < 65 ) {
|
|
791
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
|
792
|
-
goto st35;
|
|
793
|
-
} else if ( (*p) > 70 ) {
|
|
794
|
-
if ( 97 <= (*p) && (*p) <= 102 )
|
|
795
|
-
goto st35;
|
|
796
|
-
} else
|
|
797
|
-
goto st35;
|
|
798
|
-
goto st0;
|
|
799
|
-
st38:
|
|
641
|
+
goto st26;
|
|
642
|
+
st27:
|
|
800
643
|
if ( ++p == pe )
|
|
801
|
-
goto
|
|
802
|
-
case
|
|
644
|
+
goto _test_eof27;
|
|
645
|
+
case 27:
|
|
803
646
|
switch( (*p) ) {
|
|
804
647
|
case 32: goto tr2;
|
|
805
|
-
case 36: goto
|
|
806
|
-
case 95: goto
|
|
648
|
+
case 36: goto st28;
|
|
649
|
+
case 95: goto st28;
|
|
807
650
|
}
|
|
808
651
|
if ( (*p) < 48 ) {
|
|
809
652
|
if ( 45 <= (*p) && (*p) <= 46 )
|
|
810
|
-
goto
|
|
653
|
+
goto st28;
|
|
811
654
|
} else if ( (*p) > 57 ) {
|
|
812
655
|
if ( 65 <= (*p) && (*p) <= 90 )
|
|
813
|
-
goto
|
|
656
|
+
goto st28;
|
|
814
657
|
} else
|
|
815
|
-
goto
|
|
658
|
+
goto st28;
|
|
816
659
|
goto st0;
|
|
817
|
-
|
|
660
|
+
st28:
|
|
818
661
|
if ( ++p == pe )
|
|
819
|
-
goto
|
|
820
|
-
case
|
|
662
|
+
goto _test_eof28;
|
|
663
|
+
case 28:
|
|
821
664
|
switch( (*p) ) {
|
|
822
665
|
case 32: goto tr2;
|
|
823
|
-
case 36: goto
|
|
824
|
-
case 95: goto
|
|
666
|
+
case 36: goto st29;
|
|
667
|
+
case 95: goto st29;
|
|
825
668
|
}
|
|
826
669
|
if ( (*p) < 48 ) {
|
|
827
670
|
if ( 45 <= (*p) && (*p) <= 46 )
|
|
828
|
-
goto
|
|
671
|
+
goto st29;
|
|
829
672
|
} else if ( (*p) > 57 ) {
|
|
830
673
|
if ( 65 <= (*p) && (*p) <= 90 )
|
|
831
|
-
goto
|
|
674
|
+
goto st29;
|
|
832
675
|
} else
|
|
833
|
-
goto
|
|
676
|
+
goto st29;
|
|
834
677
|
goto st0;
|
|
835
|
-
|
|
678
|
+
st29:
|
|
836
679
|
if ( ++p == pe )
|
|
837
|
-
goto
|
|
838
|
-
case
|
|
680
|
+
goto _test_eof29;
|
|
681
|
+
case 29:
|
|
839
682
|
switch( (*p) ) {
|
|
840
683
|
case 32: goto tr2;
|
|
841
|
-
case 36: goto
|
|
842
|
-
case 95: goto
|
|
684
|
+
case 36: goto st30;
|
|
685
|
+
case 95: goto st30;
|
|
843
686
|
}
|
|
844
687
|
if ( (*p) < 48 ) {
|
|
845
688
|
if ( 45 <= (*p) && (*p) <= 46 )
|
|
846
|
-
goto
|
|
689
|
+
goto st30;
|
|
847
690
|
} else if ( (*p) > 57 ) {
|
|
848
691
|
if ( 65 <= (*p) && (*p) <= 90 )
|
|
849
|
-
goto
|
|
692
|
+
goto st30;
|
|
850
693
|
} else
|
|
851
|
-
goto
|
|
694
|
+
goto st30;
|
|
852
695
|
goto st0;
|
|
853
|
-
|
|
696
|
+
st30:
|
|
854
697
|
if ( ++p == pe )
|
|
855
|
-
goto
|
|
856
|
-
case
|
|
698
|
+
goto _test_eof30;
|
|
699
|
+
case 30:
|
|
857
700
|
switch( (*p) ) {
|
|
858
701
|
case 32: goto tr2;
|
|
859
|
-
case 36: goto
|
|
860
|
-
case 95: goto
|
|
702
|
+
case 36: goto st31;
|
|
703
|
+
case 95: goto st31;
|
|
861
704
|
}
|
|
862
705
|
if ( (*p) < 48 ) {
|
|
863
706
|
if ( 45 <= (*p) && (*p) <= 46 )
|
|
864
|
-
goto
|
|
707
|
+
goto st31;
|
|
865
708
|
} else if ( (*p) > 57 ) {
|
|
866
709
|
if ( 65 <= (*p) && (*p) <= 90 )
|
|
867
|
-
goto
|
|
710
|
+
goto st31;
|
|
868
711
|
} else
|
|
869
|
-
goto
|
|
712
|
+
goto st31;
|
|
870
713
|
goto st0;
|
|
871
|
-
|
|
714
|
+
st31:
|
|
872
715
|
if ( ++p == pe )
|
|
873
|
-
goto
|
|
874
|
-
case
|
|
716
|
+
goto _test_eof31;
|
|
717
|
+
case 31:
|
|
875
718
|
switch( (*p) ) {
|
|
876
719
|
case 32: goto tr2;
|
|
877
|
-
case 36: goto
|
|
878
|
-
case 95: goto
|
|
720
|
+
case 36: goto st32;
|
|
721
|
+
case 95: goto st32;
|
|
879
722
|
}
|
|
880
723
|
if ( (*p) < 48 ) {
|
|
881
724
|
if ( 45 <= (*p) && (*p) <= 46 )
|
|
882
|
-
goto
|
|
725
|
+
goto st32;
|
|
883
726
|
} else if ( (*p) > 57 ) {
|
|
884
727
|
if ( 65 <= (*p) && (*p) <= 90 )
|
|
885
|
-
goto
|
|
728
|
+
goto st32;
|
|
886
729
|
} else
|
|
887
|
-
goto
|
|
730
|
+
goto st32;
|
|
888
731
|
goto st0;
|
|
889
|
-
|
|
732
|
+
st32:
|
|
890
733
|
if ( ++p == pe )
|
|
891
|
-
goto
|
|
892
|
-
case
|
|
734
|
+
goto _test_eof32;
|
|
735
|
+
case 32:
|
|
893
736
|
switch( (*p) ) {
|
|
894
737
|
case 32: goto tr2;
|
|
895
|
-
case 36: goto
|
|
896
|
-
case 95: goto
|
|
738
|
+
case 36: goto st33;
|
|
739
|
+
case 95: goto st33;
|
|
897
740
|
}
|
|
898
741
|
if ( (*p) < 48 ) {
|
|
899
742
|
if ( 45 <= (*p) && (*p) <= 46 )
|
|
900
|
-
goto
|
|
743
|
+
goto st33;
|
|
901
744
|
} else if ( (*p) > 57 ) {
|
|
902
745
|
if ( 65 <= (*p) && (*p) <= 90 )
|
|
903
|
-
goto
|
|
746
|
+
goto st33;
|
|
904
747
|
} else
|
|
905
|
-
goto
|
|
748
|
+
goto st33;
|
|
906
749
|
goto st0;
|
|
907
|
-
|
|
750
|
+
st33:
|
|
908
751
|
if ( ++p == pe )
|
|
909
|
-
goto
|
|
910
|
-
case
|
|
752
|
+
goto _test_eof33;
|
|
753
|
+
case 33:
|
|
911
754
|
switch( (*p) ) {
|
|
912
755
|
case 32: goto tr2;
|
|
913
|
-
case 36: goto
|
|
914
|
-
case 95: goto
|
|
756
|
+
case 36: goto st34;
|
|
757
|
+
case 95: goto st34;
|
|
915
758
|
}
|
|
916
759
|
if ( (*p) < 48 ) {
|
|
917
760
|
if ( 45 <= (*p) && (*p) <= 46 )
|
|
918
|
-
goto
|
|
761
|
+
goto st34;
|
|
919
762
|
} else if ( (*p) > 57 ) {
|
|
920
763
|
if ( 65 <= (*p) && (*p) <= 90 )
|
|
921
|
-
goto
|
|
764
|
+
goto st34;
|
|
922
765
|
} else
|
|
923
|
-
goto
|
|
766
|
+
goto st34;
|
|
924
767
|
goto st0;
|
|
925
|
-
|
|
768
|
+
st34:
|
|
926
769
|
if ( ++p == pe )
|
|
927
|
-
goto
|
|
928
|
-
case
|
|
770
|
+
goto _test_eof34;
|
|
771
|
+
case 34:
|
|
929
772
|
switch( (*p) ) {
|
|
930
773
|
case 32: goto tr2;
|
|
931
|
-
case 36: goto
|
|
932
|
-
case 95: goto
|
|
774
|
+
case 36: goto st35;
|
|
775
|
+
case 95: goto st35;
|
|
933
776
|
}
|
|
934
777
|
if ( (*p) < 48 ) {
|
|
935
778
|
if ( 45 <= (*p) && (*p) <= 46 )
|
|
936
|
-
goto
|
|
779
|
+
goto st35;
|
|
937
780
|
} else if ( (*p) > 57 ) {
|
|
938
781
|
if ( 65 <= (*p) && (*p) <= 90 )
|
|
939
|
-
goto
|
|
782
|
+
goto st35;
|
|
940
783
|
} else
|
|
941
|
-
goto
|
|
784
|
+
goto st35;
|
|
942
785
|
goto st0;
|
|
943
|
-
|
|
786
|
+
st35:
|
|
944
787
|
if ( ++p == pe )
|
|
945
|
-
goto
|
|
946
|
-
case
|
|
788
|
+
goto _test_eof35;
|
|
789
|
+
case 35:
|
|
947
790
|
switch( (*p) ) {
|
|
948
791
|
case 32: goto tr2;
|
|
949
|
-
case 36: goto
|
|
950
|
-
case 95: goto
|
|
792
|
+
case 36: goto st36;
|
|
793
|
+
case 95: goto st36;
|
|
951
794
|
}
|
|
952
795
|
if ( (*p) < 48 ) {
|
|
953
796
|
if ( 45 <= (*p) && (*p) <= 46 )
|
|
954
|
-
goto
|
|
797
|
+
goto st36;
|
|
955
798
|
} else if ( (*p) > 57 ) {
|
|
956
799
|
if ( 65 <= (*p) && (*p) <= 90 )
|
|
957
|
-
goto
|
|
800
|
+
goto st36;
|
|
958
801
|
} else
|
|
959
|
-
goto
|
|
802
|
+
goto st36;
|
|
960
803
|
goto st0;
|
|
961
|
-
|
|
804
|
+
st36:
|
|
962
805
|
if ( ++p == pe )
|
|
963
|
-
goto
|
|
964
|
-
case
|
|
806
|
+
goto _test_eof36;
|
|
807
|
+
case 36:
|
|
965
808
|
switch( (*p) ) {
|
|
966
809
|
case 32: goto tr2;
|
|
967
|
-
case 36: goto
|
|
968
|
-
case 95: goto
|
|
810
|
+
case 36: goto st37;
|
|
811
|
+
case 95: goto st37;
|
|
969
812
|
}
|
|
970
813
|
if ( (*p) < 48 ) {
|
|
971
814
|
if ( 45 <= (*p) && (*p) <= 46 )
|
|
972
|
-
goto
|
|
815
|
+
goto st37;
|
|
973
816
|
} else if ( (*p) > 57 ) {
|
|
974
817
|
if ( 65 <= (*p) && (*p) <= 90 )
|
|
975
|
-
goto
|
|
818
|
+
goto st37;
|
|
976
819
|
} else
|
|
977
|
-
goto
|
|
820
|
+
goto st37;
|
|
978
821
|
goto st0;
|
|
979
|
-
|
|
822
|
+
st37:
|
|
980
823
|
if ( ++p == pe )
|
|
981
|
-
goto
|
|
982
|
-
case
|
|
824
|
+
goto _test_eof37;
|
|
825
|
+
case 37:
|
|
983
826
|
switch( (*p) ) {
|
|
984
827
|
case 32: goto tr2;
|
|
985
|
-
case 36: goto
|
|
986
|
-
case 95: goto
|
|
828
|
+
case 36: goto st38;
|
|
829
|
+
case 95: goto st38;
|
|
987
830
|
}
|
|
988
831
|
if ( (*p) < 48 ) {
|
|
989
832
|
if ( 45 <= (*p) && (*p) <= 46 )
|
|
990
|
-
goto
|
|
833
|
+
goto st38;
|
|
991
834
|
} else if ( (*p) > 57 ) {
|
|
992
835
|
if ( 65 <= (*p) && (*p) <= 90 )
|
|
993
|
-
goto
|
|
836
|
+
goto st38;
|
|
994
837
|
} else
|
|
995
|
-
goto
|
|
838
|
+
goto st38;
|
|
996
839
|
goto st0;
|
|
997
|
-
|
|
840
|
+
st38:
|
|
998
841
|
if ( ++p == pe )
|
|
999
|
-
goto
|
|
1000
|
-
case
|
|
842
|
+
goto _test_eof38;
|
|
843
|
+
case 38:
|
|
1001
844
|
switch( (*p) ) {
|
|
1002
845
|
case 32: goto tr2;
|
|
1003
|
-
case 36: goto
|
|
1004
|
-
case 95: goto
|
|
846
|
+
case 36: goto st39;
|
|
847
|
+
case 95: goto st39;
|
|
1005
848
|
}
|
|
1006
849
|
if ( (*p) < 48 ) {
|
|
1007
850
|
if ( 45 <= (*p) && (*p) <= 46 )
|
|
1008
|
-
goto
|
|
851
|
+
goto st39;
|
|
1009
852
|
} else if ( (*p) > 57 ) {
|
|
1010
853
|
if ( 65 <= (*p) && (*p) <= 90 )
|
|
1011
|
-
goto
|
|
854
|
+
goto st39;
|
|
1012
855
|
} else
|
|
1013
|
-
goto
|
|
856
|
+
goto st39;
|
|
1014
857
|
goto st0;
|
|
1015
|
-
|
|
858
|
+
st39:
|
|
1016
859
|
if ( ++p == pe )
|
|
1017
|
-
goto
|
|
1018
|
-
case
|
|
860
|
+
goto _test_eof39;
|
|
861
|
+
case 39:
|
|
1019
862
|
switch( (*p) ) {
|
|
1020
863
|
case 32: goto tr2;
|
|
1021
|
-
case 36: goto
|
|
1022
|
-
case 95: goto
|
|
864
|
+
case 36: goto st40;
|
|
865
|
+
case 95: goto st40;
|
|
1023
866
|
}
|
|
1024
867
|
if ( (*p) < 48 ) {
|
|
1025
868
|
if ( 45 <= (*p) && (*p) <= 46 )
|
|
1026
|
-
goto
|
|
869
|
+
goto st40;
|
|
1027
870
|
} else if ( (*p) > 57 ) {
|
|
1028
871
|
if ( 65 <= (*p) && (*p) <= 90 )
|
|
1029
|
-
goto
|
|
872
|
+
goto st40;
|
|
1030
873
|
} else
|
|
1031
|
-
goto
|
|
874
|
+
goto st40;
|
|
1032
875
|
goto st0;
|
|
1033
|
-
|
|
876
|
+
st40:
|
|
1034
877
|
if ( ++p == pe )
|
|
1035
|
-
goto
|
|
1036
|
-
case
|
|
878
|
+
goto _test_eof40;
|
|
879
|
+
case 40:
|
|
1037
880
|
switch( (*p) ) {
|
|
1038
881
|
case 32: goto tr2;
|
|
1039
|
-
case 36: goto
|
|
1040
|
-
case 95: goto
|
|
882
|
+
case 36: goto st41;
|
|
883
|
+
case 95: goto st41;
|
|
1041
884
|
}
|
|
1042
885
|
if ( (*p) < 48 ) {
|
|
1043
886
|
if ( 45 <= (*p) && (*p) <= 46 )
|
|
1044
|
-
goto
|
|
887
|
+
goto st41;
|
|
1045
888
|
} else if ( (*p) > 57 ) {
|
|
1046
889
|
if ( 65 <= (*p) && (*p) <= 90 )
|
|
1047
|
-
goto
|
|
890
|
+
goto st41;
|
|
1048
891
|
} else
|
|
1049
|
-
goto
|
|
892
|
+
goto st41;
|
|
1050
893
|
goto st0;
|
|
1051
|
-
|
|
894
|
+
st41:
|
|
1052
895
|
if ( ++p == pe )
|
|
1053
|
-
goto
|
|
1054
|
-
case
|
|
896
|
+
goto _test_eof41;
|
|
897
|
+
case 41:
|
|
1055
898
|
switch( (*p) ) {
|
|
1056
899
|
case 32: goto tr2;
|
|
1057
|
-
case 36: goto
|
|
1058
|
-
case 95: goto
|
|
900
|
+
case 36: goto st42;
|
|
901
|
+
case 95: goto st42;
|
|
1059
902
|
}
|
|
1060
903
|
if ( (*p) < 48 ) {
|
|
1061
904
|
if ( 45 <= (*p) && (*p) <= 46 )
|
|
1062
|
-
goto
|
|
905
|
+
goto st42;
|
|
1063
906
|
} else if ( (*p) > 57 ) {
|
|
1064
907
|
if ( 65 <= (*p) && (*p) <= 90 )
|
|
1065
|
-
goto
|
|
908
|
+
goto st42;
|
|
1066
909
|
} else
|
|
1067
|
-
goto
|
|
910
|
+
goto st42;
|
|
1068
911
|
goto st0;
|
|
1069
|
-
|
|
912
|
+
st42:
|
|
1070
913
|
if ( ++p == pe )
|
|
1071
|
-
goto
|
|
1072
|
-
case
|
|
914
|
+
goto _test_eof42;
|
|
915
|
+
case 42:
|
|
1073
916
|
switch( (*p) ) {
|
|
1074
917
|
case 32: goto tr2;
|
|
1075
|
-
case 36: goto
|
|
1076
|
-
case 95: goto
|
|
918
|
+
case 36: goto st43;
|
|
919
|
+
case 95: goto st43;
|
|
1077
920
|
}
|
|
1078
921
|
if ( (*p) < 48 ) {
|
|
1079
922
|
if ( 45 <= (*p) && (*p) <= 46 )
|
|
1080
|
-
goto
|
|
923
|
+
goto st43;
|
|
1081
924
|
} else if ( (*p) > 57 ) {
|
|
1082
925
|
if ( 65 <= (*p) && (*p) <= 90 )
|
|
1083
|
-
goto
|
|
926
|
+
goto st43;
|
|
1084
927
|
} else
|
|
1085
|
-
goto
|
|
928
|
+
goto st43;
|
|
1086
929
|
goto st0;
|
|
1087
|
-
|
|
930
|
+
st43:
|
|
1088
931
|
if ( ++p == pe )
|
|
1089
|
-
goto
|
|
1090
|
-
case
|
|
932
|
+
goto _test_eof43;
|
|
933
|
+
case 43:
|
|
1091
934
|
switch( (*p) ) {
|
|
1092
935
|
case 32: goto tr2;
|
|
1093
|
-
case 36: goto
|
|
1094
|
-
case 95: goto
|
|
936
|
+
case 36: goto st44;
|
|
937
|
+
case 95: goto st44;
|
|
1095
938
|
}
|
|
1096
939
|
if ( (*p) < 48 ) {
|
|
1097
940
|
if ( 45 <= (*p) && (*p) <= 46 )
|
|
1098
|
-
goto
|
|
941
|
+
goto st44;
|
|
1099
942
|
} else if ( (*p) > 57 ) {
|
|
1100
943
|
if ( 65 <= (*p) && (*p) <= 90 )
|
|
1101
|
-
goto
|
|
944
|
+
goto st44;
|
|
1102
945
|
} else
|
|
1103
|
-
goto
|
|
946
|
+
goto st44;
|
|
1104
947
|
goto st0;
|
|
1105
|
-
|
|
948
|
+
st44:
|
|
1106
949
|
if ( ++p == pe )
|
|
1107
|
-
goto
|
|
1108
|
-
case
|
|
950
|
+
goto _test_eof44;
|
|
951
|
+
case 44:
|
|
1109
952
|
switch( (*p) ) {
|
|
1110
953
|
case 32: goto tr2;
|
|
1111
|
-
case 36: goto
|
|
1112
|
-
case 95: goto
|
|
954
|
+
case 36: goto st45;
|
|
955
|
+
case 95: goto st45;
|
|
1113
956
|
}
|
|
1114
957
|
if ( (*p) < 48 ) {
|
|
1115
958
|
if ( 45 <= (*p) && (*p) <= 46 )
|
|
1116
|
-
goto
|
|
959
|
+
goto st45;
|
|
1117
960
|
} else if ( (*p) > 57 ) {
|
|
1118
961
|
if ( 65 <= (*p) && (*p) <= 90 )
|
|
1119
|
-
goto
|
|
962
|
+
goto st45;
|
|
1120
963
|
} else
|
|
1121
|
-
goto
|
|
964
|
+
goto st45;
|
|
1122
965
|
goto st0;
|
|
1123
|
-
|
|
966
|
+
st45:
|
|
1124
967
|
if ( ++p == pe )
|
|
1125
|
-
goto
|
|
1126
|
-
case
|
|
968
|
+
goto _test_eof45;
|
|
969
|
+
case 45:
|
|
1127
970
|
if ( (*p) == 32 )
|
|
1128
971
|
goto tr2;
|
|
1129
972
|
goto st0;
|
|
@@ -1143,7 +986,7 @@ case 56:
|
|
|
1143
986
|
_test_eof14: cs = 14; goto _test_eof;
|
|
1144
987
|
_test_eof15: cs = 15; goto _test_eof;
|
|
1145
988
|
_test_eof16: cs = 16; goto _test_eof;
|
|
1146
|
-
|
|
989
|
+
_test_eof46: cs = 46; goto _test_eof;
|
|
1147
990
|
_test_eof17: cs = 17; goto _test_eof;
|
|
1148
991
|
_test_eof18: cs = 18; goto _test_eof;
|
|
1149
992
|
_test_eof19: cs = 19; goto _test_eof;
|
|
@@ -1173,25 +1016,14 @@ case 56:
|
|
|
1173
1016
|
_test_eof43: cs = 43; goto _test_eof;
|
|
1174
1017
|
_test_eof44: cs = 44; goto _test_eof;
|
|
1175
1018
|
_test_eof45: cs = 45; goto _test_eof;
|
|
1176
|
-
_test_eof46: cs = 46; goto _test_eof;
|
|
1177
|
-
_test_eof47: cs = 47; goto _test_eof;
|
|
1178
|
-
_test_eof48: cs = 48; goto _test_eof;
|
|
1179
|
-
_test_eof49: cs = 49; goto _test_eof;
|
|
1180
|
-
_test_eof50: cs = 50; goto _test_eof;
|
|
1181
|
-
_test_eof51: cs = 51; goto _test_eof;
|
|
1182
|
-
_test_eof52: cs = 52; goto _test_eof;
|
|
1183
|
-
_test_eof53: cs = 53; goto _test_eof;
|
|
1184
|
-
_test_eof54: cs = 54; goto _test_eof;
|
|
1185
|
-
_test_eof55: cs = 55; goto _test_eof;
|
|
1186
|
-
_test_eof56: cs = 56; goto _test_eof;
|
|
1187
1019
|
|
|
1188
1020
|
_test_eof: {}
|
|
1189
1021
|
_out: {}
|
|
1190
1022
|
}
|
|
1191
1023
|
|
|
1192
|
-
#line
|
|
1024
|
+
#line 117 "ext/puma_http11/http11_parser.rl"
|
|
1193
1025
|
|
|
1194
|
-
if (!
|
|
1026
|
+
if (!puma_parser_has_error(parser))
|
|
1195
1027
|
parser->cs = cs;
|
|
1196
1028
|
parser->nread += p - (buffer + off);
|
|
1197
1029
|
|
|
@@ -1205,21 +1037,21 @@ case 56:
|
|
|
1205
1037
|
return(parser->nread);
|
|
1206
1038
|
}
|
|
1207
1039
|
|
|
1208
|
-
int
|
|
1040
|
+
int puma_parser_finish(puma_parser *parser)
|
|
1209
1041
|
{
|
|
1210
|
-
if (
|
|
1042
|
+
if (puma_parser_has_error(parser) ) {
|
|
1211
1043
|
return -1;
|
|
1212
|
-
} else if (
|
|
1044
|
+
} else if (puma_parser_is_finished(parser) ) {
|
|
1213
1045
|
return 1;
|
|
1214
1046
|
} else {
|
|
1215
1047
|
return 0;
|
|
1216
1048
|
}
|
|
1217
1049
|
}
|
|
1218
1050
|
|
|
1219
|
-
int
|
|
1220
|
-
return parser->cs ==
|
|
1051
|
+
int puma_parser_has_error(puma_parser *parser) {
|
|
1052
|
+
return parser->cs == puma_parser_error;
|
|
1221
1053
|
}
|
|
1222
1054
|
|
|
1223
|
-
int
|
|
1224
|
-
return parser->cs >=
|
|
1055
|
+
int puma_parser_is_finished(puma_parser *parser) {
|
|
1056
|
+
return parser->cs >= puma_parser_first_final;
|
|
1225
1057
|
}
|