rfuzz 0.7 → 0.8
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.
- data/Rakefile +1 -1
- data/doc/rdoc/classes/RFuzz/Browser.html +15 -15
- data/doc/rdoc/classes/RFuzz/Browser.src/{M000068.html → M000083.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Browser.src/{M000069.html → M000084.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Browser.src/{M000070.html → M000085.html} +0 -0
- data/doc/rdoc/classes/RFuzz/HttpClient.html +114 -57
- data/doc/rdoc/classes/RFuzz/HttpClient.src/M000019.html +12 -13
- data/doc/rdoc/classes/RFuzz/HttpClient.src/{M000011.html → M000020.html} +20 -20
- data/doc/rdoc/classes/RFuzz/HttpClient.src/M000021.html +28 -0
- data/doc/rdoc/classes/RFuzz/HttpClient.src/M000022.html +30 -0
- data/doc/rdoc/classes/RFuzz/HttpClient.src/M000023.html +35 -0
- data/doc/rdoc/classes/RFuzz/HttpClient.src/M000024.html +22 -0
- data/doc/rdoc/classes/RFuzz/HttpClient.src/M000025.html +44 -0
- data/doc/rdoc/classes/RFuzz/HttpClient.src/M000026.html +38 -0
- data/doc/rdoc/classes/RFuzz/HttpClient.src/{M000016.html → M000027.html} +12 -12
- data/doc/rdoc/classes/RFuzz/HttpClient.src/{M000017.html → M000028.html} +20 -20
- data/doc/rdoc/classes/RFuzz/HttpClient.src/{M000018.html → M000029.html} +4 -4
- data/doc/rdoc/classes/RFuzz/HttpClient.src/M000030.html +26 -0
- data/doc/rdoc/classes/RFuzz/HttpClientError.html +118 -0
- data/doc/rdoc/classes/RFuzz/HttpEncoding.html +7 -4
- data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000001.html +12 -12
- data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000002.html +4 -4
- data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000003.html +12 -12
- data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000004.html +4 -4
- data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000005.html +18 -18
- data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000006.html +4 -4
- data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000007.html +6 -6
- data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000008.html +6 -6
- data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000009.html +18 -18
- data/doc/rdoc/classes/RFuzz/HttpResponse.html +74 -13
- data/doc/rdoc/classes/RFuzz/HttpResponse.src/M000031.html +22 -0
- data/doc/rdoc/classes/RFuzz/HttpResponse.src/M000032.html +18 -0
- data/doc/rdoc/classes/RFuzz/HttpResponse.src/M000033.html +18 -0
- data/doc/rdoc/classes/RFuzz/Notifier.html +49 -31
- data/doc/rdoc/classes/RFuzz/Notifier.src/{M000044.html → M000058.html} +3 -3
- data/doc/rdoc/classes/RFuzz/Notifier.src/{M000045.html → M000059.html} +3 -3
- data/doc/rdoc/classes/RFuzz/Notifier.src/{M000047.html → M000060.html} +2 -2
- data/doc/rdoc/classes/RFuzz/Notifier.src/{M000048.html → M000061.html} +2 -2
- data/doc/rdoc/classes/RFuzz/Notifier.src/{M000049.html → M000062.html} +2 -2
- data/doc/rdoc/classes/RFuzz/Notifier.src/{M000046.html → M000063.html} +4 -4
- data/doc/rdoc/classes/RFuzz/Notifier.src/M000064.html +17 -0
- data/doc/rdoc/classes/RFuzz/PushBackIO.html +296 -0
- data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000010.html +19 -0
- data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000011.html +20 -0
- data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000012.html +19 -0
- data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000013.html +18 -0
- data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000014.html +44 -0
- data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000015.html +18 -0
- data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000016.html +18 -0
- data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000017.html +18 -0
- data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000018.html +22 -0
- data/doc/rdoc/classes/RFuzz/RandomGenerator.html +62 -62
- data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000032.html → M000046.html} +0 -0
- data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000033.html → M000047.html} +0 -0
- data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000036.html → M000050.html} +0 -0
- data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000037.html → M000051.html} +0 -0
- data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000038.html → M000052.html} +0 -0
- data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000039.html → M000053.html} +0 -0
- data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000040.html → M000054.html} +0 -0
- data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000041.html → M000055.html} +0 -0
- data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000042.html → M000056.html} +0 -0
- data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000043.html → M000057.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Sampler.html +60 -60
- data/doc/rdoc/classes/RFuzz/Sampler.src/{M000056.html → M000071.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Sampler.src/{M000057.html → M000072.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Sampler.src/{M000058.html → M000073.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Sampler.src/{M000059.html → M000074.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Sampler.src/{M000060.html → M000075.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Sampler.src/{M000061.html → M000076.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Sampler.src/{M000062.html → M000077.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Sampler.src/{M000063.html → M000078.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Sampler.src/{M000064.html → M000079.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Sampler.src/{M000065.html → M000080.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Sampler.src/{M000066.html → M000081.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Sampler.src/{M000067.html → M000082.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Session.html +63 -63
- data/doc/rdoc/classes/RFuzz/Session.src/{M000020.html → M000034.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Session.src/{M000021.html → M000035.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Session.src/{M000022.html → M000036.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Session.src/{M000023.html → M000037.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Session.src/{M000024.html → M000038.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Session.src/{M000025.html → M000039.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Session.src/{M000026.html → M000040.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Session.src/{M000027.html → M000041.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Session.src/{M000028.html → M000042.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Session.src/{M000029.html → M000043.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Session.src/{M000030.html → M000044.html} +0 -0
- data/doc/rdoc/classes/RFuzz/Session.src/{M000031.html → M000045.html} +0 -0
- data/doc/rdoc/classes/RFuzz/StatsTracker.html +32 -32
- data/doc/rdoc/classes/RFuzz/StatsTracker.src/{M000050.html → M000065.html} +0 -0
- data/doc/rdoc/classes/RFuzz/StatsTracker.src/{M000051.html → M000066.html} +0 -0
- data/doc/rdoc/classes/RFuzz/StatsTracker.src/{M000052.html → M000067.html} +0 -0
- data/doc/rdoc/classes/RFuzz/StatsTracker.src/{M000053.html → M000068.html} +0 -0
- data/doc/rdoc/classes/RFuzz/StatsTracker.src/{M000054.html → M000069.html} +0 -0
- data/doc/rdoc/classes/RFuzz/StatsTracker.src/{M000055.html → M000070.html} +0 -0
- data/doc/rdoc/classes/RFuzz.html +7 -1
- data/doc/rdoc/created.rid +1 -1
- data/doc/rdoc/files/lib/rfuzz/client_rb.html +2 -2
- data/doc/rdoc/files/lib/rfuzz/pushbackio_rb.html +108 -0
- data/doc/rdoc/fr_class_index.html +2 -0
- data/doc/rdoc/fr_file_index.html +1 -0
- data/doc/rdoc/fr_method_index.html +76 -61
- data/examples/cl_watcher.rb +12 -9
- data/examples/hpricot_pudding.rb +1 -1
- data/examples/mongrel_test_suite/test/http/protocol_parameters.rb +0 -3
- data/examples/mongrel_test_suite/test/rails/catastrophe.rb +26 -0
- data/examples/mongrel_test_suite/test/rails/conditional.rb +81 -0
- data/examples/mongrel_test_suite/test/rails/put.rb +25 -0
- data/examples/mongrel_test_suite/test/rails/redirect.rb +13 -0
- data/examples/mongrel_test_suite/test/rails/static_files.rb +47 -2
- data/examples/rails_security_test.rb +61 -0
- data/ext/http11_client/http11_client.c +15 -1
- data/ext/http11_client/http11_parser.c +627 -203
- data/ext/http11_client/http11_parser.h +2 -0
- data/ext/http11_client/http11_parser.rl +8 -4
- data/lib/rfuzz/client.rb +124 -115
- data/lib/rfuzz/pushbackio.rb +90 -0
- metadata +86 -60
- data/doc/rdoc/classes/RFuzz/HttpClient.src/M000010.html +0 -24
- data/doc/rdoc/classes/RFuzz/HttpClient.src/M000012.html +0 -50
- data/doc/rdoc/classes/RFuzz/HttpClient.src/M000013.html +0 -49
- data/doc/rdoc/classes/RFuzz/HttpClient.src/M000014.html +0 -57
- data/doc/rdoc/classes/RFuzz/HttpClient.src/M000015.html +0 -37
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
/** machine **/
|
|
21
|
-
#line
|
|
21
|
+
#line 95 "ext/http11_client/http11_parser.rl"
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
/** Data **/
|
|
@@ -26,11 +26,11 @@
|
|
|
26
26
|
#line 27 "ext/http11_client/http11_parser.c"
|
|
27
27
|
static int httpclient_parser_start = 0;
|
|
28
28
|
|
|
29
|
-
static int httpclient_parser_first_final =
|
|
29
|
+
static int httpclient_parser_first_final = 36;
|
|
30
30
|
|
|
31
31
|
static int httpclient_parser_error = 1;
|
|
32
32
|
|
|
33
|
-
#line
|
|
33
|
+
#line 99 "ext/http11_client/http11_parser.rl"
|
|
34
34
|
|
|
35
35
|
int httpclient_parser_init(httpclient_parser *parser) {
|
|
36
36
|
int cs = 0;
|
|
@@ -39,7 +39,7 @@ int httpclient_parser_init(httpclient_parser *parser) {
|
|
|
39
39
|
{
|
|
40
40
|
cs = httpclient_parser_start;
|
|
41
41
|
}
|
|
42
|
-
#line
|
|
42
|
+
#line 103 "ext/http11_client/http11_parser.rl"
|
|
43
43
|
parser->cs = cs;
|
|
44
44
|
parser->body_start = 0;
|
|
45
45
|
parser->content_len = 0;
|
|
@@ -77,11 +77,12 @@ size_t httpclient_parser_execute(httpclient_parser *parser, const char *buffer,
|
|
|
77
77
|
case 0:
|
|
78
78
|
switch( (*p) ) {
|
|
79
79
|
case 13: goto st2;
|
|
80
|
-
case
|
|
80
|
+
case 48: goto tr16;
|
|
81
|
+
case 59: goto st15;
|
|
81
82
|
case 72: goto tr19;
|
|
82
83
|
}
|
|
83
84
|
if ( (*p) < 65 ) {
|
|
84
|
-
if (
|
|
85
|
+
if ( 49 <= (*p) && (*p) <= 57 )
|
|
85
86
|
goto tr17;
|
|
86
87
|
} else if ( (*p) > 70 ) {
|
|
87
88
|
if ( 97 <= (*p) && (*p) <= 102 )
|
|
@@ -91,19 +92,13 @@ case 0:
|
|
|
91
92
|
goto st1;
|
|
92
93
|
st1:
|
|
93
94
|
goto _out1;
|
|
94
|
-
|
|
95
|
+
tr44:
|
|
95
96
|
#line 33 "ext/http11_client/http11_parser.rl"
|
|
96
97
|
{
|
|
97
98
|
parser->http_field(parser->data, PTR_TO(field_start), parser->field_len, PTR_TO(mark), LEN(mark, p));
|
|
98
99
|
}
|
|
99
100
|
goto st2;
|
|
100
|
-
|
|
101
|
-
#line 49 "ext/http11_client/http11_parser.rl"
|
|
102
|
-
{
|
|
103
|
-
parser->chunk_size(parser->data, PTR_TO(mark), LEN(mark, p));
|
|
104
|
-
}
|
|
105
|
-
goto st2;
|
|
106
|
-
tr27:
|
|
101
|
+
tr52:
|
|
107
102
|
#line 27 "ext/http11_client/http11_parser.rl"
|
|
108
103
|
{
|
|
109
104
|
parser->field_len = LEN(field_start, p);
|
|
@@ -119,26 +114,52 @@ st2:
|
|
|
119
114
|
if ( ++p == pe )
|
|
120
115
|
goto _out2;
|
|
121
116
|
case 2:
|
|
122
|
-
#line
|
|
117
|
+
#line 118 "ext/http11_client/http11_parser.c"
|
|
123
118
|
if ( (*p) == 10 )
|
|
124
|
-
goto
|
|
119
|
+
goto tr34;
|
|
125
120
|
goto st1;
|
|
126
|
-
|
|
121
|
+
tr33:
|
|
122
|
+
#line 57 "ext/http11_client/http11_parser.rl"
|
|
123
|
+
{
|
|
124
|
+
parser->body_start = p - buffer + 1;
|
|
125
|
+
if(parser->header_done != NULL)
|
|
126
|
+
parser->header_done(parser->data, p + 1, pe - p - 1);
|
|
127
|
+
goto _out36;
|
|
128
|
+
}
|
|
129
|
+
goto st36;
|
|
130
|
+
tr34:
|
|
127
131
|
#line 53 "ext/http11_client/http11_parser.rl"
|
|
132
|
+
{
|
|
133
|
+
parser->last_chunk(parser->data, NULL, 0);
|
|
134
|
+
}
|
|
135
|
+
#line 57 "ext/http11_client/http11_parser.rl"
|
|
128
136
|
{
|
|
129
137
|
parser->body_start = p - buffer + 1;
|
|
130
138
|
if(parser->header_done != NULL)
|
|
131
139
|
parser->header_done(parser->data, p + 1, pe - p - 1);
|
|
132
|
-
goto
|
|
140
|
+
goto _out36;
|
|
133
141
|
}
|
|
134
|
-
goto
|
|
135
|
-
|
|
142
|
+
goto st36;
|
|
143
|
+
tr35:
|
|
144
|
+
#line 57 "ext/http11_client/http11_parser.rl"
|
|
145
|
+
{
|
|
146
|
+
parser->body_start = p - buffer + 1;
|
|
147
|
+
if(parser->header_done != NULL)
|
|
148
|
+
parser->header_done(parser->data, p + 1, pe - p - 1);
|
|
149
|
+
goto _out36;
|
|
150
|
+
}
|
|
151
|
+
#line 53 "ext/http11_client/http11_parser.rl"
|
|
152
|
+
{
|
|
153
|
+
parser->last_chunk(parser->data, NULL, 0);
|
|
154
|
+
}
|
|
155
|
+
goto st36;
|
|
156
|
+
st36:
|
|
136
157
|
if ( ++p == pe )
|
|
137
|
-
goto
|
|
138
|
-
case
|
|
139
|
-
#line
|
|
158
|
+
goto _out36;
|
|
159
|
+
case 36:
|
|
160
|
+
#line 161 "ext/http11_client/http11_parser.c"
|
|
140
161
|
goto st1;
|
|
141
|
-
|
|
162
|
+
tr16:
|
|
142
163
|
#line 23 "ext/http11_client/http11_parser.rl"
|
|
143
164
|
{MARK(mark, p); }
|
|
144
165
|
goto st3;
|
|
@@ -146,33 +167,33 @@ st3:
|
|
|
146
167
|
if ( ++p == pe )
|
|
147
168
|
goto _out3;
|
|
148
169
|
case 3:
|
|
149
|
-
#line
|
|
170
|
+
#line 171 "ext/http11_client/http11_parser.c"
|
|
150
171
|
switch( (*p) ) {
|
|
151
|
-
case 13: goto
|
|
152
|
-
case 59: goto
|
|
172
|
+
case 13: goto tr50;
|
|
173
|
+
case 59: goto tr51;
|
|
153
174
|
}
|
|
154
175
|
if ( (*p) < 65 ) {
|
|
155
176
|
if ( 48 <= (*p) && (*p) <= 57 )
|
|
156
|
-
goto
|
|
177
|
+
goto st5;
|
|
157
178
|
} else if ( (*p) > 70 ) {
|
|
158
179
|
if ( 97 <= (*p) && (*p) <= 102 )
|
|
159
|
-
goto
|
|
180
|
+
goto st5;
|
|
160
181
|
} else
|
|
161
|
-
goto
|
|
182
|
+
goto st5;
|
|
162
183
|
goto st1;
|
|
163
|
-
|
|
184
|
+
tr47:
|
|
164
185
|
#line 33 "ext/http11_client/http11_parser.rl"
|
|
165
186
|
{
|
|
166
187
|
parser->http_field(parser->data, PTR_TO(field_start), parser->field_len, PTR_TO(mark), LEN(mark, p));
|
|
167
188
|
}
|
|
168
189
|
goto st4;
|
|
169
|
-
|
|
190
|
+
tr50:
|
|
170
191
|
#line 49 "ext/http11_client/http11_parser.rl"
|
|
171
192
|
{
|
|
172
193
|
parser->chunk_size(parser->data, PTR_TO(mark), LEN(mark, p));
|
|
173
194
|
}
|
|
174
195
|
goto st4;
|
|
175
|
-
|
|
196
|
+
tr56:
|
|
176
197
|
#line 27 "ext/http11_client/http11_parser.rl"
|
|
177
198
|
{
|
|
178
199
|
parser->field_len = LEN(field_start, p);
|
|
@@ -188,7 +209,93 @@ st4:
|
|
|
188
209
|
if ( ++p == pe )
|
|
189
210
|
goto _out4;
|
|
190
211
|
case 4:
|
|
191
|
-
#line
|
|
212
|
+
#line 213 "ext/http11_client/http11_parser.c"
|
|
213
|
+
if ( (*p) == 10 )
|
|
214
|
+
goto tr35;
|
|
215
|
+
goto st1;
|
|
216
|
+
tr17:
|
|
217
|
+
#line 23 "ext/http11_client/http11_parser.rl"
|
|
218
|
+
{MARK(mark, p); }
|
|
219
|
+
goto st5;
|
|
220
|
+
st5:
|
|
221
|
+
if ( ++p == pe )
|
|
222
|
+
goto _out5;
|
|
223
|
+
case 5:
|
|
224
|
+
#line 225 "ext/http11_client/http11_parser.c"
|
|
225
|
+
switch( (*p) ) {
|
|
226
|
+
case 13: goto tr25;
|
|
227
|
+
case 59: goto tr27;
|
|
228
|
+
}
|
|
229
|
+
if ( (*p) < 65 ) {
|
|
230
|
+
if ( 48 <= (*p) && (*p) <= 57 )
|
|
231
|
+
goto st5;
|
|
232
|
+
} else if ( (*p) > 70 ) {
|
|
233
|
+
if ( 97 <= (*p) && (*p) <= 102 )
|
|
234
|
+
goto st5;
|
|
235
|
+
} else
|
|
236
|
+
goto st5;
|
|
237
|
+
goto st1;
|
|
238
|
+
tr22:
|
|
239
|
+
#line 33 "ext/http11_client/http11_parser.rl"
|
|
240
|
+
{
|
|
241
|
+
parser->http_field(parser->data, PTR_TO(field_start), parser->field_len, PTR_TO(mark), LEN(mark, p));
|
|
242
|
+
}
|
|
243
|
+
goto st6;
|
|
244
|
+
tr25:
|
|
245
|
+
#line 49 "ext/http11_client/http11_parser.rl"
|
|
246
|
+
{
|
|
247
|
+
parser->chunk_size(parser->data, PTR_TO(mark), LEN(mark, p));
|
|
248
|
+
}
|
|
249
|
+
goto st6;
|
|
250
|
+
tr28:
|
|
251
|
+
#line 27 "ext/http11_client/http11_parser.rl"
|
|
252
|
+
{
|
|
253
|
+
parser->field_len = LEN(field_start, p);
|
|
254
|
+
}
|
|
255
|
+
#line 31 "ext/http11_client/http11_parser.rl"
|
|
256
|
+
{ MARK(mark, p); }
|
|
257
|
+
#line 33 "ext/http11_client/http11_parser.rl"
|
|
258
|
+
{
|
|
259
|
+
parser->http_field(parser->data, PTR_TO(field_start), parser->field_len, PTR_TO(mark), LEN(mark, p));
|
|
260
|
+
}
|
|
261
|
+
goto st6;
|
|
262
|
+
st6:
|
|
263
|
+
if ( ++p == pe )
|
|
264
|
+
goto _out6;
|
|
265
|
+
case 6:
|
|
266
|
+
#line 267 "ext/http11_client/http11_parser.c"
|
|
267
|
+
if ( (*p) == 10 )
|
|
268
|
+
goto tr33;
|
|
269
|
+
goto st1;
|
|
270
|
+
tr24:
|
|
271
|
+
#line 33 "ext/http11_client/http11_parser.rl"
|
|
272
|
+
{
|
|
273
|
+
parser->http_field(parser->data, PTR_TO(field_start), parser->field_len, PTR_TO(mark), LEN(mark, p));
|
|
274
|
+
}
|
|
275
|
+
goto st7;
|
|
276
|
+
tr27:
|
|
277
|
+
#line 49 "ext/http11_client/http11_parser.rl"
|
|
278
|
+
{
|
|
279
|
+
parser->chunk_size(parser->data, PTR_TO(mark), LEN(mark, p));
|
|
280
|
+
}
|
|
281
|
+
goto st7;
|
|
282
|
+
tr30:
|
|
283
|
+
#line 27 "ext/http11_client/http11_parser.rl"
|
|
284
|
+
{
|
|
285
|
+
parser->field_len = LEN(field_start, p);
|
|
286
|
+
}
|
|
287
|
+
#line 31 "ext/http11_client/http11_parser.rl"
|
|
288
|
+
{ MARK(mark, p); }
|
|
289
|
+
#line 33 "ext/http11_client/http11_parser.rl"
|
|
290
|
+
{
|
|
291
|
+
parser->http_field(parser->data, PTR_TO(field_start), parser->field_len, PTR_TO(mark), LEN(mark, p));
|
|
292
|
+
}
|
|
293
|
+
goto st7;
|
|
294
|
+
st7:
|
|
295
|
+
if ( ++p == pe )
|
|
296
|
+
goto _out7;
|
|
297
|
+
case 7:
|
|
298
|
+
#line 299 "ext/http11_client/http11_parser.c"
|
|
192
299
|
switch( (*p) ) {
|
|
193
300
|
case 33: goto tr9;
|
|
194
301
|
case 124: goto tr9;
|
|
@@ -215,51 +322,51 @@ case 4:
|
|
|
215
322
|
tr9:
|
|
216
323
|
#line 25 "ext/http11_client/http11_parser.rl"
|
|
217
324
|
{ MARK(field_start, p); }
|
|
218
|
-
goto
|
|
219
|
-
|
|
325
|
+
goto st8;
|
|
326
|
+
st8:
|
|
220
327
|
if ( ++p == pe )
|
|
221
|
-
goto
|
|
222
|
-
case
|
|
223
|
-
#line
|
|
328
|
+
goto _out8;
|
|
329
|
+
case 8:
|
|
330
|
+
#line 331 "ext/http11_client/http11_parser.c"
|
|
224
331
|
switch( (*p) ) {
|
|
225
|
-
case 13: goto
|
|
226
|
-
case 33: goto
|
|
227
|
-
case 59: goto
|
|
228
|
-
case 61: goto
|
|
229
|
-
case 124: goto
|
|
230
|
-
case 126: goto
|
|
332
|
+
case 13: goto tr28;
|
|
333
|
+
case 33: goto st8;
|
|
334
|
+
case 59: goto tr30;
|
|
335
|
+
case 61: goto tr31;
|
|
336
|
+
case 124: goto st8;
|
|
337
|
+
case 126: goto st8;
|
|
231
338
|
}
|
|
232
339
|
if ( (*p) < 45 ) {
|
|
233
340
|
if ( (*p) > 39 ) {
|
|
234
341
|
if ( 42 <= (*p) && (*p) <= 43 )
|
|
235
|
-
goto
|
|
342
|
+
goto st8;
|
|
236
343
|
} else if ( (*p) >= 35 )
|
|
237
|
-
goto
|
|
344
|
+
goto st8;
|
|
238
345
|
} else if ( (*p) > 46 ) {
|
|
239
346
|
if ( (*p) < 65 ) {
|
|
240
347
|
if ( 48 <= (*p) && (*p) <= 57 )
|
|
241
|
-
goto
|
|
348
|
+
goto st8;
|
|
242
349
|
} else if ( (*p) > 90 ) {
|
|
243
350
|
if ( 94 <= (*p) && (*p) <= 122 )
|
|
244
|
-
goto
|
|
351
|
+
goto st8;
|
|
245
352
|
} else
|
|
246
|
-
goto
|
|
353
|
+
goto st8;
|
|
247
354
|
} else
|
|
248
|
-
goto
|
|
355
|
+
goto st8;
|
|
249
356
|
goto st1;
|
|
250
|
-
|
|
357
|
+
tr31:
|
|
251
358
|
#line 27 "ext/http11_client/http11_parser.rl"
|
|
252
359
|
{
|
|
253
360
|
parser->field_len = LEN(field_start, p);
|
|
254
361
|
}
|
|
255
362
|
#line 31 "ext/http11_client/http11_parser.rl"
|
|
256
363
|
{ MARK(mark, p); }
|
|
257
|
-
goto
|
|
258
|
-
|
|
364
|
+
goto st9;
|
|
365
|
+
st9:
|
|
259
366
|
if ( ++p == pe )
|
|
260
|
-
goto
|
|
261
|
-
case
|
|
262
|
-
#line
|
|
367
|
+
goto _out9;
|
|
368
|
+
case 9:
|
|
369
|
+
#line 370 "ext/http11_client/http11_parser.c"
|
|
263
370
|
switch( (*p) ) {
|
|
264
371
|
case 33: goto tr10;
|
|
265
372
|
case 124: goto tr10;
|
|
@@ -286,272 +393,579 @@ case 6:
|
|
|
286
393
|
tr10:
|
|
287
394
|
#line 31 "ext/http11_client/http11_parser.rl"
|
|
288
395
|
{ MARK(mark, p); }
|
|
289
|
-
goto
|
|
290
|
-
|
|
396
|
+
goto st10;
|
|
397
|
+
st10:
|
|
291
398
|
if ( ++p == pe )
|
|
292
|
-
goto
|
|
293
|
-
case
|
|
294
|
-
#line
|
|
399
|
+
goto _out10;
|
|
400
|
+
case 10:
|
|
401
|
+
#line 402 "ext/http11_client/http11_parser.c"
|
|
295
402
|
switch( (*p) ) {
|
|
296
|
-
case 13: goto
|
|
297
|
-
case 33: goto
|
|
298
|
-
case 59: goto
|
|
299
|
-
case 124: goto
|
|
300
|
-
case 126: goto
|
|
403
|
+
case 13: goto tr22;
|
|
404
|
+
case 33: goto st10;
|
|
405
|
+
case 59: goto tr24;
|
|
406
|
+
case 124: goto st10;
|
|
407
|
+
case 126: goto st10;
|
|
301
408
|
}
|
|
302
409
|
if ( (*p) < 45 ) {
|
|
303
410
|
if ( (*p) > 39 ) {
|
|
304
411
|
if ( 42 <= (*p) && (*p) <= 43 )
|
|
305
|
-
goto
|
|
412
|
+
goto st10;
|
|
306
413
|
} else if ( (*p) >= 35 )
|
|
307
|
-
goto
|
|
414
|
+
goto st10;
|
|
308
415
|
} else if ( (*p) > 46 ) {
|
|
309
416
|
if ( (*p) < 65 ) {
|
|
310
417
|
if ( 48 <= (*p) && (*p) <= 57 )
|
|
311
|
-
goto
|
|
418
|
+
goto st10;
|
|
312
419
|
} else if ( (*p) > 90 ) {
|
|
313
420
|
if ( 94 <= (*p) && (*p) <= 122 )
|
|
314
|
-
goto
|
|
421
|
+
goto st10;
|
|
315
422
|
} else
|
|
316
|
-
goto
|
|
423
|
+
goto st10;
|
|
317
424
|
} else
|
|
318
|
-
goto
|
|
425
|
+
goto st10;
|
|
426
|
+
goto st1;
|
|
427
|
+
tr49:
|
|
428
|
+
#line 33 "ext/http11_client/http11_parser.rl"
|
|
429
|
+
{
|
|
430
|
+
parser->http_field(parser->data, PTR_TO(field_start), parser->field_len, PTR_TO(mark), LEN(mark, p));
|
|
431
|
+
}
|
|
432
|
+
goto st11;
|
|
433
|
+
tr51:
|
|
434
|
+
#line 49 "ext/http11_client/http11_parser.rl"
|
|
435
|
+
{
|
|
436
|
+
parser->chunk_size(parser->data, PTR_TO(mark), LEN(mark, p));
|
|
437
|
+
}
|
|
438
|
+
goto st11;
|
|
439
|
+
tr58:
|
|
440
|
+
#line 27 "ext/http11_client/http11_parser.rl"
|
|
441
|
+
{
|
|
442
|
+
parser->field_len = LEN(field_start, p);
|
|
443
|
+
}
|
|
444
|
+
#line 31 "ext/http11_client/http11_parser.rl"
|
|
445
|
+
{ MARK(mark, p); }
|
|
446
|
+
#line 33 "ext/http11_client/http11_parser.rl"
|
|
447
|
+
{
|
|
448
|
+
parser->http_field(parser->data, PTR_TO(field_start), parser->field_len, PTR_TO(mark), LEN(mark, p));
|
|
449
|
+
}
|
|
450
|
+
goto st11;
|
|
451
|
+
st11:
|
|
452
|
+
if ( ++p == pe )
|
|
453
|
+
goto _out11;
|
|
454
|
+
case 11:
|
|
455
|
+
#line 456 "ext/http11_client/http11_parser.c"
|
|
456
|
+
switch( (*p) ) {
|
|
457
|
+
case 33: goto tr63;
|
|
458
|
+
case 124: goto tr63;
|
|
459
|
+
case 126: goto tr63;
|
|
460
|
+
}
|
|
461
|
+
if ( (*p) < 45 ) {
|
|
462
|
+
if ( (*p) > 39 ) {
|
|
463
|
+
if ( 42 <= (*p) && (*p) <= 43 )
|
|
464
|
+
goto tr63;
|
|
465
|
+
} else if ( (*p) >= 35 )
|
|
466
|
+
goto tr63;
|
|
467
|
+
} else if ( (*p) > 46 ) {
|
|
468
|
+
if ( (*p) < 65 ) {
|
|
469
|
+
if ( 48 <= (*p) && (*p) <= 57 )
|
|
470
|
+
goto tr63;
|
|
471
|
+
} else if ( (*p) > 90 ) {
|
|
472
|
+
if ( 94 <= (*p) && (*p) <= 122 )
|
|
473
|
+
goto tr63;
|
|
474
|
+
} else
|
|
475
|
+
goto tr63;
|
|
476
|
+
} else
|
|
477
|
+
goto tr63;
|
|
478
|
+
goto st1;
|
|
479
|
+
tr63:
|
|
480
|
+
#line 25 "ext/http11_client/http11_parser.rl"
|
|
481
|
+
{ MARK(field_start, p); }
|
|
482
|
+
goto st12;
|
|
483
|
+
st12:
|
|
484
|
+
if ( ++p == pe )
|
|
485
|
+
goto _out12;
|
|
486
|
+
case 12:
|
|
487
|
+
#line 488 "ext/http11_client/http11_parser.c"
|
|
488
|
+
switch( (*p) ) {
|
|
489
|
+
case 13: goto tr56;
|
|
490
|
+
case 33: goto st12;
|
|
491
|
+
case 59: goto tr58;
|
|
492
|
+
case 61: goto tr59;
|
|
493
|
+
case 124: goto st12;
|
|
494
|
+
case 126: goto st12;
|
|
495
|
+
}
|
|
496
|
+
if ( (*p) < 45 ) {
|
|
497
|
+
if ( (*p) > 39 ) {
|
|
498
|
+
if ( 42 <= (*p) && (*p) <= 43 )
|
|
499
|
+
goto st12;
|
|
500
|
+
} else if ( (*p) >= 35 )
|
|
501
|
+
goto st12;
|
|
502
|
+
} else if ( (*p) > 46 ) {
|
|
503
|
+
if ( (*p) < 65 ) {
|
|
504
|
+
if ( 48 <= (*p) && (*p) <= 57 )
|
|
505
|
+
goto st12;
|
|
506
|
+
} else if ( (*p) > 90 ) {
|
|
507
|
+
if ( 94 <= (*p) && (*p) <= 122 )
|
|
508
|
+
goto st12;
|
|
509
|
+
} else
|
|
510
|
+
goto st12;
|
|
511
|
+
} else
|
|
512
|
+
goto st12;
|
|
513
|
+
goto st1;
|
|
514
|
+
tr59:
|
|
515
|
+
#line 27 "ext/http11_client/http11_parser.rl"
|
|
516
|
+
{
|
|
517
|
+
parser->field_len = LEN(field_start, p);
|
|
518
|
+
}
|
|
519
|
+
#line 31 "ext/http11_client/http11_parser.rl"
|
|
520
|
+
{ MARK(mark, p); }
|
|
521
|
+
goto st13;
|
|
522
|
+
st13:
|
|
523
|
+
if ( ++p == pe )
|
|
524
|
+
goto _out13;
|
|
525
|
+
case 13:
|
|
526
|
+
#line 527 "ext/http11_client/http11_parser.c"
|
|
527
|
+
switch( (*p) ) {
|
|
528
|
+
case 33: goto tr61;
|
|
529
|
+
case 124: goto tr61;
|
|
530
|
+
case 126: goto tr61;
|
|
531
|
+
}
|
|
532
|
+
if ( (*p) < 45 ) {
|
|
533
|
+
if ( (*p) > 39 ) {
|
|
534
|
+
if ( 42 <= (*p) && (*p) <= 43 )
|
|
535
|
+
goto tr61;
|
|
536
|
+
} else if ( (*p) >= 35 )
|
|
537
|
+
goto tr61;
|
|
538
|
+
} else if ( (*p) > 46 ) {
|
|
539
|
+
if ( (*p) < 65 ) {
|
|
540
|
+
if ( 48 <= (*p) && (*p) <= 57 )
|
|
541
|
+
goto tr61;
|
|
542
|
+
} else if ( (*p) > 90 ) {
|
|
543
|
+
if ( 94 <= (*p) && (*p) <= 122 )
|
|
544
|
+
goto tr61;
|
|
545
|
+
} else
|
|
546
|
+
goto tr61;
|
|
547
|
+
} else
|
|
548
|
+
goto tr61;
|
|
549
|
+
goto st1;
|
|
550
|
+
tr61:
|
|
551
|
+
#line 31 "ext/http11_client/http11_parser.rl"
|
|
552
|
+
{ MARK(mark, p); }
|
|
553
|
+
goto st14;
|
|
554
|
+
st14:
|
|
555
|
+
if ( ++p == pe )
|
|
556
|
+
goto _out14;
|
|
557
|
+
case 14:
|
|
558
|
+
#line 559 "ext/http11_client/http11_parser.c"
|
|
559
|
+
switch( (*p) ) {
|
|
560
|
+
case 13: goto tr47;
|
|
561
|
+
case 33: goto st14;
|
|
562
|
+
case 59: goto tr49;
|
|
563
|
+
case 124: goto st14;
|
|
564
|
+
case 126: goto st14;
|
|
565
|
+
}
|
|
566
|
+
if ( (*p) < 45 ) {
|
|
567
|
+
if ( (*p) > 39 ) {
|
|
568
|
+
if ( 42 <= (*p) && (*p) <= 43 )
|
|
569
|
+
goto st14;
|
|
570
|
+
} else if ( (*p) >= 35 )
|
|
571
|
+
goto st14;
|
|
572
|
+
} else if ( (*p) > 46 ) {
|
|
573
|
+
if ( (*p) < 65 ) {
|
|
574
|
+
if ( 48 <= (*p) && (*p) <= 57 )
|
|
575
|
+
goto st14;
|
|
576
|
+
} else if ( (*p) > 90 ) {
|
|
577
|
+
if ( 94 <= (*p) && (*p) <= 122 )
|
|
578
|
+
goto st14;
|
|
579
|
+
} else
|
|
580
|
+
goto st14;
|
|
581
|
+
} else
|
|
582
|
+
goto st14;
|
|
583
|
+
goto st1;
|
|
584
|
+
tr46:
|
|
585
|
+
#line 33 "ext/http11_client/http11_parser.rl"
|
|
586
|
+
{
|
|
587
|
+
parser->http_field(parser->data, PTR_TO(field_start), parser->field_len, PTR_TO(mark), LEN(mark, p));
|
|
588
|
+
}
|
|
589
|
+
goto st15;
|
|
590
|
+
tr54:
|
|
591
|
+
#line 27 "ext/http11_client/http11_parser.rl"
|
|
592
|
+
{
|
|
593
|
+
parser->field_len = LEN(field_start, p);
|
|
594
|
+
}
|
|
595
|
+
#line 31 "ext/http11_client/http11_parser.rl"
|
|
596
|
+
{ MARK(mark, p); }
|
|
597
|
+
#line 33 "ext/http11_client/http11_parser.rl"
|
|
598
|
+
{
|
|
599
|
+
parser->http_field(parser->data, PTR_TO(field_start), parser->field_len, PTR_TO(mark), LEN(mark, p));
|
|
600
|
+
}
|
|
601
|
+
goto st15;
|
|
602
|
+
st15:
|
|
603
|
+
if ( ++p == pe )
|
|
604
|
+
goto _out15;
|
|
605
|
+
case 15:
|
|
606
|
+
#line 607 "ext/http11_client/http11_parser.c"
|
|
607
|
+
switch( (*p) ) {
|
|
608
|
+
case 33: goto tr62;
|
|
609
|
+
case 124: goto tr62;
|
|
610
|
+
case 126: goto tr62;
|
|
611
|
+
}
|
|
612
|
+
if ( (*p) < 45 ) {
|
|
613
|
+
if ( (*p) > 39 ) {
|
|
614
|
+
if ( 42 <= (*p) && (*p) <= 43 )
|
|
615
|
+
goto tr62;
|
|
616
|
+
} else if ( (*p) >= 35 )
|
|
617
|
+
goto tr62;
|
|
618
|
+
} else if ( (*p) > 46 ) {
|
|
619
|
+
if ( (*p) < 65 ) {
|
|
620
|
+
if ( 48 <= (*p) && (*p) <= 57 )
|
|
621
|
+
goto tr62;
|
|
622
|
+
} else if ( (*p) > 90 ) {
|
|
623
|
+
if ( 94 <= (*p) && (*p) <= 122 )
|
|
624
|
+
goto tr62;
|
|
625
|
+
} else
|
|
626
|
+
goto tr62;
|
|
627
|
+
} else
|
|
628
|
+
goto tr62;
|
|
629
|
+
goto st1;
|
|
630
|
+
tr62:
|
|
631
|
+
#line 25 "ext/http11_client/http11_parser.rl"
|
|
632
|
+
{ MARK(field_start, p); }
|
|
633
|
+
goto st16;
|
|
634
|
+
st16:
|
|
635
|
+
if ( ++p == pe )
|
|
636
|
+
goto _out16;
|
|
637
|
+
case 16:
|
|
638
|
+
#line 639 "ext/http11_client/http11_parser.c"
|
|
639
|
+
switch( (*p) ) {
|
|
640
|
+
case 13: goto tr52;
|
|
641
|
+
case 33: goto st16;
|
|
642
|
+
case 59: goto tr54;
|
|
643
|
+
case 61: goto tr55;
|
|
644
|
+
case 124: goto st16;
|
|
645
|
+
case 126: goto st16;
|
|
646
|
+
}
|
|
647
|
+
if ( (*p) < 45 ) {
|
|
648
|
+
if ( (*p) > 39 ) {
|
|
649
|
+
if ( 42 <= (*p) && (*p) <= 43 )
|
|
650
|
+
goto st16;
|
|
651
|
+
} else if ( (*p) >= 35 )
|
|
652
|
+
goto st16;
|
|
653
|
+
} else if ( (*p) > 46 ) {
|
|
654
|
+
if ( (*p) < 65 ) {
|
|
655
|
+
if ( 48 <= (*p) && (*p) <= 57 )
|
|
656
|
+
goto st16;
|
|
657
|
+
} else if ( (*p) > 90 ) {
|
|
658
|
+
if ( 94 <= (*p) && (*p) <= 122 )
|
|
659
|
+
goto st16;
|
|
660
|
+
} else
|
|
661
|
+
goto st16;
|
|
662
|
+
} else
|
|
663
|
+
goto st16;
|
|
664
|
+
goto st1;
|
|
665
|
+
tr55:
|
|
666
|
+
#line 27 "ext/http11_client/http11_parser.rl"
|
|
667
|
+
{
|
|
668
|
+
parser->field_len = LEN(field_start, p);
|
|
669
|
+
}
|
|
670
|
+
#line 31 "ext/http11_client/http11_parser.rl"
|
|
671
|
+
{ MARK(mark, p); }
|
|
672
|
+
goto st17;
|
|
673
|
+
st17:
|
|
674
|
+
if ( ++p == pe )
|
|
675
|
+
goto _out17;
|
|
676
|
+
case 17:
|
|
677
|
+
#line 678 "ext/http11_client/http11_parser.c"
|
|
678
|
+
switch( (*p) ) {
|
|
679
|
+
case 33: goto tr60;
|
|
680
|
+
case 124: goto tr60;
|
|
681
|
+
case 126: goto tr60;
|
|
682
|
+
}
|
|
683
|
+
if ( (*p) < 45 ) {
|
|
684
|
+
if ( (*p) > 39 ) {
|
|
685
|
+
if ( 42 <= (*p) && (*p) <= 43 )
|
|
686
|
+
goto tr60;
|
|
687
|
+
} else if ( (*p) >= 35 )
|
|
688
|
+
goto tr60;
|
|
689
|
+
} else if ( (*p) > 46 ) {
|
|
690
|
+
if ( (*p) < 65 ) {
|
|
691
|
+
if ( 48 <= (*p) && (*p) <= 57 )
|
|
692
|
+
goto tr60;
|
|
693
|
+
} else if ( (*p) > 90 ) {
|
|
694
|
+
if ( 94 <= (*p) && (*p) <= 122 )
|
|
695
|
+
goto tr60;
|
|
696
|
+
} else
|
|
697
|
+
goto tr60;
|
|
698
|
+
} else
|
|
699
|
+
goto tr60;
|
|
700
|
+
goto st1;
|
|
701
|
+
tr60:
|
|
702
|
+
#line 31 "ext/http11_client/http11_parser.rl"
|
|
703
|
+
{ MARK(mark, p); }
|
|
704
|
+
goto st18;
|
|
705
|
+
st18:
|
|
706
|
+
if ( ++p == pe )
|
|
707
|
+
goto _out18;
|
|
708
|
+
case 18:
|
|
709
|
+
#line 710 "ext/http11_client/http11_parser.c"
|
|
710
|
+
switch( (*p) ) {
|
|
711
|
+
case 13: goto tr44;
|
|
712
|
+
case 33: goto st18;
|
|
713
|
+
case 59: goto tr46;
|
|
714
|
+
case 124: goto st18;
|
|
715
|
+
case 126: goto st18;
|
|
716
|
+
}
|
|
717
|
+
if ( (*p) < 45 ) {
|
|
718
|
+
if ( (*p) > 39 ) {
|
|
719
|
+
if ( 42 <= (*p) && (*p) <= 43 )
|
|
720
|
+
goto st18;
|
|
721
|
+
} else if ( (*p) >= 35 )
|
|
722
|
+
goto st18;
|
|
723
|
+
} else if ( (*p) > 46 ) {
|
|
724
|
+
if ( (*p) < 65 ) {
|
|
725
|
+
if ( 48 <= (*p) && (*p) <= 57 )
|
|
726
|
+
goto st18;
|
|
727
|
+
} else if ( (*p) > 90 ) {
|
|
728
|
+
if ( 94 <= (*p) && (*p) <= 122 )
|
|
729
|
+
goto st18;
|
|
730
|
+
} else
|
|
731
|
+
goto st18;
|
|
732
|
+
} else
|
|
733
|
+
goto st18;
|
|
319
734
|
goto st1;
|
|
320
735
|
tr19:
|
|
321
736
|
#line 23 "ext/http11_client/http11_parser.rl"
|
|
322
737
|
{MARK(mark, p); }
|
|
323
|
-
goto
|
|
324
|
-
|
|
738
|
+
goto st19;
|
|
739
|
+
st19:
|
|
325
740
|
if ( ++p == pe )
|
|
326
|
-
goto
|
|
327
|
-
case
|
|
328
|
-
#line
|
|
741
|
+
goto _out19;
|
|
742
|
+
case 19:
|
|
743
|
+
#line 744 "ext/http11_client/http11_parser.c"
|
|
329
744
|
if ( (*p) == 84 )
|
|
330
|
-
goto
|
|
745
|
+
goto st20;
|
|
331
746
|
goto st1;
|
|
332
|
-
|
|
747
|
+
st20:
|
|
333
748
|
if ( ++p == pe )
|
|
334
|
-
goto
|
|
335
|
-
case
|
|
749
|
+
goto _out20;
|
|
750
|
+
case 20:
|
|
336
751
|
if ( (*p) == 84 )
|
|
337
|
-
goto
|
|
752
|
+
goto st21;
|
|
338
753
|
goto st1;
|
|
339
|
-
|
|
754
|
+
st21:
|
|
340
755
|
if ( ++p == pe )
|
|
341
|
-
goto
|
|
342
|
-
case
|
|
756
|
+
goto _out21;
|
|
757
|
+
case 21:
|
|
343
758
|
if ( (*p) == 80 )
|
|
344
|
-
goto
|
|
759
|
+
goto st22;
|
|
345
760
|
goto st1;
|
|
346
|
-
|
|
761
|
+
st22:
|
|
347
762
|
if ( ++p == pe )
|
|
348
|
-
goto
|
|
349
|
-
case
|
|
763
|
+
goto _out22;
|
|
764
|
+
case 22:
|
|
350
765
|
if ( (*p) == 47 )
|
|
351
|
-
goto
|
|
766
|
+
goto st23;
|
|
352
767
|
goto st1;
|
|
353
|
-
|
|
768
|
+
st23:
|
|
354
769
|
if ( ++p == pe )
|
|
355
|
-
goto
|
|
356
|
-
case
|
|
770
|
+
goto _out23;
|
|
771
|
+
case 23:
|
|
357
772
|
if ( 48 <= (*p) && (*p) <= 57 )
|
|
358
|
-
goto
|
|
773
|
+
goto st24;
|
|
359
774
|
goto st1;
|
|
360
|
-
|
|
775
|
+
st24:
|
|
361
776
|
if ( ++p == pe )
|
|
362
|
-
goto
|
|
363
|
-
case
|
|
777
|
+
goto _out24;
|
|
778
|
+
case 24:
|
|
364
779
|
if ( (*p) == 46 )
|
|
365
|
-
goto
|
|
780
|
+
goto st25;
|
|
366
781
|
if ( 48 <= (*p) && (*p) <= 57 )
|
|
367
|
-
goto
|
|
782
|
+
goto st24;
|
|
368
783
|
goto st1;
|
|
369
|
-
|
|
784
|
+
st25:
|
|
370
785
|
if ( ++p == pe )
|
|
371
|
-
goto
|
|
372
|
-
case
|
|
786
|
+
goto _out25;
|
|
787
|
+
case 25:
|
|
373
788
|
if ( 48 <= (*p) && (*p) <= 57 )
|
|
374
|
-
goto
|
|
789
|
+
goto st26;
|
|
375
790
|
goto st1;
|
|
376
|
-
|
|
791
|
+
st26:
|
|
377
792
|
if ( ++p == pe )
|
|
378
|
-
goto
|
|
379
|
-
case
|
|
793
|
+
goto _out26;
|
|
794
|
+
case 26:
|
|
380
795
|
if ( (*p) == 32 )
|
|
381
|
-
goto
|
|
796
|
+
goto tr13;
|
|
382
797
|
if ( 48 <= (*p) && (*p) <= 57 )
|
|
383
|
-
goto
|
|
798
|
+
goto st26;
|
|
384
799
|
goto st1;
|
|
385
|
-
|
|
800
|
+
tr13:
|
|
386
801
|
#line 45 "ext/http11_client/http11_parser.rl"
|
|
387
802
|
{
|
|
388
803
|
parser->http_version(parser->data, PTR_TO(mark), LEN(mark, p));
|
|
389
804
|
}
|
|
390
|
-
goto
|
|
391
|
-
|
|
805
|
+
goto st27;
|
|
806
|
+
st27:
|
|
392
807
|
if ( ++p == pe )
|
|
393
|
-
goto
|
|
394
|
-
case
|
|
395
|
-
#line
|
|
808
|
+
goto _out27;
|
|
809
|
+
case 27:
|
|
810
|
+
#line 811 "ext/http11_client/http11_parser.c"
|
|
396
811
|
if ( 48 <= (*p) && (*p) <= 57 )
|
|
397
812
|
goto tr4;
|
|
398
813
|
goto st1;
|
|
399
814
|
tr4:
|
|
400
815
|
#line 23 "ext/http11_client/http11_parser.rl"
|
|
401
816
|
{MARK(mark, p); }
|
|
402
|
-
goto
|
|
403
|
-
|
|
817
|
+
goto st28;
|
|
818
|
+
st28:
|
|
404
819
|
if ( ++p == pe )
|
|
405
|
-
goto
|
|
406
|
-
case
|
|
407
|
-
#line
|
|
820
|
+
goto _out28;
|
|
821
|
+
case 28:
|
|
822
|
+
#line 823 "ext/http11_client/http11_parser.c"
|
|
408
823
|
if ( (*p) == 32 )
|
|
409
|
-
goto
|
|
824
|
+
goto tr11;
|
|
410
825
|
if ( 48 <= (*p) && (*p) <= 57 )
|
|
411
|
-
goto
|
|
826
|
+
goto st28;
|
|
412
827
|
goto st1;
|
|
413
|
-
|
|
828
|
+
tr11:
|
|
414
829
|
#line 41 "ext/http11_client/http11_parser.rl"
|
|
415
830
|
{
|
|
416
831
|
parser->status_code(parser->data, PTR_TO(mark), LEN(mark, p));
|
|
417
832
|
}
|
|
418
|
-
goto
|
|
419
|
-
|
|
833
|
+
goto st29;
|
|
834
|
+
st29:
|
|
420
835
|
if ( ++p == pe )
|
|
421
|
-
goto
|
|
422
|
-
case
|
|
423
|
-
#line
|
|
424
|
-
goto
|
|
425
|
-
|
|
836
|
+
goto _out29;
|
|
837
|
+
case 29:
|
|
838
|
+
#line 839 "ext/http11_client/http11_parser.c"
|
|
839
|
+
goto tr40;
|
|
840
|
+
tr40:
|
|
426
841
|
#line 23 "ext/http11_client/http11_parser.rl"
|
|
427
842
|
{MARK(mark, p); }
|
|
428
|
-
goto
|
|
429
|
-
|
|
843
|
+
goto st30;
|
|
844
|
+
st30:
|
|
430
845
|
if ( ++p == pe )
|
|
431
|
-
goto
|
|
432
|
-
case
|
|
433
|
-
#line
|
|
846
|
+
goto _out30;
|
|
847
|
+
case 30:
|
|
848
|
+
#line 849 "ext/http11_client/http11_parser.c"
|
|
434
849
|
if ( (*p) == 13 )
|
|
435
|
-
goto
|
|
436
|
-
goto
|
|
437
|
-
|
|
850
|
+
goto tr39;
|
|
851
|
+
goto st30;
|
|
852
|
+
tr37:
|
|
438
853
|
#line 33 "ext/http11_client/http11_parser.rl"
|
|
439
854
|
{
|
|
440
855
|
parser->http_field(parser->data, PTR_TO(field_start), parser->field_len, PTR_TO(mark), LEN(mark, p));
|
|
441
856
|
}
|
|
442
|
-
goto
|
|
443
|
-
|
|
857
|
+
goto st31;
|
|
858
|
+
tr39:
|
|
444
859
|
#line 37 "ext/http11_client/http11_parser.rl"
|
|
445
860
|
{
|
|
446
861
|
parser->reason_phrase(parser->data, PTR_TO(mark), LEN(mark, p));
|
|
447
862
|
}
|
|
448
|
-
goto
|
|
449
|
-
|
|
863
|
+
goto st31;
|
|
864
|
+
st31:
|
|
450
865
|
if ( ++p == pe )
|
|
451
|
-
goto
|
|
452
|
-
case
|
|
453
|
-
#line
|
|
866
|
+
goto _out31;
|
|
867
|
+
case 31:
|
|
868
|
+
#line 869 "ext/http11_client/http11_parser.c"
|
|
454
869
|
if ( (*p) == 10 )
|
|
455
|
-
goto
|
|
870
|
+
goto st32;
|
|
456
871
|
goto st1;
|
|
457
|
-
|
|
872
|
+
st32:
|
|
458
873
|
if ( ++p == pe )
|
|
459
|
-
goto
|
|
460
|
-
case
|
|
874
|
+
goto _out32;
|
|
875
|
+
case 32:
|
|
461
876
|
switch( (*p) ) {
|
|
462
|
-
case 13: goto
|
|
463
|
-
case 33: goto
|
|
464
|
-
case 124: goto
|
|
465
|
-
case 126: goto
|
|
877
|
+
case 13: goto st6;
|
|
878
|
+
case 33: goto tr21;
|
|
879
|
+
case 124: goto tr21;
|
|
880
|
+
case 126: goto tr21;
|
|
466
881
|
}
|
|
467
882
|
if ( (*p) < 45 ) {
|
|
468
883
|
if ( (*p) > 39 ) {
|
|
469
884
|
if ( 42 <= (*p) && (*p) <= 43 )
|
|
470
|
-
goto
|
|
885
|
+
goto tr21;
|
|
471
886
|
} else if ( (*p) >= 35 )
|
|
472
|
-
goto
|
|
887
|
+
goto tr21;
|
|
473
888
|
} else if ( (*p) > 46 ) {
|
|
474
889
|
if ( (*p) < 65 ) {
|
|
475
890
|
if ( 48 <= (*p) && (*p) <= 57 )
|
|
476
|
-
goto
|
|
891
|
+
goto tr21;
|
|
477
892
|
} else if ( (*p) > 90 ) {
|
|
478
893
|
if ( 94 <= (*p) && (*p) <= 122 )
|
|
479
|
-
goto
|
|
894
|
+
goto tr21;
|
|
480
895
|
} else
|
|
481
|
-
goto
|
|
896
|
+
goto tr21;
|
|
482
897
|
} else
|
|
483
|
-
goto
|
|
898
|
+
goto tr21;
|
|
484
899
|
goto st1;
|
|
485
|
-
|
|
900
|
+
tr21:
|
|
486
901
|
#line 25 "ext/http11_client/http11_parser.rl"
|
|
487
902
|
{ MARK(field_start, p); }
|
|
488
|
-
goto
|
|
489
|
-
|
|
903
|
+
goto st33;
|
|
904
|
+
st33:
|
|
490
905
|
if ( ++p == pe )
|
|
491
|
-
goto
|
|
492
|
-
case
|
|
493
|
-
#line
|
|
906
|
+
goto _out33;
|
|
907
|
+
case 33:
|
|
908
|
+
#line 909 "ext/http11_client/http11_parser.c"
|
|
494
909
|
switch( (*p) ) {
|
|
495
|
-
case 33: goto
|
|
910
|
+
case 33: goto st33;
|
|
496
911
|
case 58: goto tr8;
|
|
497
|
-
case 124: goto
|
|
498
|
-
case 126: goto
|
|
912
|
+
case 124: goto st33;
|
|
913
|
+
case 126: goto st33;
|
|
499
914
|
}
|
|
500
915
|
if ( (*p) < 45 ) {
|
|
501
916
|
if ( (*p) > 39 ) {
|
|
502
917
|
if ( 42 <= (*p) && (*p) <= 43 )
|
|
503
|
-
goto
|
|
918
|
+
goto st33;
|
|
504
919
|
} else if ( (*p) >= 35 )
|
|
505
|
-
goto
|
|
920
|
+
goto st33;
|
|
506
921
|
} else if ( (*p) > 46 ) {
|
|
507
922
|
if ( (*p) < 65 ) {
|
|
508
923
|
if ( 48 <= (*p) && (*p) <= 57 )
|
|
509
|
-
goto
|
|
924
|
+
goto st33;
|
|
510
925
|
} else if ( (*p) > 90 ) {
|
|
511
926
|
if ( 94 <= (*p) && (*p) <= 122 )
|
|
512
|
-
goto
|
|
927
|
+
goto st33;
|
|
513
928
|
} else
|
|
514
|
-
goto
|
|
929
|
+
goto st33;
|
|
515
930
|
} else
|
|
516
|
-
goto
|
|
931
|
+
goto st33;
|
|
517
932
|
goto st1;
|
|
518
933
|
tr8:
|
|
519
934
|
#line 27 "ext/http11_client/http11_parser.rl"
|
|
520
935
|
{
|
|
521
936
|
parser->field_len = LEN(field_start, p);
|
|
522
937
|
}
|
|
523
|
-
goto
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
if ( (*p) == 32 )
|
|
530
|
-
goto st24;
|
|
531
|
-
goto st1;
|
|
532
|
-
st24:
|
|
938
|
+
goto st34;
|
|
939
|
+
tr42:
|
|
940
|
+
#line 31 "ext/http11_client/http11_parser.rl"
|
|
941
|
+
{ MARK(mark, p); }
|
|
942
|
+
goto st34;
|
|
943
|
+
st34:
|
|
533
944
|
if ( ++p == pe )
|
|
534
|
-
goto
|
|
535
|
-
case
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
945
|
+
goto _out34;
|
|
946
|
+
case 34:
|
|
947
|
+
#line 948 "ext/http11_client/http11_parser.c"
|
|
948
|
+
switch( (*p) ) {
|
|
949
|
+
case 13: goto tr37;
|
|
950
|
+
case 32: goto tr42;
|
|
951
|
+
}
|
|
952
|
+
goto tr41;
|
|
953
|
+
tr41:
|
|
540
954
|
#line 31 "ext/http11_client/http11_parser.rl"
|
|
541
955
|
{ MARK(mark, p); }
|
|
542
|
-
goto
|
|
543
|
-
|
|
956
|
+
goto st35;
|
|
957
|
+
st35:
|
|
544
958
|
if ( ++p == pe )
|
|
545
|
-
goto
|
|
546
|
-
case
|
|
547
|
-
#line
|
|
959
|
+
goto _out35;
|
|
960
|
+
case 35:
|
|
961
|
+
#line 962 "ext/http11_client/http11_parser.c"
|
|
548
962
|
if ( (*p) == 13 )
|
|
549
|
-
goto
|
|
550
|
-
goto
|
|
963
|
+
goto tr37;
|
|
964
|
+
goto st35;
|
|
551
965
|
}
|
|
552
966
|
_out1: cs = 1; goto _out;
|
|
553
967
|
_out2: cs = 2; goto _out;
|
|
554
|
-
|
|
968
|
+
_out36: cs = 36; goto _out;
|
|
555
969
|
_out3: cs = 3; goto _out;
|
|
556
970
|
_out4: cs = 4; goto _out;
|
|
557
971
|
_out5: cs = 5; goto _out;
|
|
@@ -575,10 +989,20 @@ case 25:
|
|
|
575
989
|
_out23: cs = 23; goto _out;
|
|
576
990
|
_out24: cs = 24; goto _out;
|
|
577
991
|
_out25: cs = 25; goto _out;
|
|
992
|
+
_out26: cs = 26; goto _out;
|
|
993
|
+
_out27: cs = 27; goto _out;
|
|
994
|
+
_out28: cs = 28; goto _out;
|
|
995
|
+
_out29: cs = 29; goto _out;
|
|
996
|
+
_out30: cs = 30; goto _out;
|
|
997
|
+
_out31: cs = 31; goto _out;
|
|
998
|
+
_out32: cs = 32; goto _out;
|
|
999
|
+
_out33: cs = 33; goto _out;
|
|
1000
|
+
_out34: cs = 34; goto _out;
|
|
1001
|
+
_out35: cs = 35; goto _out;
|
|
578
1002
|
|
|
579
1003
|
_out: {}
|
|
580
1004
|
}
|
|
581
|
-
#line
|
|
1005
|
+
#line 130 "ext/http11_client/http11_parser.rl"
|
|
582
1006
|
|
|
583
1007
|
parser->cs = cs;
|
|
584
1008
|
parser->nread += p - (buffer + off);
|
|
@@ -593,8 +1017,8 @@ case 25:
|
|
|
593
1017
|
if(parser->body_start) {
|
|
594
1018
|
/* final \r\n combo encountered so stop right here */
|
|
595
1019
|
|
|
596
|
-
#line
|
|
597
|
-
#line
|
|
1020
|
+
#line 1021 "ext/http11_client/http11_parser.c"
|
|
1021
|
+
#line 144 "ext/http11_client/http11_parser.rl"
|
|
598
1022
|
parser->nread++;
|
|
599
1023
|
}
|
|
600
1024
|
|
|
@@ -606,8 +1030,8 @@ int httpclient_parser_finish(httpclient_parser *parser)
|
|
|
606
1030
|
int cs = parser->cs;
|
|
607
1031
|
|
|
608
1032
|
|
|
609
|
-
#line
|
|
610
|
-
#line
|
|
1033
|
+
#line 1034 "ext/http11_client/http11_parser.c"
|
|
1034
|
+
#line 155 "ext/http11_client/http11_parser.rl"
|
|
611
1035
|
|
|
612
1036
|
parser->cs = cs;
|
|
613
1037
|
|