puma 3.4.0 → 3.5.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puma might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 59d465d75e9f9cbc7ebb6ae7f26dfc531e995b2e
4
- data.tar.gz: 93ba7123b7902f390ada3d933b645b969db2afb0
3
+ metadata.gz: 5a38c17a49057a30dae30cbbe7ce9acf20ad5747
4
+ data.tar.gz: 31be4635e55c97aa23636f5751f97f58dac8bf9e
5
5
  SHA512:
6
- metadata.gz: ade21758b2cf93fefcfd443b0b19dcbd752ab4d3eff57ccfd86c3e08edb4330157a4f6259736007f73bc1770dc2a4ddc3c1ac696109f1ec944a30bdb6852d05c
7
- data.tar.gz: 3143e6dc4f02b4e2a0afbfe32434040211d0eb07623adceeb37c3d4774ded1a50863e31030606e3dd7d351fece77d948ee2f0ccdbab132cd426f133f94777d1f
6
+ metadata.gz: 8c45bc0cbfdd7daea5587288d90509b7a4e59e374026343ecada503a02ab565c9327b34b7604d3a2bea14d1182bf7e6de8430c235ce6a168ec6fd70869dee790
7
+ data.tar.gz: 8b150919135c3f47ec009ef6571537d54d2009aa6df00032e7d2b47a5b8d400655189ea193cdaa085c81c76891460b4afcd7e0af1cf432c96f4a1c7068711a7d
@@ -27,7 +27,7 @@ Here are some rules of thumb:
27
27
  * Use cluster mode and set the number of workers to 1.5x the number of cpu cores
28
28
  in the machine, minimum 2.
29
29
  * Set the number of threads to desired concurrent requests / number of workers.
30
- Puma defaults to 8 and that's a decent number.
30
+ Puma defaults to 16 and that's a decent number.
31
31
 
32
32
  #### Migrating from Unicorn
33
33
 
@@ -1,3 +1,42 @@
1
+ === 3.5.0 / 2016-07-18
2
+
3
+ * 1 minor features:
4
+ * Allow persistent_timeout to be configured via the dsl.
5
+
6
+ * 9 bug fixes:
7
+ * Allow a bare % in a query string. Fixes #958
8
+ * Explicitly listen on all localhost addresses. Fixes #782
9
+ * Fix `TCPLogger` log error in tcp cluster mode.
10
+ * Fix puma/puma#968 Cannot bind SSL port due to missing verify_mode option
11
+ * Fix puma/puma#968 Default verify_mode to peer
12
+ * Log any exceptions in ThreadPool. Fixes #1010
13
+ * Silence connection errors in the reactor. Fixes #959
14
+ * Tiny fixes in hook documentation for #840
15
+ * It should not log requests if we want it to be quiet
16
+
17
+ * 5 doc fixes:
18
+ * Add How to stop Puma on Heroku using plugins to the example directory
19
+ * Provide both hot and phased restart in jungle script
20
+ * Update reference to the instances management script
21
+ * Update default number of threads
22
+ * Fix typo in example config
23
+
24
+ * 14 PRs merged:
25
+ * Merge pull request #1007 from willnet/patch-1
26
+ * Merge pull request #1014 from jeznet/patch-1
27
+ * Merge pull request #1015 from bf4/patch-1
28
+ * Merge pull request #1017 from jorihardman/configurable_persistent_timeout
29
+ * Merge pull request #954 from jf/master
30
+ * Merge pull request #955 from jf/add-request-info-to-standard-error-rescue
31
+ * Merge pull request #956 from maxkwallace/master
32
+ * Merge pull request #960 from kmayer/kmayer-plugins-heroku-restart
33
+ * Merge pull request #969 from frankwong15/master
34
+ * Merge pull request #970 from willnet/delete-blank-document
35
+ * Merge pull request #974 from rocketjob/feature/name_threads
36
+ * Merge pull request #977 from snow/master
37
+ * Merge pull request #981 from zach-chai/patch-1
38
+ * Merge pull request #993 from scorix/master
39
+
1
40
  === 3.4.0 / 2016-04-07
2
41
 
3
42
  * 2 minor features:
@@ -8,7 +8,6 @@ Rakefile
8
8
  bin/puma
9
9
  bin/puma-wild
10
10
  bin/pumactl
11
- docs/config.md
12
11
  docs/nginx.md
13
12
  docs/signals.md
14
13
  docs/systemd.md
@@ -1,5 +1,5 @@
1
1
 
2
- #line 1 "ext/http11/http11_parser.rl"
2
+ #line 1 "ext/puma_http11/http11_parser.rl"
3
3
  /**
4
4
  * Copyright (c) 2005 Zed A. Shaw
5
5
  * You can redistribute it and/or modify it under the same terms as Ruby.
@@ -30,30 +30,30 @@ static void snake_upcase_char(char *c)
30
30
  /** Machine **/
31
31
 
32
32
 
33
- #line 78 "ext/http11/http11_parser.rl"
33
+ #line 78 "ext/puma_http11/http11_parser.rl"
34
34
 
35
35
 
36
36
  /** Data **/
37
37
 
38
- #line 39 "ext/http11/http11_parser.c"
38
+ #line 39 "ext/puma_http11/http11_parser.c"
39
39
  static const int puma_parser_start = 1;
40
- static const int puma_parser_first_final = 57;
40
+ static const int puma_parser_first_final = 47;
41
41
  static const int puma_parser_error = 0;
42
42
 
43
43
  static const int puma_parser_en_main = 1;
44
44
 
45
45
 
46
- #line 82 "ext/http11/http11_parser.rl"
46
+ #line 82 "ext/puma_http11/http11_parser.rl"
47
47
 
48
48
  int puma_parser_init(puma_parser *parser) {
49
49
  int cs = 0;
50
50
 
51
- #line 52 "ext/http11/http11_parser.c"
51
+ #line 52 "ext/puma_http11/http11_parser.c"
52
52
  {
53
53
  cs = puma_parser_start;
54
54
  }
55
55
 
56
- #line 86 "ext/http11/http11_parser.rl"
56
+ #line 86 "ext/puma_http11/http11_parser.rl"
57
57
  parser->cs = cs;
58
58
  parser->body_start = 0;
59
59
  parser->content_len = 0;
@@ -82,7 +82,7 @@ size_t puma_parser_execute(puma_parser *parser, const char *buffer, size_t len,
82
82
  assert(pe - p == len - off && "pointers aren't same distance");
83
83
 
84
84
 
85
- #line 86 "ext/http11/http11_parser.c"
85
+ #line 86 "ext/puma_http11/http11_parser.c"
86
86
  {
87
87
  if ( p == pe )
88
88
  goto _test_eof;
@@ -106,30 +106,30 @@ st0:
106
106
  cs = 0;
107
107
  goto _out;
108
108
  tr0:
109
- #line 34 "ext/http11/http11_parser.rl"
109
+ #line 34 "ext/puma_http11/http11_parser.rl"
110
110
  { MARK(mark, p); }
111
111
  goto st2;
112
112
  st2:
113
113
  if ( ++p == pe )
114
114
  goto _test_eof2;
115
115
  case 2:
116
- #line 117 "ext/http11/http11_parser.c"
116
+ #line 117 "ext/puma_http11/http11_parser.c"
117
117
  switch( (*p) ) {
118
118
  case 32: goto tr2;
119
- case 36: goto st38;
120
- case 95: goto st38;
119
+ case 36: goto st28;
120
+ case 95: goto st28;
121
121
  }
122
122
  if ( (*p) < 48 ) {
123
123
  if ( 45 <= (*p) && (*p) <= 46 )
124
- goto st38;
124
+ goto st28;
125
125
  } else if ( (*p) > 57 ) {
126
126
  if ( 65 <= (*p) && (*p) <= 90 )
127
- goto st38;
127
+ goto st28;
128
128
  } else
129
- goto st38;
129
+ goto st28;
130
130
  goto st0;
131
131
  tr2:
132
- #line 47 "ext/http11/http11_parser.rl"
132
+ #line 47 "ext/puma_http11/http11_parser.rl"
133
133
  {
134
134
  parser->request_method(parser, PTR_TO(mark), LEN(mark, p));
135
135
  }
@@ -138,7 +138,7 @@ st3:
138
138
  if ( ++p == pe )
139
139
  goto _test_eof3;
140
140
  case 3:
141
- #line 142 "ext/http11/http11_parser.c"
141
+ #line 142 "ext/puma_http11/http11_parser.c"
142
142
  switch( (*p) ) {
143
143
  case 42: goto tr4;
144
144
  case 43: goto tr5;
@@ -155,67 +155,67 @@ case 3:
155
155
  goto tr5;
156
156
  goto st0;
157
157
  tr4:
158
- #line 34 "ext/http11/http11_parser.rl"
158
+ #line 34 "ext/puma_http11/http11_parser.rl"
159
159
  { MARK(mark, p); }
160
160
  goto st4;
161
161
  st4:
162
162
  if ( ++p == pe )
163
163
  goto _test_eof4;
164
164
  case 4:
165
- #line 166 "ext/http11/http11_parser.c"
165
+ #line 166 "ext/puma_http11/http11_parser.c"
166
166
  switch( (*p) ) {
167
167
  case 32: goto tr8;
168
168
  case 35: goto tr9;
169
169
  }
170
170
  goto st0;
171
171
  tr8:
172
- #line 50 "ext/http11/http11_parser.rl"
172
+ #line 50 "ext/puma_http11/http11_parser.rl"
173
173
  {
174
174
  parser->request_uri(parser, PTR_TO(mark), LEN(mark, p));
175
175
  }
176
176
  goto st5;
177
177
  tr31:
178
- #line 34 "ext/http11/http11_parser.rl"
178
+ #line 34 "ext/puma_http11/http11_parser.rl"
179
179
  { MARK(mark, p); }
180
- #line 53 "ext/http11/http11_parser.rl"
180
+ #line 53 "ext/puma_http11/http11_parser.rl"
181
181
  {
182
182
  parser->fragment(parser, PTR_TO(mark), LEN(mark, p));
183
183
  }
184
184
  goto st5;
185
- tr34:
186
- #line 53 "ext/http11/http11_parser.rl"
185
+ tr33:
186
+ #line 53 "ext/puma_http11/http11_parser.rl"
187
187
  {
188
188
  parser->fragment(parser, PTR_TO(mark), LEN(mark, p));
189
189
  }
190
190
  goto st5;
191
- tr42:
192
- #line 66 "ext/http11/http11_parser.rl"
191
+ tr37:
192
+ #line 66 "ext/puma_http11/http11_parser.rl"
193
193
  {
194
194
  parser->request_path(parser, PTR_TO(mark), LEN(mark,p));
195
195
  }
196
- #line 50 "ext/http11/http11_parser.rl"
196
+ #line 50 "ext/puma_http11/http11_parser.rl"
197
197
  {
198
198
  parser->request_uri(parser, PTR_TO(mark), LEN(mark, p));
199
199
  }
200
200
  goto st5;
201
- tr53:
202
- #line 57 "ext/http11/http11_parser.rl"
201
+ tr44:
202
+ #line 57 "ext/puma_http11/http11_parser.rl"
203
203
  { MARK(query_start, p); }
204
- #line 58 "ext/http11/http11_parser.rl"
204
+ #line 58 "ext/puma_http11/http11_parser.rl"
205
205
  {
206
206
  parser->query_string(parser, PTR_TO(query_start), LEN(query_start, p));
207
207
  }
208
- #line 50 "ext/http11/http11_parser.rl"
208
+ #line 50 "ext/puma_http11/http11_parser.rl"
209
209
  {
210
210
  parser->request_uri(parser, PTR_TO(mark), LEN(mark, p));
211
211
  }
212
212
  goto st5;
213
- tr57:
214
- #line 58 "ext/http11/http11_parser.rl"
213
+ tr47:
214
+ #line 58 "ext/puma_http11/http11_parser.rl"
215
215
  {
216
216
  parser->query_string(parser, PTR_TO(query_start), LEN(query_start, p));
217
217
  }
218
- #line 50 "ext/http11/http11_parser.rl"
218
+ #line 50 "ext/puma_http11/http11_parser.rl"
219
219
  {
220
220
  parser->request_uri(parser, PTR_TO(mark), LEN(mark, p));
221
221
  }
@@ -224,19 +224,19 @@ st5:
224
224
  if ( ++p == pe )
225
225
  goto _test_eof5;
226
226
  case 5:
227
- #line 228 "ext/http11/http11_parser.c"
227
+ #line 228 "ext/puma_http11/http11_parser.c"
228
228
  if ( (*p) == 72 )
229
229
  goto tr10;
230
230
  goto st0;
231
231
  tr10:
232
- #line 34 "ext/http11/http11_parser.rl"
232
+ #line 34 "ext/puma_http11/http11_parser.rl"
233
233
  { MARK(mark, p); }
234
234
  goto st6;
235
235
  st6:
236
236
  if ( ++p == pe )
237
237
  goto _test_eof6;
238
238
  case 6:
239
- #line 240 "ext/http11/http11_parser.c"
239
+ #line 240 "ext/puma_http11/http11_parser.c"
240
240
  if ( (*p) == 84 )
241
241
  goto st7;
242
242
  goto st0;
@@ -294,21 +294,21 @@ case 13:
294
294
  goto st13;
295
295
  goto st0;
296
296
  tr18:
297
- #line 62 "ext/http11/http11_parser.rl"
297
+ #line 62 "ext/puma_http11/http11_parser.rl"
298
298
  {
299
299
  parser->http_version(parser, PTR_TO(mark), LEN(mark, p));
300
300
  }
301
301
  goto st14;
302
302
  tr26:
303
- #line 43 "ext/http11/http11_parser.rl"
303
+ #line 43 "ext/puma_http11/http11_parser.rl"
304
304
  { MARK(mark, p); }
305
- #line 44 "ext/http11/http11_parser.rl"
305
+ #line 44 "ext/puma_http11/http11_parser.rl"
306
306
  {
307
307
  parser->http_field(parser, PTR_TO(field_start), parser->field_len, PTR_TO(mark), LEN(mark, p));
308
308
  }
309
309
  goto st14;
310
310
  tr29:
311
- #line 44 "ext/http11/http11_parser.rl"
311
+ #line 44 "ext/puma_http11/http11_parser.rl"
312
312
  {
313
313
  parser->http_field(parser, PTR_TO(field_start), parser->field_len, PTR_TO(mark), LEN(mark, p));
314
314
  }
@@ -317,7 +317,7 @@ st14:
317
317
  if ( ++p == pe )
318
318
  goto _test_eof14;
319
319
  case 14:
320
- #line 321 "ext/http11/http11_parser.c"
320
+ #line 321 "ext/puma_http11/http11_parser.c"
321
321
  if ( (*p) == 10 )
322
322
  goto st15;
323
323
  goto st0;
@@ -357,34 +357,34 @@ case 16:
357
357
  goto tr22;
358
358
  goto st0;
359
359
  tr22:
360
- #line 70 "ext/http11/http11_parser.rl"
360
+ #line 70 "ext/puma_http11/http11_parser.rl"
361
361
  {
362
362
  parser->body_start = p - buffer + 1;
363
363
  parser->header_done(parser, p + 1, pe - p - 1);
364
- {p++; cs = 57; goto _out;}
364
+ {p++; cs = 47; goto _out;}
365
365
  }
366
- goto st57;
367
- st57:
366
+ goto st47;
367
+ st47:
368
368
  if ( ++p == pe )
369
- goto _test_eof57;
370
- case 57:
371
- #line 372 "ext/http11/http11_parser.c"
369
+ goto _test_eof47;
370
+ case 47:
371
+ #line 372 "ext/puma_http11/http11_parser.c"
372
372
  goto st0;
373
373
  tr21:
374
- #line 37 "ext/http11/http11_parser.rl"
374
+ #line 37 "ext/puma_http11/http11_parser.rl"
375
375
  { MARK(field_start, p); }
376
- #line 38 "ext/http11/http11_parser.rl"
376
+ #line 38 "ext/puma_http11/http11_parser.rl"
377
377
  { snake_upcase_char((char *)p); }
378
378
  goto st17;
379
379
  tr23:
380
- #line 38 "ext/http11/http11_parser.rl"
380
+ #line 38 "ext/puma_http11/http11_parser.rl"
381
381
  { snake_upcase_char((char *)p); }
382
382
  goto st17;
383
383
  st17:
384
384
  if ( ++p == pe )
385
385
  goto _test_eof17;
386
386
  case 17:
387
- #line 388 "ext/http11/http11_parser.c"
387
+ #line 388 "ext/puma_http11/http11_parser.c"
388
388
  switch( (*p) ) {
389
389
  case 33: goto tr23;
390
390
  case 58: goto tr24;
@@ -410,71 +410,71 @@ case 17:
410
410
  goto tr23;
411
411
  goto st0;
412
412
  tr24:
413
- #line 39 "ext/http11/http11_parser.rl"
413
+ #line 39 "ext/puma_http11/http11_parser.rl"
414
414
  {
415
415
  parser->field_len = LEN(field_start, p);
416
416
  }
417
417
  goto st18;
418
418
  tr27:
419
- #line 43 "ext/http11/http11_parser.rl"
419
+ #line 43 "ext/puma_http11/http11_parser.rl"
420
420
  { MARK(mark, p); }
421
421
  goto st18;
422
422
  st18:
423
423
  if ( ++p == pe )
424
424
  goto _test_eof18;
425
425
  case 18:
426
- #line 427 "ext/http11/http11_parser.c"
426
+ #line 427 "ext/puma_http11/http11_parser.c"
427
427
  switch( (*p) ) {
428
428
  case 13: goto tr26;
429
429
  case 32: goto tr27;
430
430
  }
431
431
  goto tr25;
432
432
  tr25:
433
- #line 43 "ext/http11/http11_parser.rl"
433
+ #line 43 "ext/puma_http11/http11_parser.rl"
434
434
  { MARK(mark, p); }
435
435
  goto st19;
436
436
  st19:
437
437
  if ( ++p == pe )
438
438
  goto _test_eof19;
439
439
  case 19:
440
- #line 441 "ext/http11/http11_parser.c"
440
+ #line 441 "ext/puma_http11/http11_parser.c"
441
441
  if ( (*p) == 13 )
442
442
  goto tr29;
443
443
  goto st19;
444
444
  tr9:
445
- #line 50 "ext/http11/http11_parser.rl"
445
+ #line 50 "ext/puma_http11/http11_parser.rl"
446
446
  {
447
447
  parser->request_uri(parser, PTR_TO(mark), LEN(mark, p));
448
448
  }
449
449
  goto st20;
450
- tr43:
451
- #line 66 "ext/http11/http11_parser.rl"
450
+ tr38:
451
+ #line 66 "ext/puma_http11/http11_parser.rl"
452
452
  {
453
453
  parser->request_path(parser, PTR_TO(mark), LEN(mark,p));
454
454
  }
455
- #line 50 "ext/http11/http11_parser.rl"
455
+ #line 50 "ext/puma_http11/http11_parser.rl"
456
456
  {
457
457
  parser->request_uri(parser, PTR_TO(mark), LEN(mark, p));
458
458
  }
459
459
  goto st20;
460
- tr54:
461
- #line 57 "ext/http11/http11_parser.rl"
460
+ tr45:
461
+ #line 57 "ext/puma_http11/http11_parser.rl"
462
462
  { MARK(query_start, p); }
463
- #line 58 "ext/http11/http11_parser.rl"
463
+ #line 58 "ext/puma_http11/http11_parser.rl"
464
464
  {
465
465
  parser->query_string(parser, PTR_TO(query_start), LEN(query_start, p));
466
466
  }
467
- #line 50 "ext/http11/http11_parser.rl"
467
+ #line 50 "ext/puma_http11/http11_parser.rl"
468
468
  {
469
469
  parser->request_uri(parser, PTR_TO(mark), LEN(mark, p));
470
470
  }
471
471
  goto st20;
472
- tr58:
473
- #line 58 "ext/http11/http11_parser.rl"
472
+ tr48:
473
+ #line 58 "ext/puma_http11/http11_parser.rl"
474
474
  {
475
475
  parser->query_string(parser, PTR_TO(query_start), LEN(query_start, p));
476
476
  }
477
- #line 50 "ext/http11/http11_parser.rl"
477
+ #line 50 "ext/puma_http11/http11_parser.rl"
478
478
  {
479
479
  parser->request_uri(parser, PTR_TO(mark), LEN(mark, p));
480
480
  }
@@ -483,10 +483,9 @@ st20:
483
483
  if ( ++p == pe )
484
484
  goto _test_eof20;
485
485
  case 20:
486
- #line 487 "ext/http11/http11_parser.c"
486
+ #line 487 "ext/puma_http11/http11_parser.c"
487
487
  switch( (*p) ) {
488
488
  case 32: goto tr31;
489
- case 37: goto tr32;
490
489
  case 60: goto st0;
491
490
  case 62: goto st0;
492
491
  case 127: goto st0;
@@ -498,17 +497,16 @@ case 20:
498
497
  goto st0;
499
498
  goto tr30;
500
499
  tr30:
501
- #line 34 "ext/http11/http11_parser.rl"
500
+ #line 34 "ext/puma_http11/http11_parser.rl"
502
501
  { MARK(mark, p); }
503
502
  goto st21;
504
503
  st21:
505
504
  if ( ++p == pe )
506
505
  goto _test_eof21;
507
506
  case 21:
508
- #line 509 "ext/http11/http11_parser.c"
507
+ #line 508 "ext/puma_http11/http11_parser.c"
509
508
  switch( (*p) ) {
510
- case 32: goto tr34;
511
- case 37: goto st22;
509
+ case 32: goto tr33;
512
510
  case 60: goto st0;
513
511
  case 62: goto st0;
514
512
  case 127: goto st0;
@@ -519,141 +517,170 @@ case 21:
519
517
  } else if ( (*p) >= 0 )
520
518
  goto st0;
521
519
  goto st21;
522
- tr32:
523
- #line 34 "ext/http11/http11_parser.rl"
520
+ tr5:
521
+ #line 34 "ext/puma_http11/http11_parser.rl"
524
522
  { MARK(mark, p); }
525
523
  goto st22;
526
524
  st22:
527
525
  if ( ++p == pe )
528
526
  goto _test_eof22;
529
527
  case 22:
530
- #line 531 "ext/http11/http11_parser.c"
531
- if ( (*p) < 65 ) {
532
- if ( 48 <= (*p) && (*p) <= 57 )
533
- goto st23;
534
- } else if ( (*p) > 70 ) {
535
- if ( 97 <= (*p) && (*p) <= 102 )
536
- goto st23;
528
+ #line 529 "ext/puma_http11/http11_parser.c"
529
+ switch( (*p) ) {
530
+ case 43: goto st22;
531
+ case 58: goto st23;
532
+ }
533
+ if ( (*p) < 48 ) {
534
+ if ( 45 <= (*p) && (*p) <= 46 )
535
+ goto st22;
536
+ } else if ( (*p) > 57 ) {
537
+ if ( (*p) > 90 ) {
538
+ if ( 97 <= (*p) && (*p) <= 122 )
539
+ goto st22;
540
+ } else if ( (*p) >= 65 )
541
+ goto st22;
537
542
  } else
538
- goto st23;
543
+ goto st22;
539
544
  goto st0;
545
+ tr7:
546
+ #line 34 "ext/puma_http11/http11_parser.rl"
547
+ { MARK(mark, p); }
548
+ goto st23;
540
549
  st23:
541
550
  if ( ++p == pe )
542
551
  goto _test_eof23;
543
552
  case 23:
544
- if ( (*p) < 65 ) {
545
- if ( 48 <= (*p) && (*p) <= 57 )
546
- goto st21;
547
- } else if ( (*p) > 70 ) {
548
- if ( 97 <= (*p) && (*p) <= 102 )
549
- goto st21;
550
- } else
551
- goto st21;
552
- goto st0;
553
- tr5:
554
- #line 34 "ext/http11/http11_parser.rl"
553
+ #line 554 "ext/puma_http11/http11_parser.c"
554
+ switch( (*p) ) {
555
+ case 32: goto tr8;
556
+ case 34: goto st0;
557
+ case 35: goto tr9;
558
+ case 60: goto st0;
559
+ case 62: goto st0;
560
+ case 127: goto st0;
561
+ }
562
+ if ( 0 <= (*p) && (*p) <= 31 )
563
+ goto st0;
564
+ goto st23;
565
+ tr6:
566
+ #line 34 "ext/puma_http11/http11_parser.rl"
555
567
  { MARK(mark, p); }
556
568
  goto st24;
557
569
  st24:
558
570
  if ( ++p == pe )
559
571
  goto _test_eof24;
560
572
  case 24:
561
- #line 562 "ext/http11/http11_parser.c"
573
+ #line 574 "ext/puma_http11/http11_parser.c"
562
574
  switch( (*p) ) {
563
- case 43: goto st24;
564
- case 58: goto st25;
575
+ case 32: goto tr37;
576
+ case 34: goto st0;
577
+ case 35: goto tr38;
578
+ case 59: goto tr39;
579
+ case 60: goto st0;
580
+ case 62: goto st0;
581
+ case 63: goto tr40;
582
+ case 127: goto st0;
565
583
  }
566
- if ( (*p) < 48 ) {
567
- if ( 45 <= (*p) && (*p) <= 46 )
568
- goto st24;
569
- } else if ( (*p) > 57 ) {
570
- if ( (*p) > 90 ) {
571
- if ( 97 <= (*p) && (*p) <= 122 )
572
- goto st24;
573
- } else if ( (*p) >= 65 )
574
- goto st24;
575
- } else
576
- goto st24;
577
- goto st0;
578
- tr7:
579
- #line 34 "ext/http11/http11_parser.rl"
580
- { MARK(mark, p); }
584
+ if ( 0 <= (*p) && (*p) <= 31 )
585
+ goto st0;
586
+ goto st24;
587
+ tr39:
588
+ #line 66 "ext/puma_http11/http11_parser.rl"
589
+ {
590
+ parser->request_path(parser, PTR_TO(mark), LEN(mark,p));
591
+ }
581
592
  goto st25;
582
593
  st25:
583
594
  if ( ++p == pe )
584
595
  goto _test_eof25;
585
596
  case 25:
586
- #line 587 "ext/http11/http11_parser.c"
597
+ #line 598 "ext/puma_http11/http11_parser.c"
587
598
  switch( (*p) ) {
588
599
  case 32: goto tr8;
589
600
  case 34: goto st0;
590
601
  case 35: goto tr9;
591
- case 37: goto st26;
592
602
  case 60: goto st0;
593
603
  case 62: goto st0;
604
+ case 63: goto st26;
594
605
  case 127: goto st0;
595
606
  }
596
607
  if ( 0 <= (*p) && (*p) <= 31 )
597
608
  goto st0;
598
609
  goto st25;
610
+ tr40:
611
+ #line 66 "ext/puma_http11/http11_parser.rl"
612
+ {
613
+ parser->request_path(parser, PTR_TO(mark), LEN(mark,p));
614
+ }
615
+ goto st26;
599
616
  st26:
600
617
  if ( ++p == pe )
601
618
  goto _test_eof26;
602
619
  case 26:
603
- if ( (*p) < 65 ) {
604
- if ( 48 <= (*p) && (*p) <= 57 )
605
- goto st27;
606
- } else if ( (*p) > 70 ) {
607
- if ( 97 <= (*p) && (*p) <= 102 )
608
- goto st27;
609
- } else
610
- goto st27;
611
- goto st0;
620
+ #line 621 "ext/puma_http11/http11_parser.c"
621
+ switch( (*p) ) {
622
+ case 32: goto tr44;
623
+ case 34: goto st0;
624
+ case 35: goto tr45;
625
+ case 60: goto st0;
626
+ case 62: goto st0;
627
+ case 127: goto st0;
628
+ }
629
+ if ( 0 <= (*p) && (*p) <= 31 )
630
+ goto st0;
631
+ goto tr43;
632
+ tr43:
633
+ #line 57 "ext/puma_http11/http11_parser.rl"
634
+ { MARK(query_start, p); }
635
+ goto st27;
612
636
  st27:
613
637
  if ( ++p == pe )
614
638
  goto _test_eof27;
615
639
  case 27:
616
- if ( (*p) < 65 ) {
617
- if ( 48 <= (*p) && (*p) <= 57 )
618
- goto st25;
619
- } else if ( (*p) > 70 ) {
620
- if ( 97 <= (*p) && (*p) <= 102 )
621
- goto st25;
622
- } else
623
- goto st25;
624
- goto st0;
625
- tr6:
626
- #line 34 "ext/http11/http11_parser.rl"
627
- { MARK(mark, p); }
628
- goto st28;
629
- st28:
630
- if ( ++p == pe )
631
- goto _test_eof28;
632
- case 28:
633
- #line 634 "ext/http11/http11_parser.c"
640
+ #line 641 "ext/puma_http11/http11_parser.c"
634
641
  switch( (*p) ) {
635
- case 32: goto tr42;
642
+ case 32: goto tr47;
636
643
  case 34: goto st0;
637
- case 35: goto tr43;
638
- case 37: goto st29;
639
- case 59: goto tr45;
644
+ case 35: goto tr48;
640
645
  case 60: goto st0;
641
646
  case 62: goto st0;
642
- case 63: goto tr46;
643
647
  case 127: goto st0;
644
648
  }
645
649
  if ( 0 <= (*p) && (*p) <= 31 )
646
650
  goto st0;
647
- goto st28;
651
+ goto st27;
652
+ st28:
653
+ if ( ++p == pe )
654
+ goto _test_eof28;
655
+ case 28:
656
+ switch( (*p) ) {
657
+ case 32: goto tr2;
658
+ case 36: goto st29;
659
+ case 95: goto st29;
660
+ }
661
+ if ( (*p) < 48 ) {
662
+ if ( 45 <= (*p) && (*p) <= 46 )
663
+ goto st29;
664
+ } else if ( (*p) > 57 ) {
665
+ if ( 65 <= (*p) && (*p) <= 90 )
666
+ goto st29;
667
+ } else
668
+ goto st29;
669
+ goto st0;
648
670
  st29:
649
671
  if ( ++p == pe )
650
672
  goto _test_eof29;
651
673
  case 29:
652
- if ( (*p) < 65 ) {
653
- if ( 48 <= (*p) && (*p) <= 57 )
674
+ switch( (*p) ) {
675
+ case 32: goto tr2;
676
+ case 36: goto st30;
677
+ case 95: goto st30;
678
+ }
679
+ if ( (*p) < 48 ) {
680
+ if ( 45 <= (*p) && (*p) <= 46 )
654
681
  goto st30;
655
- } else if ( (*p) > 70 ) {
656
- if ( 97 <= (*p) && (*p) <= 102 )
682
+ } else if ( (*p) > 57 ) {
683
+ if ( 65 <= (*p) && (*p) <= 90 )
657
684
  goto st30;
658
685
  } else
659
686
  goto st30;
@@ -662,48 +689,52 @@ st30:
662
689
  if ( ++p == pe )
663
690
  goto _test_eof30;
664
691
  case 30:
665
- if ( (*p) < 65 ) {
666
- if ( 48 <= (*p) && (*p) <= 57 )
667
- goto st28;
668
- } else if ( (*p) > 70 ) {
669
- if ( 97 <= (*p) && (*p) <= 102 )
670
- goto st28;
692
+ switch( (*p) ) {
693
+ case 32: goto tr2;
694
+ case 36: goto st31;
695
+ case 95: goto st31;
696
+ }
697
+ if ( (*p) < 48 ) {
698
+ if ( 45 <= (*p) && (*p) <= 46 )
699
+ goto st31;
700
+ } else if ( (*p) > 57 ) {
701
+ if ( 65 <= (*p) && (*p) <= 90 )
702
+ goto st31;
671
703
  } else
672
- goto st28;
704
+ goto st31;
673
705
  goto st0;
674
- tr45:
675
- #line 66 "ext/http11/http11_parser.rl"
676
- {
677
- parser->request_path(parser, PTR_TO(mark), LEN(mark,p));
678
- }
679
- goto st31;
680
706
  st31:
681
707
  if ( ++p == pe )
682
708
  goto _test_eof31;
683
709
  case 31:
684
- #line 685 "ext/http11/http11_parser.c"
685
710
  switch( (*p) ) {
686
- case 32: goto tr8;
687
- case 34: goto st0;
688
- case 35: goto tr9;
689
- case 37: goto st32;
690
- case 60: goto st0;
691
- case 62: goto st0;
692
- case 63: goto st34;
693
- case 127: goto st0;
711
+ case 32: goto tr2;
712
+ case 36: goto st32;
713
+ case 95: goto st32;
694
714
  }
695
- if ( 0 <= (*p) && (*p) <= 31 )
696
- goto st0;
697
- goto st31;
715
+ if ( (*p) < 48 ) {
716
+ if ( 45 <= (*p) && (*p) <= 46 )
717
+ goto st32;
718
+ } else if ( (*p) > 57 ) {
719
+ if ( 65 <= (*p) && (*p) <= 90 )
720
+ goto st32;
721
+ } else
722
+ goto st32;
723
+ goto st0;
698
724
  st32:
699
725
  if ( ++p == pe )
700
726
  goto _test_eof32;
701
727
  case 32:
702
- if ( (*p) < 65 ) {
703
- if ( 48 <= (*p) && (*p) <= 57 )
728
+ switch( (*p) ) {
729
+ case 32: goto tr2;
730
+ case 36: goto st33;
731
+ case 95: goto st33;
732
+ }
733
+ if ( (*p) < 48 ) {
734
+ if ( 45 <= (*p) && (*p) <= 46 )
704
735
  goto st33;
705
- } else if ( (*p) > 70 ) {
706
- if ( 97 <= (*p) && (*p) <= 102 )
736
+ } else if ( (*p) > 57 ) {
737
+ if ( 65 <= (*p) && (*p) <= 90 )
707
738
  goto st33;
708
739
  } else
709
740
  goto st33;
@@ -712,73 +743,70 @@ st33:
712
743
  if ( ++p == pe )
713
744
  goto _test_eof33;
714
745
  case 33:
715
- if ( (*p) < 65 ) {
716
- if ( 48 <= (*p) && (*p) <= 57 )
717
- goto st31;
718
- } else if ( (*p) > 70 ) {
719
- if ( 97 <= (*p) && (*p) <= 102 )
720
- goto st31;
746
+ switch( (*p) ) {
747
+ case 32: goto tr2;
748
+ case 36: goto st34;
749
+ case 95: goto st34;
750
+ }
751
+ if ( (*p) < 48 ) {
752
+ if ( 45 <= (*p) && (*p) <= 46 )
753
+ goto st34;
754
+ } else if ( (*p) > 57 ) {
755
+ if ( 65 <= (*p) && (*p) <= 90 )
756
+ goto st34;
721
757
  } else
722
- goto st31;
758
+ goto st34;
723
759
  goto st0;
724
- tr46:
725
- #line 66 "ext/http11/http11_parser.rl"
726
- {
727
- parser->request_path(parser, PTR_TO(mark), LEN(mark,p));
728
- }
729
- goto st34;
730
760
  st34:
731
761
  if ( ++p == pe )
732
762
  goto _test_eof34;
733
763
  case 34:
734
- #line 735 "ext/http11/http11_parser.c"
735
764
  switch( (*p) ) {
736
- case 32: goto tr53;
737
- case 34: goto st0;
738
- case 35: goto tr54;
739
- case 37: goto tr55;
740
- case 60: goto st0;
741
- case 62: goto st0;
742
- case 127: goto st0;
765
+ case 32: goto tr2;
766
+ case 36: goto st35;
767
+ case 95: goto st35;
743
768
  }
744
- if ( 0 <= (*p) && (*p) <= 31 )
745
- goto st0;
746
- goto tr52;
747
- tr52:
748
- #line 57 "ext/http11/http11_parser.rl"
749
- { MARK(query_start, p); }
750
- goto st35;
769
+ if ( (*p) < 48 ) {
770
+ if ( 45 <= (*p) && (*p) <= 46 )
771
+ goto st35;
772
+ } else if ( (*p) > 57 ) {
773
+ if ( 65 <= (*p) && (*p) <= 90 )
774
+ goto st35;
775
+ } else
776
+ goto st35;
777
+ goto st0;
751
778
  st35:
752
779
  if ( ++p == pe )
753
780
  goto _test_eof35;
754
781
  case 35:
755
- #line 756 "ext/http11/http11_parser.c"
756
782
  switch( (*p) ) {
757
- case 32: goto tr57;
758
- case 34: goto st0;
759
- case 35: goto tr58;
760
- case 37: goto st36;
761
- case 60: goto st0;
762
- case 62: goto st0;
763
- case 127: goto st0;
783
+ case 32: goto tr2;
784
+ case 36: goto st36;
785
+ case 95: goto st36;
764
786
  }
765
- if ( 0 <= (*p) && (*p) <= 31 )
766
- goto st0;
767
- goto st35;
768
- tr55:
769
- #line 57 "ext/http11/http11_parser.rl"
770
- { MARK(query_start, p); }
771
- goto st36;
787
+ if ( (*p) < 48 ) {
788
+ if ( 45 <= (*p) && (*p) <= 46 )
789
+ goto st36;
790
+ } else if ( (*p) > 57 ) {
791
+ if ( 65 <= (*p) && (*p) <= 90 )
792
+ goto st36;
793
+ } else
794
+ goto st36;
795
+ goto st0;
772
796
  st36:
773
797
  if ( ++p == pe )
774
798
  goto _test_eof36;
775
799
  case 36:
776
- #line 777 "ext/http11/http11_parser.c"
777
- if ( (*p) < 65 ) {
778
- if ( 48 <= (*p) && (*p) <= 57 )
800
+ switch( (*p) ) {
801
+ case 32: goto tr2;
802
+ case 36: goto st37;
803
+ case 95: goto st37;
804
+ }
805
+ if ( (*p) < 48 ) {
806
+ if ( 45 <= (*p) && (*p) <= 46 )
779
807
  goto st37;
780
- } else if ( (*p) > 70 ) {
781
- if ( 97 <= (*p) && (*p) <= 102 )
808
+ } else if ( (*p) > 57 ) {
809
+ if ( 65 <= (*p) && (*p) <= 90 )
782
810
  goto st37;
783
811
  } else
784
812
  goto st37;
@@ -787,14 +815,19 @@ st37:
787
815
  if ( ++p == pe )
788
816
  goto _test_eof37;
789
817
  case 37:
790
- if ( (*p) < 65 ) {
791
- if ( 48 <= (*p) && (*p) <= 57 )
792
- goto st35;
793
- } else if ( (*p) > 70 ) {
794
- if ( 97 <= (*p) && (*p) <= 102 )
795
- goto st35;
818
+ switch( (*p) ) {
819
+ case 32: goto tr2;
820
+ case 36: goto st38;
821
+ case 95: goto st38;
822
+ }
823
+ if ( (*p) < 48 ) {
824
+ if ( 45 <= (*p) && (*p) <= 46 )
825
+ goto st38;
826
+ } else if ( (*p) > 57 ) {
827
+ if ( 65 <= (*p) && (*p) <= 90 )
828
+ goto st38;
796
829
  } else
797
- goto st35;
830
+ goto st38;
798
831
  goto st0;
799
832
  st38:
800
833
  if ( ++p == pe )
@@ -944,186 +977,6 @@ st46:
944
977
  if ( ++p == pe )
945
978
  goto _test_eof46;
946
979
  case 46:
947
- switch( (*p) ) {
948
- case 32: goto tr2;
949
- case 36: goto st47;
950
- case 95: goto st47;
951
- }
952
- if ( (*p) < 48 ) {
953
- if ( 45 <= (*p) && (*p) <= 46 )
954
- goto st47;
955
- } else if ( (*p) > 57 ) {
956
- if ( 65 <= (*p) && (*p) <= 90 )
957
- goto st47;
958
- } else
959
- goto st47;
960
- goto st0;
961
- st47:
962
- if ( ++p == pe )
963
- goto _test_eof47;
964
- case 47:
965
- switch( (*p) ) {
966
- case 32: goto tr2;
967
- case 36: goto st48;
968
- case 95: goto st48;
969
- }
970
- if ( (*p) < 48 ) {
971
- if ( 45 <= (*p) && (*p) <= 46 )
972
- goto st48;
973
- } else if ( (*p) > 57 ) {
974
- if ( 65 <= (*p) && (*p) <= 90 )
975
- goto st48;
976
- } else
977
- goto st48;
978
- goto st0;
979
- st48:
980
- if ( ++p == pe )
981
- goto _test_eof48;
982
- case 48:
983
- switch( (*p) ) {
984
- case 32: goto tr2;
985
- case 36: goto st49;
986
- case 95: goto st49;
987
- }
988
- if ( (*p) < 48 ) {
989
- if ( 45 <= (*p) && (*p) <= 46 )
990
- goto st49;
991
- } else if ( (*p) > 57 ) {
992
- if ( 65 <= (*p) && (*p) <= 90 )
993
- goto st49;
994
- } else
995
- goto st49;
996
- goto st0;
997
- st49:
998
- if ( ++p == pe )
999
- goto _test_eof49;
1000
- case 49:
1001
- switch( (*p) ) {
1002
- case 32: goto tr2;
1003
- case 36: goto st50;
1004
- case 95: goto st50;
1005
- }
1006
- if ( (*p) < 48 ) {
1007
- if ( 45 <= (*p) && (*p) <= 46 )
1008
- goto st50;
1009
- } else if ( (*p) > 57 ) {
1010
- if ( 65 <= (*p) && (*p) <= 90 )
1011
- goto st50;
1012
- } else
1013
- goto st50;
1014
- goto st0;
1015
- st50:
1016
- if ( ++p == pe )
1017
- goto _test_eof50;
1018
- case 50:
1019
- switch( (*p) ) {
1020
- case 32: goto tr2;
1021
- case 36: goto st51;
1022
- case 95: goto st51;
1023
- }
1024
- if ( (*p) < 48 ) {
1025
- if ( 45 <= (*p) && (*p) <= 46 )
1026
- goto st51;
1027
- } else if ( (*p) > 57 ) {
1028
- if ( 65 <= (*p) && (*p) <= 90 )
1029
- goto st51;
1030
- } else
1031
- goto st51;
1032
- goto st0;
1033
- st51:
1034
- if ( ++p == pe )
1035
- goto _test_eof51;
1036
- case 51:
1037
- switch( (*p) ) {
1038
- case 32: goto tr2;
1039
- case 36: goto st52;
1040
- case 95: goto st52;
1041
- }
1042
- if ( (*p) < 48 ) {
1043
- if ( 45 <= (*p) && (*p) <= 46 )
1044
- goto st52;
1045
- } else if ( (*p) > 57 ) {
1046
- if ( 65 <= (*p) && (*p) <= 90 )
1047
- goto st52;
1048
- } else
1049
- goto st52;
1050
- goto st0;
1051
- st52:
1052
- if ( ++p == pe )
1053
- goto _test_eof52;
1054
- case 52:
1055
- switch( (*p) ) {
1056
- case 32: goto tr2;
1057
- case 36: goto st53;
1058
- case 95: goto st53;
1059
- }
1060
- if ( (*p) < 48 ) {
1061
- if ( 45 <= (*p) && (*p) <= 46 )
1062
- goto st53;
1063
- } else if ( (*p) > 57 ) {
1064
- if ( 65 <= (*p) && (*p) <= 90 )
1065
- goto st53;
1066
- } else
1067
- goto st53;
1068
- goto st0;
1069
- st53:
1070
- if ( ++p == pe )
1071
- goto _test_eof53;
1072
- case 53:
1073
- switch( (*p) ) {
1074
- case 32: goto tr2;
1075
- case 36: goto st54;
1076
- case 95: goto st54;
1077
- }
1078
- if ( (*p) < 48 ) {
1079
- if ( 45 <= (*p) && (*p) <= 46 )
1080
- goto st54;
1081
- } else if ( (*p) > 57 ) {
1082
- if ( 65 <= (*p) && (*p) <= 90 )
1083
- goto st54;
1084
- } else
1085
- goto st54;
1086
- goto st0;
1087
- st54:
1088
- if ( ++p == pe )
1089
- goto _test_eof54;
1090
- case 54:
1091
- switch( (*p) ) {
1092
- case 32: goto tr2;
1093
- case 36: goto st55;
1094
- case 95: goto st55;
1095
- }
1096
- if ( (*p) < 48 ) {
1097
- if ( 45 <= (*p) && (*p) <= 46 )
1098
- goto st55;
1099
- } else if ( (*p) > 57 ) {
1100
- if ( 65 <= (*p) && (*p) <= 90 )
1101
- goto st55;
1102
- } else
1103
- goto st55;
1104
- goto st0;
1105
- st55:
1106
- if ( ++p == pe )
1107
- goto _test_eof55;
1108
- case 55:
1109
- switch( (*p) ) {
1110
- case 32: goto tr2;
1111
- case 36: goto st56;
1112
- case 95: goto st56;
1113
- }
1114
- if ( (*p) < 48 ) {
1115
- if ( 45 <= (*p) && (*p) <= 46 )
1116
- goto st56;
1117
- } else if ( (*p) > 57 ) {
1118
- if ( 65 <= (*p) && (*p) <= 90 )
1119
- goto st56;
1120
- } else
1121
- goto st56;
1122
- goto st0;
1123
- st56:
1124
- if ( ++p == pe )
1125
- goto _test_eof56;
1126
- case 56:
1127
980
  if ( (*p) == 32 )
1128
981
  goto tr2;
1129
982
  goto st0;
@@ -1143,7 +996,7 @@ case 56:
1143
996
  _test_eof14: cs = 14; goto _test_eof;
1144
997
  _test_eof15: cs = 15; goto _test_eof;
1145
998
  _test_eof16: cs = 16; goto _test_eof;
1146
- _test_eof57: cs = 57; goto _test_eof;
999
+ _test_eof47: cs = 47; goto _test_eof;
1147
1000
  _test_eof17: cs = 17; goto _test_eof;
1148
1001
  _test_eof18: cs = 18; goto _test_eof;
1149
1002
  _test_eof19: cs = 19; goto _test_eof;
@@ -1174,22 +1027,12 @@ case 56:
1174
1027
  _test_eof44: cs = 44; goto _test_eof;
1175
1028
  _test_eof45: cs = 45; goto _test_eof;
1176
1029
  _test_eof46: cs = 46; goto _test_eof;
1177
- _test_eof47: cs = 47; goto _test_eof;
1178
- _test_eof48: cs = 48; goto _test_eof;
1179
- _test_eof49: cs = 49; goto _test_eof;
1180
- _test_eof50: cs = 50; goto _test_eof;
1181
- _test_eof51: cs = 51; goto _test_eof;
1182
- _test_eof52: cs = 52; goto _test_eof;
1183
- _test_eof53: cs = 53; goto _test_eof;
1184
- _test_eof54: cs = 54; goto _test_eof;
1185
- _test_eof55: cs = 55; goto _test_eof;
1186
- _test_eof56: cs = 56; goto _test_eof;
1187
1030
 
1188
1031
  _test_eof: {}
1189
1032
  _out: {}
1190
1033
  }
1191
1034
 
1192
- #line 114 "ext/http11/http11_parser.rl"
1035
+ #line 114 "ext/puma_http11/http11_parser.rl"
1193
1036
 
1194
1037
  if (!puma_parser_has_error(parser))
1195
1038
  parser->cs = cs;