rfuzz 0.7 → 0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. data/Rakefile +1 -1
  2. data/doc/rdoc/classes/RFuzz/Browser.html +15 -15
  3. data/doc/rdoc/classes/RFuzz/Browser.src/{M000068.html → M000083.html} +0 -0
  4. data/doc/rdoc/classes/RFuzz/Browser.src/{M000069.html → M000084.html} +0 -0
  5. data/doc/rdoc/classes/RFuzz/Browser.src/{M000070.html → M000085.html} +0 -0
  6. data/doc/rdoc/classes/RFuzz/HttpClient.html +114 -57
  7. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000019.html +12 -13
  8. data/doc/rdoc/classes/RFuzz/HttpClient.src/{M000011.html → M000020.html} +20 -20
  9. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000021.html +28 -0
  10. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000022.html +30 -0
  11. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000023.html +35 -0
  12. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000024.html +22 -0
  13. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000025.html +44 -0
  14. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000026.html +38 -0
  15. data/doc/rdoc/classes/RFuzz/HttpClient.src/{M000016.html → M000027.html} +12 -12
  16. data/doc/rdoc/classes/RFuzz/HttpClient.src/{M000017.html → M000028.html} +20 -20
  17. data/doc/rdoc/classes/RFuzz/HttpClient.src/{M000018.html → M000029.html} +4 -4
  18. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000030.html +26 -0
  19. data/doc/rdoc/classes/RFuzz/HttpClientError.html +118 -0
  20. data/doc/rdoc/classes/RFuzz/HttpEncoding.html +7 -4
  21. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000001.html +12 -12
  22. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000002.html +4 -4
  23. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000003.html +12 -12
  24. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000004.html +4 -4
  25. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000005.html +18 -18
  26. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000006.html +4 -4
  27. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000007.html +6 -6
  28. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000008.html +6 -6
  29. data/doc/rdoc/classes/RFuzz/HttpEncoding.src/M000009.html +18 -18
  30. data/doc/rdoc/classes/RFuzz/HttpResponse.html +74 -13
  31. data/doc/rdoc/classes/RFuzz/HttpResponse.src/M000031.html +22 -0
  32. data/doc/rdoc/classes/RFuzz/HttpResponse.src/M000032.html +18 -0
  33. data/doc/rdoc/classes/RFuzz/HttpResponse.src/M000033.html +18 -0
  34. data/doc/rdoc/classes/RFuzz/Notifier.html +49 -31
  35. data/doc/rdoc/classes/RFuzz/Notifier.src/{M000044.html → M000058.html} +3 -3
  36. data/doc/rdoc/classes/RFuzz/Notifier.src/{M000045.html → M000059.html} +3 -3
  37. data/doc/rdoc/classes/RFuzz/Notifier.src/{M000047.html → M000060.html} +2 -2
  38. data/doc/rdoc/classes/RFuzz/Notifier.src/{M000048.html → M000061.html} +2 -2
  39. data/doc/rdoc/classes/RFuzz/Notifier.src/{M000049.html → M000062.html} +2 -2
  40. data/doc/rdoc/classes/RFuzz/Notifier.src/{M000046.html → M000063.html} +4 -4
  41. data/doc/rdoc/classes/RFuzz/Notifier.src/M000064.html +17 -0
  42. data/doc/rdoc/classes/RFuzz/PushBackIO.html +296 -0
  43. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000010.html +19 -0
  44. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000011.html +20 -0
  45. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000012.html +19 -0
  46. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000013.html +18 -0
  47. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000014.html +44 -0
  48. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000015.html +18 -0
  49. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000016.html +18 -0
  50. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000017.html +18 -0
  51. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000018.html +22 -0
  52. data/doc/rdoc/classes/RFuzz/RandomGenerator.html +62 -62
  53. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000032.html → M000046.html} +0 -0
  54. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000033.html → M000047.html} +0 -0
  55. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000036.html → M000050.html} +0 -0
  56. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000037.html → M000051.html} +0 -0
  57. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000038.html → M000052.html} +0 -0
  58. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000039.html → M000053.html} +0 -0
  59. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000040.html → M000054.html} +0 -0
  60. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000041.html → M000055.html} +0 -0
  61. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000042.html → M000056.html} +0 -0
  62. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/{M000043.html → M000057.html} +0 -0
  63. data/doc/rdoc/classes/RFuzz/Sampler.html +60 -60
  64. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000056.html → M000071.html} +0 -0
  65. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000057.html → M000072.html} +0 -0
  66. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000058.html → M000073.html} +0 -0
  67. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000059.html → M000074.html} +0 -0
  68. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000060.html → M000075.html} +0 -0
  69. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000061.html → M000076.html} +0 -0
  70. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000062.html → M000077.html} +0 -0
  71. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000063.html → M000078.html} +0 -0
  72. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000064.html → M000079.html} +0 -0
  73. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000065.html → M000080.html} +0 -0
  74. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000066.html → M000081.html} +0 -0
  75. data/doc/rdoc/classes/RFuzz/Sampler.src/{M000067.html → M000082.html} +0 -0
  76. data/doc/rdoc/classes/RFuzz/Session.html +63 -63
  77. data/doc/rdoc/classes/RFuzz/Session.src/{M000020.html → M000034.html} +0 -0
  78. data/doc/rdoc/classes/RFuzz/Session.src/{M000021.html → M000035.html} +0 -0
  79. data/doc/rdoc/classes/RFuzz/Session.src/{M000022.html → M000036.html} +0 -0
  80. data/doc/rdoc/classes/RFuzz/Session.src/{M000023.html → M000037.html} +0 -0
  81. data/doc/rdoc/classes/RFuzz/Session.src/{M000024.html → M000038.html} +0 -0
  82. data/doc/rdoc/classes/RFuzz/Session.src/{M000025.html → M000039.html} +0 -0
  83. data/doc/rdoc/classes/RFuzz/Session.src/{M000026.html → M000040.html} +0 -0
  84. data/doc/rdoc/classes/RFuzz/Session.src/{M000027.html → M000041.html} +0 -0
  85. data/doc/rdoc/classes/RFuzz/Session.src/{M000028.html → M000042.html} +0 -0
  86. data/doc/rdoc/classes/RFuzz/Session.src/{M000029.html → M000043.html} +0 -0
  87. data/doc/rdoc/classes/RFuzz/Session.src/{M000030.html → M000044.html} +0 -0
  88. data/doc/rdoc/classes/RFuzz/Session.src/{M000031.html → M000045.html} +0 -0
  89. data/doc/rdoc/classes/RFuzz/StatsTracker.html +32 -32
  90. data/doc/rdoc/classes/RFuzz/StatsTracker.src/{M000050.html → M000065.html} +0 -0
  91. data/doc/rdoc/classes/RFuzz/StatsTracker.src/{M000051.html → M000066.html} +0 -0
  92. data/doc/rdoc/classes/RFuzz/StatsTracker.src/{M000052.html → M000067.html} +0 -0
  93. data/doc/rdoc/classes/RFuzz/StatsTracker.src/{M000053.html → M000068.html} +0 -0
  94. data/doc/rdoc/classes/RFuzz/StatsTracker.src/{M000054.html → M000069.html} +0 -0
  95. data/doc/rdoc/classes/RFuzz/StatsTracker.src/{M000055.html → M000070.html} +0 -0
  96. data/doc/rdoc/classes/RFuzz.html +7 -1
  97. data/doc/rdoc/created.rid +1 -1
  98. data/doc/rdoc/files/lib/rfuzz/client_rb.html +2 -2
  99. data/doc/rdoc/files/lib/rfuzz/pushbackio_rb.html +108 -0
  100. data/doc/rdoc/fr_class_index.html +2 -0
  101. data/doc/rdoc/fr_file_index.html +1 -0
  102. data/doc/rdoc/fr_method_index.html +76 -61
  103. data/examples/cl_watcher.rb +12 -9
  104. data/examples/hpricot_pudding.rb +1 -1
  105. data/examples/mongrel_test_suite/test/http/protocol_parameters.rb +0 -3
  106. data/examples/mongrel_test_suite/test/rails/catastrophe.rb +26 -0
  107. data/examples/mongrel_test_suite/test/rails/conditional.rb +81 -0
  108. data/examples/mongrel_test_suite/test/rails/put.rb +25 -0
  109. data/examples/mongrel_test_suite/test/rails/redirect.rb +13 -0
  110. data/examples/mongrel_test_suite/test/rails/static_files.rb +47 -2
  111. data/examples/rails_security_test.rb +61 -0
  112. data/ext/http11_client/http11_client.c +15 -1
  113. data/ext/http11_client/http11_parser.c +627 -203
  114. data/ext/http11_client/http11_parser.h +2 -0
  115. data/ext/http11_client/http11_parser.rl +8 -4
  116. data/lib/rfuzz/client.rb +124 -115
  117. data/lib/rfuzz/pushbackio.rb +90 -0
  118. metadata +86 -60
  119. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000010.html +0 -24
  120. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000012.html +0 -50
  121. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000013.html +0 -49
  122. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000014.html +0 -57
  123. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000015.html +0 -37
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  /** machine **/
21
- #line 91 "ext/http11_client/http11_parser.rl"
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 = 26;
29
+ static int httpclient_parser_first_final = 36;
30
30
 
31
31
  static int httpclient_parser_error = 1;
32
32
 
33
- #line 95 "ext/http11_client/http11_parser.rl"
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 99 "ext/http11_client/http11_parser.rl"
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 59: goto st4;
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 ( 48 <= (*p) && (*p) <= 57 )
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
- tr21:
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
- tr24:
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 123 "ext/http11_client/http11_parser.c"
117
+ #line 118 "ext/http11_client/http11_parser.c"
123
118
  if ( (*p) == 10 )
124
- goto tr32;
119
+ goto tr34;
125
120
  goto st1;
126
- tr32:
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 _out26;
140
+ goto _out36;
133
141
  }
134
- goto st26;
135
- st26:
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 _out26;
138
- case 26:
139
- #line 140 "ext/http11_client/http11_parser.c"
158
+ goto _out36;
159
+ case 36:
160
+ #line 161 "ext/http11_client/http11_parser.c"
140
161
  goto st1;
141
- tr17:
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 150 "ext/http11_client/http11_parser.c"
170
+ #line 171 "ext/http11_client/http11_parser.c"
150
171
  switch( (*p) ) {
151
- case 13: goto tr24;
152
- case 59: goto tr26;
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 st3;
177
+ goto st5;
157
178
  } else if ( (*p) > 70 ) {
158
179
  if ( 97 <= (*p) && (*p) <= 102 )
159
- goto st3;
180
+ goto st5;
160
181
  } else
161
- goto st3;
182
+ goto st5;
162
183
  goto st1;
163
- tr23:
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
- tr26:
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
- tr29:
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 192 "ext/http11_client/http11_parser.c"
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 st5;
219
- st5:
325
+ goto st8;
326
+ st8:
220
327
  if ( ++p == pe )
221
- goto _out5;
222
- case 5:
223
- #line 224 "ext/http11_client/http11_parser.c"
328
+ goto _out8;
329
+ case 8:
330
+ #line 331 "ext/http11_client/http11_parser.c"
224
331
  switch( (*p) ) {
225
- case 13: goto tr27;
226
- case 33: goto st5;
227
- case 59: goto tr29;
228
- case 61: goto tr30;
229
- case 124: goto st5;
230
- case 126: goto st5;
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 st5;
342
+ goto st8;
236
343
  } else if ( (*p) >= 35 )
237
- goto st5;
344
+ goto st8;
238
345
  } else if ( (*p) > 46 ) {
239
346
  if ( (*p) < 65 ) {
240
347
  if ( 48 <= (*p) && (*p) <= 57 )
241
- goto st5;
348
+ goto st8;
242
349
  } else if ( (*p) > 90 ) {
243
350
  if ( 94 <= (*p) && (*p) <= 122 )
244
- goto st5;
351
+ goto st8;
245
352
  } else
246
- goto st5;
353
+ goto st8;
247
354
  } else
248
- goto st5;
355
+ goto st8;
249
356
  goto st1;
250
- tr30:
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 st6;
258
- st6:
364
+ goto st9;
365
+ st9:
259
366
  if ( ++p == pe )
260
- goto _out6;
261
- case 6:
262
- #line 263 "ext/http11_client/http11_parser.c"
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 st7;
290
- st7:
396
+ goto st10;
397
+ st10:
291
398
  if ( ++p == pe )
292
- goto _out7;
293
- case 7:
294
- #line 295 "ext/http11_client/http11_parser.c"
399
+ goto _out10;
400
+ case 10:
401
+ #line 402 "ext/http11_client/http11_parser.c"
295
402
  switch( (*p) ) {
296
- case 13: goto tr21;
297
- case 33: goto st7;
298
- case 59: goto tr23;
299
- case 124: goto st7;
300
- case 126: goto st7;
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 st7;
412
+ goto st10;
306
413
  } else if ( (*p) >= 35 )
307
- goto st7;
414
+ goto st10;
308
415
  } else if ( (*p) > 46 ) {
309
416
  if ( (*p) < 65 ) {
310
417
  if ( 48 <= (*p) && (*p) <= 57 )
311
- goto st7;
418
+ goto st10;
312
419
  } else if ( (*p) > 90 ) {
313
420
  if ( 94 <= (*p) && (*p) <= 122 )
314
- goto st7;
421
+ goto st10;
315
422
  } else
316
- goto st7;
423
+ goto st10;
317
424
  } else
318
- goto st7;
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 st8;
324
- st8:
738
+ goto st19;
739
+ st19:
325
740
  if ( ++p == pe )
326
- goto _out8;
327
- case 8:
328
- #line 329 "ext/http11_client/http11_parser.c"
741
+ goto _out19;
742
+ case 19:
743
+ #line 744 "ext/http11_client/http11_parser.c"
329
744
  if ( (*p) == 84 )
330
- goto st9;
745
+ goto st20;
331
746
  goto st1;
332
- st9:
747
+ st20:
333
748
  if ( ++p == pe )
334
- goto _out9;
335
- case 9:
749
+ goto _out20;
750
+ case 20:
336
751
  if ( (*p) == 84 )
337
- goto st10;
752
+ goto st21;
338
753
  goto st1;
339
- st10:
754
+ st21:
340
755
  if ( ++p == pe )
341
- goto _out10;
342
- case 10:
756
+ goto _out21;
757
+ case 21:
343
758
  if ( (*p) == 80 )
344
- goto st11;
759
+ goto st22;
345
760
  goto st1;
346
- st11:
761
+ st22:
347
762
  if ( ++p == pe )
348
- goto _out11;
349
- case 11:
763
+ goto _out22;
764
+ case 22:
350
765
  if ( (*p) == 47 )
351
- goto st12;
766
+ goto st23;
352
767
  goto st1;
353
- st12:
768
+ st23:
354
769
  if ( ++p == pe )
355
- goto _out12;
356
- case 12:
770
+ goto _out23;
771
+ case 23:
357
772
  if ( 48 <= (*p) && (*p) <= 57 )
358
- goto st13;
773
+ goto st24;
359
774
  goto st1;
360
- st13:
775
+ st24:
361
776
  if ( ++p == pe )
362
- goto _out13;
363
- case 13:
777
+ goto _out24;
778
+ case 24:
364
779
  if ( (*p) == 46 )
365
- goto st14;
780
+ goto st25;
366
781
  if ( 48 <= (*p) && (*p) <= 57 )
367
- goto st13;
782
+ goto st24;
368
783
  goto st1;
369
- st14:
784
+ st25:
370
785
  if ( ++p == pe )
371
- goto _out14;
372
- case 14:
786
+ goto _out25;
787
+ case 25:
373
788
  if ( 48 <= (*p) && (*p) <= 57 )
374
- goto st15;
789
+ goto st26;
375
790
  goto st1;
376
- st15:
791
+ st26:
377
792
  if ( ++p == pe )
378
- goto _out15;
379
- case 15:
793
+ goto _out26;
794
+ case 26:
380
795
  if ( (*p) == 32 )
381
- goto tr14;
796
+ goto tr13;
382
797
  if ( 48 <= (*p) && (*p) <= 57 )
383
- goto st15;
798
+ goto st26;
384
799
  goto st1;
385
- tr14:
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 st16;
391
- st16:
805
+ goto st27;
806
+ st27:
392
807
  if ( ++p == pe )
393
- goto _out16;
394
- case 16:
395
- #line 396 "ext/http11_client/http11_parser.c"
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 st17;
403
- st17:
817
+ goto st28;
818
+ st28:
404
819
  if ( ++p == pe )
405
- goto _out17;
406
- case 17:
407
- #line 408 "ext/http11_client/http11_parser.c"
820
+ goto _out28;
821
+ case 28:
822
+ #line 823 "ext/http11_client/http11_parser.c"
408
823
  if ( (*p) == 32 )
409
- goto tr12;
824
+ goto tr11;
410
825
  if ( 48 <= (*p) && (*p) <= 57 )
411
- goto st17;
826
+ goto st28;
412
827
  goto st1;
413
- tr12:
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 st18;
419
- st18:
833
+ goto st29;
834
+ st29:
420
835
  if ( ++p == pe )
421
- goto _out18;
422
- case 18:
423
- #line 424 "ext/http11_client/http11_parser.c"
424
- goto tr37;
425
- tr37:
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 st19;
429
- st19:
843
+ goto st30;
844
+ st30:
430
845
  if ( ++p == pe )
431
- goto _out19;
432
- case 19:
433
- #line 434 "ext/http11_client/http11_parser.c"
846
+ goto _out30;
847
+ case 30:
848
+ #line 849 "ext/http11_client/http11_parser.c"
434
849
  if ( (*p) == 13 )
435
- goto tr36;
436
- goto st19;
437
- tr34:
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 st20;
443
- tr36:
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 st20;
449
- st20:
863
+ goto st31;
864
+ st31:
450
865
  if ( ++p == pe )
451
- goto _out20;
452
- case 20:
453
- #line 454 "ext/http11_client/http11_parser.c"
866
+ goto _out31;
867
+ case 31:
868
+ #line 869 "ext/http11_client/http11_parser.c"
454
869
  if ( (*p) == 10 )
455
- goto st21;
870
+ goto st32;
456
871
  goto st1;
457
- st21:
872
+ st32:
458
873
  if ( ++p == pe )
459
- goto _out21;
460
- case 21:
874
+ goto _out32;
875
+ case 32:
461
876
  switch( (*p) ) {
462
- case 13: goto st2;
463
- case 33: goto tr20;
464
- case 124: goto tr20;
465
- case 126: goto tr20;
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 tr20;
885
+ goto tr21;
471
886
  } else if ( (*p) >= 35 )
472
- goto tr20;
887
+ goto tr21;
473
888
  } else if ( (*p) > 46 ) {
474
889
  if ( (*p) < 65 ) {
475
890
  if ( 48 <= (*p) && (*p) <= 57 )
476
- goto tr20;
891
+ goto tr21;
477
892
  } else if ( (*p) > 90 ) {
478
893
  if ( 94 <= (*p) && (*p) <= 122 )
479
- goto tr20;
894
+ goto tr21;
480
895
  } else
481
- goto tr20;
896
+ goto tr21;
482
897
  } else
483
- goto tr20;
898
+ goto tr21;
484
899
  goto st1;
485
- tr20:
900
+ tr21:
486
901
  #line 25 "ext/http11_client/http11_parser.rl"
487
902
  { MARK(field_start, p); }
488
- goto st22;
489
- st22:
903
+ goto st33;
904
+ st33:
490
905
  if ( ++p == pe )
491
- goto _out22;
492
- case 22:
493
- #line 494 "ext/http11_client/http11_parser.c"
906
+ goto _out33;
907
+ case 33:
908
+ #line 909 "ext/http11_client/http11_parser.c"
494
909
  switch( (*p) ) {
495
- case 33: goto st22;
910
+ case 33: goto st33;
496
911
  case 58: goto tr8;
497
- case 124: goto st22;
498
- case 126: goto st22;
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 st22;
918
+ goto st33;
504
919
  } else if ( (*p) >= 35 )
505
- goto st22;
920
+ goto st33;
506
921
  } else if ( (*p) > 46 ) {
507
922
  if ( (*p) < 65 ) {
508
923
  if ( 48 <= (*p) && (*p) <= 57 )
509
- goto st22;
924
+ goto st33;
510
925
  } else if ( (*p) > 90 ) {
511
926
  if ( 94 <= (*p) && (*p) <= 122 )
512
- goto st22;
927
+ goto st33;
513
928
  } else
514
- goto st22;
929
+ goto st33;
515
930
  } else
516
- goto st22;
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 st23;
524
- st23:
525
- if ( ++p == pe )
526
- goto _out23;
527
- case 23:
528
- #line 529 "ext/http11_client/http11_parser.c"
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 _out24;
535
- case 24:
536
- if ( (*p) == 13 )
537
- goto tr34;
538
- goto tr38;
539
- tr38:
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 st25;
543
- st25:
956
+ goto st35;
957
+ st35:
544
958
  if ( ++p == pe )
545
- goto _out25;
546
- case 25:
547
- #line 548 "ext/http11_client/http11_parser.c"
959
+ goto _out35;
960
+ case 35:
961
+ #line 962 "ext/http11_client/http11_parser.c"
548
962
  if ( (*p) == 13 )
549
- goto tr34;
550
- goto st25;
963
+ goto tr37;
964
+ goto st35;
551
965
  }
552
966
  _out1: cs = 1; goto _out;
553
967
  _out2: cs = 2; goto _out;
554
- _out26: cs = 26; goto _out;
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 126 "ext/http11_client/http11_parser.rl"
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 "ext/http11_client/http11_parser.c"
597
- #line 140 "ext/http11_client/http11_parser.rl"
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 "ext/http11_client/http11_parser.c"
610
- #line 151 "ext/http11_client/http11_parser.rl"
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