@@ -340,6 +340,8 @@ enum llparse_state_e {
340
340
s_n_llhttp__internal__n_invoke_is_equal_content_length ,
341
341
s_n_llhttp__internal__n_chunk_size_almost_done ,
342
342
s_n_llhttp__internal__n_chunk_parameters ,
343
+ s_n_llhttp__internal__n_span_start_llhttp__on_chunk_parameters ,
344
+ s_n_llhttp__internal__n_chunk_parameters_ows ,
343
345
s_n_llhttp__internal__n_chunk_size_otherwise ,
344
346
s_n_llhttp__internal__n_chunk_size ,
345
347
s_n_llhttp__internal__n_chunk_size_digit ,
@@ -539,6 +541,10 @@ int llhttp__on_body(
539
541
llhttp__internal_t * s , const unsigned char * p ,
540
542
const unsigned char * endp );
541
543
544
+ int llhttp__on_chunk_parameters (
545
+ llhttp__internal_t * s , const unsigned char * p ,
546
+ const unsigned char * endp );
547
+
542
548
int llhttp__on_status (
543
549
llhttp__internal_t * s , const unsigned char * p ,
544
550
const unsigned char * endp );
@@ -1226,8 +1232,7 @@ static llparse_state_t llhttp__internal__run(
1226
1232
goto s_n_llhttp__internal__n_chunk_parameters ;
1227
1233
}
1228
1234
case 2 : {
1229
- p ++ ;
1230
- goto s_n_llhttp__internal__n_chunk_size_almost_done ;
1235
+ goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_parameters ;
1231
1236
}
1232
1237
default : {
1233
1238
goto s_n_llhttp__internal__n_error_10 ;
@@ -1236,6 +1241,34 @@ static llparse_state_t llhttp__internal__run(
1236
1241
/* UNREACHABLE */ ;
1237
1242
abort ();
1238
1243
}
1244
+ case s_n_llhttp__internal__n_span_start_llhttp__on_chunk_parameters :
1245
+ s_n_llhttp__internal__n_span_start_llhttp__on_chunk_parameters : {
1246
+ if (p == endp ) {
1247
+ return s_n_llhttp__internal__n_span_start_llhttp__on_chunk_parameters ;
1248
+ }
1249
+ state -> _span_pos0 = (void * ) p ;
1250
+ state -> _span_cb0 = llhttp__on_chunk_parameters ;
1251
+ goto s_n_llhttp__internal__n_chunk_parameters ;
1252
+ /* UNREACHABLE */ ;
1253
+ abort ();
1254
+ }
1255
+ case s_n_llhttp__internal__n_chunk_parameters_ows :
1256
+ s_n_llhttp__internal__n_chunk_parameters_ows : {
1257
+ if (p == endp ) {
1258
+ return s_n_llhttp__internal__n_chunk_parameters_ows ;
1259
+ }
1260
+ switch (* p ) {
1261
+ case ' ' : {
1262
+ p ++ ;
1263
+ goto s_n_llhttp__internal__n_chunk_parameters_ows ;
1264
+ }
1265
+ default : {
1266
+ goto s_n_llhttp__internal__n_span_start_llhttp__on_chunk_parameters ;
1267
+ }
1268
+ }
1269
+ /* UNREACHABLE */ ;
1270
+ abort ();
1271
+ }
1239
1272
case s_n_llhttp__internal__n_chunk_size_otherwise :
1240
1273
s_n_llhttp__internal__n_chunk_size_otherwise : {
1241
1274
if (p == endp ) {
@@ -1246,13 +1279,9 @@ static llparse_state_t llhttp__internal__run(
1246
1279
p ++ ;
1247
1280
goto s_n_llhttp__internal__n_chunk_size_almost_done ;
1248
1281
}
1249
- case ' ' : {
1250
- p ++ ;
1251
- goto s_n_llhttp__internal__n_chunk_parameters ;
1252
- }
1253
1282
case ';' : {
1254
1283
p ++ ;
1255
- goto s_n_llhttp__internal__n_chunk_parameters ;
1284
+ goto s_n_llhttp__internal__n_chunk_parameters_ows ;
1256
1285
}
1257
1286
default : {
1258
1287
goto s_n_llhttp__internal__n_error_11 ;
@@ -6074,6 +6103,24 @@ static llparse_state_t llhttp__internal__run(
6074
6103
/* UNREACHABLE */ ;
6075
6104
abort ();
6076
6105
}
6106
+ s_n_llhttp__internal__n_span_end_llhttp__on_chunk_parameters : {
6107
+ const unsigned char * start ;
6108
+ int err ;
6109
+
6110
+ start = state -> _span_pos0 ;
6111
+ state -> _span_pos0 = NULL ;
6112
+ err = llhttp__on_chunk_parameters (state , start , p );
6113
+ if (err != 0 ) {
6114
+ state -> error = err ;
6115
+ state -> error_pos = (const char * ) (p + 1 );
6116
+ state -> _current = (void * ) (intptr_t ) s_n_llhttp__internal__n_chunk_size_almost_done ;
6117
+ return s_error ;
6118
+ }
6119
+ p ++ ;
6120
+ goto s_n_llhttp__internal__n_chunk_size_almost_done ;
6121
+ /* UNREACHABLE */ ;
6122
+ abort ();
6123
+ }
6077
6124
s_n_llhttp__internal__n_error_10 : {
6078
6125
state -> error = 0x2 ;
6079
6126
state -> reason = "Invalid character in chunk parameters" ;
@@ -8441,6 +8488,8 @@ enum llparse_state_e {
8441
8488
s_n_llhttp__internal__n_invoke_is_equal_content_length ,
8442
8489
s_n_llhttp__internal__n_chunk_size_almost_done ,
8443
8490
s_n_llhttp__internal__n_chunk_parameters ,
8491
+ s_n_llhttp__internal__n_span_start_llhttp__on_chunk_parameters ,
8492
+ s_n_llhttp__internal__n_chunk_parameters_ows ,
8444
8493
s_n_llhttp__internal__n_chunk_size_otherwise ,
8445
8494
s_n_llhttp__internal__n_chunk_size ,
8446
8495
s_n_llhttp__internal__n_chunk_size_digit ,
@@ -8635,6 +8684,10 @@ int llhttp__on_body(
8635
8684
llhttp__internal_t * s , const unsigned char * p ,
8636
8685
const unsigned char * endp );
8637
8686
8687
+ int llhttp__on_chunk_parameters (
8688
+ llhttp__internal_t * s , const unsigned char * p ,
8689
+ const unsigned char * endp );
8690
+
8638
8691
int llhttp__on_status (
8639
8692
llhttp__internal_t * s , const unsigned char * p ,
8640
8693
const unsigned char * endp );
@@ -9299,8 +9352,7 @@ static llparse_state_t llhttp__internal__run(
9299
9352
goto s_n_llhttp__internal__n_chunk_parameters ;
9300
9353
}
9301
9354
case 2 : {
9302
- p ++ ;
9303
- goto s_n_llhttp__internal__n_chunk_size_almost_done ;
9355
+ goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_parameters ;
9304
9356
}
9305
9357
default : {
9306
9358
goto s_n_llhttp__internal__n_error_6 ;
@@ -9309,6 +9361,34 @@ static llparse_state_t llhttp__internal__run(
9309
9361
/* UNREACHABLE */ ;
9310
9362
abort ();
9311
9363
}
9364
+ case s_n_llhttp__internal__n_span_start_llhttp__on_chunk_parameters :
9365
+ s_n_llhttp__internal__n_span_start_llhttp__on_chunk_parameters : {
9366
+ if (p == endp ) {
9367
+ return s_n_llhttp__internal__n_span_start_llhttp__on_chunk_parameters ;
9368
+ }
9369
+ state -> _span_pos0 = (void * ) p ;
9370
+ state -> _span_cb0 = llhttp__on_chunk_parameters ;
9371
+ goto s_n_llhttp__internal__n_chunk_parameters ;
9372
+ /* UNREACHABLE */ ;
9373
+ abort ();
9374
+ }
9375
+ case s_n_llhttp__internal__n_chunk_parameters_ows :
9376
+ s_n_llhttp__internal__n_chunk_parameters_ows : {
9377
+ if (p == endp ) {
9378
+ return s_n_llhttp__internal__n_chunk_parameters_ows ;
9379
+ }
9380
+ switch (* p ) {
9381
+ case ' ' : {
9382
+ p ++ ;
9383
+ goto s_n_llhttp__internal__n_chunk_parameters_ows ;
9384
+ }
9385
+ default : {
9386
+ goto s_n_llhttp__internal__n_span_start_llhttp__on_chunk_parameters ;
9387
+ }
9388
+ }
9389
+ /* UNREACHABLE */ ;
9390
+ abort ();
9391
+ }
9312
9392
case s_n_llhttp__internal__n_chunk_size_otherwise :
9313
9393
s_n_llhttp__internal__n_chunk_size_otherwise : {
9314
9394
if (p == endp ) {
@@ -9319,13 +9399,9 @@ static llparse_state_t llhttp__internal__run(
9319
9399
p ++ ;
9320
9400
goto s_n_llhttp__internal__n_chunk_size_almost_done ;
9321
9401
}
9322
- case ' ' : {
9323
- p ++ ;
9324
- goto s_n_llhttp__internal__n_chunk_parameters ;
9325
- }
9326
9402
case ';' : {
9327
9403
p ++ ;
9328
- goto s_n_llhttp__internal__n_chunk_parameters ;
9404
+ goto s_n_llhttp__internal__n_chunk_parameters_ows ;
9329
9405
}
9330
9406
default : {
9331
9407
goto s_n_llhttp__internal__n_error_7 ;
@@ -13951,6 +14027,24 @@ static llparse_state_t llhttp__internal__run(
13951
14027
/* UNREACHABLE */ ;
13952
14028
abort ();
13953
14029
}
14030
+ s_n_llhttp__internal__n_span_end_llhttp__on_chunk_parameters : {
14031
+ const unsigned char * start ;
14032
+ int err ;
14033
+
14034
+ start = state -> _span_pos0 ;
14035
+ state -> _span_pos0 = NULL ;
14036
+ err = llhttp__on_chunk_parameters (state , start , p );
14037
+ if (err != 0 ) {
14038
+ state -> error = err ;
14039
+ state -> error_pos = (const char * ) (p + 1 );
14040
+ state -> _current = (void * ) (intptr_t ) s_n_llhttp__internal__n_chunk_size_almost_done ;
14041
+ return s_error ;
14042
+ }
14043
+ p ++ ;
14044
+ goto s_n_llhttp__internal__n_chunk_size_almost_done ;
14045
+ /* UNREACHABLE */ ;
14046
+ abort ();
14047
+ }
13954
14048
s_n_llhttp__internal__n_error_6 : {
13955
14049
state -> error = 0x2 ;
13956
14050
state -> reason = "Invalid character in chunk parameters" ;
0 commit comments