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.
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