llhttp_internal.c 302 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114
  1. #ifdef __GNUC__
  2. #pragma GCC diagnostic push
  3. #pragma GCC diagnostic ignored "-Wconversion"
  4. #pragma GCC diagnostic ignored "-Wsign-conversion"
  5. #pragma GCC diagnostic ignored "-Wunused-variable"
  6. #pragma GCC diagnostic ignored "-Wunreachable-code"
  7. #endif
  8. #include <stdlib.h>
  9. #include <stdint.h>
  10. #include <string.h>
  11. #ifdef __SSE4_2__
  12. #ifdef _MSC_VER
  13. #include <nmmintrin.h>
  14. #else /* !_MSC_VER */
  15. #include <x86intrin.h>
  16. #endif /* _MSC_VER */
  17. #endif /* __SSE4_2__ */
  18. #ifdef _MSC_VER
  19. #define ALIGN(n) _declspec(align(n))
  20. #else /* !_MSC_VER */
  21. #define ALIGN(n) __attribute__((aligned(n)))
  22. #endif /* _MSC_VER */
  23. #include "llhttp.h"
  24. typedef int (*llhttp__internal__span_cb)(
  25. llhttp__internal_t*, const char*, const char*);
  26. static const unsigned char llparse_blob0[] = {
  27. 'o', 'n'
  28. };
  29. static const unsigned char llparse_blob1[] = {
  30. 'e', 'c', 't', 'i', 'o', 'n'
  31. };
  32. static const unsigned char llparse_blob2[] = {
  33. 'l', 'o', 's', 'e'
  34. };
  35. static const unsigned char llparse_blob3[] = {
  36. 'e', 'e', 'p', '-', 'a', 'l', 'i', 'v', 'e'
  37. };
  38. static const unsigned char llparse_blob4[] = {
  39. 'p', 'g', 'r', 'a', 'd', 'e'
  40. };
  41. static const unsigned char llparse_blob5[] = {
  42. 'c', 'h', 'u', 'n', 'k', 'e', 'd'
  43. };
  44. #ifdef __SSE4_2__
  45. static const unsigned char ALIGN(16) llparse_blob6[] = {
  46. 0x9, 0x9, ' ', '~', 0x80, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0,
  47. 0x0, 0x0, 0x0, 0x0, 0x0
  48. };
  49. #endif /* __SSE4_2__ */
  50. #ifdef __SSE4_2__
  51. static const unsigned char ALIGN(16) llparse_blob7[] = {
  52. '!', '!', '#', '\'', '*', '+', '-', '.', '0', '9', 'A',
  53. 'Z', '^', 'z', '|', '|'
  54. };
  55. #endif /* __SSE4_2__ */
  56. #ifdef __SSE4_2__
  57. static const unsigned char ALIGN(16) llparse_blob8[] = {
  58. '~', '~', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  59. 0x0, 0x0, 0x0, 0x0, 0x0
  60. };
  61. #endif /* __SSE4_2__ */
  62. static const unsigned char llparse_blob9[] = {
  63. 'e', 'n', 't', '-', 'l', 'e', 'n', 'g', 't', 'h'
  64. };
  65. static const unsigned char llparse_blob10[] = {
  66. 'r', 'o', 'x', 'y', '-', 'c', 'o', 'n', 'n', 'e', 'c',
  67. 't', 'i', 'o', 'n'
  68. };
  69. static const unsigned char llparse_blob11[] = {
  70. 'r', 'a', 'n', 's', 'f', 'e', 'r', '-', 'e', 'n', 'c',
  71. 'o', 'd', 'i', 'n', 'g'
  72. };
  73. static const unsigned char llparse_blob12[] = {
  74. 'p', 'g', 'r', 'a', 'd', 'e'
  75. };
  76. static const unsigned char llparse_blob13[] = {
  77. 'T', 'T', 'P', '/'
  78. };
  79. static const unsigned char llparse_blob14[] = {
  80. 0xd, 0xa, 0xd, 0xa, 'S', 'M', 0xd, 0xa, 0xd, 0xa
  81. };
  82. static const unsigned char llparse_blob15[] = {
  83. 'C', 'E', '/'
  84. };
  85. static const unsigned char llparse_blob16[] = {
  86. 'T', 'S', 'P', '/'
  87. };
  88. static const unsigned char llparse_blob17[] = {
  89. 'N', 'O', 'U', 'N', 'C', 'E'
  90. };
  91. static const unsigned char llparse_blob18[] = {
  92. 'I', 'N', 'D'
  93. };
  94. static const unsigned char llparse_blob19[] = {
  95. 'E', 'C', 'K', 'O', 'U', 'T'
  96. };
  97. static const unsigned char llparse_blob20[] = {
  98. 'N', 'E', 'C', 'T'
  99. };
  100. static const unsigned char llparse_blob21[] = {
  101. 'E', 'T', 'E'
  102. };
  103. static const unsigned char llparse_blob22[] = {
  104. 'C', 'R', 'I', 'B', 'E'
  105. };
  106. static const unsigned char llparse_blob23[] = {
  107. 'L', 'U', 'S', 'H'
  108. };
  109. static const unsigned char llparse_blob24[] = {
  110. 'E', 'T'
  111. };
  112. static const unsigned char llparse_blob25[] = {
  113. 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R'
  114. };
  115. static const unsigned char llparse_blob26[] = {
  116. 'E', 'A', 'D'
  117. };
  118. static const unsigned char llparse_blob27[] = {
  119. 'N', 'K'
  120. };
  121. static const unsigned char llparse_blob28[] = {
  122. 'C', 'K'
  123. };
  124. static const unsigned char llparse_blob29[] = {
  125. 'S', 'E', 'A', 'R', 'C', 'H'
  126. };
  127. static const unsigned char llparse_blob30[] = {
  128. 'R', 'G', 'E'
  129. };
  130. static const unsigned char llparse_blob31[] = {
  131. 'C', 'T', 'I', 'V', 'I', 'T', 'Y'
  132. };
  133. static const unsigned char llparse_blob32[] = {
  134. 'L', 'E', 'N', 'D', 'A', 'R'
  135. };
  136. static const unsigned char llparse_blob33[] = {
  137. 'V', 'E'
  138. };
  139. static const unsigned char llparse_blob34[] = {
  140. 'O', 'T', 'I', 'F', 'Y'
  141. };
  142. static const unsigned char llparse_blob35[] = {
  143. 'P', 'T', 'I', 'O', 'N', 'S'
  144. };
  145. static const unsigned char llparse_blob36[] = {
  146. 'C', 'H'
  147. };
  148. static const unsigned char llparse_blob37[] = {
  149. 'S', 'E'
  150. };
  151. static const unsigned char llparse_blob38[] = {
  152. 'A', 'Y'
  153. };
  154. static const unsigned char llparse_blob39[] = {
  155. 'S', 'T'
  156. };
  157. static const unsigned char llparse_blob40[] = {
  158. 'I', 'N', 'D'
  159. };
  160. static const unsigned char llparse_blob41[] = {
  161. 'A', 'T', 'C', 'H'
  162. };
  163. static const unsigned char llparse_blob42[] = {
  164. 'G', 'E'
  165. };
  166. static const unsigned char llparse_blob43[] = {
  167. 'I', 'N', 'D'
  168. };
  169. static const unsigned char llparse_blob44[] = {
  170. 'O', 'R', 'D'
  171. };
  172. static const unsigned char llparse_blob45[] = {
  173. 'I', 'R', 'E', 'C', 'T'
  174. };
  175. static const unsigned char llparse_blob46[] = {
  176. 'O', 'R', 'T'
  177. };
  178. static const unsigned char llparse_blob47[] = {
  179. 'R', 'C', 'H'
  180. };
  181. static const unsigned char llparse_blob48[] = {
  182. 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R'
  183. };
  184. static const unsigned char llparse_blob49[] = {
  185. 'U', 'R', 'C', 'E'
  186. };
  187. static const unsigned char llparse_blob50[] = {
  188. 'B', 'S', 'C', 'R', 'I', 'B', 'E'
  189. };
  190. static const unsigned char llparse_blob51[] = {
  191. 'A', 'R', 'D', 'O', 'W', 'N'
  192. };
  193. static const unsigned char llparse_blob52[] = {
  194. 'A', 'C', 'E'
  195. };
  196. static const unsigned char llparse_blob53[] = {
  197. 'I', 'N', 'D'
  198. };
  199. static const unsigned char llparse_blob54[] = {
  200. 'N', 'K'
  201. };
  202. static const unsigned char llparse_blob55[] = {
  203. 'C', 'K'
  204. };
  205. static const unsigned char llparse_blob56[] = {
  206. 'U', 'B', 'S', 'C', 'R', 'I', 'B', 'E'
  207. };
  208. static const unsigned char llparse_blob57[] = {
  209. 'H', 'T', 'T', 'P', '/'
  210. };
  211. static const unsigned char llparse_blob58[] = {
  212. 'A', 'D'
  213. };
  214. static const unsigned char llparse_blob59[] = {
  215. 'T', 'P', '/'
  216. };
  217. enum llparse_match_status_e {
  218. kMatchComplete,
  219. kMatchPause,
  220. kMatchMismatch
  221. };
  222. typedef enum llparse_match_status_e llparse_match_status_t;
  223. struct llparse_match_s {
  224. llparse_match_status_t status;
  225. const unsigned char* current;
  226. };
  227. typedef struct llparse_match_s llparse_match_t;
  228. static llparse_match_t llparse__match_sequence_to_lower(
  229. llhttp__internal_t* s, const unsigned char* p,
  230. const unsigned char* endp,
  231. const unsigned char* seq, uint32_t seq_len) {
  232. uint32_t index;
  233. llparse_match_t res;
  234. index = s->_index;
  235. for (; p != endp; p++) {
  236. unsigned char current;
  237. current = ((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p));
  238. if (current == seq[index]) {
  239. if (++index == seq_len) {
  240. res.status = kMatchComplete;
  241. goto reset;
  242. }
  243. } else {
  244. res.status = kMatchMismatch;
  245. goto reset;
  246. }
  247. }
  248. s->_index = index;
  249. res.status = kMatchPause;
  250. res.current = p;
  251. return res;
  252. reset:
  253. s->_index = 0;
  254. res.current = p;
  255. return res;
  256. }
  257. static llparse_match_t llparse__match_sequence_to_lower_unsafe(
  258. llhttp__internal_t* s, const unsigned char* p,
  259. const unsigned char* endp,
  260. const unsigned char* seq, uint32_t seq_len) {
  261. uint32_t index;
  262. llparse_match_t res;
  263. index = s->_index;
  264. for (; p != endp; p++) {
  265. unsigned char current;
  266. current = ((*p) | 0x20);
  267. if (current == seq[index]) {
  268. if (++index == seq_len) {
  269. res.status = kMatchComplete;
  270. goto reset;
  271. }
  272. } else {
  273. res.status = kMatchMismatch;
  274. goto reset;
  275. }
  276. }
  277. s->_index = index;
  278. res.status = kMatchPause;
  279. res.current = p;
  280. return res;
  281. reset:
  282. s->_index = 0;
  283. res.current = p;
  284. return res;
  285. }
  286. static llparse_match_t llparse__match_sequence_id(
  287. llhttp__internal_t* s, const unsigned char* p,
  288. const unsigned char* endp,
  289. const unsigned char* seq, uint32_t seq_len) {
  290. uint32_t index;
  291. llparse_match_t res;
  292. index = s->_index;
  293. for (; p != endp; p++) {
  294. unsigned char current;
  295. current = *p;
  296. if (current == seq[index]) {
  297. if (++index == seq_len) {
  298. res.status = kMatchComplete;
  299. goto reset;
  300. }
  301. } else {
  302. res.status = kMatchMismatch;
  303. goto reset;
  304. }
  305. }
  306. s->_index = index;
  307. res.status = kMatchPause;
  308. res.current = p;
  309. return res;
  310. reset:
  311. s->_index = 0;
  312. res.current = p;
  313. return res;
  314. }
  315. enum llparse_state_e {
  316. s_error,
  317. s_n_llhttp__internal__n_closed,
  318. s_n_llhttp__internal__n_invoke_llhttp__after_message_complete,
  319. s_n_llhttp__internal__n_pause_1,
  320. s_n_llhttp__internal__n_invoke_is_equal_upgrade,
  321. s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2,
  322. s_n_llhttp__internal__n_chunk_data_almost_done_1,
  323. s_n_llhttp__internal__n_chunk_data_almost_done,
  324. s_n_llhttp__internal__n_consume_content_length,
  325. s_n_llhttp__internal__n_span_start_llhttp__on_body,
  326. s_n_llhttp__internal__n_invoke_is_equal_content_length,
  327. s_n_llhttp__internal__n_chunk_size_almost_done,
  328. s_n_llhttp__internal__n_invoke_test_lenient_flags_9,
  329. s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete,
  330. s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_1,
  331. s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_2,
  332. s_n_llhttp__internal__n_invoke_test_lenient_flags_10,
  333. s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete,
  334. s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_1,
  335. s_n_llhttp__internal__n_chunk_extension_quoted_value_done,
  336. s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_2,
  337. s_n_llhttp__internal__n_error_30,
  338. s_n_llhttp__internal__n_chunk_extension_quoted_value_quoted_pair,
  339. s_n_llhttp__internal__n_error_31,
  340. s_n_llhttp__internal__n_chunk_extension_quoted_value,
  341. s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_3,
  342. s_n_llhttp__internal__n_error_33,
  343. s_n_llhttp__internal__n_chunk_extension_value,
  344. s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_value,
  345. s_n_llhttp__internal__n_error_34,
  346. s_n_llhttp__internal__n_chunk_extension_name,
  347. s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_name,
  348. s_n_llhttp__internal__n_chunk_extensions,
  349. s_n_llhttp__internal__n_chunk_size_otherwise,
  350. s_n_llhttp__internal__n_chunk_size,
  351. s_n_llhttp__internal__n_chunk_size_digit,
  352. s_n_llhttp__internal__n_invoke_update_content_length_1,
  353. s_n_llhttp__internal__n_consume_content_length_1,
  354. s_n_llhttp__internal__n_span_start_llhttp__on_body_1,
  355. s_n_llhttp__internal__n_eof,
  356. s_n_llhttp__internal__n_span_start_llhttp__on_body_2,
  357. s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete,
  358. s_n_llhttp__internal__n_error_5,
  359. s_n_llhttp__internal__n_headers_almost_done,
  360. s_n_llhttp__internal__n_header_field_colon_discard_ws,
  361. s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete,
  362. s_n_llhttp__internal__n_span_start_llhttp__on_header_value,
  363. s_n_llhttp__internal__n_header_value_discard_lws,
  364. s_n_llhttp__internal__n_header_value_discard_ws_almost_done,
  365. s_n_llhttp__internal__n_header_value_lws,
  366. s_n_llhttp__internal__n_header_value_almost_done,
  367. s_n_llhttp__internal__n_invoke_test_lenient_flags_17,
  368. s_n_llhttp__internal__n_header_value_lenient,
  369. s_n_llhttp__internal__n_error_52,
  370. s_n_llhttp__internal__n_header_value_otherwise,
  371. s_n_llhttp__internal__n_header_value_connection_token,
  372. s_n_llhttp__internal__n_header_value_connection_ws,
  373. s_n_llhttp__internal__n_header_value_connection_1,
  374. s_n_llhttp__internal__n_header_value_connection_2,
  375. s_n_llhttp__internal__n_header_value_connection_3,
  376. s_n_llhttp__internal__n_header_value_connection,
  377. s_n_llhttp__internal__n_error_54,
  378. s_n_llhttp__internal__n_error_55,
  379. s_n_llhttp__internal__n_header_value_content_length_ws,
  380. s_n_llhttp__internal__n_header_value_content_length,
  381. s_n_llhttp__internal__n_error_57,
  382. s_n_llhttp__internal__n_error_56,
  383. s_n_llhttp__internal__n_header_value_te_token_ows,
  384. s_n_llhttp__internal__n_header_value,
  385. s_n_llhttp__internal__n_header_value_te_token,
  386. s_n_llhttp__internal__n_header_value_te_chunked_last,
  387. s_n_llhttp__internal__n_header_value_te_chunked,
  388. s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1,
  389. s_n_llhttp__internal__n_header_value_discard_ws,
  390. s_n_llhttp__internal__n_invoke_load_header_state,
  391. s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete,
  392. s_n_llhttp__internal__n_header_field_general_otherwise,
  393. s_n_llhttp__internal__n_header_field_general,
  394. s_n_llhttp__internal__n_header_field_colon,
  395. s_n_llhttp__internal__n_header_field_3,
  396. s_n_llhttp__internal__n_header_field_4,
  397. s_n_llhttp__internal__n_header_field_2,
  398. s_n_llhttp__internal__n_header_field_1,
  399. s_n_llhttp__internal__n_header_field_5,
  400. s_n_llhttp__internal__n_header_field_6,
  401. s_n_llhttp__internal__n_header_field_7,
  402. s_n_llhttp__internal__n_header_field,
  403. s_n_llhttp__internal__n_span_start_llhttp__on_header_field,
  404. s_n_llhttp__internal__n_header_field_start,
  405. s_n_llhttp__internal__n_headers_start,
  406. s_n_llhttp__internal__n_url_to_http_09,
  407. s_n_llhttp__internal__n_url_skip_to_http09,
  408. s_n_llhttp__internal__n_url_skip_lf_to_http09_1,
  409. s_n_llhttp__internal__n_url_skip_lf_to_http09,
  410. s_n_llhttp__internal__n_req_pri_upgrade,
  411. s_n_llhttp__internal__n_req_http_complete_crlf,
  412. s_n_llhttp__internal__n_req_http_complete,
  413. s_n_llhttp__internal__n_invoke_load_method_1,
  414. s_n_llhttp__internal__n_invoke_llhttp__on_version_complete,
  415. s_n_llhttp__internal__n_error_64,
  416. s_n_llhttp__internal__n_error_71,
  417. s_n_llhttp__internal__n_req_http_minor,
  418. s_n_llhttp__internal__n_error_72,
  419. s_n_llhttp__internal__n_req_http_dot,
  420. s_n_llhttp__internal__n_error_73,
  421. s_n_llhttp__internal__n_req_http_major,
  422. s_n_llhttp__internal__n_span_start_llhttp__on_version,
  423. s_n_llhttp__internal__n_req_http_start_1,
  424. s_n_llhttp__internal__n_req_http_start_2,
  425. s_n_llhttp__internal__n_req_http_start_3,
  426. s_n_llhttp__internal__n_req_http_start,
  427. s_n_llhttp__internal__n_url_to_http,
  428. s_n_llhttp__internal__n_url_skip_to_http,
  429. s_n_llhttp__internal__n_url_fragment,
  430. s_n_llhttp__internal__n_span_end_stub_query_3,
  431. s_n_llhttp__internal__n_url_query,
  432. s_n_llhttp__internal__n_url_query_or_fragment,
  433. s_n_llhttp__internal__n_url_path,
  434. s_n_llhttp__internal__n_span_start_stub_path_2,
  435. s_n_llhttp__internal__n_span_start_stub_path,
  436. s_n_llhttp__internal__n_span_start_stub_path_1,
  437. s_n_llhttp__internal__n_url_server_with_at,
  438. s_n_llhttp__internal__n_url_server,
  439. s_n_llhttp__internal__n_url_schema_delim_1,
  440. s_n_llhttp__internal__n_url_schema_delim,
  441. s_n_llhttp__internal__n_span_end_stub_schema,
  442. s_n_llhttp__internal__n_url_schema,
  443. s_n_llhttp__internal__n_url_start,
  444. s_n_llhttp__internal__n_span_start_llhttp__on_url_1,
  445. s_n_llhttp__internal__n_url_entry_normal,
  446. s_n_llhttp__internal__n_span_start_llhttp__on_url,
  447. s_n_llhttp__internal__n_url_entry_connect,
  448. s_n_llhttp__internal__n_req_spaces_before_url,
  449. s_n_llhttp__internal__n_req_first_space_before_url,
  450. s_n_llhttp__internal__n_invoke_llhttp__on_method_complete_1,
  451. s_n_llhttp__internal__n_after_start_req_2,
  452. s_n_llhttp__internal__n_after_start_req_3,
  453. s_n_llhttp__internal__n_after_start_req_1,
  454. s_n_llhttp__internal__n_after_start_req_4,
  455. s_n_llhttp__internal__n_after_start_req_6,
  456. s_n_llhttp__internal__n_after_start_req_8,
  457. s_n_llhttp__internal__n_after_start_req_9,
  458. s_n_llhttp__internal__n_after_start_req_7,
  459. s_n_llhttp__internal__n_after_start_req_5,
  460. s_n_llhttp__internal__n_after_start_req_12,
  461. s_n_llhttp__internal__n_after_start_req_13,
  462. s_n_llhttp__internal__n_after_start_req_11,
  463. s_n_llhttp__internal__n_after_start_req_10,
  464. s_n_llhttp__internal__n_after_start_req_14,
  465. s_n_llhttp__internal__n_after_start_req_17,
  466. s_n_llhttp__internal__n_after_start_req_16,
  467. s_n_llhttp__internal__n_after_start_req_15,
  468. s_n_llhttp__internal__n_after_start_req_18,
  469. s_n_llhttp__internal__n_after_start_req_20,
  470. s_n_llhttp__internal__n_after_start_req_21,
  471. s_n_llhttp__internal__n_after_start_req_19,
  472. s_n_llhttp__internal__n_after_start_req_23,
  473. s_n_llhttp__internal__n_after_start_req_24,
  474. s_n_llhttp__internal__n_after_start_req_26,
  475. s_n_llhttp__internal__n_after_start_req_28,
  476. s_n_llhttp__internal__n_after_start_req_29,
  477. s_n_llhttp__internal__n_after_start_req_27,
  478. s_n_llhttp__internal__n_after_start_req_25,
  479. s_n_llhttp__internal__n_after_start_req_30,
  480. s_n_llhttp__internal__n_after_start_req_22,
  481. s_n_llhttp__internal__n_after_start_req_31,
  482. s_n_llhttp__internal__n_after_start_req_32,
  483. s_n_llhttp__internal__n_after_start_req_35,
  484. s_n_llhttp__internal__n_after_start_req_36,
  485. s_n_llhttp__internal__n_after_start_req_34,
  486. s_n_llhttp__internal__n_after_start_req_37,
  487. s_n_llhttp__internal__n_after_start_req_38,
  488. s_n_llhttp__internal__n_after_start_req_42,
  489. s_n_llhttp__internal__n_after_start_req_43,
  490. s_n_llhttp__internal__n_after_start_req_41,
  491. s_n_llhttp__internal__n_after_start_req_40,
  492. s_n_llhttp__internal__n_after_start_req_39,
  493. s_n_llhttp__internal__n_after_start_req_45,
  494. s_n_llhttp__internal__n_after_start_req_44,
  495. s_n_llhttp__internal__n_after_start_req_33,
  496. s_n_llhttp__internal__n_after_start_req_48,
  497. s_n_llhttp__internal__n_after_start_req_49,
  498. s_n_llhttp__internal__n_after_start_req_50,
  499. s_n_llhttp__internal__n_after_start_req_51,
  500. s_n_llhttp__internal__n_after_start_req_47,
  501. s_n_llhttp__internal__n_after_start_req_46,
  502. s_n_llhttp__internal__n_after_start_req_54,
  503. s_n_llhttp__internal__n_after_start_req_56,
  504. s_n_llhttp__internal__n_after_start_req_57,
  505. s_n_llhttp__internal__n_after_start_req_55,
  506. s_n_llhttp__internal__n_after_start_req_53,
  507. s_n_llhttp__internal__n_after_start_req_58,
  508. s_n_llhttp__internal__n_after_start_req_59,
  509. s_n_llhttp__internal__n_after_start_req_52,
  510. s_n_llhttp__internal__n_after_start_req_61,
  511. s_n_llhttp__internal__n_after_start_req_62,
  512. s_n_llhttp__internal__n_after_start_req_60,
  513. s_n_llhttp__internal__n_after_start_req_65,
  514. s_n_llhttp__internal__n_after_start_req_67,
  515. s_n_llhttp__internal__n_after_start_req_68,
  516. s_n_llhttp__internal__n_after_start_req_66,
  517. s_n_llhttp__internal__n_after_start_req_69,
  518. s_n_llhttp__internal__n_after_start_req_64,
  519. s_n_llhttp__internal__n_after_start_req_63,
  520. s_n_llhttp__internal__n_after_start_req,
  521. s_n_llhttp__internal__n_span_start_llhttp__on_method_1,
  522. s_n_llhttp__internal__n_res_line_almost_done,
  523. s_n_llhttp__internal__n_invoke_test_lenient_flags_29,
  524. s_n_llhttp__internal__n_res_status,
  525. s_n_llhttp__internal__n_span_start_llhttp__on_status,
  526. s_n_llhttp__internal__n_res_status_code_otherwise,
  527. s_n_llhttp__internal__n_res_status_code_digit_3,
  528. s_n_llhttp__internal__n_res_status_code_digit_2,
  529. s_n_llhttp__internal__n_res_status_code_digit_1,
  530. s_n_llhttp__internal__n_res_after_version,
  531. s_n_llhttp__internal__n_invoke_llhttp__on_version_complete_1,
  532. s_n_llhttp__internal__n_error_87,
  533. s_n_llhttp__internal__n_error_101,
  534. s_n_llhttp__internal__n_res_http_minor,
  535. s_n_llhttp__internal__n_error_102,
  536. s_n_llhttp__internal__n_res_http_dot,
  537. s_n_llhttp__internal__n_error_103,
  538. s_n_llhttp__internal__n_res_http_major,
  539. s_n_llhttp__internal__n_span_start_llhttp__on_version_1,
  540. s_n_llhttp__internal__n_start_res,
  541. s_n_llhttp__internal__n_invoke_llhttp__on_method_complete,
  542. s_n_llhttp__internal__n_req_or_res_method_2,
  543. s_n_llhttp__internal__n_invoke_update_type_1,
  544. s_n_llhttp__internal__n_req_or_res_method_3,
  545. s_n_llhttp__internal__n_req_or_res_method_1,
  546. s_n_llhttp__internal__n_req_or_res_method,
  547. s_n_llhttp__internal__n_span_start_llhttp__on_method,
  548. s_n_llhttp__internal__n_start_req_or_res,
  549. s_n_llhttp__internal__n_invoke_load_type,
  550. s_n_llhttp__internal__n_invoke_update_finish,
  551. s_n_llhttp__internal__n_start,
  552. };
  553. typedef enum llparse_state_e llparse_state_t;
  554. int llhttp__on_method(
  555. llhttp__internal_t* s, const unsigned char* p,
  556. const unsigned char* endp);
  557. int llhttp__on_url(
  558. llhttp__internal_t* s, const unsigned char* p,
  559. const unsigned char* endp);
  560. int llhttp__on_version(
  561. llhttp__internal_t* s, const unsigned char* p,
  562. const unsigned char* endp);
  563. int llhttp__on_header_field(
  564. llhttp__internal_t* s, const unsigned char* p,
  565. const unsigned char* endp);
  566. int llhttp__on_header_value(
  567. llhttp__internal_t* s, const unsigned char* p,
  568. const unsigned char* endp);
  569. int llhttp__on_body(
  570. llhttp__internal_t* s, const unsigned char* p,
  571. const unsigned char* endp);
  572. int llhttp__on_chunk_extension_name(
  573. llhttp__internal_t* s, const unsigned char* p,
  574. const unsigned char* endp);
  575. int llhttp__on_chunk_extension_value(
  576. llhttp__internal_t* s, const unsigned char* p,
  577. const unsigned char* endp);
  578. int llhttp__on_status(
  579. llhttp__internal_t* s, const unsigned char* p,
  580. const unsigned char* endp);
  581. int llhttp__internal__c_load_initial_message_completed(
  582. llhttp__internal_t* state,
  583. const unsigned char* p,
  584. const unsigned char* endp) {
  585. return state->initial_message_completed;
  586. }
  587. int llhttp__on_reset(
  588. llhttp__internal_t* s, const unsigned char* p,
  589. const unsigned char* endp);
  590. int llhttp__internal__c_update_finish(
  591. llhttp__internal_t* state,
  592. const unsigned char* p,
  593. const unsigned char* endp) {
  594. state->finish = 2;
  595. return 0;
  596. }
  597. int llhttp__on_message_begin(
  598. llhttp__internal_t* s, const unsigned char* p,
  599. const unsigned char* endp);
  600. int llhttp__internal__c_load_type(
  601. llhttp__internal_t* state,
  602. const unsigned char* p,
  603. const unsigned char* endp) {
  604. return state->type;
  605. }
  606. int llhttp__internal__c_store_method(
  607. llhttp__internal_t* state,
  608. const unsigned char* p,
  609. const unsigned char* endp,
  610. int match) {
  611. state->method = match;
  612. return 0;
  613. }
  614. int llhttp__on_method_complete(
  615. llhttp__internal_t* s, const unsigned char* p,
  616. const unsigned char* endp);
  617. int llhttp__internal__c_is_equal_method(
  618. llhttp__internal_t* state,
  619. const unsigned char* p,
  620. const unsigned char* endp) {
  621. return state->method == 5;
  622. }
  623. int llhttp__internal__c_update_http_major(
  624. llhttp__internal_t* state,
  625. const unsigned char* p,
  626. const unsigned char* endp) {
  627. state->http_major = 0;
  628. return 0;
  629. }
  630. int llhttp__internal__c_update_http_minor(
  631. llhttp__internal_t* state,
  632. const unsigned char* p,
  633. const unsigned char* endp) {
  634. state->http_minor = 9;
  635. return 0;
  636. }
  637. int llhttp__on_url_complete(
  638. llhttp__internal_t* s, const unsigned char* p,
  639. const unsigned char* endp);
  640. int llhttp__internal__c_test_lenient_flags(
  641. llhttp__internal_t* state,
  642. const unsigned char* p,
  643. const unsigned char* endp) {
  644. return (state->lenient_flags & 1) == 1;
  645. }
  646. int llhttp__internal__c_test_lenient_flags_1(
  647. llhttp__internal_t* state,
  648. const unsigned char* p,
  649. const unsigned char* endp) {
  650. return (state->lenient_flags & 256) == 256;
  651. }
  652. int llhttp__internal__c_test_flags(
  653. llhttp__internal_t* state,
  654. const unsigned char* p,
  655. const unsigned char* endp) {
  656. return (state->flags & 128) == 128;
  657. }
  658. int llhttp__on_chunk_complete(
  659. llhttp__internal_t* s, const unsigned char* p,
  660. const unsigned char* endp);
  661. int llhttp__on_message_complete(
  662. llhttp__internal_t* s, const unsigned char* p,
  663. const unsigned char* endp);
  664. int llhttp__internal__c_is_equal_upgrade(
  665. llhttp__internal_t* state,
  666. const unsigned char* p,
  667. const unsigned char* endp) {
  668. return state->upgrade == 1;
  669. }
  670. int llhttp__after_message_complete(
  671. llhttp__internal_t* s, const unsigned char* p,
  672. const unsigned char* endp);
  673. int llhttp__internal__c_update_content_length(
  674. llhttp__internal_t* state,
  675. const unsigned char* p,
  676. const unsigned char* endp) {
  677. state->content_length = 0;
  678. return 0;
  679. }
  680. int llhttp__internal__c_update_initial_message_completed(
  681. llhttp__internal_t* state,
  682. const unsigned char* p,
  683. const unsigned char* endp) {
  684. state->initial_message_completed = 1;
  685. return 0;
  686. }
  687. int llhttp__internal__c_update_finish_1(
  688. llhttp__internal_t* state,
  689. const unsigned char* p,
  690. const unsigned char* endp) {
  691. state->finish = 0;
  692. return 0;
  693. }
  694. int llhttp__internal__c_test_lenient_flags_2(
  695. llhttp__internal_t* state,
  696. const unsigned char* p,
  697. const unsigned char* endp) {
  698. return (state->lenient_flags & 4) == 4;
  699. }
  700. int llhttp__internal__c_test_lenient_flags_3(
  701. llhttp__internal_t* state,
  702. const unsigned char* p,
  703. const unsigned char* endp) {
  704. return (state->lenient_flags & 32) == 32;
  705. }
  706. int llhttp__before_headers_complete(
  707. llhttp__internal_t* s, const unsigned char* p,
  708. const unsigned char* endp);
  709. int llhttp__on_headers_complete(
  710. llhttp__internal_t* s, const unsigned char* p,
  711. const unsigned char* endp);
  712. int llhttp__after_headers_complete(
  713. llhttp__internal_t* s, const unsigned char* p,
  714. const unsigned char* endp);
  715. int llhttp__internal__c_mul_add_content_length(
  716. llhttp__internal_t* state,
  717. const unsigned char* p,
  718. const unsigned char* endp,
  719. int match) {
  720. /* Multiplication overflow */
  721. if (state->content_length > 0xffffffffffffffffULL / 16) {
  722. return 1;
  723. }
  724. state->content_length *= 16;
  725. /* Addition overflow */
  726. if (match >= 0) {
  727. if (state->content_length > 0xffffffffffffffffULL - match) {
  728. return 1;
  729. }
  730. } else {
  731. if (state->content_length < 0ULL - match) {
  732. return 1;
  733. }
  734. }
  735. state->content_length += match;
  736. return 0;
  737. }
  738. int llhttp__internal__c_test_lenient_flags_4(
  739. llhttp__internal_t* state,
  740. const unsigned char* p,
  741. const unsigned char* endp) {
  742. return (state->lenient_flags & 512) == 512;
  743. }
  744. int llhttp__on_chunk_header(
  745. llhttp__internal_t* s, const unsigned char* p,
  746. const unsigned char* endp);
  747. int llhttp__internal__c_is_equal_content_length(
  748. llhttp__internal_t* state,
  749. const unsigned char* p,
  750. const unsigned char* endp) {
  751. return state->content_length == 0;
  752. }
  753. int llhttp__internal__c_test_lenient_flags_7(
  754. llhttp__internal_t* state,
  755. const unsigned char* p,
  756. const unsigned char* endp) {
  757. return (state->lenient_flags & 128) == 128;
  758. }
  759. int llhttp__internal__c_or_flags(
  760. llhttp__internal_t* state,
  761. const unsigned char* p,
  762. const unsigned char* endp) {
  763. state->flags |= 128;
  764. return 0;
  765. }
  766. int llhttp__internal__c_test_lenient_flags_8(
  767. llhttp__internal_t* state,
  768. const unsigned char* p,
  769. const unsigned char* endp) {
  770. return (state->lenient_flags & 64) == 64;
  771. }
  772. int llhttp__on_chunk_extension_name_complete(
  773. llhttp__internal_t* s, const unsigned char* p,
  774. const unsigned char* endp);
  775. int llhttp__on_chunk_extension_value_complete(
  776. llhttp__internal_t* s, const unsigned char* p,
  777. const unsigned char* endp);
  778. int llhttp__internal__c_update_finish_3(
  779. llhttp__internal_t* state,
  780. const unsigned char* p,
  781. const unsigned char* endp) {
  782. state->finish = 1;
  783. return 0;
  784. }
  785. int llhttp__internal__c_or_flags_1(
  786. llhttp__internal_t* state,
  787. const unsigned char* p,
  788. const unsigned char* endp) {
  789. state->flags |= 64;
  790. return 0;
  791. }
  792. int llhttp__internal__c_update_upgrade(
  793. llhttp__internal_t* state,
  794. const unsigned char* p,
  795. const unsigned char* endp) {
  796. state->upgrade = 1;
  797. return 0;
  798. }
  799. int llhttp__internal__c_store_header_state(
  800. llhttp__internal_t* state,
  801. const unsigned char* p,
  802. const unsigned char* endp,
  803. int match) {
  804. state->header_state = match;
  805. return 0;
  806. }
  807. int llhttp__on_header_field_complete(
  808. llhttp__internal_t* s, const unsigned char* p,
  809. const unsigned char* endp);
  810. int llhttp__internal__c_load_header_state(
  811. llhttp__internal_t* state,
  812. const unsigned char* p,
  813. const unsigned char* endp) {
  814. return state->header_state;
  815. }
  816. int llhttp__internal__c_test_flags_4(
  817. llhttp__internal_t* state,
  818. const unsigned char* p,
  819. const unsigned char* endp) {
  820. return (state->flags & 512) == 512;
  821. }
  822. int llhttp__internal__c_test_lenient_flags_21(
  823. llhttp__internal_t* state,
  824. const unsigned char* p,
  825. const unsigned char* endp) {
  826. return (state->lenient_flags & 2) == 2;
  827. }
  828. int llhttp__internal__c_or_flags_5(
  829. llhttp__internal_t* state,
  830. const unsigned char* p,
  831. const unsigned char* endp) {
  832. state->flags |= 1;
  833. return 0;
  834. }
  835. int llhttp__internal__c_update_header_state(
  836. llhttp__internal_t* state,
  837. const unsigned char* p,
  838. const unsigned char* endp) {
  839. state->header_state = 1;
  840. return 0;
  841. }
  842. int llhttp__on_header_value_complete(
  843. llhttp__internal_t* s, const unsigned char* p,
  844. const unsigned char* endp);
  845. int llhttp__internal__c_or_flags_6(
  846. llhttp__internal_t* state,
  847. const unsigned char* p,
  848. const unsigned char* endp) {
  849. state->flags |= 2;
  850. return 0;
  851. }
  852. int llhttp__internal__c_or_flags_7(
  853. llhttp__internal_t* state,
  854. const unsigned char* p,
  855. const unsigned char* endp) {
  856. state->flags |= 4;
  857. return 0;
  858. }
  859. int llhttp__internal__c_or_flags_8(
  860. llhttp__internal_t* state,
  861. const unsigned char* p,
  862. const unsigned char* endp) {
  863. state->flags |= 8;
  864. return 0;
  865. }
  866. int llhttp__internal__c_update_header_state_3(
  867. llhttp__internal_t* state,
  868. const unsigned char* p,
  869. const unsigned char* endp) {
  870. state->header_state = 6;
  871. return 0;
  872. }
  873. int llhttp__internal__c_update_header_state_1(
  874. llhttp__internal_t* state,
  875. const unsigned char* p,
  876. const unsigned char* endp) {
  877. state->header_state = 0;
  878. return 0;
  879. }
  880. int llhttp__internal__c_update_header_state_6(
  881. llhttp__internal_t* state,
  882. const unsigned char* p,
  883. const unsigned char* endp) {
  884. state->header_state = 5;
  885. return 0;
  886. }
  887. int llhttp__internal__c_update_header_state_7(
  888. llhttp__internal_t* state,
  889. const unsigned char* p,
  890. const unsigned char* endp) {
  891. state->header_state = 7;
  892. return 0;
  893. }
  894. int llhttp__internal__c_test_flags_2(
  895. llhttp__internal_t* state,
  896. const unsigned char* p,
  897. const unsigned char* endp) {
  898. return (state->flags & 32) == 32;
  899. }
  900. int llhttp__internal__c_mul_add_content_length_1(
  901. llhttp__internal_t* state,
  902. const unsigned char* p,
  903. const unsigned char* endp,
  904. int match) {
  905. /* Multiplication overflow */
  906. if (state->content_length > 0xffffffffffffffffULL / 10) {
  907. return 1;
  908. }
  909. state->content_length *= 10;
  910. /* Addition overflow */
  911. if (match >= 0) {
  912. if (state->content_length > 0xffffffffffffffffULL - match) {
  913. return 1;
  914. }
  915. } else {
  916. if (state->content_length < 0ULL - match) {
  917. return 1;
  918. }
  919. }
  920. state->content_length += match;
  921. return 0;
  922. }
  923. int llhttp__internal__c_or_flags_17(
  924. llhttp__internal_t* state,
  925. const unsigned char* p,
  926. const unsigned char* endp) {
  927. state->flags |= 32;
  928. return 0;
  929. }
  930. int llhttp__internal__c_test_flags_3(
  931. llhttp__internal_t* state,
  932. const unsigned char* p,
  933. const unsigned char* endp) {
  934. return (state->flags & 8) == 8;
  935. }
  936. int llhttp__internal__c_test_lenient_flags_19(
  937. llhttp__internal_t* state,
  938. const unsigned char* p,
  939. const unsigned char* endp) {
  940. return (state->lenient_flags & 8) == 8;
  941. }
  942. int llhttp__internal__c_or_flags_18(
  943. llhttp__internal_t* state,
  944. const unsigned char* p,
  945. const unsigned char* endp) {
  946. state->flags |= 512;
  947. return 0;
  948. }
  949. int llhttp__internal__c_and_flags(
  950. llhttp__internal_t* state,
  951. const unsigned char* p,
  952. const unsigned char* endp) {
  953. state->flags &= -9;
  954. return 0;
  955. }
  956. int llhttp__internal__c_update_header_state_8(
  957. llhttp__internal_t* state,
  958. const unsigned char* p,
  959. const unsigned char* endp) {
  960. state->header_state = 8;
  961. return 0;
  962. }
  963. int llhttp__internal__c_or_flags_20(
  964. llhttp__internal_t* state,
  965. const unsigned char* p,
  966. const unsigned char* endp) {
  967. state->flags |= 16;
  968. return 0;
  969. }
  970. int llhttp__internal__c_load_method(
  971. llhttp__internal_t* state,
  972. const unsigned char* p,
  973. const unsigned char* endp) {
  974. return state->method;
  975. }
  976. int llhttp__internal__c_store_http_major(
  977. llhttp__internal_t* state,
  978. const unsigned char* p,
  979. const unsigned char* endp,
  980. int match) {
  981. state->http_major = match;
  982. return 0;
  983. }
  984. int llhttp__internal__c_store_http_minor(
  985. llhttp__internal_t* state,
  986. const unsigned char* p,
  987. const unsigned char* endp,
  988. int match) {
  989. state->http_minor = match;
  990. return 0;
  991. }
  992. int llhttp__internal__c_test_lenient_flags_23(
  993. llhttp__internal_t* state,
  994. const unsigned char* p,
  995. const unsigned char* endp) {
  996. return (state->lenient_flags & 16) == 16;
  997. }
  998. int llhttp__on_version_complete(
  999. llhttp__internal_t* s, const unsigned char* p,
  1000. const unsigned char* endp);
  1001. int llhttp__internal__c_load_http_major(
  1002. llhttp__internal_t* state,
  1003. const unsigned char* p,
  1004. const unsigned char* endp) {
  1005. return state->http_major;
  1006. }
  1007. int llhttp__internal__c_load_http_minor(
  1008. llhttp__internal_t* state,
  1009. const unsigned char* p,
  1010. const unsigned char* endp) {
  1011. return state->http_minor;
  1012. }
  1013. int llhttp__internal__c_update_status_code(
  1014. llhttp__internal_t* state,
  1015. const unsigned char* p,
  1016. const unsigned char* endp) {
  1017. state->status_code = 0;
  1018. return 0;
  1019. }
  1020. int llhttp__internal__c_mul_add_status_code(
  1021. llhttp__internal_t* state,
  1022. const unsigned char* p,
  1023. const unsigned char* endp,
  1024. int match) {
  1025. /* Multiplication overflow */
  1026. if (state->status_code > 0xffff / 10) {
  1027. return 1;
  1028. }
  1029. state->status_code *= 10;
  1030. /* Addition overflow */
  1031. if (match >= 0) {
  1032. if (state->status_code > 0xffff - match) {
  1033. return 1;
  1034. }
  1035. } else {
  1036. if (state->status_code < 0 - match) {
  1037. return 1;
  1038. }
  1039. }
  1040. state->status_code += match;
  1041. return 0;
  1042. }
  1043. int llhttp__on_status_complete(
  1044. llhttp__internal_t* s, const unsigned char* p,
  1045. const unsigned char* endp);
  1046. int llhttp__internal__c_update_type(
  1047. llhttp__internal_t* state,
  1048. const unsigned char* p,
  1049. const unsigned char* endp) {
  1050. state->type = 1;
  1051. return 0;
  1052. }
  1053. int llhttp__internal__c_update_type_1(
  1054. llhttp__internal_t* state,
  1055. const unsigned char* p,
  1056. const unsigned char* endp) {
  1057. state->type = 2;
  1058. return 0;
  1059. }
  1060. int llhttp__internal_init(llhttp__internal_t* state) {
  1061. memset(state, 0, sizeof(*state));
  1062. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_start;
  1063. return 0;
  1064. }
  1065. static llparse_state_t llhttp__internal__run(
  1066. llhttp__internal_t* state,
  1067. const unsigned char* p,
  1068. const unsigned char* endp) {
  1069. int match;
  1070. switch ((llparse_state_t) (intptr_t) state->_current) {
  1071. case s_n_llhttp__internal__n_closed:
  1072. s_n_llhttp__internal__n_closed: {
  1073. if (p == endp) {
  1074. return s_n_llhttp__internal__n_closed;
  1075. }
  1076. switch (*p) {
  1077. case 10: {
  1078. p++;
  1079. goto s_n_llhttp__internal__n_closed;
  1080. }
  1081. case 13: {
  1082. p++;
  1083. goto s_n_llhttp__internal__n_closed;
  1084. }
  1085. default: {
  1086. p++;
  1087. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_3;
  1088. }
  1089. }
  1090. /* UNREACHABLE */;
  1091. abort();
  1092. }
  1093. case s_n_llhttp__internal__n_invoke_llhttp__after_message_complete:
  1094. s_n_llhttp__internal__n_invoke_llhttp__after_message_complete: {
  1095. switch (llhttp__after_message_complete(state, p, endp)) {
  1096. case 1:
  1097. goto s_n_llhttp__internal__n_invoke_update_content_length;
  1098. default:
  1099. goto s_n_llhttp__internal__n_invoke_update_finish_1;
  1100. }
  1101. /* UNREACHABLE */;
  1102. abort();
  1103. }
  1104. case s_n_llhttp__internal__n_pause_1:
  1105. s_n_llhttp__internal__n_pause_1: {
  1106. state->error = 0x16;
  1107. state->reason = "Pause on CONNECT/Upgrade";
  1108. state->error_pos = (const char*) p;
  1109. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
  1110. return s_error;
  1111. /* UNREACHABLE */;
  1112. abort();
  1113. }
  1114. case s_n_llhttp__internal__n_invoke_is_equal_upgrade:
  1115. s_n_llhttp__internal__n_invoke_is_equal_upgrade: {
  1116. switch (llhttp__internal__c_is_equal_upgrade(state, p, endp)) {
  1117. case 0:
  1118. goto s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
  1119. default:
  1120. goto s_n_llhttp__internal__n_pause_1;
  1121. }
  1122. /* UNREACHABLE */;
  1123. abort();
  1124. }
  1125. case s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2:
  1126. s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2: {
  1127. switch (llhttp__on_message_complete(state, p, endp)) {
  1128. case 0:
  1129. goto s_n_llhttp__internal__n_invoke_is_equal_upgrade;
  1130. case 21:
  1131. goto s_n_llhttp__internal__n_pause_13;
  1132. default:
  1133. goto s_n_llhttp__internal__n_error_38;
  1134. }
  1135. /* UNREACHABLE */;
  1136. abort();
  1137. }
  1138. case s_n_llhttp__internal__n_chunk_data_almost_done_1:
  1139. s_n_llhttp__internal__n_chunk_data_almost_done_1: {
  1140. if (p == endp) {
  1141. return s_n_llhttp__internal__n_chunk_data_almost_done_1;
  1142. }
  1143. switch (*p) {
  1144. case 10: {
  1145. p++;
  1146. goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete;
  1147. }
  1148. default: {
  1149. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_7;
  1150. }
  1151. }
  1152. /* UNREACHABLE */;
  1153. abort();
  1154. }
  1155. case s_n_llhttp__internal__n_chunk_data_almost_done:
  1156. s_n_llhttp__internal__n_chunk_data_almost_done: {
  1157. if (p == endp) {
  1158. return s_n_llhttp__internal__n_chunk_data_almost_done;
  1159. }
  1160. switch (*p) {
  1161. case 10: {
  1162. p++;
  1163. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_6;
  1164. }
  1165. case 13: {
  1166. p++;
  1167. goto s_n_llhttp__internal__n_chunk_data_almost_done_1;
  1168. }
  1169. default: {
  1170. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_7;
  1171. }
  1172. }
  1173. /* UNREACHABLE */;
  1174. abort();
  1175. }
  1176. case s_n_llhttp__internal__n_consume_content_length:
  1177. s_n_llhttp__internal__n_consume_content_length: {
  1178. size_t avail;
  1179. uint64_t need;
  1180. avail = endp - p;
  1181. need = state->content_length;
  1182. if (avail >= need) {
  1183. p += need;
  1184. state->content_length = 0;
  1185. goto s_n_llhttp__internal__n_span_end_llhttp__on_body;
  1186. }
  1187. state->content_length -= avail;
  1188. return s_n_llhttp__internal__n_consume_content_length;
  1189. /* UNREACHABLE */;
  1190. abort();
  1191. }
  1192. case s_n_llhttp__internal__n_span_start_llhttp__on_body:
  1193. s_n_llhttp__internal__n_span_start_llhttp__on_body: {
  1194. if (p == endp) {
  1195. return s_n_llhttp__internal__n_span_start_llhttp__on_body;
  1196. }
  1197. state->_span_pos0 = (void*) p;
  1198. state->_span_cb0 = llhttp__on_body;
  1199. goto s_n_llhttp__internal__n_consume_content_length;
  1200. /* UNREACHABLE */;
  1201. abort();
  1202. }
  1203. case s_n_llhttp__internal__n_invoke_is_equal_content_length:
  1204. s_n_llhttp__internal__n_invoke_is_equal_content_length: {
  1205. switch (llhttp__internal__c_is_equal_content_length(state, p, endp)) {
  1206. case 0:
  1207. goto s_n_llhttp__internal__n_span_start_llhttp__on_body;
  1208. default:
  1209. goto s_n_llhttp__internal__n_invoke_or_flags;
  1210. }
  1211. /* UNREACHABLE */;
  1212. abort();
  1213. }
  1214. case s_n_llhttp__internal__n_chunk_size_almost_done:
  1215. s_n_llhttp__internal__n_chunk_size_almost_done: {
  1216. if (p == endp) {
  1217. return s_n_llhttp__internal__n_chunk_size_almost_done;
  1218. }
  1219. switch (*p) {
  1220. case 10: {
  1221. p++;
  1222. goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_header;
  1223. }
  1224. default: {
  1225. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_8;
  1226. }
  1227. }
  1228. /* UNREACHABLE */;
  1229. abort();
  1230. }
  1231. case s_n_llhttp__internal__n_invoke_test_lenient_flags_9:
  1232. s_n_llhttp__internal__n_invoke_test_lenient_flags_9: {
  1233. switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
  1234. case 1:
  1235. goto s_n_llhttp__internal__n_chunk_size_almost_done;
  1236. default:
  1237. goto s_n_llhttp__internal__n_error_20;
  1238. }
  1239. /* UNREACHABLE */;
  1240. abort();
  1241. }
  1242. case s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete:
  1243. s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete: {
  1244. switch (llhttp__on_chunk_extension_name_complete(state, p, endp)) {
  1245. case 0:
  1246. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_9;
  1247. case 21:
  1248. goto s_n_llhttp__internal__n_pause_5;
  1249. default:
  1250. goto s_n_llhttp__internal__n_error_19;
  1251. }
  1252. /* UNREACHABLE */;
  1253. abort();
  1254. }
  1255. case s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_1:
  1256. s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_1: {
  1257. switch (llhttp__on_chunk_extension_name_complete(state, p, endp)) {
  1258. case 0:
  1259. goto s_n_llhttp__internal__n_chunk_size_almost_done;
  1260. case 21:
  1261. goto s_n_llhttp__internal__n_pause_6;
  1262. default:
  1263. goto s_n_llhttp__internal__n_error_21;
  1264. }
  1265. /* UNREACHABLE */;
  1266. abort();
  1267. }
  1268. case s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_2:
  1269. s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_2: {
  1270. switch (llhttp__on_chunk_extension_name_complete(state, p, endp)) {
  1271. case 0:
  1272. goto s_n_llhttp__internal__n_chunk_extensions;
  1273. case 21:
  1274. goto s_n_llhttp__internal__n_pause_7;
  1275. default:
  1276. goto s_n_llhttp__internal__n_error_22;
  1277. }
  1278. /* UNREACHABLE */;
  1279. abort();
  1280. }
  1281. case s_n_llhttp__internal__n_invoke_test_lenient_flags_10:
  1282. s_n_llhttp__internal__n_invoke_test_lenient_flags_10: {
  1283. switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
  1284. case 1:
  1285. goto s_n_llhttp__internal__n_chunk_size_almost_done;
  1286. default:
  1287. goto s_n_llhttp__internal__n_error_25;
  1288. }
  1289. /* UNREACHABLE */;
  1290. abort();
  1291. }
  1292. case s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete:
  1293. s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete: {
  1294. switch (llhttp__on_chunk_extension_value_complete(state, p, endp)) {
  1295. case 0:
  1296. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_10;
  1297. case 21:
  1298. goto s_n_llhttp__internal__n_pause_8;
  1299. default:
  1300. goto s_n_llhttp__internal__n_error_24;
  1301. }
  1302. /* UNREACHABLE */;
  1303. abort();
  1304. }
  1305. case s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_1:
  1306. s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_1: {
  1307. switch (llhttp__on_chunk_extension_value_complete(state, p, endp)) {
  1308. case 0:
  1309. goto s_n_llhttp__internal__n_chunk_size_almost_done;
  1310. case 21:
  1311. goto s_n_llhttp__internal__n_pause_9;
  1312. default:
  1313. goto s_n_llhttp__internal__n_error_26;
  1314. }
  1315. /* UNREACHABLE */;
  1316. abort();
  1317. }
  1318. case s_n_llhttp__internal__n_chunk_extension_quoted_value_done:
  1319. s_n_llhttp__internal__n_chunk_extension_quoted_value_done: {
  1320. if (p == endp) {
  1321. return s_n_llhttp__internal__n_chunk_extension_quoted_value_done;
  1322. }
  1323. switch (*p) {
  1324. case 10: {
  1325. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_11;
  1326. }
  1327. case 13: {
  1328. p++;
  1329. goto s_n_llhttp__internal__n_chunk_size_almost_done;
  1330. }
  1331. case ';': {
  1332. p++;
  1333. goto s_n_llhttp__internal__n_chunk_extensions;
  1334. }
  1335. default: {
  1336. goto s_n_llhttp__internal__n_error_29;
  1337. }
  1338. }
  1339. /* UNREACHABLE */;
  1340. abort();
  1341. }
  1342. case s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_2:
  1343. s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_2: {
  1344. switch (llhttp__on_chunk_extension_value_complete(state, p, endp)) {
  1345. case 0:
  1346. goto s_n_llhttp__internal__n_chunk_extension_quoted_value_done;
  1347. case 21:
  1348. goto s_n_llhttp__internal__n_pause_10;
  1349. default:
  1350. goto s_n_llhttp__internal__n_error_27;
  1351. }
  1352. /* UNREACHABLE */;
  1353. abort();
  1354. }
  1355. case s_n_llhttp__internal__n_error_30:
  1356. s_n_llhttp__internal__n_error_30: {
  1357. state->error = 0x2;
  1358. state->reason = "Invalid quoted-pair in chunk extensions quoted value";
  1359. state->error_pos = (const char*) p;
  1360. state->_current = (void*) (intptr_t) s_error;
  1361. return s_error;
  1362. /* UNREACHABLE */;
  1363. abort();
  1364. }
  1365. case s_n_llhttp__internal__n_chunk_extension_quoted_value_quoted_pair:
  1366. s_n_llhttp__internal__n_chunk_extension_quoted_value_quoted_pair: {
  1367. static uint8_t lookup_table[] = {
  1368. 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
  1369. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1370. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1371. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1372. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1373. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1374. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1375. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  1376. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1377. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1378. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1379. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1380. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1381. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1382. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1383. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
  1384. };
  1385. if (p == endp) {
  1386. return s_n_llhttp__internal__n_chunk_extension_quoted_value_quoted_pair;
  1387. }
  1388. switch (lookup_table[(uint8_t) *p]) {
  1389. case 1: {
  1390. p++;
  1391. goto s_n_llhttp__internal__n_chunk_extension_quoted_value;
  1392. }
  1393. default: {
  1394. goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_3;
  1395. }
  1396. }
  1397. /* UNREACHABLE */;
  1398. abort();
  1399. }
  1400. case s_n_llhttp__internal__n_error_31:
  1401. s_n_llhttp__internal__n_error_31: {
  1402. state->error = 0x2;
  1403. state->reason = "Invalid character in chunk extensions quoted value";
  1404. state->error_pos = (const char*) p;
  1405. state->_current = (void*) (intptr_t) s_error;
  1406. return s_error;
  1407. /* UNREACHABLE */;
  1408. abort();
  1409. }
  1410. case s_n_llhttp__internal__n_chunk_extension_quoted_value:
  1411. s_n_llhttp__internal__n_chunk_extension_quoted_value: {
  1412. static uint8_t lookup_table[] = {
  1413. 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
  1414. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1415. 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1416. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1417. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1418. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1,
  1419. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1420. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1421. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1422. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1423. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1424. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1425. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1426. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1427. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1428. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
  1429. };
  1430. if (p == endp) {
  1431. return s_n_llhttp__internal__n_chunk_extension_quoted_value;
  1432. }
  1433. switch (lookup_table[(uint8_t) *p]) {
  1434. case 1: {
  1435. p++;
  1436. goto s_n_llhttp__internal__n_chunk_extension_quoted_value;
  1437. }
  1438. case 2: {
  1439. p++;
  1440. goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_2;
  1441. }
  1442. case 3: {
  1443. p++;
  1444. goto s_n_llhttp__internal__n_chunk_extension_quoted_value_quoted_pair;
  1445. }
  1446. default: {
  1447. goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_4;
  1448. }
  1449. }
  1450. /* UNREACHABLE */;
  1451. abort();
  1452. }
  1453. case s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_3:
  1454. s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_3: {
  1455. switch (llhttp__on_chunk_extension_value_complete(state, p, endp)) {
  1456. case 0:
  1457. goto s_n_llhttp__internal__n_chunk_extensions;
  1458. case 21:
  1459. goto s_n_llhttp__internal__n_pause_11;
  1460. default:
  1461. goto s_n_llhttp__internal__n_error_32;
  1462. }
  1463. /* UNREACHABLE */;
  1464. abort();
  1465. }
  1466. case s_n_llhttp__internal__n_error_33:
  1467. s_n_llhttp__internal__n_error_33: {
  1468. state->error = 0x2;
  1469. state->reason = "Invalid character in chunk extensions value";
  1470. state->error_pos = (const char*) p;
  1471. state->_current = (void*) (intptr_t) s_error;
  1472. return s_error;
  1473. /* UNREACHABLE */;
  1474. abort();
  1475. }
  1476. case s_n_llhttp__internal__n_chunk_extension_value:
  1477. s_n_llhttp__internal__n_chunk_extension_value: {
  1478. static uint8_t lookup_table[] = {
  1479. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0,
  1480. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1481. 0, 3, 4, 3, 3, 3, 3, 3, 0, 0, 3, 3, 0, 3, 3, 0,
  1482. 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 5, 0, 0, 0, 0,
  1483. 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
  1484. 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 3, 3,
  1485. 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
  1486. 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 0, 3, 0,
  1487. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1488. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1489. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1490. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1491. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1492. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1493. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1494. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
  1495. };
  1496. if (p == endp) {
  1497. return s_n_llhttp__internal__n_chunk_extension_value;
  1498. }
  1499. switch (lookup_table[(uint8_t) *p]) {
  1500. case 1: {
  1501. goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value;
  1502. }
  1503. case 2: {
  1504. goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_1;
  1505. }
  1506. case 3: {
  1507. p++;
  1508. goto s_n_llhttp__internal__n_chunk_extension_value;
  1509. }
  1510. case 4: {
  1511. p++;
  1512. goto s_n_llhttp__internal__n_chunk_extension_quoted_value;
  1513. }
  1514. case 5: {
  1515. goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_5;
  1516. }
  1517. default: {
  1518. goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_6;
  1519. }
  1520. }
  1521. /* UNREACHABLE */;
  1522. abort();
  1523. }
  1524. case s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_value:
  1525. s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_value: {
  1526. if (p == endp) {
  1527. return s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_value;
  1528. }
  1529. state->_span_pos0 = (void*) p;
  1530. state->_span_cb0 = llhttp__on_chunk_extension_value;
  1531. goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_3;
  1532. /* UNREACHABLE */;
  1533. abort();
  1534. }
  1535. case s_n_llhttp__internal__n_error_34:
  1536. s_n_llhttp__internal__n_error_34: {
  1537. state->error = 0x2;
  1538. state->reason = "Invalid character in chunk extensions name";
  1539. state->error_pos = (const char*) p;
  1540. state->_current = (void*) (intptr_t) s_error;
  1541. return s_error;
  1542. /* UNREACHABLE */;
  1543. abort();
  1544. }
  1545. case s_n_llhttp__internal__n_chunk_extension_name:
  1546. s_n_llhttp__internal__n_chunk_extension_name: {
  1547. static uint8_t lookup_table[] = {
  1548. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0,
  1549. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1550. 0, 3, 0, 3, 3, 3, 3, 3, 0, 0, 3, 3, 0, 3, 3, 0,
  1551. 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 4, 0, 5, 0, 0,
  1552. 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
  1553. 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 3, 3,
  1554. 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
  1555. 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 0, 3, 0,
  1556. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1557. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1558. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1559. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1560. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1561. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1562. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1563. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
  1564. };
  1565. if (p == endp) {
  1566. return s_n_llhttp__internal__n_chunk_extension_name;
  1567. }
  1568. switch (lookup_table[(uint8_t) *p]) {
  1569. case 1: {
  1570. goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name;
  1571. }
  1572. case 2: {
  1573. goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name_1;
  1574. }
  1575. case 3: {
  1576. p++;
  1577. goto s_n_llhttp__internal__n_chunk_extension_name;
  1578. }
  1579. case 4: {
  1580. goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name_2;
  1581. }
  1582. case 5: {
  1583. goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name_3;
  1584. }
  1585. default: {
  1586. goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name_4;
  1587. }
  1588. }
  1589. /* UNREACHABLE */;
  1590. abort();
  1591. }
  1592. case s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_name:
  1593. s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_name: {
  1594. if (p == endp) {
  1595. return s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_name;
  1596. }
  1597. state->_span_pos0 = (void*) p;
  1598. state->_span_cb0 = llhttp__on_chunk_extension_name;
  1599. goto s_n_llhttp__internal__n_chunk_extension_name;
  1600. /* UNREACHABLE */;
  1601. abort();
  1602. }
  1603. case s_n_llhttp__internal__n_chunk_extensions:
  1604. s_n_llhttp__internal__n_chunk_extensions: {
  1605. if (p == endp) {
  1606. return s_n_llhttp__internal__n_chunk_extensions;
  1607. }
  1608. switch (*p) {
  1609. case 13: {
  1610. p++;
  1611. goto s_n_llhttp__internal__n_error_17;
  1612. }
  1613. case ' ': {
  1614. p++;
  1615. goto s_n_llhttp__internal__n_error_18;
  1616. }
  1617. default: {
  1618. goto s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_name;
  1619. }
  1620. }
  1621. /* UNREACHABLE */;
  1622. abort();
  1623. }
  1624. case s_n_llhttp__internal__n_chunk_size_otherwise:
  1625. s_n_llhttp__internal__n_chunk_size_otherwise: {
  1626. if (p == endp) {
  1627. return s_n_llhttp__internal__n_chunk_size_otherwise;
  1628. }
  1629. switch (*p) {
  1630. case 9: {
  1631. p++;
  1632. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_4;
  1633. }
  1634. case 10: {
  1635. p++;
  1636. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_5;
  1637. }
  1638. case 13: {
  1639. p++;
  1640. goto s_n_llhttp__internal__n_chunk_size_almost_done;
  1641. }
  1642. case ' ': {
  1643. p++;
  1644. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_4;
  1645. }
  1646. case ';': {
  1647. p++;
  1648. goto s_n_llhttp__internal__n_chunk_extensions;
  1649. }
  1650. default: {
  1651. goto s_n_llhttp__internal__n_error_35;
  1652. }
  1653. }
  1654. /* UNREACHABLE */;
  1655. abort();
  1656. }
  1657. case s_n_llhttp__internal__n_chunk_size:
  1658. s_n_llhttp__internal__n_chunk_size: {
  1659. if (p == endp) {
  1660. return s_n_llhttp__internal__n_chunk_size;
  1661. }
  1662. switch (*p) {
  1663. case '0': {
  1664. p++;
  1665. match = 0;
  1666. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1667. }
  1668. case '1': {
  1669. p++;
  1670. match = 1;
  1671. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1672. }
  1673. case '2': {
  1674. p++;
  1675. match = 2;
  1676. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1677. }
  1678. case '3': {
  1679. p++;
  1680. match = 3;
  1681. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1682. }
  1683. case '4': {
  1684. p++;
  1685. match = 4;
  1686. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1687. }
  1688. case '5': {
  1689. p++;
  1690. match = 5;
  1691. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1692. }
  1693. case '6': {
  1694. p++;
  1695. match = 6;
  1696. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1697. }
  1698. case '7': {
  1699. p++;
  1700. match = 7;
  1701. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1702. }
  1703. case '8': {
  1704. p++;
  1705. match = 8;
  1706. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1707. }
  1708. case '9': {
  1709. p++;
  1710. match = 9;
  1711. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1712. }
  1713. case 'A': {
  1714. p++;
  1715. match = 10;
  1716. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1717. }
  1718. case 'B': {
  1719. p++;
  1720. match = 11;
  1721. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1722. }
  1723. case 'C': {
  1724. p++;
  1725. match = 12;
  1726. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1727. }
  1728. case 'D': {
  1729. p++;
  1730. match = 13;
  1731. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1732. }
  1733. case 'E': {
  1734. p++;
  1735. match = 14;
  1736. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1737. }
  1738. case 'F': {
  1739. p++;
  1740. match = 15;
  1741. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1742. }
  1743. case 'a': {
  1744. p++;
  1745. match = 10;
  1746. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1747. }
  1748. case 'b': {
  1749. p++;
  1750. match = 11;
  1751. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1752. }
  1753. case 'c': {
  1754. p++;
  1755. match = 12;
  1756. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1757. }
  1758. case 'd': {
  1759. p++;
  1760. match = 13;
  1761. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1762. }
  1763. case 'e': {
  1764. p++;
  1765. match = 14;
  1766. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1767. }
  1768. case 'f': {
  1769. p++;
  1770. match = 15;
  1771. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1772. }
  1773. default: {
  1774. goto s_n_llhttp__internal__n_chunk_size_otherwise;
  1775. }
  1776. }
  1777. /* UNREACHABLE */;
  1778. abort();
  1779. }
  1780. case s_n_llhttp__internal__n_chunk_size_digit:
  1781. s_n_llhttp__internal__n_chunk_size_digit: {
  1782. if (p == endp) {
  1783. return s_n_llhttp__internal__n_chunk_size_digit;
  1784. }
  1785. switch (*p) {
  1786. case '0': {
  1787. p++;
  1788. match = 0;
  1789. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1790. }
  1791. case '1': {
  1792. p++;
  1793. match = 1;
  1794. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1795. }
  1796. case '2': {
  1797. p++;
  1798. match = 2;
  1799. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1800. }
  1801. case '3': {
  1802. p++;
  1803. match = 3;
  1804. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1805. }
  1806. case '4': {
  1807. p++;
  1808. match = 4;
  1809. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1810. }
  1811. case '5': {
  1812. p++;
  1813. match = 5;
  1814. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1815. }
  1816. case '6': {
  1817. p++;
  1818. match = 6;
  1819. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1820. }
  1821. case '7': {
  1822. p++;
  1823. match = 7;
  1824. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1825. }
  1826. case '8': {
  1827. p++;
  1828. match = 8;
  1829. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1830. }
  1831. case '9': {
  1832. p++;
  1833. match = 9;
  1834. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1835. }
  1836. case 'A': {
  1837. p++;
  1838. match = 10;
  1839. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1840. }
  1841. case 'B': {
  1842. p++;
  1843. match = 11;
  1844. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1845. }
  1846. case 'C': {
  1847. p++;
  1848. match = 12;
  1849. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1850. }
  1851. case 'D': {
  1852. p++;
  1853. match = 13;
  1854. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1855. }
  1856. case 'E': {
  1857. p++;
  1858. match = 14;
  1859. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1860. }
  1861. case 'F': {
  1862. p++;
  1863. match = 15;
  1864. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1865. }
  1866. case 'a': {
  1867. p++;
  1868. match = 10;
  1869. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1870. }
  1871. case 'b': {
  1872. p++;
  1873. match = 11;
  1874. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1875. }
  1876. case 'c': {
  1877. p++;
  1878. match = 12;
  1879. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1880. }
  1881. case 'd': {
  1882. p++;
  1883. match = 13;
  1884. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1885. }
  1886. case 'e': {
  1887. p++;
  1888. match = 14;
  1889. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1890. }
  1891. case 'f': {
  1892. p++;
  1893. match = 15;
  1894. goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
  1895. }
  1896. default: {
  1897. goto s_n_llhttp__internal__n_error_37;
  1898. }
  1899. }
  1900. /* UNREACHABLE */;
  1901. abort();
  1902. }
  1903. case s_n_llhttp__internal__n_invoke_update_content_length_1:
  1904. s_n_llhttp__internal__n_invoke_update_content_length_1: {
  1905. switch (llhttp__internal__c_update_content_length(state, p, endp)) {
  1906. default:
  1907. goto s_n_llhttp__internal__n_chunk_size_digit;
  1908. }
  1909. /* UNREACHABLE */;
  1910. abort();
  1911. }
  1912. case s_n_llhttp__internal__n_consume_content_length_1:
  1913. s_n_llhttp__internal__n_consume_content_length_1: {
  1914. size_t avail;
  1915. uint64_t need;
  1916. avail = endp - p;
  1917. need = state->content_length;
  1918. if (avail >= need) {
  1919. p += need;
  1920. state->content_length = 0;
  1921. goto s_n_llhttp__internal__n_span_end_llhttp__on_body_1;
  1922. }
  1923. state->content_length -= avail;
  1924. return s_n_llhttp__internal__n_consume_content_length_1;
  1925. /* UNREACHABLE */;
  1926. abort();
  1927. }
  1928. case s_n_llhttp__internal__n_span_start_llhttp__on_body_1:
  1929. s_n_llhttp__internal__n_span_start_llhttp__on_body_1: {
  1930. if (p == endp) {
  1931. return s_n_llhttp__internal__n_span_start_llhttp__on_body_1;
  1932. }
  1933. state->_span_pos0 = (void*) p;
  1934. state->_span_cb0 = llhttp__on_body;
  1935. goto s_n_llhttp__internal__n_consume_content_length_1;
  1936. /* UNREACHABLE */;
  1937. abort();
  1938. }
  1939. case s_n_llhttp__internal__n_eof:
  1940. s_n_llhttp__internal__n_eof: {
  1941. if (p == endp) {
  1942. return s_n_llhttp__internal__n_eof;
  1943. }
  1944. p++;
  1945. goto s_n_llhttp__internal__n_eof;
  1946. /* UNREACHABLE */;
  1947. abort();
  1948. }
  1949. case s_n_llhttp__internal__n_span_start_llhttp__on_body_2:
  1950. s_n_llhttp__internal__n_span_start_llhttp__on_body_2: {
  1951. if (p == endp) {
  1952. return s_n_llhttp__internal__n_span_start_llhttp__on_body_2;
  1953. }
  1954. state->_span_pos0 = (void*) p;
  1955. state->_span_cb0 = llhttp__on_body;
  1956. goto s_n_llhttp__internal__n_eof;
  1957. /* UNREACHABLE */;
  1958. abort();
  1959. }
  1960. case s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete:
  1961. s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete: {
  1962. switch (llhttp__after_headers_complete(state, p, endp)) {
  1963. case 1:
  1964. goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_1;
  1965. case 2:
  1966. goto s_n_llhttp__internal__n_invoke_update_content_length_1;
  1967. case 3:
  1968. goto s_n_llhttp__internal__n_span_start_llhttp__on_body_1;
  1969. case 4:
  1970. goto s_n_llhttp__internal__n_invoke_update_finish_3;
  1971. case 5:
  1972. goto s_n_llhttp__internal__n_error_39;
  1973. default:
  1974. goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete;
  1975. }
  1976. /* UNREACHABLE */;
  1977. abort();
  1978. }
  1979. case s_n_llhttp__internal__n_error_5:
  1980. s_n_llhttp__internal__n_error_5: {
  1981. state->error = 0xa;
  1982. state->reason = "Invalid header field char";
  1983. state->error_pos = (const char*) p;
  1984. state->_current = (void*) (intptr_t) s_error;
  1985. return s_error;
  1986. /* UNREACHABLE */;
  1987. abort();
  1988. }
  1989. case s_n_llhttp__internal__n_headers_almost_done:
  1990. s_n_llhttp__internal__n_headers_almost_done: {
  1991. if (p == endp) {
  1992. return s_n_llhttp__internal__n_headers_almost_done;
  1993. }
  1994. switch (*p) {
  1995. case 10: {
  1996. p++;
  1997. goto s_n_llhttp__internal__n_invoke_test_flags_1;
  1998. }
  1999. default: {
  2000. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_12;
  2001. }
  2002. }
  2003. /* UNREACHABLE */;
  2004. abort();
  2005. }
  2006. case s_n_llhttp__internal__n_header_field_colon_discard_ws:
  2007. s_n_llhttp__internal__n_header_field_colon_discard_ws: {
  2008. if (p == endp) {
  2009. return s_n_llhttp__internal__n_header_field_colon_discard_ws;
  2010. }
  2011. switch (*p) {
  2012. case ' ': {
  2013. p++;
  2014. goto s_n_llhttp__internal__n_header_field_colon_discard_ws;
  2015. }
  2016. default: {
  2017. goto s_n_llhttp__internal__n_header_field_colon;
  2018. }
  2019. }
  2020. /* UNREACHABLE */;
  2021. abort();
  2022. }
  2023. case s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete:
  2024. s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete: {
  2025. switch (llhttp__on_header_value_complete(state, p, endp)) {
  2026. case 0:
  2027. goto s_n_llhttp__internal__n_header_field_start;
  2028. case 21:
  2029. goto s_n_llhttp__internal__n_pause_18;
  2030. default:
  2031. goto s_n_llhttp__internal__n_error_47;
  2032. }
  2033. /* UNREACHABLE */;
  2034. abort();
  2035. }
  2036. case s_n_llhttp__internal__n_span_start_llhttp__on_header_value:
  2037. s_n_llhttp__internal__n_span_start_llhttp__on_header_value: {
  2038. if (p == endp) {
  2039. return s_n_llhttp__internal__n_span_start_llhttp__on_header_value;
  2040. }
  2041. state->_span_pos0 = (void*) p;
  2042. state->_span_cb0 = llhttp__on_header_value;
  2043. goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value;
  2044. /* UNREACHABLE */;
  2045. abort();
  2046. }
  2047. case s_n_llhttp__internal__n_header_value_discard_lws:
  2048. s_n_llhttp__internal__n_header_value_discard_lws: {
  2049. if (p == endp) {
  2050. return s_n_llhttp__internal__n_header_value_discard_lws;
  2051. }
  2052. switch (*p) {
  2053. case 9: {
  2054. p++;
  2055. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_15;
  2056. }
  2057. case ' ': {
  2058. p++;
  2059. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_15;
  2060. }
  2061. default: {
  2062. goto s_n_llhttp__internal__n_invoke_load_header_state_1;
  2063. }
  2064. }
  2065. /* UNREACHABLE */;
  2066. abort();
  2067. }
  2068. case s_n_llhttp__internal__n_header_value_discard_ws_almost_done:
  2069. s_n_llhttp__internal__n_header_value_discard_ws_almost_done: {
  2070. if (p == endp) {
  2071. return s_n_llhttp__internal__n_header_value_discard_ws_almost_done;
  2072. }
  2073. switch (*p) {
  2074. case 10: {
  2075. p++;
  2076. goto s_n_llhttp__internal__n_header_value_discard_lws;
  2077. }
  2078. default: {
  2079. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_16;
  2080. }
  2081. }
  2082. /* UNREACHABLE */;
  2083. abort();
  2084. }
  2085. case s_n_llhttp__internal__n_header_value_lws:
  2086. s_n_llhttp__internal__n_header_value_lws: {
  2087. if (p == endp) {
  2088. return s_n_llhttp__internal__n_header_value_lws;
  2089. }
  2090. switch (*p) {
  2091. case 9: {
  2092. goto s_n_llhttp__internal__n_invoke_load_header_state_4;
  2093. }
  2094. case ' ': {
  2095. goto s_n_llhttp__internal__n_invoke_load_header_state_4;
  2096. }
  2097. default: {
  2098. goto s_n_llhttp__internal__n_invoke_load_header_state_5;
  2099. }
  2100. }
  2101. /* UNREACHABLE */;
  2102. abort();
  2103. }
  2104. case s_n_llhttp__internal__n_header_value_almost_done:
  2105. s_n_llhttp__internal__n_header_value_almost_done: {
  2106. if (p == endp) {
  2107. return s_n_llhttp__internal__n_header_value_almost_done;
  2108. }
  2109. switch (*p) {
  2110. case 10: {
  2111. p++;
  2112. goto s_n_llhttp__internal__n_header_value_lws;
  2113. }
  2114. default: {
  2115. goto s_n_llhttp__internal__n_error_51;
  2116. }
  2117. }
  2118. /* UNREACHABLE */;
  2119. abort();
  2120. }
  2121. case s_n_llhttp__internal__n_invoke_test_lenient_flags_17:
  2122. s_n_llhttp__internal__n_invoke_test_lenient_flags_17: {
  2123. switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
  2124. case 1:
  2125. goto s_n_llhttp__internal__n_header_value_almost_done;
  2126. default:
  2127. goto s_n_llhttp__internal__n_error_50;
  2128. }
  2129. /* UNREACHABLE */;
  2130. abort();
  2131. }
  2132. case s_n_llhttp__internal__n_header_value_lenient:
  2133. s_n_llhttp__internal__n_header_value_lenient: {
  2134. if (p == endp) {
  2135. return s_n_llhttp__internal__n_header_value_lenient;
  2136. }
  2137. switch (*p) {
  2138. case 10: {
  2139. goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_4;
  2140. }
  2141. case 13: {
  2142. goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_5;
  2143. }
  2144. default: {
  2145. p++;
  2146. goto s_n_llhttp__internal__n_header_value_lenient;
  2147. }
  2148. }
  2149. /* UNREACHABLE */;
  2150. abort();
  2151. }
  2152. case s_n_llhttp__internal__n_error_52:
  2153. s_n_llhttp__internal__n_error_52: {
  2154. state->error = 0xa;
  2155. state->reason = "Invalid header value char";
  2156. state->error_pos = (const char*) p;
  2157. state->_current = (void*) (intptr_t) s_error;
  2158. return s_error;
  2159. /* UNREACHABLE */;
  2160. abort();
  2161. }
  2162. case s_n_llhttp__internal__n_header_value_otherwise:
  2163. s_n_llhttp__internal__n_header_value_otherwise: {
  2164. if (p == endp) {
  2165. return s_n_llhttp__internal__n_header_value_otherwise;
  2166. }
  2167. switch (*p) {
  2168. case 10: {
  2169. goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_1;
  2170. }
  2171. case 13: {
  2172. goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_2;
  2173. }
  2174. default: {
  2175. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_18;
  2176. }
  2177. }
  2178. /* UNREACHABLE */;
  2179. abort();
  2180. }
  2181. case s_n_llhttp__internal__n_header_value_connection_token:
  2182. s_n_llhttp__internal__n_header_value_connection_token: {
  2183. static uint8_t lookup_table[] = {
  2184. 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
  2185. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2186. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
  2187. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2188. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2189. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2190. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2191. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  2192. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2193. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2194. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2195. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2196. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2197. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2198. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2199. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
  2200. };
  2201. if (p == endp) {
  2202. return s_n_llhttp__internal__n_header_value_connection_token;
  2203. }
  2204. switch (lookup_table[(uint8_t) *p]) {
  2205. case 1: {
  2206. p++;
  2207. goto s_n_llhttp__internal__n_header_value_connection_token;
  2208. }
  2209. case 2: {
  2210. p++;
  2211. goto s_n_llhttp__internal__n_header_value_connection;
  2212. }
  2213. default: {
  2214. goto s_n_llhttp__internal__n_header_value_otherwise;
  2215. }
  2216. }
  2217. /* UNREACHABLE */;
  2218. abort();
  2219. }
  2220. case s_n_llhttp__internal__n_header_value_connection_ws:
  2221. s_n_llhttp__internal__n_header_value_connection_ws: {
  2222. if (p == endp) {
  2223. return s_n_llhttp__internal__n_header_value_connection_ws;
  2224. }
  2225. switch (*p) {
  2226. case 10: {
  2227. goto s_n_llhttp__internal__n_header_value_otherwise;
  2228. }
  2229. case 13: {
  2230. goto s_n_llhttp__internal__n_header_value_otherwise;
  2231. }
  2232. case ' ': {
  2233. p++;
  2234. goto s_n_llhttp__internal__n_header_value_connection_ws;
  2235. }
  2236. case ',': {
  2237. p++;
  2238. goto s_n_llhttp__internal__n_invoke_load_header_state_6;
  2239. }
  2240. default: {
  2241. goto s_n_llhttp__internal__n_invoke_update_header_state_5;
  2242. }
  2243. }
  2244. /* UNREACHABLE */;
  2245. abort();
  2246. }
  2247. case s_n_llhttp__internal__n_header_value_connection_1:
  2248. s_n_llhttp__internal__n_header_value_connection_1: {
  2249. llparse_match_t match_seq;
  2250. if (p == endp) {
  2251. return s_n_llhttp__internal__n_header_value_connection_1;
  2252. }
  2253. match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob2, 4);
  2254. p = match_seq.current;
  2255. switch (match_seq.status) {
  2256. case kMatchComplete: {
  2257. p++;
  2258. goto s_n_llhttp__internal__n_invoke_update_header_state_3;
  2259. }
  2260. case kMatchPause: {
  2261. return s_n_llhttp__internal__n_header_value_connection_1;
  2262. }
  2263. case kMatchMismatch: {
  2264. goto s_n_llhttp__internal__n_header_value_connection_token;
  2265. }
  2266. }
  2267. /* UNREACHABLE */;
  2268. abort();
  2269. }
  2270. case s_n_llhttp__internal__n_header_value_connection_2:
  2271. s_n_llhttp__internal__n_header_value_connection_2: {
  2272. llparse_match_t match_seq;
  2273. if (p == endp) {
  2274. return s_n_llhttp__internal__n_header_value_connection_2;
  2275. }
  2276. match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob3, 9);
  2277. p = match_seq.current;
  2278. switch (match_seq.status) {
  2279. case kMatchComplete: {
  2280. p++;
  2281. goto s_n_llhttp__internal__n_invoke_update_header_state_6;
  2282. }
  2283. case kMatchPause: {
  2284. return s_n_llhttp__internal__n_header_value_connection_2;
  2285. }
  2286. case kMatchMismatch: {
  2287. goto s_n_llhttp__internal__n_header_value_connection_token;
  2288. }
  2289. }
  2290. /* UNREACHABLE */;
  2291. abort();
  2292. }
  2293. case s_n_llhttp__internal__n_header_value_connection_3:
  2294. s_n_llhttp__internal__n_header_value_connection_3: {
  2295. llparse_match_t match_seq;
  2296. if (p == endp) {
  2297. return s_n_llhttp__internal__n_header_value_connection_3;
  2298. }
  2299. match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob4, 6);
  2300. p = match_seq.current;
  2301. switch (match_seq.status) {
  2302. case kMatchComplete: {
  2303. p++;
  2304. goto s_n_llhttp__internal__n_invoke_update_header_state_7;
  2305. }
  2306. case kMatchPause: {
  2307. return s_n_llhttp__internal__n_header_value_connection_3;
  2308. }
  2309. case kMatchMismatch: {
  2310. goto s_n_llhttp__internal__n_header_value_connection_token;
  2311. }
  2312. }
  2313. /* UNREACHABLE */;
  2314. abort();
  2315. }
  2316. case s_n_llhttp__internal__n_header_value_connection:
  2317. s_n_llhttp__internal__n_header_value_connection: {
  2318. if (p == endp) {
  2319. return s_n_llhttp__internal__n_header_value_connection;
  2320. }
  2321. switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) {
  2322. case 9: {
  2323. p++;
  2324. goto s_n_llhttp__internal__n_header_value_connection;
  2325. }
  2326. case ' ': {
  2327. p++;
  2328. goto s_n_llhttp__internal__n_header_value_connection;
  2329. }
  2330. case 'c': {
  2331. p++;
  2332. goto s_n_llhttp__internal__n_header_value_connection_1;
  2333. }
  2334. case 'k': {
  2335. p++;
  2336. goto s_n_llhttp__internal__n_header_value_connection_2;
  2337. }
  2338. case 'u': {
  2339. p++;
  2340. goto s_n_llhttp__internal__n_header_value_connection_3;
  2341. }
  2342. default: {
  2343. goto s_n_llhttp__internal__n_header_value_connection_token;
  2344. }
  2345. }
  2346. /* UNREACHABLE */;
  2347. abort();
  2348. }
  2349. case s_n_llhttp__internal__n_error_54:
  2350. s_n_llhttp__internal__n_error_54: {
  2351. state->error = 0xb;
  2352. state->reason = "Content-Length overflow";
  2353. state->error_pos = (const char*) p;
  2354. state->_current = (void*) (intptr_t) s_error;
  2355. return s_error;
  2356. /* UNREACHABLE */;
  2357. abort();
  2358. }
  2359. case s_n_llhttp__internal__n_error_55:
  2360. s_n_llhttp__internal__n_error_55: {
  2361. state->error = 0xb;
  2362. state->reason = "Invalid character in Content-Length";
  2363. state->error_pos = (const char*) p;
  2364. state->_current = (void*) (intptr_t) s_error;
  2365. return s_error;
  2366. /* UNREACHABLE */;
  2367. abort();
  2368. }
  2369. case s_n_llhttp__internal__n_header_value_content_length_ws:
  2370. s_n_llhttp__internal__n_header_value_content_length_ws: {
  2371. if (p == endp) {
  2372. return s_n_llhttp__internal__n_header_value_content_length_ws;
  2373. }
  2374. switch (*p) {
  2375. case 10: {
  2376. goto s_n_llhttp__internal__n_invoke_or_flags_17;
  2377. }
  2378. case 13: {
  2379. goto s_n_llhttp__internal__n_invoke_or_flags_17;
  2380. }
  2381. case ' ': {
  2382. p++;
  2383. goto s_n_llhttp__internal__n_header_value_content_length_ws;
  2384. }
  2385. default: {
  2386. goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_7;
  2387. }
  2388. }
  2389. /* UNREACHABLE */;
  2390. abort();
  2391. }
  2392. case s_n_llhttp__internal__n_header_value_content_length:
  2393. s_n_llhttp__internal__n_header_value_content_length: {
  2394. if (p == endp) {
  2395. return s_n_llhttp__internal__n_header_value_content_length;
  2396. }
  2397. switch (*p) {
  2398. case '0': {
  2399. p++;
  2400. match = 0;
  2401. goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
  2402. }
  2403. case '1': {
  2404. p++;
  2405. match = 1;
  2406. goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
  2407. }
  2408. case '2': {
  2409. p++;
  2410. match = 2;
  2411. goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
  2412. }
  2413. case '3': {
  2414. p++;
  2415. match = 3;
  2416. goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
  2417. }
  2418. case '4': {
  2419. p++;
  2420. match = 4;
  2421. goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
  2422. }
  2423. case '5': {
  2424. p++;
  2425. match = 5;
  2426. goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
  2427. }
  2428. case '6': {
  2429. p++;
  2430. match = 6;
  2431. goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
  2432. }
  2433. case '7': {
  2434. p++;
  2435. match = 7;
  2436. goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
  2437. }
  2438. case '8': {
  2439. p++;
  2440. match = 8;
  2441. goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
  2442. }
  2443. case '9': {
  2444. p++;
  2445. match = 9;
  2446. goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
  2447. }
  2448. default: {
  2449. goto s_n_llhttp__internal__n_header_value_content_length_ws;
  2450. }
  2451. }
  2452. /* UNREACHABLE */;
  2453. abort();
  2454. }
  2455. case s_n_llhttp__internal__n_error_57:
  2456. s_n_llhttp__internal__n_error_57: {
  2457. state->error = 0xf;
  2458. state->reason = "Invalid `Transfer-Encoding` header value";
  2459. state->error_pos = (const char*) p;
  2460. state->_current = (void*) (intptr_t) s_error;
  2461. return s_error;
  2462. /* UNREACHABLE */;
  2463. abort();
  2464. }
  2465. case s_n_llhttp__internal__n_error_56:
  2466. s_n_llhttp__internal__n_error_56: {
  2467. state->error = 0xf;
  2468. state->reason = "Invalid `Transfer-Encoding` header value";
  2469. state->error_pos = (const char*) p;
  2470. state->_current = (void*) (intptr_t) s_error;
  2471. return s_error;
  2472. /* UNREACHABLE */;
  2473. abort();
  2474. }
  2475. case s_n_llhttp__internal__n_header_value_te_token_ows:
  2476. s_n_llhttp__internal__n_header_value_te_token_ows: {
  2477. if (p == endp) {
  2478. return s_n_llhttp__internal__n_header_value_te_token_ows;
  2479. }
  2480. switch (*p) {
  2481. case 9: {
  2482. p++;
  2483. goto s_n_llhttp__internal__n_header_value_te_token_ows;
  2484. }
  2485. case ' ': {
  2486. p++;
  2487. goto s_n_llhttp__internal__n_header_value_te_token_ows;
  2488. }
  2489. default: {
  2490. goto s_n_llhttp__internal__n_header_value_te_chunked;
  2491. }
  2492. }
  2493. /* UNREACHABLE */;
  2494. abort();
  2495. }
  2496. case s_n_llhttp__internal__n_header_value:
  2497. s_n_llhttp__internal__n_header_value: {
  2498. static uint8_t lookup_table[] = {
  2499. 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
  2500. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2501. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2502. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2503. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2504. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2505. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2506. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  2507. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2508. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2509. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2510. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2511. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2512. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2513. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2514. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
  2515. };
  2516. if (p == endp) {
  2517. return s_n_llhttp__internal__n_header_value;
  2518. }
  2519. #ifdef __SSE4_2__
  2520. if (endp - p >= 16) {
  2521. __m128i ranges;
  2522. __m128i input;
  2523. int avail;
  2524. int match_len;
  2525. /* Load input */
  2526. input = _mm_loadu_si128((__m128i const*) p);
  2527. ranges = _mm_loadu_si128((__m128i const*) llparse_blob6);
  2528. /* Find first character that does not match `ranges` */
  2529. match_len = _mm_cmpestri(ranges, 6,
  2530. input, 16,
  2531. _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES |
  2532. _SIDD_NEGATIVE_POLARITY);
  2533. if (match_len != 0) {
  2534. p += match_len;
  2535. goto s_n_llhttp__internal__n_header_value;
  2536. }
  2537. goto s_n_llhttp__internal__n_header_value_otherwise;
  2538. }
  2539. #endif /* __SSE4_2__ */
  2540. switch (lookup_table[(uint8_t) *p]) {
  2541. case 1: {
  2542. p++;
  2543. goto s_n_llhttp__internal__n_header_value;
  2544. }
  2545. default: {
  2546. goto s_n_llhttp__internal__n_header_value_otherwise;
  2547. }
  2548. }
  2549. /* UNREACHABLE */;
  2550. abort();
  2551. }
  2552. case s_n_llhttp__internal__n_header_value_te_token:
  2553. s_n_llhttp__internal__n_header_value_te_token: {
  2554. static uint8_t lookup_table[] = {
  2555. 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
  2556. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2557. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
  2558. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2559. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2560. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2561. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2562. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  2563. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2564. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2565. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2566. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2567. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2568. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2569. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2570. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
  2571. };
  2572. if (p == endp) {
  2573. return s_n_llhttp__internal__n_header_value_te_token;
  2574. }
  2575. switch (lookup_table[(uint8_t) *p]) {
  2576. case 1: {
  2577. p++;
  2578. goto s_n_llhttp__internal__n_header_value_te_token;
  2579. }
  2580. case 2: {
  2581. p++;
  2582. goto s_n_llhttp__internal__n_header_value_te_token_ows;
  2583. }
  2584. default: {
  2585. goto s_n_llhttp__internal__n_invoke_update_header_state_9;
  2586. }
  2587. }
  2588. /* UNREACHABLE */;
  2589. abort();
  2590. }
  2591. case s_n_llhttp__internal__n_header_value_te_chunked_last:
  2592. s_n_llhttp__internal__n_header_value_te_chunked_last: {
  2593. if (p == endp) {
  2594. return s_n_llhttp__internal__n_header_value_te_chunked_last;
  2595. }
  2596. switch (*p) {
  2597. case 10: {
  2598. goto s_n_llhttp__internal__n_invoke_update_header_state_8;
  2599. }
  2600. case 13: {
  2601. goto s_n_llhttp__internal__n_invoke_update_header_state_8;
  2602. }
  2603. case ' ': {
  2604. p++;
  2605. goto s_n_llhttp__internal__n_header_value_te_chunked_last;
  2606. }
  2607. case ',': {
  2608. goto s_n_llhttp__internal__n_invoke_load_type_1;
  2609. }
  2610. default: {
  2611. goto s_n_llhttp__internal__n_header_value_te_token;
  2612. }
  2613. }
  2614. /* UNREACHABLE */;
  2615. abort();
  2616. }
  2617. case s_n_llhttp__internal__n_header_value_te_chunked:
  2618. s_n_llhttp__internal__n_header_value_te_chunked: {
  2619. llparse_match_t match_seq;
  2620. if (p == endp) {
  2621. return s_n_llhttp__internal__n_header_value_te_chunked;
  2622. }
  2623. match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob5, 7);
  2624. p = match_seq.current;
  2625. switch (match_seq.status) {
  2626. case kMatchComplete: {
  2627. p++;
  2628. goto s_n_llhttp__internal__n_header_value_te_chunked_last;
  2629. }
  2630. case kMatchPause: {
  2631. return s_n_llhttp__internal__n_header_value_te_chunked;
  2632. }
  2633. case kMatchMismatch: {
  2634. goto s_n_llhttp__internal__n_header_value_te_token;
  2635. }
  2636. }
  2637. /* UNREACHABLE */;
  2638. abort();
  2639. }
  2640. case s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1:
  2641. s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1: {
  2642. if (p == endp) {
  2643. return s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1;
  2644. }
  2645. state->_span_pos0 = (void*) p;
  2646. state->_span_cb0 = llhttp__on_header_value;
  2647. goto s_n_llhttp__internal__n_invoke_load_header_state_3;
  2648. /* UNREACHABLE */;
  2649. abort();
  2650. }
  2651. case s_n_llhttp__internal__n_header_value_discard_ws:
  2652. s_n_llhttp__internal__n_header_value_discard_ws: {
  2653. if (p == endp) {
  2654. return s_n_llhttp__internal__n_header_value_discard_ws;
  2655. }
  2656. switch (*p) {
  2657. case 9: {
  2658. p++;
  2659. goto s_n_llhttp__internal__n_header_value_discard_ws;
  2660. }
  2661. case 10: {
  2662. p++;
  2663. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_14;
  2664. }
  2665. case 13: {
  2666. p++;
  2667. goto s_n_llhttp__internal__n_header_value_discard_ws_almost_done;
  2668. }
  2669. case ' ': {
  2670. p++;
  2671. goto s_n_llhttp__internal__n_header_value_discard_ws;
  2672. }
  2673. default: {
  2674. goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1;
  2675. }
  2676. }
  2677. /* UNREACHABLE */;
  2678. abort();
  2679. }
  2680. case s_n_llhttp__internal__n_invoke_load_header_state:
  2681. s_n_llhttp__internal__n_invoke_load_header_state: {
  2682. switch (llhttp__internal__c_load_header_state(state, p, endp)) {
  2683. case 2:
  2684. goto s_n_llhttp__internal__n_invoke_test_flags_4;
  2685. case 3:
  2686. goto s_n_llhttp__internal__n_invoke_test_flags_5;
  2687. default:
  2688. goto s_n_llhttp__internal__n_header_value_discard_ws;
  2689. }
  2690. /* UNREACHABLE */;
  2691. abort();
  2692. }
  2693. case s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete:
  2694. s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete: {
  2695. switch (llhttp__on_header_field_complete(state, p, endp)) {
  2696. case 0:
  2697. goto s_n_llhttp__internal__n_invoke_load_header_state;
  2698. case 21:
  2699. goto s_n_llhttp__internal__n_pause_19;
  2700. default:
  2701. goto s_n_llhttp__internal__n_error_44;
  2702. }
  2703. /* UNREACHABLE */;
  2704. abort();
  2705. }
  2706. case s_n_llhttp__internal__n_header_field_general_otherwise:
  2707. s_n_llhttp__internal__n_header_field_general_otherwise: {
  2708. if (p == endp) {
  2709. return s_n_llhttp__internal__n_header_field_general_otherwise;
  2710. }
  2711. switch (*p) {
  2712. case ':': {
  2713. goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field_2;
  2714. }
  2715. default: {
  2716. goto s_n_llhttp__internal__n_error_60;
  2717. }
  2718. }
  2719. /* UNREACHABLE */;
  2720. abort();
  2721. }
  2722. case s_n_llhttp__internal__n_header_field_general:
  2723. s_n_llhttp__internal__n_header_field_general: {
  2724. static uint8_t lookup_table[] = {
  2725. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2726. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2727. 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,
  2728. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
  2729. 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2730. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,
  2731. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  2732. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,
  2733. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2734. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2735. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2736. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2737. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2738. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2739. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2740. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
  2741. };
  2742. if (p == endp) {
  2743. return s_n_llhttp__internal__n_header_field_general;
  2744. }
  2745. #ifdef __SSE4_2__
  2746. if (endp - p >= 16) {
  2747. __m128i ranges;
  2748. __m128i input;
  2749. int avail;
  2750. int match_len;
  2751. /* Load input */
  2752. input = _mm_loadu_si128((__m128i const*) p);
  2753. ranges = _mm_loadu_si128((__m128i const*) llparse_blob7);
  2754. /* Find first character that does not match `ranges` */
  2755. match_len = _mm_cmpestri(ranges, 16,
  2756. input, 16,
  2757. _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES |
  2758. _SIDD_NEGATIVE_POLARITY);
  2759. if (match_len != 0) {
  2760. p += match_len;
  2761. goto s_n_llhttp__internal__n_header_field_general;
  2762. }
  2763. ranges = _mm_loadu_si128((__m128i const*) llparse_blob8);
  2764. /* Find first character that does not match `ranges` */
  2765. match_len = _mm_cmpestri(ranges, 2,
  2766. input, 16,
  2767. _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES |
  2768. _SIDD_NEGATIVE_POLARITY);
  2769. if (match_len != 0) {
  2770. p += match_len;
  2771. goto s_n_llhttp__internal__n_header_field_general;
  2772. }
  2773. goto s_n_llhttp__internal__n_header_field_general_otherwise;
  2774. }
  2775. #endif /* __SSE4_2__ */
  2776. switch (lookup_table[(uint8_t) *p]) {
  2777. case 1: {
  2778. p++;
  2779. goto s_n_llhttp__internal__n_header_field_general;
  2780. }
  2781. default: {
  2782. goto s_n_llhttp__internal__n_header_field_general_otherwise;
  2783. }
  2784. }
  2785. /* UNREACHABLE */;
  2786. abort();
  2787. }
  2788. case s_n_llhttp__internal__n_header_field_colon:
  2789. s_n_llhttp__internal__n_header_field_colon: {
  2790. if (p == endp) {
  2791. return s_n_llhttp__internal__n_header_field_colon;
  2792. }
  2793. switch (*p) {
  2794. case ' ': {
  2795. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_13;
  2796. }
  2797. case ':': {
  2798. goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field_1;
  2799. }
  2800. default: {
  2801. goto s_n_llhttp__internal__n_invoke_update_header_state_10;
  2802. }
  2803. }
  2804. /* UNREACHABLE */;
  2805. abort();
  2806. }
  2807. case s_n_llhttp__internal__n_header_field_3:
  2808. s_n_llhttp__internal__n_header_field_3: {
  2809. llparse_match_t match_seq;
  2810. if (p == endp) {
  2811. return s_n_llhttp__internal__n_header_field_3;
  2812. }
  2813. match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob1, 6);
  2814. p = match_seq.current;
  2815. switch (match_seq.status) {
  2816. case kMatchComplete: {
  2817. p++;
  2818. match = 1;
  2819. goto s_n_llhttp__internal__n_invoke_store_header_state;
  2820. }
  2821. case kMatchPause: {
  2822. return s_n_llhttp__internal__n_header_field_3;
  2823. }
  2824. case kMatchMismatch: {
  2825. goto s_n_llhttp__internal__n_invoke_update_header_state_11;
  2826. }
  2827. }
  2828. /* UNREACHABLE */;
  2829. abort();
  2830. }
  2831. case s_n_llhttp__internal__n_header_field_4:
  2832. s_n_llhttp__internal__n_header_field_4: {
  2833. llparse_match_t match_seq;
  2834. if (p == endp) {
  2835. return s_n_llhttp__internal__n_header_field_4;
  2836. }
  2837. match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob9, 10);
  2838. p = match_seq.current;
  2839. switch (match_seq.status) {
  2840. case kMatchComplete: {
  2841. p++;
  2842. match = 2;
  2843. goto s_n_llhttp__internal__n_invoke_store_header_state;
  2844. }
  2845. case kMatchPause: {
  2846. return s_n_llhttp__internal__n_header_field_4;
  2847. }
  2848. case kMatchMismatch: {
  2849. goto s_n_llhttp__internal__n_invoke_update_header_state_11;
  2850. }
  2851. }
  2852. /* UNREACHABLE */;
  2853. abort();
  2854. }
  2855. case s_n_llhttp__internal__n_header_field_2:
  2856. s_n_llhttp__internal__n_header_field_2: {
  2857. if (p == endp) {
  2858. return s_n_llhttp__internal__n_header_field_2;
  2859. }
  2860. switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) {
  2861. case 'n': {
  2862. p++;
  2863. goto s_n_llhttp__internal__n_header_field_3;
  2864. }
  2865. case 't': {
  2866. p++;
  2867. goto s_n_llhttp__internal__n_header_field_4;
  2868. }
  2869. default: {
  2870. goto s_n_llhttp__internal__n_invoke_update_header_state_11;
  2871. }
  2872. }
  2873. /* UNREACHABLE */;
  2874. abort();
  2875. }
  2876. case s_n_llhttp__internal__n_header_field_1:
  2877. s_n_llhttp__internal__n_header_field_1: {
  2878. llparse_match_t match_seq;
  2879. if (p == endp) {
  2880. return s_n_llhttp__internal__n_header_field_1;
  2881. }
  2882. match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob0, 2);
  2883. p = match_seq.current;
  2884. switch (match_seq.status) {
  2885. case kMatchComplete: {
  2886. p++;
  2887. goto s_n_llhttp__internal__n_header_field_2;
  2888. }
  2889. case kMatchPause: {
  2890. return s_n_llhttp__internal__n_header_field_1;
  2891. }
  2892. case kMatchMismatch: {
  2893. goto s_n_llhttp__internal__n_invoke_update_header_state_11;
  2894. }
  2895. }
  2896. /* UNREACHABLE */;
  2897. abort();
  2898. }
  2899. case s_n_llhttp__internal__n_header_field_5:
  2900. s_n_llhttp__internal__n_header_field_5: {
  2901. llparse_match_t match_seq;
  2902. if (p == endp) {
  2903. return s_n_llhttp__internal__n_header_field_5;
  2904. }
  2905. match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob10, 15);
  2906. p = match_seq.current;
  2907. switch (match_seq.status) {
  2908. case kMatchComplete: {
  2909. p++;
  2910. match = 1;
  2911. goto s_n_llhttp__internal__n_invoke_store_header_state;
  2912. }
  2913. case kMatchPause: {
  2914. return s_n_llhttp__internal__n_header_field_5;
  2915. }
  2916. case kMatchMismatch: {
  2917. goto s_n_llhttp__internal__n_invoke_update_header_state_11;
  2918. }
  2919. }
  2920. /* UNREACHABLE */;
  2921. abort();
  2922. }
  2923. case s_n_llhttp__internal__n_header_field_6:
  2924. s_n_llhttp__internal__n_header_field_6: {
  2925. llparse_match_t match_seq;
  2926. if (p == endp) {
  2927. return s_n_llhttp__internal__n_header_field_6;
  2928. }
  2929. match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob11, 16);
  2930. p = match_seq.current;
  2931. switch (match_seq.status) {
  2932. case kMatchComplete: {
  2933. p++;
  2934. match = 3;
  2935. goto s_n_llhttp__internal__n_invoke_store_header_state;
  2936. }
  2937. case kMatchPause: {
  2938. return s_n_llhttp__internal__n_header_field_6;
  2939. }
  2940. case kMatchMismatch: {
  2941. goto s_n_llhttp__internal__n_invoke_update_header_state_11;
  2942. }
  2943. }
  2944. /* UNREACHABLE */;
  2945. abort();
  2946. }
  2947. case s_n_llhttp__internal__n_header_field_7:
  2948. s_n_llhttp__internal__n_header_field_7: {
  2949. llparse_match_t match_seq;
  2950. if (p == endp) {
  2951. return s_n_llhttp__internal__n_header_field_7;
  2952. }
  2953. match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob12, 6);
  2954. p = match_seq.current;
  2955. switch (match_seq.status) {
  2956. case kMatchComplete: {
  2957. p++;
  2958. match = 4;
  2959. goto s_n_llhttp__internal__n_invoke_store_header_state;
  2960. }
  2961. case kMatchPause: {
  2962. return s_n_llhttp__internal__n_header_field_7;
  2963. }
  2964. case kMatchMismatch: {
  2965. goto s_n_llhttp__internal__n_invoke_update_header_state_11;
  2966. }
  2967. }
  2968. /* UNREACHABLE */;
  2969. abort();
  2970. }
  2971. case s_n_llhttp__internal__n_header_field:
  2972. s_n_llhttp__internal__n_header_field: {
  2973. if (p == endp) {
  2974. return s_n_llhttp__internal__n_header_field;
  2975. }
  2976. switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) {
  2977. case 'c': {
  2978. p++;
  2979. goto s_n_llhttp__internal__n_header_field_1;
  2980. }
  2981. case 'p': {
  2982. p++;
  2983. goto s_n_llhttp__internal__n_header_field_5;
  2984. }
  2985. case 't': {
  2986. p++;
  2987. goto s_n_llhttp__internal__n_header_field_6;
  2988. }
  2989. case 'u': {
  2990. p++;
  2991. goto s_n_llhttp__internal__n_header_field_7;
  2992. }
  2993. default: {
  2994. goto s_n_llhttp__internal__n_invoke_update_header_state_11;
  2995. }
  2996. }
  2997. /* UNREACHABLE */;
  2998. abort();
  2999. }
  3000. case s_n_llhttp__internal__n_span_start_llhttp__on_header_field:
  3001. s_n_llhttp__internal__n_span_start_llhttp__on_header_field: {
  3002. if (p == endp) {
  3003. return s_n_llhttp__internal__n_span_start_llhttp__on_header_field;
  3004. }
  3005. state->_span_pos0 = (void*) p;
  3006. state->_span_cb0 = llhttp__on_header_field;
  3007. goto s_n_llhttp__internal__n_header_field;
  3008. /* UNREACHABLE */;
  3009. abort();
  3010. }
  3011. case s_n_llhttp__internal__n_header_field_start:
  3012. s_n_llhttp__internal__n_header_field_start: {
  3013. if (p == endp) {
  3014. return s_n_llhttp__internal__n_header_field_start;
  3015. }
  3016. switch (*p) {
  3017. case 10: {
  3018. p++;
  3019. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_1;
  3020. }
  3021. case 13: {
  3022. p++;
  3023. goto s_n_llhttp__internal__n_headers_almost_done;
  3024. }
  3025. default: {
  3026. goto s_n_llhttp__internal__n_span_start_llhttp__on_header_field;
  3027. }
  3028. }
  3029. /* UNREACHABLE */;
  3030. abort();
  3031. }
  3032. case s_n_llhttp__internal__n_headers_start:
  3033. s_n_llhttp__internal__n_headers_start: {
  3034. if (p == endp) {
  3035. return s_n_llhttp__internal__n_headers_start;
  3036. }
  3037. switch (*p) {
  3038. case ' ': {
  3039. p++;
  3040. goto s_n_llhttp__internal__n_invoke_test_lenient_flags;
  3041. }
  3042. default: {
  3043. goto s_n_llhttp__internal__n_header_field_start;
  3044. }
  3045. }
  3046. /* UNREACHABLE */;
  3047. abort();
  3048. }
  3049. case s_n_llhttp__internal__n_url_to_http_09:
  3050. s_n_llhttp__internal__n_url_to_http_09: {
  3051. if (p == endp) {
  3052. return s_n_llhttp__internal__n_url_to_http_09;
  3053. }
  3054. switch (*p) {
  3055. case 9: {
  3056. p++;
  3057. goto s_n_llhttp__internal__n_error_2;
  3058. }
  3059. case 12: {
  3060. p++;
  3061. goto s_n_llhttp__internal__n_error_2;
  3062. }
  3063. default: {
  3064. goto s_n_llhttp__internal__n_invoke_update_http_major;
  3065. }
  3066. }
  3067. /* UNREACHABLE */;
  3068. abort();
  3069. }
  3070. case s_n_llhttp__internal__n_url_skip_to_http09:
  3071. s_n_llhttp__internal__n_url_skip_to_http09: {
  3072. if (p == endp) {
  3073. return s_n_llhttp__internal__n_url_skip_to_http09;
  3074. }
  3075. switch (*p) {
  3076. case 9: {
  3077. p++;
  3078. goto s_n_llhttp__internal__n_error_2;
  3079. }
  3080. case 12: {
  3081. p++;
  3082. goto s_n_llhttp__internal__n_error_2;
  3083. }
  3084. default: {
  3085. p++;
  3086. goto s_n_llhttp__internal__n_url_to_http_09;
  3087. }
  3088. }
  3089. /* UNREACHABLE */;
  3090. abort();
  3091. }
  3092. case s_n_llhttp__internal__n_url_skip_lf_to_http09_1:
  3093. s_n_llhttp__internal__n_url_skip_lf_to_http09_1: {
  3094. if (p == endp) {
  3095. return s_n_llhttp__internal__n_url_skip_lf_to_http09_1;
  3096. }
  3097. switch (*p) {
  3098. case 10: {
  3099. p++;
  3100. goto s_n_llhttp__internal__n_url_to_http_09;
  3101. }
  3102. default: {
  3103. goto s_n_llhttp__internal__n_error_61;
  3104. }
  3105. }
  3106. /* UNREACHABLE */;
  3107. abort();
  3108. }
  3109. case s_n_llhttp__internal__n_url_skip_lf_to_http09:
  3110. s_n_llhttp__internal__n_url_skip_lf_to_http09: {
  3111. if (p == endp) {
  3112. return s_n_llhttp__internal__n_url_skip_lf_to_http09;
  3113. }
  3114. switch (*p) {
  3115. case 9: {
  3116. p++;
  3117. goto s_n_llhttp__internal__n_error_2;
  3118. }
  3119. case 12: {
  3120. p++;
  3121. goto s_n_llhttp__internal__n_error_2;
  3122. }
  3123. case 13: {
  3124. p++;
  3125. goto s_n_llhttp__internal__n_url_skip_lf_to_http09_1;
  3126. }
  3127. default: {
  3128. goto s_n_llhttp__internal__n_error_61;
  3129. }
  3130. }
  3131. /* UNREACHABLE */;
  3132. abort();
  3133. }
  3134. case s_n_llhttp__internal__n_req_pri_upgrade:
  3135. s_n_llhttp__internal__n_req_pri_upgrade: {
  3136. llparse_match_t match_seq;
  3137. if (p == endp) {
  3138. return s_n_llhttp__internal__n_req_pri_upgrade;
  3139. }
  3140. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob14, 10);
  3141. p = match_seq.current;
  3142. switch (match_seq.status) {
  3143. case kMatchComplete: {
  3144. p++;
  3145. goto s_n_llhttp__internal__n_error_69;
  3146. }
  3147. case kMatchPause: {
  3148. return s_n_llhttp__internal__n_req_pri_upgrade;
  3149. }
  3150. case kMatchMismatch: {
  3151. goto s_n_llhttp__internal__n_error_70;
  3152. }
  3153. }
  3154. /* UNREACHABLE */;
  3155. abort();
  3156. }
  3157. case s_n_llhttp__internal__n_req_http_complete_crlf:
  3158. s_n_llhttp__internal__n_req_http_complete_crlf: {
  3159. if (p == endp) {
  3160. return s_n_llhttp__internal__n_req_http_complete_crlf;
  3161. }
  3162. switch (*p) {
  3163. case 10: {
  3164. p++;
  3165. goto s_n_llhttp__internal__n_headers_start;
  3166. }
  3167. default: {
  3168. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_25;
  3169. }
  3170. }
  3171. /* UNREACHABLE */;
  3172. abort();
  3173. }
  3174. case s_n_llhttp__internal__n_req_http_complete:
  3175. s_n_llhttp__internal__n_req_http_complete: {
  3176. if (p == endp) {
  3177. return s_n_llhttp__internal__n_req_http_complete;
  3178. }
  3179. switch (*p) {
  3180. case 10: {
  3181. p++;
  3182. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_24;
  3183. }
  3184. case 13: {
  3185. p++;
  3186. goto s_n_llhttp__internal__n_req_http_complete_crlf;
  3187. }
  3188. default: {
  3189. goto s_n_llhttp__internal__n_error_68;
  3190. }
  3191. }
  3192. /* UNREACHABLE */;
  3193. abort();
  3194. }
  3195. case s_n_llhttp__internal__n_invoke_load_method_1:
  3196. s_n_llhttp__internal__n_invoke_load_method_1: {
  3197. switch (llhttp__internal__c_load_method(state, p, endp)) {
  3198. case 34:
  3199. goto s_n_llhttp__internal__n_req_pri_upgrade;
  3200. default:
  3201. goto s_n_llhttp__internal__n_req_http_complete;
  3202. }
  3203. /* UNREACHABLE */;
  3204. abort();
  3205. }
  3206. case s_n_llhttp__internal__n_invoke_llhttp__on_version_complete:
  3207. s_n_llhttp__internal__n_invoke_llhttp__on_version_complete: {
  3208. switch (llhttp__on_version_complete(state, p, endp)) {
  3209. case 0:
  3210. goto s_n_llhttp__internal__n_invoke_load_method_1;
  3211. case 21:
  3212. goto s_n_llhttp__internal__n_pause_21;
  3213. default:
  3214. goto s_n_llhttp__internal__n_error_65;
  3215. }
  3216. /* UNREACHABLE */;
  3217. abort();
  3218. }
  3219. case s_n_llhttp__internal__n_error_64:
  3220. s_n_llhttp__internal__n_error_64: {
  3221. state->error = 0x9;
  3222. state->reason = "Invalid HTTP version";
  3223. state->error_pos = (const char*) p;
  3224. state->_current = (void*) (intptr_t) s_error;
  3225. return s_error;
  3226. /* UNREACHABLE */;
  3227. abort();
  3228. }
  3229. case s_n_llhttp__internal__n_error_71:
  3230. s_n_llhttp__internal__n_error_71: {
  3231. state->error = 0x9;
  3232. state->reason = "Invalid minor version";
  3233. state->error_pos = (const char*) p;
  3234. state->_current = (void*) (intptr_t) s_error;
  3235. return s_error;
  3236. /* UNREACHABLE */;
  3237. abort();
  3238. }
  3239. case s_n_llhttp__internal__n_req_http_minor:
  3240. s_n_llhttp__internal__n_req_http_minor: {
  3241. if (p == endp) {
  3242. return s_n_llhttp__internal__n_req_http_minor;
  3243. }
  3244. switch (*p) {
  3245. case '0': {
  3246. p++;
  3247. match = 0;
  3248. goto s_n_llhttp__internal__n_invoke_store_http_minor;
  3249. }
  3250. case '1': {
  3251. p++;
  3252. match = 1;
  3253. goto s_n_llhttp__internal__n_invoke_store_http_minor;
  3254. }
  3255. case '2': {
  3256. p++;
  3257. match = 2;
  3258. goto s_n_llhttp__internal__n_invoke_store_http_minor;
  3259. }
  3260. case '3': {
  3261. p++;
  3262. match = 3;
  3263. goto s_n_llhttp__internal__n_invoke_store_http_minor;
  3264. }
  3265. case '4': {
  3266. p++;
  3267. match = 4;
  3268. goto s_n_llhttp__internal__n_invoke_store_http_minor;
  3269. }
  3270. case '5': {
  3271. p++;
  3272. match = 5;
  3273. goto s_n_llhttp__internal__n_invoke_store_http_minor;
  3274. }
  3275. case '6': {
  3276. p++;
  3277. match = 6;
  3278. goto s_n_llhttp__internal__n_invoke_store_http_minor;
  3279. }
  3280. case '7': {
  3281. p++;
  3282. match = 7;
  3283. goto s_n_llhttp__internal__n_invoke_store_http_minor;
  3284. }
  3285. case '8': {
  3286. p++;
  3287. match = 8;
  3288. goto s_n_llhttp__internal__n_invoke_store_http_minor;
  3289. }
  3290. case '9': {
  3291. p++;
  3292. match = 9;
  3293. goto s_n_llhttp__internal__n_invoke_store_http_minor;
  3294. }
  3295. default: {
  3296. goto s_n_llhttp__internal__n_span_end_llhttp__on_version_2;
  3297. }
  3298. }
  3299. /* UNREACHABLE */;
  3300. abort();
  3301. }
  3302. case s_n_llhttp__internal__n_error_72:
  3303. s_n_llhttp__internal__n_error_72: {
  3304. state->error = 0x9;
  3305. state->reason = "Expected dot";
  3306. state->error_pos = (const char*) p;
  3307. state->_current = (void*) (intptr_t) s_error;
  3308. return s_error;
  3309. /* UNREACHABLE */;
  3310. abort();
  3311. }
  3312. case s_n_llhttp__internal__n_req_http_dot:
  3313. s_n_llhttp__internal__n_req_http_dot: {
  3314. if (p == endp) {
  3315. return s_n_llhttp__internal__n_req_http_dot;
  3316. }
  3317. switch (*p) {
  3318. case '.': {
  3319. p++;
  3320. goto s_n_llhttp__internal__n_req_http_minor;
  3321. }
  3322. default: {
  3323. goto s_n_llhttp__internal__n_span_end_llhttp__on_version_3;
  3324. }
  3325. }
  3326. /* UNREACHABLE */;
  3327. abort();
  3328. }
  3329. case s_n_llhttp__internal__n_error_73:
  3330. s_n_llhttp__internal__n_error_73: {
  3331. state->error = 0x9;
  3332. state->reason = "Invalid major version";
  3333. state->error_pos = (const char*) p;
  3334. state->_current = (void*) (intptr_t) s_error;
  3335. return s_error;
  3336. /* UNREACHABLE */;
  3337. abort();
  3338. }
  3339. case s_n_llhttp__internal__n_req_http_major:
  3340. s_n_llhttp__internal__n_req_http_major: {
  3341. if (p == endp) {
  3342. return s_n_llhttp__internal__n_req_http_major;
  3343. }
  3344. switch (*p) {
  3345. case '0': {
  3346. p++;
  3347. match = 0;
  3348. goto s_n_llhttp__internal__n_invoke_store_http_major;
  3349. }
  3350. case '1': {
  3351. p++;
  3352. match = 1;
  3353. goto s_n_llhttp__internal__n_invoke_store_http_major;
  3354. }
  3355. case '2': {
  3356. p++;
  3357. match = 2;
  3358. goto s_n_llhttp__internal__n_invoke_store_http_major;
  3359. }
  3360. case '3': {
  3361. p++;
  3362. match = 3;
  3363. goto s_n_llhttp__internal__n_invoke_store_http_major;
  3364. }
  3365. case '4': {
  3366. p++;
  3367. match = 4;
  3368. goto s_n_llhttp__internal__n_invoke_store_http_major;
  3369. }
  3370. case '5': {
  3371. p++;
  3372. match = 5;
  3373. goto s_n_llhttp__internal__n_invoke_store_http_major;
  3374. }
  3375. case '6': {
  3376. p++;
  3377. match = 6;
  3378. goto s_n_llhttp__internal__n_invoke_store_http_major;
  3379. }
  3380. case '7': {
  3381. p++;
  3382. match = 7;
  3383. goto s_n_llhttp__internal__n_invoke_store_http_major;
  3384. }
  3385. case '8': {
  3386. p++;
  3387. match = 8;
  3388. goto s_n_llhttp__internal__n_invoke_store_http_major;
  3389. }
  3390. case '9': {
  3391. p++;
  3392. match = 9;
  3393. goto s_n_llhttp__internal__n_invoke_store_http_major;
  3394. }
  3395. default: {
  3396. goto s_n_llhttp__internal__n_span_end_llhttp__on_version_4;
  3397. }
  3398. }
  3399. /* UNREACHABLE */;
  3400. abort();
  3401. }
  3402. case s_n_llhttp__internal__n_span_start_llhttp__on_version:
  3403. s_n_llhttp__internal__n_span_start_llhttp__on_version: {
  3404. if (p == endp) {
  3405. return s_n_llhttp__internal__n_span_start_llhttp__on_version;
  3406. }
  3407. state->_span_pos0 = (void*) p;
  3408. state->_span_cb0 = llhttp__on_version;
  3409. goto s_n_llhttp__internal__n_req_http_major;
  3410. /* UNREACHABLE */;
  3411. abort();
  3412. }
  3413. case s_n_llhttp__internal__n_req_http_start_1:
  3414. s_n_llhttp__internal__n_req_http_start_1: {
  3415. llparse_match_t match_seq;
  3416. if (p == endp) {
  3417. return s_n_llhttp__internal__n_req_http_start_1;
  3418. }
  3419. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob13, 4);
  3420. p = match_seq.current;
  3421. switch (match_seq.status) {
  3422. case kMatchComplete: {
  3423. p++;
  3424. goto s_n_llhttp__internal__n_invoke_load_method;
  3425. }
  3426. case kMatchPause: {
  3427. return s_n_llhttp__internal__n_req_http_start_1;
  3428. }
  3429. case kMatchMismatch: {
  3430. goto s_n_llhttp__internal__n_error_76;
  3431. }
  3432. }
  3433. /* UNREACHABLE */;
  3434. abort();
  3435. }
  3436. case s_n_llhttp__internal__n_req_http_start_2:
  3437. s_n_llhttp__internal__n_req_http_start_2: {
  3438. llparse_match_t match_seq;
  3439. if (p == endp) {
  3440. return s_n_llhttp__internal__n_req_http_start_2;
  3441. }
  3442. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob15, 3);
  3443. p = match_seq.current;
  3444. switch (match_seq.status) {
  3445. case kMatchComplete: {
  3446. p++;
  3447. goto s_n_llhttp__internal__n_invoke_load_method_2;
  3448. }
  3449. case kMatchPause: {
  3450. return s_n_llhttp__internal__n_req_http_start_2;
  3451. }
  3452. case kMatchMismatch: {
  3453. goto s_n_llhttp__internal__n_error_76;
  3454. }
  3455. }
  3456. /* UNREACHABLE */;
  3457. abort();
  3458. }
  3459. case s_n_llhttp__internal__n_req_http_start_3:
  3460. s_n_llhttp__internal__n_req_http_start_3: {
  3461. llparse_match_t match_seq;
  3462. if (p == endp) {
  3463. return s_n_llhttp__internal__n_req_http_start_3;
  3464. }
  3465. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob16, 4);
  3466. p = match_seq.current;
  3467. switch (match_seq.status) {
  3468. case kMatchComplete: {
  3469. p++;
  3470. goto s_n_llhttp__internal__n_invoke_load_method_3;
  3471. }
  3472. case kMatchPause: {
  3473. return s_n_llhttp__internal__n_req_http_start_3;
  3474. }
  3475. case kMatchMismatch: {
  3476. goto s_n_llhttp__internal__n_error_76;
  3477. }
  3478. }
  3479. /* UNREACHABLE */;
  3480. abort();
  3481. }
  3482. case s_n_llhttp__internal__n_req_http_start:
  3483. s_n_llhttp__internal__n_req_http_start: {
  3484. if (p == endp) {
  3485. return s_n_llhttp__internal__n_req_http_start;
  3486. }
  3487. switch (*p) {
  3488. case ' ': {
  3489. p++;
  3490. goto s_n_llhttp__internal__n_req_http_start;
  3491. }
  3492. case 'H': {
  3493. p++;
  3494. goto s_n_llhttp__internal__n_req_http_start_1;
  3495. }
  3496. case 'I': {
  3497. p++;
  3498. goto s_n_llhttp__internal__n_req_http_start_2;
  3499. }
  3500. case 'R': {
  3501. p++;
  3502. goto s_n_llhttp__internal__n_req_http_start_3;
  3503. }
  3504. default: {
  3505. goto s_n_llhttp__internal__n_error_76;
  3506. }
  3507. }
  3508. /* UNREACHABLE */;
  3509. abort();
  3510. }
  3511. case s_n_llhttp__internal__n_url_to_http:
  3512. s_n_llhttp__internal__n_url_to_http: {
  3513. if (p == endp) {
  3514. return s_n_llhttp__internal__n_url_to_http;
  3515. }
  3516. switch (*p) {
  3517. case 9: {
  3518. p++;
  3519. goto s_n_llhttp__internal__n_error_2;
  3520. }
  3521. case 12: {
  3522. p++;
  3523. goto s_n_llhttp__internal__n_error_2;
  3524. }
  3525. default: {
  3526. goto s_n_llhttp__internal__n_invoke_llhttp__on_url_complete_1;
  3527. }
  3528. }
  3529. /* UNREACHABLE */;
  3530. abort();
  3531. }
  3532. case s_n_llhttp__internal__n_url_skip_to_http:
  3533. s_n_llhttp__internal__n_url_skip_to_http: {
  3534. if (p == endp) {
  3535. return s_n_llhttp__internal__n_url_skip_to_http;
  3536. }
  3537. switch (*p) {
  3538. case 9: {
  3539. p++;
  3540. goto s_n_llhttp__internal__n_error_2;
  3541. }
  3542. case 12: {
  3543. p++;
  3544. goto s_n_llhttp__internal__n_error_2;
  3545. }
  3546. default: {
  3547. p++;
  3548. goto s_n_llhttp__internal__n_url_to_http;
  3549. }
  3550. }
  3551. /* UNREACHABLE */;
  3552. abort();
  3553. }
  3554. case s_n_llhttp__internal__n_url_fragment:
  3555. s_n_llhttp__internal__n_url_fragment: {
  3556. static uint8_t lookup_table[] = {
  3557. 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0,
  3558. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3559. 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
  3560. 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
  3561. 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
  3562. 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
  3563. 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
  3564. 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0,
  3565. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3566. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3567. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3568. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3569. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3570. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3571. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3572. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
  3573. };
  3574. if (p == endp) {
  3575. return s_n_llhttp__internal__n_url_fragment;
  3576. }
  3577. switch (lookup_table[(uint8_t) *p]) {
  3578. case 1: {
  3579. p++;
  3580. goto s_n_llhttp__internal__n_error_2;
  3581. }
  3582. case 2: {
  3583. goto s_n_llhttp__internal__n_span_end_llhttp__on_url_6;
  3584. }
  3585. case 3: {
  3586. goto s_n_llhttp__internal__n_span_end_llhttp__on_url_7;
  3587. }
  3588. case 4: {
  3589. goto s_n_llhttp__internal__n_span_end_llhttp__on_url_8;
  3590. }
  3591. case 5: {
  3592. p++;
  3593. goto s_n_llhttp__internal__n_url_fragment;
  3594. }
  3595. default: {
  3596. goto s_n_llhttp__internal__n_error_77;
  3597. }
  3598. }
  3599. /* UNREACHABLE */;
  3600. abort();
  3601. }
  3602. case s_n_llhttp__internal__n_span_end_stub_query_3:
  3603. s_n_llhttp__internal__n_span_end_stub_query_3: {
  3604. if (p == endp) {
  3605. return s_n_llhttp__internal__n_span_end_stub_query_3;
  3606. }
  3607. p++;
  3608. goto s_n_llhttp__internal__n_url_fragment;
  3609. /* UNREACHABLE */;
  3610. abort();
  3611. }
  3612. case s_n_llhttp__internal__n_url_query:
  3613. s_n_llhttp__internal__n_url_query: {
  3614. static uint8_t lookup_table[] = {
  3615. 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0,
  3616. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3617. 4, 5, 5, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
  3618. 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
  3619. 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
  3620. 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
  3621. 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
  3622. 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0,
  3623. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3624. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3625. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3626. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3627. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3628. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3629. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3630. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
  3631. };
  3632. if (p == endp) {
  3633. return s_n_llhttp__internal__n_url_query;
  3634. }
  3635. switch (lookup_table[(uint8_t) *p]) {
  3636. case 1: {
  3637. p++;
  3638. goto s_n_llhttp__internal__n_error_2;
  3639. }
  3640. case 2: {
  3641. goto s_n_llhttp__internal__n_span_end_llhttp__on_url_9;
  3642. }
  3643. case 3: {
  3644. goto s_n_llhttp__internal__n_span_end_llhttp__on_url_10;
  3645. }
  3646. case 4: {
  3647. goto s_n_llhttp__internal__n_span_end_llhttp__on_url_11;
  3648. }
  3649. case 5: {
  3650. p++;
  3651. goto s_n_llhttp__internal__n_url_query;
  3652. }
  3653. case 6: {
  3654. goto s_n_llhttp__internal__n_span_end_stub_query_3;
  3655. }
  3656. default: {
  3657. goto s_n_llhttp__internal__n_error_78;
  3658. }
  3659. }
  3660. /* UNREACHABLE */;
  3661. abort();
  3662. }
  3663. case s_n_llhttp__internal__n_url_query_or_fragment:
  3664. s_n_llhttp__internal__n_url_query_or_fragment: {
  3665. if (p == endp) {
  3666. return s_n_llhttp__internal__n_url_query_or_fragment;
  3667. }
  3668. switch (*p) {
  3669. case 9: {
  3670. p++;
  3671. goto s_n_llhttp__internal__n_error_2;
  3672. }
  3673. case 10: {
  3674. goto s_n_llhttp__internal__n_span_end_llhttp__on_url_3;
  3675. }
  3676. case 12: {
  3677. p++;
  3678. goto s_n_llhttp__internal__n_error_2;
  3679. }
  3680. case 13: {
  3681. goto s_n_llhttp__internal__n_span_end_llhttp__on_url_4;
  3682. }
  3683. case ' ': {
  3684. goto s_n_llhttp__internal__n_span_end_llhttp__on_url_5;
  3685. }
  3686. case '#': {
  3687. p++;
  3688. goto s_n_llhttp__internal__n_url_fragment;
  3689. }
  3690. case '?': {
  3691. p++;
  3692. goto s_n_llhttp__internal__n_url_query;
  3693. }
  3694. default: {
  3695. goto s_n_llhttp__internal__n_error_79;
  3696. }
  3697. }
  3698. /* UNREACHABLE */;
  3699. abort();
  3700. }
  3701. case s_n_llhttp__internal__n_url_path:
  3702. s_n_llhttp__internal__n_url_path: {
  3703. static uint8_t lookup_table[] = {
  3704. 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
  3705. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3706. 0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  3707. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0,
  3708. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  3709. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  3710. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  3711. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0,
  3712. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3713. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3714. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3715. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3716. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3717. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3718. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3719. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
  3720. };
  3721. if (p == endp) {
  3722. return s_n_llhttp__internal__n_url_path;
  3723. }
  3724. switch (lookup_table[(uint8_t) *p]) {
  3725. case 1: {
  3726. p++;
  3727. goto s_n_llhttp__internal__n_error_2;
  3728. }
  3729. case 2: {
  3730. p++;
  3731. goto s_n_llhttp__internal__n_url_path;
  3732. }
  3733. default: {
  3734. goto s_n_llhttp__internal__n_url_query_or_fragment;
  3735. }
  3736. }
  3737. /* UNREACHABLE */;
  3738. abort();
  3739. }
  3740. case s_n_llhttp__internal__n_span_start_stub_path_2:
  3741. s_n_llhttp__internal__n_span_start_stub_path_2: {
  3742. if (p == endp) {
  3743. return s_n_llhttp__internal__n_span_start_stub_path_2;
  3744. }
  3745. p++;
  3746. goto s_n_llhttp__internal__n_url_path;
  3747. /* UNREACHABLE */;
  3748. abort();
  3749. }
  3750. case s_n_llhttp__internal__n_span_start_stub_path:
  3751. s_n_llhttp__internal__n_span_start_stub_path: {
  3752. if (p == endp) {
  3753. return s_n_llhttp__internal__n_span_start_stub_path;
  3754. }
  3755. p++;
  3756. goto s_n_llhttp__internal__n_url_path;
  3757. /* UNREACHABLE */;
  3758. abort();
  3759. }
  3760. case s_n_llhttp__internal__n_span_start_stub_path_1:
  3761. s_n_llhttp__internal__n_span_start_stub_path_1: {
  3762. if (p == endp) {
  3763. return s_n_llhttp__internal__n_span_start_stub_path_1;
  3764. }
  3765. p++;
  3766. goto s_n_llhttp__internal__n_url_path;
  3767. /* UNREACHABLE */;
  3768. abort();
  3769. }
  3770. case s_n_llhttp__internal__n_url_server_with_at:
  3771. s_n_llhttp__internal__n_url_server_with_at: {
  3772. static uint8_t lookup_table[] = {
  3773. 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0,
  3774. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3775. 4, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6,
  3776. 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 0, 7,
  3777. 8, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
  3778. 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 0, 5,
  3779. 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
  3780. 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 5, 0,
  3781. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3782. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3783. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3784. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3785. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3786. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3787. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3788. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
  3789. };
  3790. if (p == endp) {
  3791. return s_n_llhttp__internal__n_url_server_with_at;
  3792. }
  3793. switch (lookup_table[(uint8_t) *p]) {
  3794. case 1: {
  3795. p++;
  3796. goto s_n_llhttp__internal__n_error_2;
  3797. }
  3798. case 2: {
  3799. goto s_n_llhttp__internal__n_span_end_llhttp__on_url_12;
  3800. }
  3801. case 3: {
  3802. goto s_n_llhttp__internal__n_span_end_llhttp__on_url_13;
  3803. }
  3804. case 4: {
  3805. goto s_n_llhttp__internal__n_span_end_llhttp__on_url_14;
  3806. }
  3807. case 5: {
  3808. p++;
  3809. goto s_n_llhttp__internal__n_url_server;
  3810. }
  3811. case 6: {
  3812. goto s_n_llhttp__internal__n_span_start_stub_path_1;
  3813. }
  3814. case 7: {
  3815. p++;
  3816. goto s_n_llhttp__internal__n_url_query;
  3817. }
  3818. case 8: {
  3819. p++;
  3820. goto s_n_llhttp__internal__n_error_80;
  3821. }
  3822. default: {
  3823. goto s_n_llhttp__internal__n_error_81;
  3824. }
  3825. }
  3826. /* UNREACHABLE */;
  3827. abort();
  3828. }
  3829. case s_n_llhttp__internal__n_url_server:
  3830. s_n_llhttp__internal__n_url_server: {
  3831. static uint8_t lookup_table[] = {
  3832. 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0,
  3833. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3834. 4, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6,
  3835. 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 0, 7,
  3836. 8, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
  3837. 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 0, 5,
  3838. 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
  3839. 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 5, 0,
  3840. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3841. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3842. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3843. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3844. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3845. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3846. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3847. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
  3848. };
  3849. if (p == endp) {
  3850. return s_n_llhttp__internal__n_url_server;
  3851. }
  3852. switch (lookup_table[(uint8_t) *p]) {
  3853. case 1: {
  3854. p++;
  3855. goto s_n_llhttp__internal__n_error_2;
  3856. }
  3857. case 2: {
  3858. goto s_n_llhttp__internal__n_span_end_llhttp__on_url;
  3859. }
  3860. case 3: {
  3861. goto s_n_llhttp__internal__n_span_end_llhttp__on_url_1;
  3862. }
  3863. case 4: {
  3864. goto s_n_llhttp__internal__n_span_end_llhttp__on_url_2;
  3865. }
  3866. case 5: {
  3867. p++;
  3868. goto s_n_llhttp__internal__n_url_server;
  3869. }
  3870. case 6: {
  3871. goto s_n_llhttp__internal__n_span_start_stub_path;
  3872. }
  3873. case 7: {
  3874. p++;
  3875. goto s_n_llhttp__internal__n_url_query;
  3876. }
  3877. case 8: {
  3878. p++;
  3879. goto s_n_llhttp__internal__n_url_server_with_at;
  3880. }
  3881. default: {
  3882. goto s_n_llhttp__internal__n_error_82;
  3883. }
  3884. }
  3885. /* UNREACHABLE */;
  3886. abort();
  3887. }
  3888. case s_n_llhttp__internal__n_url_schema_delim_1:
  3889. s_n_llhttp__internal__n_url_schema_delim_1: {
  3890. if (p == endp) {
  3891. return s_n_llhttp__internal__n_url_schema_delim_1;
  3892. }
  3893. switch (*p) {
  3894. case '/': {
  3895. p++;
  3896. goto s_n_llhttp__internal__n_url_server;
  3897. }
  3898. default: {
  3899. goto s_n_llhttp__internal__n_error_83;
  3900. }
  3901. }
  3902. /* UNREACHABLE */;
  3903. abort();
  3904. }
  3905. case s_n_llhttp__internal__n_url_schema_delim:
  3906. s_n_llhttp__internal__n_url_schema_delim: {
  3907. if (p == endp) {
  3908. return s_n_llhttp__internal__n_url_schema_delim;
  3909. }
  3910. switch (*p) {
  3911. case 9: {
  3912. p++;
  3913. goto s_n_llhttp__internal__n_error_2;
  3914. }
  3915. case 10: {
  3916. p++;
  3917. goto s_n_llhttp__internal__n_error_2;
  3918. }
  3919. case 12: {
  3920. p++;
  3921. goto s_n_llhttp__internal__n_error_2;
  3922. }
  3923. case 13: {
  3924. p++;
  3925. goto s_n_llhttp__internal__n_error_2;
  3926. }
  3927. case ' ': {
  3928. p++;
  3929. goto s_n_llhttp__internal__n_error_2;
  3930. }
  3931. case '/': {
  3932. p++;
  3933. goto s_n_llhttp__internal__n_url_schema_delim_1;
  3934. }
  3935. default: {
  3936. goto s_n_llhttp__internal__n_error_83;
  3937. }
  3938. }
  3939. /* UNREACHABLE */;
  3940. abort();
  3941. }
  3942. case s_n_llhttp__internal__n_span_end_stub_schema:
  3943. s_n_llhttp__internal__n_span_end_stub_schema: {
  3944. if (p == endp) {
  3945. return s_n_llhttp__internal__n_span_end_stub_schema;
  3946. }
  3947. p++;
  3948. goto s_n_llhttp__internal__n_url_schema_delim;
  3949. /* UNREACHABLE */;
  3950. abort();
  3951. }
  3952. case s_n_llhttp__internal__n_url_schema:
  3953. s_n_llhttp__internal__n_url_schema: {
  3954. static uint8_t lookup_table[] = {
  3955. 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0,
  3956. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3957. 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3958. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
  3959. 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
  3960. 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
  3961. 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
  3962. 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
  3963. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3964. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3965. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3966. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3967. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3968. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3969. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3970. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
  3971. };
  3972. if (p == endp) {
  3973. return s_n_llhttp__internal__n_url_schema;
  3974. }
  3975. switch (lookup_table[(uint8_t) *p]) {
  3976. case 1: {
  3977. p++;
  3978. goto s_n_llhttp__internal__n_error_2;
  3979. }
  3980. case 2: {
  3981. goto s_n_llhttp__internal__n_span_end_stub_schema;
  3982. }
  3983. case 3: {
  3984. p++;
  3985. goto s_n_llhttp__internal__n_url_schema;
  3986. }
  3987. default: {
  3988. goto s_n_llhttp__internal__n_error_84;
  3989. }
  3990. }
  3991. /* UNREACHABLE */;
  3992. abort();
  3993. }
  3994. case s_n_llhttp__internal__n_url_start:
  3995. s_n_llhttp__internal__n_url_start: {
  3996. static uint8_t lookup_table[] = {
  3997. 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0,
  3998. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3999. 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2,
  4000. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  4001. 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
  4002. 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
  4003. 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
  4004. 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
  4005. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  4006. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  4007. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  4008. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  4009. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  4010. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  4011. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  4012. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
  4013. };
  4014. if (p == endp) {
  4015. return s_n_llhttp__internal__n_url_start;
  4016. }
  4017. switch (lookup_table[(uint8_t) *p]) {
  4018. case 1: {
  4019. p++;
  4020. goto s_n_llhttp__internal__n_error_2;
  4021. }
  4022. case 2: {
  4023. goto s_n_llhttp__internal__n_span_start_stub_path_2;
  4024. }
  4025. case 3: {
  4026. goto s_n_llhttp__internal__n_url_schema;
  4027. }
  4028. default: {
  4029. goto s_n_llhttp__internal__n_error_85;
  4030. }
  4031. }
  4032. /* UNREACHABLE */;
  4033. abort();
  4034. }
  4035. case s_n_llhttp__internal__n_span_start_llhttp__on_url_1:
  4036. s_n_llhttp__internal__n_span_start_llhttp__on_url_1: {
  4037. if (p == endp) {
  4038. return s_n_llhttp__internal__n_span_start_llhttp__on_url_1;
  4039. }
  4040. state->_span_pos0 = (void*) p;
  4041. state->_span_cb0 = llhttp__on_url;
  4042. goto s_n_llhttp__internal__n_url_start;
  4043. /* UNREACHABLE */;
  4044. abort();
  4045. }
  4046. case s_n_llhttp__internal__n_url_entry_normal:
  4047. s_n_llhttp__internal__n_url_entry_normal: {
  4048. if (p == endp) {
  4049. return s_n_llhttp__internal__n_url_entry_normal;
  4050. }
  4051. switch (*p) {
  4052. case 9: {
  4053. p++;
  4054. goto s_n_llhttp__internal__n_error_2;
  4055. }
  4056. case 12: {
  4057. p++;
  4058. goto s_n_llhttp__internal__n_error_2;
  4059. }
  4060. default: {
  4061. goto s_n_llhttp__internal__n_span_start_llhttp__on_url_1;
  4062. }
  4063. }
  4064. /* UNREACHABLE */;
  4065. abort();
  4066. }
  4067. case s_n_llhttp__internal__n_span_start_llhttp__on_url:
  4068. s_n_llhttp__internal__n_span_start_llhttp__on_url: {
  4069. if (p == endp) {
  4070. return s_n_llhttp__internal__n_span_start_llhttp__on_url;
  4071. }
  4072. state->_span_pos0 = (void*) p;
  4073. state->_span_cb0 = llhttp__on_url;
  4074. goto s_n_llhttp__internal__n_url_server;
  4075. /* UNREACHABLE */;
  4076. abort();
  4077. }
  4078. case s_n_llhttp__internal__n_url_entry_connect:
  4079. s_n_llhttp__internal__n_url_entry_connect: {
  4080. if (p == endp) {
  4081. return s_n_llhttp__internal__n_url_entry_connect;
  4082. }
  4083. switch (*p) {
  4084. case 9: {
  4085. p++;
  4086. goto s_n_llhttp__internal__n_error_2;
  4087. }
  4088. case 12: {
  4089. p++;
  4090. goto s_n_llhttp__internal__n_error_2;
  4091. }
  4092. default: {
  4093. goto s_n_llhttp__internal__n_span_start_llhttp__on_url;
  4094. }
  4095. }
  4096. /* UNREACHABLE */;
  4097. abort();
  4098. }
  4099. case s_n_llhttp__internal__n_req_spaces_before_url:
  4100. s_n_llhttp__internal__n_req_spaces_before_url: {
  4101. if (p == endp) {
  4102. return s_n_llhttp__internal__n_req_spaces_before_url;
  4103. }
  4104. switch (*p) {
  4105. case ' ': {
  4106. p++;
  4107. goto s_n_llhttp__internal__n_req_spaces_before_url;
  4108. }
  4109. default: {
  4110. goto s_n_llhttp__internal__n_invoke_is_equal_method;
  4111. }
  4112. }
  4113. /* UNREACHABLE */;
  4114. abort();
  4115. }
  4116. case s_n_llhttp__internal__n_req_first_space_before_url:
  4117. s_n_llhttp__internal__n_req_first_space_before_url: {
  4118. if (p == endp) {
  4119. return s_n_llhttp__internal__n_req_first_space_before_url;
  4120. }
  4121. switch (*p) {
  4122. case ' ': {
  4123. p++;
  4124. goto s_n_llhttp__internal__n_req_spaces_before_url;
  4125. }
  4126. default: {
  4127. goto s_n_llhttp__internal__n_error_86;
  4128. }
  4129. }
  4130. /* UNREACHABLE */;
  4131. abort();
  4132. }
  4133. case s_n_llhttp__internal__n_invoke_llhttp__on_method_complete_1:
  4134. s_n_llhttp__internal__n_invoke_llhttp__on_method_complete_1: {
  4135. switch (llhttp__on_method_complete(state, p, endp)) {
  4136. case 0:
  4137. goto s_n_llhttp__internal__n_req_first_space_before_url;
  4138. case 21:
  4139. goto s_n_llhttp__internal__n_pause_26;
  4140. default:
  4141. goto s_n_llhttp__internal__n_error_105;
  4142. }
  4143. /* UNREACHABLE */;
  4144. abort();
  4145. }
  4146. case s_n_llhttp__internal__n_after_start_req_2:
  4147. s_n_llhttp__internal__n_after_start_req_2: {
  4148. if (p == endp) {
  4149. return s_n_llhttp__internal__n_after_start_req_2;
  4150. }
  4151. switch (*p) {
  4152. case 'L': {
  4153. p++;
  4154. match = 19;
  4155. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4156. }
  4157. default: {
  4158. goto s_n_llhttp__internal__n_error_106;
  4159. }
  4160. }
  4161. /* UNREACHABLE */;
  4162. abort();
  4163. }
  4164. case s_n_llhttp__internal__n_after_start_req_3:
  4165. s_n_llhttp__internal__n_after_start_req_3: {
  4166. llparse_match_t match_seq;
  4167. if (p == endp) {
  4168. return s_n_llhttp__internal__n_after_start_req_3;
  4169. }
  4170. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob17, 6);
  4171. p = match_seq.current;
  4172. switch (match_seq.status) {
  4173. case kMatchComplete: {
  4174. p++;
  4175. match = 36;
  4176. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4177. }
  4178. case kMatchPause: {
  4179. return s_n_llhttp__internal__n_after_start_req_3;
  4180. }
  4181. case kMatchMismatch: {
  4182. goto s_n_llhttp__internal__n_error_106;
  4183. }
  4184. }
  4185. /* UNREACHABLE */;
  4186. abort();
  4187. }
  4188. case s_n_llhttp__internal__n_after_start_req_1:
  4189. s_n_llhttp__internal__n_after_start_req_1: {
  4190. if (p == endp) {
  4191. return s_n_llhttp__internal__n_after_start_req_1;
  4192. }
  4193. switch (*p) {
  4194. case 'C': {
  4195. p++;
  4196. goto s_n_llhttp__internal__n_after_start_req_2;
  4197. }
  4198. case 'N': {
  4199. p++;
  4200. goto s_n_llhttp__internal__n_after_start_req_3;
  4201. }
  4202. default: {
  4203. goto s_n_llhttp__internal__n_error_106;
  4204. }
  4205. }
  4206. /* UNREACHABLE */;
  4207. abort();
  4208. }
  4209. case s_n_llhttp__internal__n_after_start_req_4:
  4210. s_n_llhttp__internal__n_after_start_req_4: {
  4211. llparse_match_t match_seq;
  4212. if (p == endp) {
  4213. return s_n_llhttp__internal__n_after_start_req_4;
  4214. }
  4215. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob18, 3);
  4216. p = match_seq.current;
  4217. switch (match_seq.status) {
  4218. case kMatchComplete: {
  4219. p++;
  4220. match = 16;
  4221. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4222. }
  4223. case kMatchPause: {
  4224. return s_n_llhttp__internal__n_after_start_req_4;
  4225. }
  4226. case kMatchMismatch: {
  4227. goto s_n_llhttp__internal__n_error_106;
  4228. }
  4229. }
  4230. /* UNREACHABLE */;
  4231. abort();
  4232. }
  4233. case s_n_llhttp__internal__n_after_start_req_6:
  4234. s_n_llhttp__internal__n_after_start_req_6: {
  4235. llparse_match_t match_seq;
  4236. if (p == endp) {
  4237. return s_n_llhttp__internal__n_after_start_req_6;
  4238. }
  4239. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob19, 6);
  4240. p = match_seq.current;
  4241. switch (match_seq.status) {
  4242. case kMatchComplete: {
  4243. p++;
  4244. match = 22;
  4245. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4246. }
  4247. case kMatchPause: {
  4248. return s_n_llhttp__internal__n_after_start_req_6;
  4249. }
  4250. case kMatchMismatch: {
  4251. goto s_n_llhttp__internal__n_error_106;
  4252. }
  4253. }
  4254. /* UNREACHABLE */;
  4255. abort();
  4256. }
  4257. case s_n_llhttp__internal__n_after_start_req_8:
  4258. s_n_llhttp__internal__n_after_start_req_8: {
  4259. llparse_match_t match_seq;
  4260. if (p == endp) {
  4261. return s_n_llhttp__internal__n_after_start_req_8;
  4262. }
  4263. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob20, 4);
  4264. p = match_seq.current;
  4265. switch (match_seq.status) {
  4266. case kMatchComplete: {
  4267. p++;
  4268. match = 5;
  4269. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4270. }
  4271. case kMatchPause: {
  4272. return s_n_llhttp__internal__n_after_start_req_8;
  4273. }
  4274. case kMatchMismatch: {
  4275. goto s_n_llhttp__internal__n_error_106;
  4276. }
  4277. }
  4278. /* UNREACHABLE */;
  4279. abort();
  4280. }
  4281. case s_n_llhttp__internal__n_after_start_req_9:
  4282. s_n_llhttp__internal__n_after_start_req_9: {
  4283. if (p == endp) {
  4284. return s_n_llhttp__internal__n_after_start_req_9;
  4285. }
  4286. switch (*p) {
  4287. case 'Y': {
  4288. p++;
  4289. match = 8;
  4290. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4291. }
  4292. default: {
  4293. goto s_n_llhttp__internal__n_error_106;
  4294. }
  4295. }
  4296. /* UNREACHABLE */;
  4297. abort();
  4298. }
  4299. case s_n_llhttp__internal__n_after_start_req_7:
  4300. s_n_llhttp__internal__n_after_start_req_7: {
  4301. if (p == endp) {
  4302. return s_n_llhttp__internal__n_after_start_req_7;
  4303. }
  4304. switch (*p) {
  4305. case 'N': {
  4306. p++;
  4307. goto s_n_llhttp__internal__n_after_start_req_8;
  4308. }
  4309. case 'P': {
  4310. p++;
  4311. goto s_n_llhttp__internal__n_after_start_req_9;
  4312. }
  4313. default: {
  4314. goto s_n_llhttp__internal__n_error_106;
  4315. }
  4316. }
  4317. /* UNREACHABLE */;
  4318. abort();
  4319. }
  4320. case s_n_llhttp__internal__n_after_start_req_5:
  4321. s_n_llhttp__internal__n_after_start_req_5: {
  4322. if (p == endp) {
  4323. return s_n_llhttp__internal__n_after_start_req_5;
  4324. }
  4325. switch (*p) {
  4326. case 'H': {
  4327. p++;
  4328. goto s_n_llhttp__internal__n_after_start_req_6;
  4329. }
  4330. case 'O': {
  4331. p++;
  4332. goto s_n_llhttp__internal__n_after_start_req_7;
  4333. }
  4334. default: {
  4335. goto s_n_llhttp__internal__n_error_106;
  4336. }
  4337. }
  4338. /* UNREACHABLE */;
  4339. abort();
  4340. }
  4341. case s_n_llhttp__internal__n_after_start_req_12:
  4342. s_n_llhttp__internal__n_after_start_req_12: {
  4343. llparse_match_t match_seq;
  4344. if (p == endp) {
  4345. return s_n_llhttp__internal__n_after_start_req_12;
  4346. }
  4347. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob21, 3);
  4348. p = match_seq.current;
  4349. switch (match_seq.status) {
  4350. case kMatchComplete: {
  4351. p++;
  4352. match = 0;
  4353. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4354. }
  4355. case kMatchPause: {
  4356. return s_n_llhttp__internal__n_after_start_req_12;
  4357. }
  4358. case kMatchMismatch: {
  4359. goto s_n_llhttp__internal__n_error_106;
  4360. }
  4361. }
  4362. /* UNREACHABLE */;
  4363. abort();
  4364. }
  4365. case s_n_llhttp__internal__n_after_start_req_13:
  4366. s_n_llhttp__internal__n_after_start_req_13: {
  4367. llparse_match_t match_seq;
  4368. if (p == endp) {
  4369. return s_n_llhttp__internal__n_after_start_req_13;
  4370. }
  4371. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob22, 5);
  4372. p = match_seq.current;
  4373. switch (match_seq.status) {
  4374. case kMatchComplete: {
  4375. p++;
  4376. match = 35;
  4377. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4378. }
  4379. case kMatchPause: {
  4380. return s_n_llhttp__internal__n_after_start_req_13;
  4381. }
  4382. case kMatchMismatch: {
  4383. goto s_n_llhttp__internal__n_error_106;
  4384. }
  4385. }
  4386. /* UNREACHABLE */;
  4387. abort();
  4388. }
  4389. case s_n_llhttp__internal__n_after_start_req_11:
  4390. s_n_llhttp__internal__n_after_start_req_11: {
  4391. if (p == endp) {
  4392. return s_n_llhttp__internal__n_after_start_req_11;
  4393. }
  4394. switch (*p) {
  4395. case 'L': {
  4396. p++;
  4397. goto s_n_llhttp__internal__n_after_start_req_12;
  4398. }
  4399. case 'S': {
  4400. p++;
  4401. goto s_n_llhttp__internal__n_after_start_req_13;
  4402. }
  4403. default: {
  4404. goto s_n_llhttp__internal__n_error_106;
  4405. }
  4406. }
  4407. /* UNREACHABLE */;
  4408. abort();
  4409. }
  4410. case s_n_llhttp__internal__n_after_start_req_10:
  4411. s_n_llhttp__internal__n_after_start_req_10: {
  4412. if (p == endp) {
  4413. return s_n_llhttp__internal__n_after_start_req_10;
  4414. }
  4415. switch (*p) {
  4416. case 'E': {
  4417. p++;
  4418. goto s_n_llhttp__internal__n_after_start_req_11;
  4419. }
  4420. default: {
  4421. goto s_n_llhttp__internal__n_error_106;
  4422. }
  4423. }
  4424. /* UNREACHABLE */;
  4425. abort();
  4426. }
  4427. case s_n_llhttp__internal__n_after_start_req_14:
  4428. s_n_llhttp__internal__n_after_start_req_14: {
  4429. llparse_match_t match_seq;
  4430. if (p == endp) {
  4431. return s_n_llhttp__internal__n_after_start_req_14;
  4432. }
  4433. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob23, 4);
  4434. p = match_seq.current;
  4435. switch (match_seq.status) {
  4436. case kMatchComplete: {
  4437. p++;
  4438. match = 45;
  4439. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4440. }
  4441. case kMatchPause: {
  4442. return s_n_llhttp__internal__n_after_start_req_14;
  4443. }
  4444. case kMatchMismatch: {
  4445. goto s_n_llhttp__internal__n_error_106;
  4446. }
  4447. }
  4448. /* UNREACHABLE */;
  4449. abort();
  4450. }
  4451. case s_n_llhttp__internal__n_after_start_req_17:
  4452. s_n_llhttp__internal__n_after_start_req_17: {
  4453. llparse_match_t match_seq;
  4454. if (p == endp) {
  4455. return s_n_llhttp__internal__n_after_start_req_17;
  4456. }
  4457. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob25, 9);
  4458. p = match_seq.current;
  4459. switch (match_seq.status) {
  4460. case kMatchComplete: {
  4461. p++;
  4462. match = 41;
  4463. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4464. }
  4465. case kMatchPause: {
  4466. return s_n_llhttp__internal__n_after_start_req_17;
  4467. }
  4468. case kMatchMismatch: {
  4469. goto s_n_llhttp__internal__n_error_106;
  4470. }
  4471. }
  4472. /* UNREACHABLE */;
  4473. abort();
  4474. }
  4475. case s_n_llhttp__internal__n_after_start_req_16:
  4476. s_n_llhttp__internal__n_after_start_req_16: {
  4477. if (p == endp) {
  4478. return s_n_llhttp__internal__n_after_start_req_16;
  4479. }
  4480. switch (*p) {
  4481. case '_': {
  4482. p++;
  4483. goto s_n_llhttp__internal__n_after_start_req_17;
  4484. }
  4485. default: {
  4486. match = 1;
  4487. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4488. }
  4489. }
  4490. /* UNREACHABLE */;
  4491. abort();
  4492. }
  4493. case s_n_llhttp__internal__n_after_start_req_15:
  4494. s_n_llhttp__internal__n_after_start_req_15: {
  4495. llparse_match_t match_seq;
  4496. if (p == endp) {
  4497. return s_n_llhttp__internal__n_after_start_req_15;
  4498. }
  4499. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob24, 2);
  4500. p = match_seq.current;
  4501. switch (match_seq.status) {
  4502. case kMatchComplete: {
  4503. p++;
  4504. goto s_n_llhttp__internal__n_after_start_req_16;
  4505. }
  4506. case kMatchPause: {
  4507. return s_n_llhttp__internal__n_after_start_req_15;
  4508. }
  4509. case kMatchMismatch: {
  4510. goto s_n_llhttp__internal__n_error_106;
  4511. }
  4512. }
  4513. /* UNREACHABLE */;
  4514. abort();
  4515. }
  4516. case s_n_llhttp__internal__n_after_start_req_18:
  4517. s_n_llhttp__internal__n_after_start_req_18: {
  4518. llparse_match_t match_seq;
  4519. if (p == endp) {
  4520. return s_n_llhttp__internal__n_after_start_req_18;
  4521. }
  4522. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob26, 3);
  4523. p = match_seq.current;
  4524. switch (match_seq.status) {
  4525. case kMatchComplete: {
  4526. p++;
  4527. match = 2;
  4528. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4529. }
  4530. case kMatchPause: {
  4531. return s_n_llhttp__internal__n_after_start_req_18;
  4532. }
  4533. case kMatchMismatch: {
  4534. goto s_n_llhttp__internal__n_error_106;
  4535. }
  4536. }
  4537. /* UNREACHABLE */;
  4538. abort();
  4539. }
  4540. case s_n_llhttp__internal__n_after_start_req_20:
  4541. s_n_llhttp__internal__n_after_start_req_20: {
  4542. llparse_match_t match_seq;
  4543. if (p == endp) {
  4544. return s_n_llhttp__internal__n_after_start_req_20;
  4545. }
  4546. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob27, 2);
  4547. p = match_seq.current;
  4548. switch (match_seq.status) {
  4549. case kMatchComplete: {
  4550. p++;
  4551. match = 31;
  4552. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4553. }
  4554. case kMatchPause: {
  4555. return s_n_llhttp__internal__n_after_start_req_20;
  4556. }
  4557. case kMatchMismatch: {
  4558. goto s_n_llhttp__internal__n_error_106;
  4559. }
  4560. }
  4561. /* UNREACHABLE */;
  4562. abort();
  4563. }
  4564. case s_n_llhttp__internal__n_after_start_req_21:
  4565. s_n_llhttp__internal__n_after_start_req_21: {
  4566. llparse_match_t match_seq;
  4567. if (p == endp) {
  4568. return s_n_llhttp__internal__n_after_start_req_21;
  4569. }
  4570. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob28, 2);
  4571. p = match_seq.current;
  4572. switch (match_seq.status) {
  4573. case kMatchComplete: {
  4574. p++;
  4575. match = 9;
  4576. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4577. }
  4578. case kMatchPause: {
  4579. return s_n_llhttp__internal__n_after_start_req_21;
  4580. }
  4581. case kMatchMismatch: {
  4582. goto s_n_llhttp__internal__n_error_106;
  4583. }
  4584. }
  4585. /* UNREACHABLE */;
  4586. abort();
  4587. }
  4588. case s_n_llhttp__internal__n_after_start_req_19:
  4589. s_n_llhttp__internal__n_after_start_req_19: {
  4590. if (p == endp) {
  4591. return s_n_llhttp__internal__n_after_start_req_19;
  4592. }
  4593. switch (*p) {
  4594. case 'I': {
  4595. p++;
  4596. goto s_n_llhttp__internal__n_after_start_req_20;
  4597. }
  4598. case 'O': {
  4599. p++;
  4600. goto s_n_llhttp__internal__n_after_start_req_21;
  4601. }
  4602. default: {
  4603. goto s_n_llhttp__internal__n_error_106;
  4604. }
  4605. }
  4606. /* UNREACHABLE */;
  4607. abort();
  4608. }
  4609. case s_n_llhttp__internal__n_after_start_req_23:
  4610. s_n_llhttp__internal__n_after_start_req_23: {
  4611. llparse_match_t match_seq;
  4612. if (p == endp) {
  4613. return s_n_llhttp__internal__n_after_start_req_23;
  4614. }
  4615. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob29, 6);
  4616. p = match_seq.current;
  4617. switch (match_seq.status) {
  4618. case kMatchComplete: {
  4619. p++;
  4620. match = 24;
  4621. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4622. }
  4623. case kMatchPause: {
  4624. return s_n_llhttp__internal__n_after_start_req_23;
  4625. }
  4626. case kMatchMismatch: {
  4627. goto s_n_llhttp__internal__n_error_106;
  4628. }
  4629. }
  4630. /* UNREACHABLE */;
  4631. abort();
  4632. }
  4633. case s_n_llhttp__internal__n_after_start_req_24:
  4634. s_n_llhttp__internal__n_after_start_req_24: {
  4635. llparse_match_t match_seq;
  4636. if (p == endp) {
  4637. return s_n_llhttp__internal__n_after_start_req_24;
  4638. }
  4639. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob30, 3);
  4640. p = match_seq.current;
  4641. switch (match_seq.status) {
  4642. case kMatchComplete: {
  4643. p++;
  4644. match = 23;
  4645. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4646. }
  4647. case kMatchPause: {
  4648. return s_n_llhttp__internal__n_after_start_req_24;
  4649. }
  4650. case kMatchMismatch: {
  4651. goto s_n_llhttp__internal__n_error_106;
  4652. }
  4653. }
  4654. /* UNREACHABLE */;
  4655. abort();
  4656. }
  4657. case s_n_llhttp__internal__n_after_start_req_26:
  4658. s_n_llhttp__internal__n_after_start_req_26: {
  4659. llparse_match_t match_seq;
  4660. if (p == endp) {
  4661. return s_n_llhttp__internal__n_after_start_req_26;
  4662. }
  4663. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob31, 7);
  4664. p = match_seq.current;
  4665. switch (match_seq.status) {
  4666. case kMatchComplete: {
  4667. p++;
  4668. match = 21;
  4669. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4670. }
  4671. case kMatchPause: {
  4672. return s_n_llhttp__internal__n_after_start_req_26;
  4673. }
  4674. case kMatchMismatch: {
  4675. goto s_n_llhttp__internal__n_error_106;
  4676. }
  4677. }
  4678. /* UNREACHABLE */;
  4679. abort();
  4680. }
  4681. case s_n_llhttp__internal__n_after_start_req_28:
  4682. s_n_llhttp__internal__n_after_start_req_28: {
  4683. llparse_match_t match_seq;
  4684. if (p == endp) {
  4685. return s_n_llhttp__internal__n_after_start_req_28;
  4686. }
  4687. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob32, 6);
  4688. p = match_seq.current;
  4689. switch (match_seq.status) {
  4690. case kMatchComplete: {
  4691. p++;
  4692. match = 30;
  4693. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4694. }
  4695. case kMatchPause: {
  4696. return s_n_llhttp__internal__n_after_start_req_28;
  4697. }
  4698. case kMatchMismatch: {
  4699. goto s_n_llhttp__internal__n_error_106;
  4700. }
  4701. }
  4702. /* UNREACHABLE */;
  4703. abort();
  4704. }
  4705. case s_n_llhttp__internal__n_after_start_req_29:
  4706. s_n_llhttp__internal__n_after_start_req_29: {
  4707. if (p == endp) {
  4708. return s_n_llhttp__internal__n_after_start_req_29;
  4709. }
  4710. switch (*p) {
  4711. case 'L': {
  4712. p++;
  4713. match = 10;
  4714. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4715. }
  4716. default: {
  4717. goto s_n_llhttp__internal__n_error_106;
  4718. }
  4719. }
  4720. /* UNREACHABLE */;
  4721. abort();
  4722. }
  4723. case s_n_llhttp__internal__n_after_start_req_27:
  4724. s_n_llhttp__internal__n_after_start_req_27: {
  4725. if (p == endp) {
  4726. return s_n_llhttp__internal__n_after_start_req_27;
  4727. }
  4728. switch (*p) {
  4729. case 'A': {
  4730. p++;
  4731. goto s_n_llhttp__internal__n_after_start_req_28;
  4732. }
  4733. case 'O': {
  4734. p++;
  4735. goto s_n_llhttp__internal__n_after_start_req_29;
  4736. }
  4737. default: {
  4738. goto s_n_llhttp__internal__n_error_106;
  4739. }
  4740. }
  4741. /* UNREACHABLE */;
  4742. abort();
  4743. }
  4744. case s_n_llhttp__internal__n_after_start_req_25:
  4745. s_n_llhttp__internal__n_after_start_req_25: {
  4746. if (p == endp) {
  4747. return s_n_llhttp__internal__n_after_start_req_25;
  4748. }
  4749. switch (*p) {
  4750. case 'A': {
  4751. p++;
  4752. goto s_n_llhttp__internal__n_after_start_req_26;
  4753. }
  4754. case 'C': {
  4755. p++;
  4756. goto s_n_llhttp__internal__n_after_start_req_27;
  4757. }
  4758. default: {
  4759. goto s_n_llhttp__internal__n_error_106;
  4760. }
  4761. }
  4762. /* UNREACHABLE */;
  4763. abort();
  4764. }
  4765. case s_n_llhttp__internal__n_after_start_req_30:
  4766. s_n_llhttp__internal__n_after_start_req_30: {
  4767. llparse_match_t match_seq;
  4768. if (p == endp) {
  4769. return s_n_llhttp__internal__n_after_start_req_30;
  4770. }
  4771. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob33, 2);
  4772. p = match_seq.current;
  4773. switch (match_seq.status) {
  4774. case kMatchComplete: {
  4775. p++;
  4776. match = 11;
  4777. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4778. }
  4779. case kMatchPause: {
  4780. return s_n_llhttp__internal__n_after_start_req_30;
  4781. }
  4782. case kMatchMismatch: {
  4783. goto s_n_llhttp__internal__n_error_106;
  4784. }
  4785. }
  4786. /* UNREACHABLE */;
  4787. abort();
  4788. }
  4789. case s_n_llhttp__internal__n_after_start_req_22:
  4790. s_n_llhttp__internal__n_after_start_req_22: {
  4791. if (p == endp) {
  4792. return s_n_llhttp__internal__n_after_start_req_22;
  4793. }
  4794. switch (*p) {
  4795. case '-': {
  4796. p++;
  4797. goto s_n_llhttp__internal__n_after_start_req_23;
  4798. }
  4799. case 'E': {
  4800. p++;
  4801. goto s_n_llhttp__internal__n_after_start_req_24;
  4802. }
  4803. case 'K': {
  4804. p++;
  4805. goto s_n_llhttp__internal__n_after_start_req_25;
  4806. }
  4807. case 'O': {
  4808. p++;
  4809. goto s_n_llhttp__internal__n_after_start_req_30;
  4810. }
  4811. default: {
  4812. goto s_n_llhttp__internal__n_error_106;
  4813. }
  4814. }
  4815. /* UNREACHABLE */;
  4816. abort();
  4817. }
  4818. case s_n_llhttp__internal__n_after_start_req_31:
  4819. s_n_llhttp__internal__n_after_start_req_31: {
  4820. llparse_match_t match_seq;
  4821. if (p == endp) {
  4822. return s_n_llhttp__internal__n_after_start_req_31;
  4823. }
  4824. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob34, 5);
  4825. p = match_seq.current;
  4826. switch (match_seq.status) {
  4827. case kMatchComplete: {
  4828. p++;
  4829. match = 25;
  4830. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4831. }
  4832. case kMatchPause: {
  4833. return s_n_llhttp__internal__n_after_start_req_31;
  4834. }
  4835. case kMatchMismatch: {
  4836. goto s_n_llhttp__internal__n_error_106;
  4837. }
  4838. }
  4839. /* UNREACHABLE */;
  4840. abort();
  4841. }
  4842. case s_n_llhttp__internal__n_after_start_req_32:
  4843. s_n_llhttp__internal__n_after_start_req_32: {
  4844. llparse_match_t match_seq;
  4845. if (p == endp) {
  4846. return s_n_llhttp__internal__n_after_start_req_32;
  4847. }
  4848. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob35, 6);
  4849. p = match_seq.current;
  4850. switch (match_seq.status) {
  4851. case kMatchComplete: {
  4852. p++;
  4853. match = 6;
  4854. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4855. }
  4856. case kMatchPause: {
  4857. return s_n_llhttp__internal__n_after_start_req_32;
  4858. }
  4859. case kMatchMismatch: {
  4860. goto s_n_llhttp__internal__n_error_106;
  4861. }
  4862. }
  4863. /* UNREACHABLE */;
  4864. abort();
  4865. }
  4866. case s_n_llhttp__internal__n_after_start_req_35:
  4867. s_n_llhttp__internal__n_after_start_req_35: {
  4868. llparse_match_t match_seq;
  4869. if (p == endp) {
  4870. return s_n_llhttp__internal__n_after_start_req_35;
  4871. }
  4872. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob36, 2);
  4873. p = match_seq.current;
  4874. switch (match_seq.status) {
  4875. case kMatchComplete: {
  4876. p++;
  4877. match = 28;
  4878. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4879. }
  4880. case kMatchPause: {
  4881. return s_n_llhttp__internal__n_after_start_req_35;
  4882. }
  4883. case kMatchMismatch: {
  4884. goto s_n_llhttp__internal__n_error_106;
  4885. }
  4886. }
  4887. /* UNREACHABLE */;
  4888. abort();
  4889. }
  4890. case s_n_llhttp__internal__n_after_start_req_36:
  4891. s_n_llhttp__internal__n_after_start_req_36: {
  4892. llparse_match_t match_seq;
  4893. if (p == endp) {
  4894. return s_n_llhttp__internal__n_after_start_req_36;
  4895. }
  4896. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob37, 2);
  4897. p = match_seq.current;
  4898. switch (match_seq.status) {
  4899. case kMatchComplete: {
  4900. p++;
  4901. match = 39;
  4902. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4903. }
  4904. case kMatchPause: {
  4905. return s_n_llhttp__internal__n_after_start_req_36;
  4906. }
  4907. case kMatchMismatch: {
  4908. goto s_n_llhttp__internal__n_error_106;
  4909. }
  4910. }
  4911. /* UNREACHABLE */;
  4912. abort();
  4913. }
  4914. case s_n_llhttp__internal__n_after_start_req_34:
  4915. s_n_llhttp__internal__n_after_start_req_34: {
  4916. if (p == endp) {
  4917. return s_n_llhttp__internal__n_after_start_req_34;
  4918. }
  4919. switch (*p) {
  4920. case 'T': {
  4921. p++;
  4922. goto s_n_llhttp__internal__n_after_start_req_35;
  4923. }
  4924. case 'U': {
  4925. p++;
  4926. goto s_n_llhttp__internal__n_after_start_req_36;
  4927. }
  4928. default: {
  4929. goto s_n_llhttp__internal__n_error_106;
  4930. }
  4931. }
  4932. /* UNREACHABLE */;
  4933. abort();
  4934. }
  4935. case s_n_llhttp__internal__n_after_start_req_37:
  4936. s_n_llhttp__internal__n_after_start_req_37: {
  4937. llparse_match_t match_seq;
  4938. if (p == endp) {
  4939. return s_n_llhttp__internal__n_after_start_req_37;
  4940. }
  4941. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob38, 2);
  4942. p = match_seq.current;
  4943. switch (match_seq.status) {
  4944. case kMatchComplete: {
  4945. p++;
  4946. match = 38;
  4947. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4948. }
  4949. case kMatchPause: {
  4950. return s_n_llhttp__internal__n_after_start_req_37;
  4951. }
  4952. case kMatchMismatch: {
  4953. goto s_n_llhttp__internal__n_error_106;
  4954. }
  4955. }
  4956. /* UNREACHABLE */;
  4957. abort();
  4958. }
  4959. case s_n_llhttp__internal__n_after_start_req_38:
  4960. s_n_llhttp__internal__n_after_start_req_38: {
  4961. llparse_match_t match_seq;
  4962. if (p == endp) {
  4963. return s_n_llhttp__internal__n_after_start_req_38;
  4964. }
  4965. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob39, 2);
  4966. p = match_seq.current;
  4967. switch (match_seq.status) {
  4968. case kMatchComplete: {
  4969. p++;
  4970. match = 3;
  4971. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4972. }
  4973. case kMatchPause: {
  4974. return s_n_llhttp__internal__n_after_start_req_38;
  4975. }
  4976. case kMatchMismatch: {
  4977. goto s_n_llhttp__internal__n_error_106;
  4978. }
  4979. }
  4980. /* UNREACHABLE */;
  4981. abort();
  4982. }
  4983. case s_n_llhttp__internal__n_after_start_req_42:
  4984. s_n_llhttp__internal__n_after_start_req_42: {
  4985. llparse_match_t match_seq;
  4986. if (p == endp) {
  4987. return s_n_llhttp__internal__n_after_start_req_42;
  4988. }
  4989. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob40, 3);
  4990. p = match_seq.current;
  4991. switch (match_seq.status) {
  4992. case kMatchComplete: {
  4993. p++;
  4994. match = 12;
  4995. goto s_n_llhttp__internal__n_invoke_store_method_1;
  4996. }
  4997. case kMatchPause: {
  4998. return s_n_llhttp__internal__n_after_start_req_42;
  4999. }
  5000. case kMatchMismatch: {
  5001. goto s_n_llhttp__internal__n_error_106;
  5002. }
  5003. }
  5004. /* UNREACHABLE */;
  5005. abort();
  5006. }
  5007. case s_n_llhttp__internal__n_after_start_req_43:
  5008. s_n_llhttp__internal__n_after_start_req_43: {
  5009. llparse_match_t match_seq;
  5010. if (p == endp) {
  5011. return s_n_llhttp__internal__n_after_start_req_43;
  5012. }
  5013. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob41, 4);
  5014. p = match_seq.current;
  5015. switch (match_seq.status) {
  5016. case kMatchComplete: {
  5017. p++;
  5018. match = 13;
  5019. goto s_n_llhttp__internal__n_invoke_store_method_1;
  5020. }
  5021. case kMatchPause: {
  5022. return s_n_llhttp__internal__n_after_start_req_43;
  5023. }
  5024. case kMatchMismatch: {
  5025. goto s_n_llhttp__internal__n_error_106;
  5026. }
  5027. }
  5028. /* UNREACHABLE */;
  5029. abort();
  5030. }
  5031. case s_n_llhttp__internal__n_after_start_req_41:
  5032. s_n_llhttp__internal__n_after_start_req_41: {
  5033. if (p == endp) {
  5034. return s_n_llhttp__internal__n_after_start_req_41;
  5035. }
  5036. switch (*p) {
  5037. case 'F': {
  5038. p++;
  5039. goto s_n_llhttp__internal__n_after_start_req_42;
  5040. }
  5041. case 'P': {
  5042. p++;
  5043. goto s_n_llhttp__internal__n_after_start_req_43;
  5044. }
  5045. default: {
  5046. goto s_n_llhttp__internal__n_error_106;
  5047. }
  5048. }
  5049. /* UNREACHABLE */;
  5050. abort();
  5051. }
  5052. case s_n_llhttp__internal__n_after_start_req_40:
  5053. s_n_llhttp__internal__n_after_start_req_40: {
  5054. if (p == endp) {
  5055. return s_n_llhttp__internal__n_after_start_req_40;
  5056. }
  5057. switch (*p) {
  5058. case 'P': {
  5059. p++;
  5060. goto s_n_llhttp__internal__n_after_start_req_41;
  5061. }
  5062. default: {
  5063. goto s_n_llhttp__internal__n_error_106;
  5064. }
  5065. }
  5066. /* UNREACHABLE */;
  5067. abort();
  5068. }
  5069. case s_n_llhttp__internal__n_after_start_req_39:
  5070. s_n_llhttp__internal__n_after_start_req_39: {
  5071. if (p == endp) {
  5072. return s_n_llhttp__internal__n_after_start_req_39;
  5073. }
  5074. switch (*p) {
  5075. case 'I': {
  5076. p++;
  5077. match = 34;
  5078. goto s_n_llhttp__internal__n_invoke_store_method_1;
  5079. }
  5080. case 'O': {
  5081. p++;
  5082. goto s_n_llhttp__internal__n_after_start_req_40;
  5083. }
  5084. default: {
  5085. goto s_n_llhttp__internal__n_error_106;
  5086. }
  5087. }
  5088. /* UNREACHABLE */;
  5089. abort();
  5090. }
  5091. case s_n_llhttp__internal__n_after_start_req_45:
  5092. s_n_llhttp__internal__n_after_start_req_45: {
  5093. llparse_match_t match_seq;
  5094. if (p == endp) {
  5095. return s_n_llhttp__internal__n_after_start_req_45;
  5096. }
  5097. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob42, 2);
  5098. p = match_seq.current;
  5099. switch (match_seq.status) {
  5100. case kMatchComplete: {
  5101. p++;
  5102. match = 29;
  5103. goto s_n_llhttp__internal__n_invoke_store_method_1;
  5104. }
  5105. case kMatchPause: {
  5106. return s_n_llhttp__internal__n_after_start_req_45;
  5107. }
  5108. case kMatchMismatch: {
  5109. goto s_n_llhttp__internal__n_error_106;
  5110. }
  5111. }
  5112. /* UNREACHABLE */;
  5113. abort();
  5114. }
  5115. case s_n_llhttp__internal__n_after_start_req_44:
  5116. s_n_llhttp__internal__n_after_start_req_44: {
  5117. if (p == endp) {
  5118. return s_n_llhttp__internal__n_after_start_req_44;
  5119. }
  5120. switch (*p) {
  5121. case 'R': {
  5122. p++;
  5123. goto s_n_llhttp__internal__n_after_start_req_45;
  5124. }
  5125. case 'T': {
  5126. p++;
  5127. match = 4;
  5128. goto s_n_llhttp__internal__n_invoke_store_method_1;
  5129. }
  5130. default: {
  5131. goto s_n_llhttp__internal__n_error_106;
  5132. }
  5133. }
  5134. /* UNREACHABLE */;
  5135. abort();
  5136. }
  5137. case s_n_llhttp__internal__n_after_start_req_33:
  5138. s_n_llhttp__internal__n_after_start_req_33: {
  5139. if (p == endp) {
  5140. return s_n_llhttp__internal__n_after_start_req_33;
  5141. }
  5142. switch (*p) {
  5143. case 'A': {
  5144. p++;
  5145. goto s_n_llhttp__internal__n_after_start_req_34;
  5146. }
  5147. case 'L': {
  5148. p++;
  5149. goto s_n_llhttp__internal__n_after_start_req_37;
  5150. }
  5151. case 'O': {
  5152. p++;
  5153. goto s_n_llhttp__internal__n_after_start_req_38;
  5154. }
  5155. case 'R': {
  5156. p++;
  5157. goto s_n_llhttp__internal__n_after_start_req_39;
  5158. }
  5159. case 'U': {
  5160. p++;
  5161. goto s_n_llhttp__internal__n_after_start_req_44;
  5162. }
  5163. default: {
  5164. goto s_n_llhttp__internal__n_error_106;
  5165. }
  5166. }
  5167. /* UNREACHABLE */;
  5168. abort();
  5169. }
  5170. case s_n_llhttp__internal__n_after_start_req_48:
  5171. s_n_llhttp__internal__n_after_start_req_48: {
  5172. llparse_match_t match_seq;
  5173. if (p == endp) {
  5174. return s_n_llhttp__internal__n_after_start_req_48;
  5175. }
  5176. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob43, 3);
  5177. p = match_seq.current;
  5178. switch (match_seq.status) {
  5179. case kMatchComplete: {
  5180. p++;
  5181. match = 17;
  5182. goto s_n_llhttp__internal__n_invoke_store_method_1;
  5183. }
  5184. case kMatchPause: {
  5185. return s_n_llhttp__internal__n_after_start_req_48;
  5186. }
  5187. case kMatchMismatch: {
  5188. goto s_n_llhttp__internal__n_error_106;
  5189. }
  5190. }
  5191. /* UNREACHABLE */;
  5192. abort();
  5193. }
  5194. case s_n_llhttp__internal__n_after_start_req_49:
  5195. s_n_llhttp__internal__n_after_start_req_49: {
  5196. llparse_match_t match_seq;
  5197. if (p == endp) {
  5198. return s_n_llhttp__internal__n_after_start_req_49;
  5199. }
  5200. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob44, 3);
  5201. p = match_seq.current;
  5202. switch (match_seq.status) {
  5203. case kMatchComplete: {
  5204. p++;
  5205. match = 44;
  5206. goto s_n_llhttp__internal__n_invoke_store_method_1;
  5207. }
  5208. case kMatchPause: {
  5209. return s_n_llhttp__internal__n_after_start_req_49;
  5210. }
  5211. case kMatchMismatch: {
  5212. goto s_n_llhttp__internal__n_error_106;
  5213. }
  5214. }
  5215. /* UNREACHABLE */;
  5216. abort();
  5217. }
  5218. case s_n_llhttp__internal__n_after_start_req_50:
  5219. s_n_llhttp__internal__n_after_start_req_50: {
  5220. llparse_match_t match_seq;
  5221. if (p == endp) {
  5222. return s_n_llhttp__internal__n_after_start_req_50;
  5223. }
  5224. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob45, 5);
  5225. p = match_seq.current;
  5226. switch (match_seq.status) {
  5227. case kMatchComplete: {
  5228. p++;
  5229. match = 43;
  5230. goto s_n_llhttp__internal__n_invoke_store_method_1;
  5231. }
  5232. case kMatchPause: {
  5233. return s_n_llhttp__internal__n_after_start_req_50;
  5234. }
  5235. case kMatchMismatch: {
  5236. goto s_n_llhttp__internal__n_error_106;
  5237. }
  5238. }
  5239. /* UNREACHABLE */;
  5240. abort();
  5241. }
  5242. case s_n_llhttp__internal__n_after_start_req_51:
  5243. s_n_llhttp__internal__n_after_start_req_51: {
  5244. llparse_match_t match_seq;
  5245. if (p == endp) {
  5246. return s_n_llhttp__internal__n_after_start_req_51;
  5247. }
  5248. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob46, 3);
  5249. p = match_seq.current;
  5250. switch (match_seq.status) {
  5251. case kMatchComplete: {
  5252. p++;
  5253. match = 20;
  5254. goto s_n_llhttp__internal__n_invoke_store_method_1;
  5255. }
  5256. case kMatchPause: {
  5257. return s_n_llhttp__internal__n_after_start_req_51;
  5258. }
  5259. case kMatchMismatch: {
  5260. goto s_n_llhttp__internal__n_error_106;
  5261. }
  5262. }
  5263. /* UNREACHABLE */;
  5264. abort();
  5265. }
  5266. case s_n_llhttp__internal__n_after_start_req_47:
  5267. s_n_llhttp__internal__n_after_start_req_47: {
  5268. if (p == endp) {
  5269. return s_n_llhttp__internal__n_after_start_req_47;
  5270. }
  5271. switch (*p) {
  5272. case 'B': {
  5273. p++;
  5274. goto s_n_llhttp__internal__n_after_start_req_48;
  5275. }
  5276. case 'C': {
  5277. p++;
  5278. goto s_n_llhttp__internal__n_after_start_req_49;
  5279. }
  5280. case 'D': {
  5281. p++;
  5282. goto s_n_llhttp__internal__n_after_start_req_50;
  5283. }
  5284. case 'P': {
  5285. p++;
  5286. goto s_n_llhttp__internal__n_after_start_req_51;
  5287. }
  5288. default: {
  5289. goto s_n_llhttp__internal__n_error_106;
  5290. }
  5291. }
  5292. /* UNREACHABLE */;
  5293. abort();
  5294. }
  5295. case s_n_llhttp__internal__n_after_start_req_46:
  5296. s_n_llhttp__internal__n_after_start_req_46: {
  5297. if (p == endp) {
  5298. return s_n_llhttp__internal__n_after_start_req_46;
  5299. }
  5300. switch (*p) {
  5301. case 'E': {
  5302. p++;
  5303. goto s_n_llhttp__internal__n_after_start_req_47;
  5304. }
  5305. default: {
  5306. goto s_n_llhttp__internal__n_error_106;
  5307. }
  5308. }
  5309. /* UNREACHABLE */;
  5310. abort();
  5311. }
  5312. case s_n_llhttp__internal__n_after_start_req_54:
  5313. s_n_llhttp__internal__n_after_start_req_54: {
  5314. llparse_match_t match_seq;
  5315. if (p == endp) {
  5316. return s_n_llhttp__internal__n_after_start_req_54;
  5317. }
  5318. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob47, 3);
  5319. p = match_seq.current;
  5320. switch (match_seq.status) {
  5321. case kMatchComplete: {
  5322. p++;
  5323. match = 14;
  5324. goto s_n_llhttp__internal__n_invoke_store_method_1;
  5325. }
  5326. case kMatchPause: {
  5327. return s_n_llhttp__internal__n_after_start_req_54;
  5328. }
  5329. case kMatchMismatch: {
  5330. goto s_n_llhttp__internal__n_error_106;
  5331. }
  5332. }
  5333. /* UNREACHABLE */;
  5334. abort();
  5335. }
  5336. case s_n_llhttp__internal__n_after_start_req_56:
  5337. s_n_llhttp__internal__n_after_start_req_56: {
  5338. if (p == endp) {
  5339. return s_n_llhttp__internal__n_after_start_req_56;
  5340. }
  5341. switch (*p) {
  5342. case 'P': {
  5343. p++;
  5344. match = 37;
  5345. goto s_n_llhttp__internal__n_invoke_store_method_1;
  5346. }
  5347. default: {
  5348. goto s_n_llhttp__internal__n_error_106;
  5349. }
  5350. }
  5351. /* UNREACHABLE */;
  5352. abort();
  5353. }
  5354. case s_n_llhttp__internal__n_after_start_req_57:
  5355. s_n_llhttp__internal__n_after_start_req_57: {
  5356. llparse_match_t match_seq;
  5357. if (p == endp) {
  5358. return s_n_llhttp__internal__n_after_start_req_57;
  5359. }
  5360. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob48, 9);
  5361. p = match_seq.current;
  5362. switch (match_seq.status) {
  5363. case kMatchComplete: {
  5364. p++;
  5365. match = 42;
  5366. goto s_n_llhttp__internal__n_invoke_store_method_1;
  5367. }
  5368. case kMatchPause: {
  5369. return s_n_llhttp__internal__n_after_start_req_57;
  5370. }
  5371. case kMatchMismatch: {
  5372. goto s_n_llhttp__internal__n_error_106;
  5373. }
  5374. }
  5375. /* UNREACHABLE */;
  5376. abort();
  5377. }
  5378. case s_n_llhttp__internal__n_after_start_req_55:
  5379. s_n_llhttp__internal__n_after_start_req_55: {
  5380. if (p == endp) {
  5381. return s_n_llhttp__internal__n_after_start_req_55;
  5382. }
  5383. switch (*p) {
  5384. case 'U': {
  5385. p++;
  5386. goto s_n_llhttp__internal__n_after_start_req_56;
  5387. }
  5388. case '_': {
  5389. p++;
  5390. goto s_n_llhttp__internal__n_after_start_req_57;
  5391. }
  5392. default: {
  5393. goto s_n_llhttp__internal__n_error_106;
  5394. }
  5395. }
  5396. /* UNREACHABLE */;
  5397. abort();
  5398. }
  5399. case s_n_llhttp__internal__n_after_start_req_53:
  5400. s_n_llhttp__internal__n_after_start_req_53: {
  5401. if (p == endp) {
  5402. return s_n_llhttp__internal__n_after_start_req_53;
  5403. }
  5404. switch (*p) {
  5405. case 'A': {
  5406. p++;
  5407. goto s_n_llhttp__internal__n_after_start_req_54;
  5408. }
  5409. case 'T': {
  5410. p++;
  5411. goto s_n_llhttp__internal__n_after_start_req_55;
  5412. }
  5413. default: {
  5414. goto s_n_llhttp__internal__n_error_106;
  5415. }
  5416. }
  5417. /* UNREACHABLE */;
  5418. abort();
  5419. }
  5420. case s_n_llhttp__internal__n_after_start_req_58:
  5421. s_n_llhttp__internal__n_after_start_req_58: {
  5422. llparse_match_t match_seq;
  5423. if (p == endp) {
  5424. return s_n_llhttp__internal__n_after_start_req_58;
  5425. }
  5426. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob49, 4);
  5427. p = match_seq.current;
  5428. switch (match_seq.status) {
  5429. case kMatchComplete: {
  5430. p++;
  5431. match = 33;
  5432. goto s_n_llhttp__internal__n_invoke_store_method_1;
  5433. }
  5434. case kMatchPause: {
  5435. return s_n_llhttp__internal__n_after_start_req_58;
  5436. }
  5437. case kMatchMismatch: {
  5438. goto s_n_llhttp__internal__n_error_106;
  5439. }
  5440. }
  5441. /* UNREACHABLE */;
  5442. abort();
  5443. }
  5444. case s_n_llhttp__internal__n_after_start_req_59:
  5445. s_n_llhttp__internal__n_after_start_req_59: {
  5446. llparse_match_t match_seq;
  5447. if (p == endp) {
  5448. return s_n_llhttp__internal__n_after_start_req_59;
  5449. }
  5450. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob50, 7);
  5451. p = match_seq.current;
  5452. switch (match_seq.status) {
  5453. case kMatchComplete: {
  5454. p++;
  5455. match = 26;
  5456. goto s_n_llhttp__internal__n_invoke_store_method_1;
  5457. }
  5458. case kMatchPause: {
  5459. return s_n_llhttp__internal__n_after_start_req_59;
  5460. }
  5461. case kMatchMismatch: {
  5462. goto s_n_llhttp__internal__n_error_106;
  5463. }
  5464. }
  5465. /* UNREACHABLE */;
  5466. abort();
  5467. }
  5468. case s_n_llhttp__internal__n_after_start_req_52:
  5469. s_n_llhttp__internal__n_after_start_req_52: {
  5470. if (p == endp) {
  5471. return s_n_llhttp__internal__n_after_start_req_52;
  5472. }
  5473. switch (*p) {
  5474. case 'E': {
  5475. p++;
  5476. goto s_n_llhttp__internal__n_after_start_req_53;
  5477. }
  5478. case 'O': {
  5479. p++;
  5480. goto s_n_llhttp__internal__n_after_start_req_58;
  5481. }
  5482. case 'U': {
  5483. p++;
  5484. goto s_n_llhttp__internal__n_after_start_req_59;
  5485. }
  5486. default: {
  5487. goto s_n_llhttp__internal__n_error_106;
  5488. }
  5489. }
  5490. /* UNREACHABLE */;
  5491. abort();
  5492. }
  5493. case s_n_llhttp__internal__n_after_start_req_61:
  5494. s_n_llhttp__internal__n_after_start_req_61: {
  5495. llparse_match_t match_seq;
  5496. if (p == endp) {
  5497. return s_n_llhttp__internal__n_after_start_req_61;
  5498. }
  5499. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob51, 6);
  5500. p = match_seq.current;
  5501. switch (match_seq.status) {
  5502. case kMatchComplete: {
  5503. p++;
  5504. match = 40;
  5505. goto s_n_llhttp__internal__n_invoke_store_method_1;
  5506. }
  5507. case kMatchPause: {
  5508. return s_n_llhttp__internal__n_after_start_req_61;
  5509. }
  5510. case kMatchMismatch: {
  5511. goto s_n_llhttp__internal__n_error_106;
  5512. }
  5513. }
  5514. /* UNREACHABLE */;
  5515. abort();
  5516. }
  5517. case s_n_llhttp__internal__n_after_start_req_62:
  5518. s_n_llhttp__internal__n_after_start_req_62: {
  5519. llparse_match_t match_seq;
  5520. if (p == endp) {
  5521. return s_n_llhttp__internal__n_after_start_req_62;
  5522. }
  5523. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob52, 3);
  5524. p = match_seq.current;
  5525. switch (match_seq.status) {
  5526. case kMatchComplete: {
  5527. p++;
  5528. match = 7;
  5529. goto s_n_llhttp__internal__n_invoke_store_method_1;
  5530. }
  5531. case kMatchPause: {
  5532. return s_n_llhttp__internal__n_after_start_req_62;
  5533. }
  5534. case kMatchMismatch: {
  5535. goto s_n_llhttp__internal__n_error_106;
  5536. }
  5537. }
  5538. /* UNREACHABLE */;
  5539. abort();
  5540. }
  5541. case s_n_llhttp__internal__n_after_start_req_60:
  5542. s_n_llhttp__internal__n_after_start_req_60: {
  5543. if (p == endp) {
  5544. return s_n_llhttp__internal__n_after_start_req_60;
  5545. }
  5546. switch (*p) {
  5547. case 'E': {
  5548. p++;
  5549. goto s_n_llhttp__internal__n_after_start_req_61;
  5550. }
  5551. case 'R': {
  5552. p++;
  5553. goto s_n_llhttp__internal__n_after_start_req_62;
  5554. }
  5555. default: {
  5556. goto s_n_llhttp__internal__n_error_106;
  5557. }
  5558. }
  5559. /* UNREACHABLE */;
  5560. abort();
  5561. }
  5562. case s_n_llhttp__internal__n_after_start_req_65:
  5563. s_n_llhttp__internal__n_after_start_req_65: {
  5564. llparse_match_t match_seq;
  5565. if (p == endp) {
  5566. return s_n_llhttp__internal__n_after_start_req_65;
  5567. }
  5568. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob53, 3);
  5569. p = match_seq.current;
  5570. switch (match_seq.status) {
  5571. case kMatchComplete: {
  5572. p++;
  5573. match = 18;
  5574. goto s_n_llhttp__internal__n_invoke_store_method_1;
  5575. }
  5576. case kMatchPause: {
  5577. return s_n_llhttp__internal__n_after_start_req_65;
  5578. }
  5579. case kMatchMismatch: {
  5580. goto s_n_llhttp__internal__n_error_106;
  5581. }
  5582. }
  5583. /* UNREACHABLE */;
  5584. abort();
  5585. }
  5586. case s_n_llhttp__internal__n_after_start_req_67:
  5587. s_n_llhttp__internal__n_after_start_req_67: {
  5588. llparse_match_t match_seq;
  5589. if (p == endp) {
  5590. return s_n_llhttp__internal__n_after_start_req_67;
  5591. }
  5592. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob54, 2);
  5593. p = match_seq.current;
  5594. switch (match_seq.status) {
  5595. case kMatchComplete: {
  5596. p++;
  5597. match = 32;
  5598. goto s_n_llhttp__internal__n_invoke_store_method_1;
  5599. }
  5600. case kMatchPause: {
  5601. return s_n_llhttp__internal__n_after_start_req_67;
  5602. }
  5603. case kMatchMismatch: {
  5604. goto s_n_llhttp__internal__n_error_106;
  5605. }
  5606. }
  5607. /* UNREACHABLE */;
  5608. abort();
  5609. }
  5610. case s_n_llhttp__internal__n_after_start_req_68:
  5611. s_n_llhttp__internal__n_after_start_req_68: {
  5612. llparse_match_t match_seq;
  5613. if (p == endp) {
  5614. return s_n_llhttp__internal__n_after_start_req_68;
  5615. }
  5616. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob55, 2);
  5617. p = match_seq.current;
  5618. switch (match_seq.status) {
  5619. case kMatchComplete: {
  5620. p++;
  5621. match = 15;
  5622. goto s_n_llhttp__internal__n_invoke_store_method_1;
  5623. }
  5624. case kMatchPause: {
  5625. return s_n_llhttp__internal__n_after_start_req_68;
  5626. }
  5627. case kMatchMismatch: {
  5628. goto s_n_llhttp__internal__n_error_106;
  5629. }
  5630. }
  5631. /* UNREACHABLE */;
  5632. abort();
  5633. }
  5634. case s_n_llhttp__internal__n_after_start_req_66:
  5635. s_n_llhttp__internal__n_after_start_req_66: {
  5636. if (p == endp) {
  5637. return s_n_llhttp__internal__n_after_start_req_66;
  5638. }
  5639. switch (*p) {
  5640. case 'I': {
  5641. p++;
  5642. goto s_n_llhttp__internal__n_after_start_req_67;
  5643. }
  5644. case 'O': {
  5645. p++;
  5646. goto s_n_llhttp__internal__n_after_start_req_68;
  5647. }
  5648. default: {
  5649. goto s_n_llhttp__internal__n_error_106;
  5650. }
  5651. }
  5652. /* UNREACHABLE */;
  5653. abort();
  5654. }
  5655. case s_n_llhttp__internal__n_after_start_req_69:
  5656. s_n_llhttp__internal__n_after_start_req_69: {
  5657. llparse_match_t match_seq;
  5658. if (p == endp) {
  5659. return s_n_llhttp__internal__n_after_start_req_69;
  5660. }
  5661. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob56, 8);
  5662. p = match_seq.current;
  5663. switch (match_seq.status) {
  5664. case kMatchComplete: {
  5665. p++;
  5666. match = 27;
  5667. goto s_n_llhttp__internal__n_invoke_store_method_1;
  5668. }
  5669. case kMatchPause: {
  5670. return s_n_llhttp__internal__n_after_start_req_69;
  5671. }
  5672. case kMatchMismatch: {
  5673. goto s_n_llhttp__internal__n_error_106;
  5674. }
  5675. }
  5676. /* UNREACHABLE */;
  5677. abort();
  5678. }
  5679. case s_n_llhttp__internal__n_after_start_req_64:
  5680. s_n_llhttp__internal__n_after_start_req_64: {
  5681. if (p == endp) {
  5682. return s_n_llhttp__internal__n_after_start_req_64;
  5683. }
  5684. switch (*p) {
  5685. case 'B': {
  5686. p++;
  5687. goto s_n_llhttp__internal__n_after_start_req_65;
  5688. }
  5689. case 'L': {
  5690. p++;
  5691. goto s_n_llhttp__internal__n_after_start_req_66;
  5692. }
  5693. case 'S': {
  5694. p++;
  5695. goto s_n_llhttp__internal__n_after_start_req_69;
  5696. }
  5697. default: {
  5698. goto s_n_llhttp__internal__n_error_106;
  5699. }
  5700. }
  5701. /* UNREACHABLE */;
  5702. abort();
  5703. }
  5704. case s_n_llhttp__internal__n_after_start_req_63:
  5705. s_n_llhttp__internal__n_after_start_req_63: {
  5706. if (p == endp) {
  5707. return s_n_llhttp__internal__n_after_start_req_63;
  5708. }
  5709. switch (*p) {
  5710. case 'N': {
  5711. p++;
  5712. goto s_n_llhttp__internal__n_after_start_req_64;
  5713. }
  5714. default: {
  5715. goto s_n_llhttp__internal__n_error_106;
  5716. }
  5717. }
  5718. /* UNREACHABLE */;
  5719. abort();
  5720. }
  5721. case s_n_llhttp__internal__n_after_start_req:
  5722. s_n_llhttp__internal__n_after_start_req: {
  5723. if (p == endp) {
  5724. return s_n_llhttp__internal__n_after_start_req;
  5725. }
  5726. switch (*p) {
  5727. case 'A': {
  5728. p++;
  5729. goto s_n_llhttp__internal__n_after_start_req_1;
  5730. }
  5731. case 'B': {
  5732. p++;
  5733. goto s_n_llhttp__internal__n_after_start_req_4;
  5734. }
  5735. case 'C': {
  5736. p++;
  5737. goto s_n_llhttp__internal__n_after_start_req_5;
  5738. }
  5739. case 'D': {
  5740. p++;
  5741. goto s_n_llhttp__internal__n_after_start_req_10;
  5742. }
  5743. case 'F': {
  5744. p++;
  5745. goto s_n_llhttp__internal__n_after_start_req_14;
  5746. }
  5747. case 'G': {
  5748. p++;
  5749. goto s_n_llhttp__internal__n_after_start_req_15;
  5750. }
  5751. case 'H': {
  5752. p++;
  5753. goto s_n_llhttp__internal__n_after_start_req_18;
  5754. }
  5755. case 'L': {
  5756. p++;
  5757. goto s_n_llhttp__internal__n_after_start_req_19;
  5758. }
  5759. case 'M': {
  5760. p++;
  5761. goto s_n_llhttp__internal__n_after_start_req_22;
  5762. }
  5763. case 'N': {
  5764. p++;
  5765. goto s_n_llhttp__internal__n_after_start_req_31;
  5766. }
  5767. case 'O': {
  5768. p++;
  5769. goto s_n_llhttp__internal__n_after_start_req_32;
  5770. }
  5771. case 'P': {
  5772. p++;
  5773. goto s_n_llhttp__internal__n_after_start_req_33;
  5774. }
  5775. case 'R': {
  5776. p++;
  5777. goto s_n_llhttp__internal__n_after_start_req_46;
  5778. }
  5779. case 'S': {
  5780. p++;
  5781. goto s_n_llhttp__internal__n_after_start_req_52;
  5782. }
  5783. case 'T': {
  5784. p++;
  5785. goto s_n_llhttp__internal__n_after_start_req_60;
  5786. }
  5787. case 'U': {
  5788. p++;
  5789. goto s_n_llhttp__internal__n_after_start_req_63;
  5790. }
  5791. default: {
  5792. goto s_n_llhttp__internal__n_error_106;
  5793. }
  5794. }
  5795. /* UNREACHABLE */;
  5796. abort();
  5797. }
  5798. case s_n_llhttp__internal__n_span_start_llhttp__on_method_1:
  5799. s_n_llhttp__internal__n_span_start_llhttp__on_method_1: {
  5800. if (p == endp) {
  5801. return s_n_llhttp__internal__n_span_start_llhttp__on_method_1;
  5802. }
  5803. state->_span_pos0 = (void*) p;
  5804. state->_span_cb0 = llhttp__on_method;
  5805. goto s_n_llhttp__internal__n_after_start_req;
  5806. /* UNREACHABLE */;
  5807. abort();
  5808. }
  5809. case s_n_llhttp__internal__n_res_line_almost_done:
  5810. s_n_llhttp__internal__n_res_line_almost_done: {
  5811. if (p == endp) {
  5812. return s_n_llhttp__internal__n_res_line_almost_done;
  5813. }
  5814. switch (*p) {
  5815. case 10: {
  5816. p++;
  5817. goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete;
  5818. }
  5819. case 13: {
  5820. p++;
  5821. goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete;
  5822. }
  5823. default: {
  5824. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_28;
  5825. }
  5826. }
  5827. /* UNREACHABLE */;
  5828. abort();
  5829. }
  5830. case s_n_llhttp__internal__n_invoke_test_lenient_flags_29:
  5831. s_n_llhttp__internal__n_invoke_test_lenient_flags_29: {
  5832. switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
  5833. case 1:
  5834. goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete;
  5835. default:
  5836. goto s_n_llhttp__internal__n_error_92;
  5837. }
  5838. /* UNREACHABLE */;
  5839. abort();
  5840. }
  5841. case s_n_llhttp__internal__n_res_status:
  5842. s_n_llhttp__internal__n_res_status: {
  5843. if (p == endp) {
  5844. return s_n_llhttp__internal__n_res_status;
  5845. }
  5846. switch (*p) {
  5847. case 10: {
  5848. goto s_n_llhttp__internal__n_span_end_llhttp__on_status;
  5849. }
  5850. case 13: {
  5851. goto s_n_llhttp__internal__n_span_end_llhttp__on_status_1;
  5852. }
  5853. default: {
  5854. p++;
  5855. goto s_n_llhttp__internal__n_res_status;
  5856. }
  5857. }
  5858. /* UNREACHABLE */;
  5859. abort();
  5860. }
  5861. case s_n_llhttp__internal__n_span_start_llhttp__on_status:
  5862. s_n_llhttp__internal__n_span_start_llhttp__on_status: {
  5863. if (p == endp) {
  5864. return s_n_llhttp__internal__n_span_start_llhttp__on_status;
  5865. }
  5866. state->_span_pos0 = (void*) p;
  5867. state->_span_cb0 = llhttp__on_status;
  5868. goto s_n_llhttp__internal__n_res_status;
  5869. /* UNREACHABLE */;
  5870. abort();
  5871. }
  5872. case s_n_llhttp__internal__n_res_status_code_otherwise:
  5873. s_n_llhttp__internal__n_res_status_code_otherwise: {
  5874. if (p == endp) {
  5875. return s_n_llhttp__internal__n_res_status_code_otherwise;
  5876. }
  5877. switch (*p) {
  5878. case 10: {
  5879. p++;
  5880. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_27;
  5881. }
  5882. case 13: {
  5883. p++;
  5884. goto s_n_llhttp__internal__n_res_line_almost_done;
  5885. }
  5886. case ' ': {
  5887. p++;
  5888. goto s_n_llhttp__internal__n_span_start_llhttp__on_status;
  5889. }
  5890. default: {
  5891. goto s_n_llhttp__internal__n_error_93;
  5892. }
  5893. }
  5894. /* UNREACHABLE */;
  5895. abort();
  5896. }
  5897. case s_n_llhttp__internal__n_res_status_code_digit_3:
  5898. s_n_llhttp__internal__n_res_status_code_digit_3: {
  5899. if (p == endp) {
  5900. return s_n_llhttp__internal__n_res_status_code_digit_3;
  5901. }
  5902. switch (*p) {
  5903. case '0': {
  5904. p++;
  5905. match = 0;
  5906. goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2;
  5907. }
  5908. case '1': {
  5909. p++;
  5910. match = 1;
  5911. goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2;
  5912. }
  5913. case '2': {
  5914. p++;
  5915. match = 2;
  5916. goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2;
  5917. }
  5918. case '3': {
  5919. p++;
  5920. match = 3;
  5921. goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2;
  5922. }
  5923. case '4': {
  5924. p++;
  5925. match = 4;
  5926. goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2;
  5927. }
  5928. case '5': {
  5929. p++;
  5930. match = 5;
  5931. goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2;
  5932. }
  5933. case '6': {
  5934. p++;
  5935. match = 6;
  5936. goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2;
  5937. }
  5938. case '7': {
  5939. p++;
  5940. match = 7;
  5941. goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2;
  5942. }
  5943. case '8': {
  5944. p++;
  5945. match = 8;
  5946. goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2;
  5947. }
  5948. case '9': {
  5949. p++;
  5950. match = 9;
  5951. goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2;
  5952. }
  5953. default: {
  5954. goto s_n_llhttp__internal__n_error_95;
  5955. }
  5956. }
  5957. /* UNREACHABLE */;
  5958. abort();
  5959. }
  5960. case s_n_llhttp__internal__n_res_status_code_digit_2:
  5961. s_n_llhttp__internal__n_res_status_code_digit_2: {
  5962. if (p == endp) {
  5963. return s_n_llhttp__internal__n_res_status_code_digit_2;
  5964. }
  5965. switch (*p) {
  5966. case '0': {
  5967. p++;
  5968. match = 0;
  5969. goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1;
  5970. }
  5971. case '1': {
  5972. p++;
  5973. match = 1;
  5974. goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1;
  5975. }
  5976. case '2': {
  5977. p++;
  5978. match = 2;
  5979. goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1;
  5980. }
  5981. case '3': {
  5982. p++;
  5983. match = 3;
  5984. goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1;
  5985. }
  5986. case '4': {
  5987. p++;
  5988. match = 4;
  5989. goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1;
  5990. }
  5991. case '5': {
  5992. p++;
  5993. match = 5;
  5994. goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1;
  5995. }
  5996. case '6': {
  5997. p++;
  5998. match = 6;
  5999. goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1;
  6000. }
  6001. case '7': {
  6002. p++;
  6003. match = 7;
  6004. goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1;
  6005. }
  6006. case '8': {
  6007. p++;
  6008. match = 8;
  6009. goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1;
  6010. }
  6011. case '9': {
  6012. p++;
  6013. match = 9;
  6014. goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1;
  6015. }
  6016. default: {
  6017. goto s_n_llhttp__internal__n_error_97;
  6018. }
  6019. }
  6020. /* UNREACHABLE */;
  6021. abort();
  6022. }
  6023. case s_n_llhttp__internal__n_res_status_code_digit_1:
  6024. s_n_llhttp__internal__n_res_status_code_digit_1: {
  6025. if (p == endp) {
  6026. return s_n_llhttp__internal__n_res_status_code_digit_1;
  6027. }
  6028. switch (*p) {
  6029. case '0': {
  6030. p++;
  6031. match = 0;
  6032. goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
  6033. }
  6034. case '1': {
  6035. p++;
  6036. match = 1;
  6037. goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
  6038. }
  6039. case '2': {
  6040. p++;
  6041. match = 2;
  6042. goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
  6043. }
  6044. case '3': {
  6045. p++;
  6046. match = 3;
  6047. goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
  6048. }
  6049. case '4': {
  6050. p++;
  6051. match = 4;
  6052. goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
  6053. }
  6054. case '5': {
  6055. p++;
  6056. match = 5;
  6057. goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
  6058. }
  6059. case '6': {
  6060. p++;
  6061. match = 6;
  6062. goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
  6063. }
  6064. case '7': {
  6065. p++;
  6066. match = 7;
  6067. goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
  6068. }
  6069. case '8': {
  6070. p++;
  6071. match = 8;
  6072. goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
  6073. }
  6074. case '9': {
  6075. p++;
  6076. match = 9;
  6077. goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
  6078. }
  6079. default: {
  6080. goto s_n_llhttp__internal__n_error_99;
  6081. }
  6082. }
  6083. /* UNREACHABLE */;
  6084. abort();
  6085. }
  6086. case s_n_llhttp__internal__n_res_after_version:
  6087. s_n_llhttp__internal__n_res_after_version: {
  6088. if (p == endp) {
  6089. return s_n_llhttp__internal__n_res_after_version;
  6090. }
  6091. switch (*p) {
  6092. case ' ': {
  6093. p++;
  6094. goto s_n_llhttp__internal__n_invoke_update_status_code;
  6095. }
  6096. default: {
  6097. goto s_n_llhttp__internal__n_error_100;
  6098. }
  6099. }
  6100. /* UNREACHABLE */;
  6101. abort();
  6102. }
  6103. case s_n_llhttp__internal__n_invoke_llhttp__on_version_complete_1:
  6104. s_n_llhttp__internal__n_invoke_llhttp__on_version_complete_1: {
  6105. switch (llhttp__on_version_complete(state, p, endp)) {
  6106. case 0:
  6107. goto s_n_llhttp__internal__n_res_after_version;
  6108. case 21:
  6109. goto s_n_llhttp__internal__n_pause_25;
  6110. default:
  6111. goto s_n_llhttp__internal__n_error_88;
  6112. }
  6113. /* UNREACHABLE */;
  6114. abort();
  6115. }
  6116. case s_n_llhttp__internal__n_error_87:
  6117. s_n_llhttp__internal__n_error_87: {
  6118. state->error = 0x9;
  6119. state->reason = "Invalid HTTP version";
  6120. state->error_pos = (const char*) p;
  6121. state->_current = (void*) (intptr_t) s_error;
  6122. return s_error;
  6123. /* UNREACHABLE */;
  6124. abort();
  6125. }
  6126. case s_n_llhttp__internal__n_error_101:
  6127. s_n_llhttp__internal__n_error_101: {
  6128. state->error = 0x9;
  6129. state->reason = "Invalid minor version";
  6130. state->error_pos = (const char*) p;
  6131. state->_current = (void*) (intptr_t) s_error;
  6132. return s_error;
  6133. /* UNREACHABLE */;
  6134. abort();
  6135. }
  6136. case s_n_llhttp__internal__n_res_http_minor:
  6137. s_n_llhttp__internal__n_res_http_minor: {
  6138. if (p == endp) {
  6139. return s_n_llhttp__internal__n_res_http_minor;
  6140. }
  6141. switch (*p) {
  6142. case '0': {
  6143. p++;
  6144. match = 0;
  6145. goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
  6146. }
  6147. case '1': {
  6148. p++;
  6149. match = 1;
  6150. goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
  6151. }
  6152. case '2': {
  6153. p++;
  6154. match = 2;
  6155. goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
  6156. }
  6157. case '3': {
  6158. p++;
  6159. match = 3;
  6160. goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
  6161. }
  6162. case '4': {
  6163. p++;
  6164. match = 4;
  6165. goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
  6166. }
  6167. case '5': {
  6168. p++;
  6169. match = 5;
  6170. goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
  6171. }
  6172. case '6': {
  6173. p++;
  6174. match = 6;
  6175. goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
  6176. }
  6177. case '7': {
  6178. p++;
  6179. match = 7;
  6180. goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
  6181. }
  6182. case '8': {
  6183. p++;
  6184. match = 8;
  6185. goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
  6186. }
  6187. case '9': {
  6188. p++;
  6189. match = 9;
  6190. goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
  6191. }
  6192. default: {
  6193. goto s_n_llhttp__internal__n_span_end_llhttp__on_version_7;
  6194. }
  6195. }
  6196. /* UNREACHABLE */;
  6197. abort();
  6198. }
  6199. case s_n_llhttp__internal__n_error_102:
  6200. s_n_llhttp__internal__n_error_102: {
  6201. state->error = 0x9;
  6202. state->reason = "Expected dot";
  6203. state->error_pos = (const char*) p;
  6204. state->_current = (void*) (intptr_t) s_error;
  6205. return s_error;
  6206. /* UNREACHABLE */;
  6207. abort();
  6208. }
  6209. case s_n_llhttp__internal__n_res_http_dot:
  6210. s_n_llhttp__internal__n_res_http_dot: {
  6211. if (p == endp) {
  6212. return s_n_llhttp__internal__n_res_http_dot;
  6213. }
  6214. switch (*p) {
  6215. case '.': {
  6216. p++;
  6217. goto s_n_llhttp__internal__n_res_http_minor;
  6218. }
  6219. default: {
  6220. goto s_n_llhttp__internal__n_span_end_llhttp__on_version_8;
  6221. }
  6222. }
  6223. /* UNREACHABLE */;
  6224. abort();
  6225. }
  6226. case s_n_llhttp__internal__n_error_103:
  6227. s_n_llhttp__internal__n_error_103: {
  6228. state->error = 0x9;
  6229. state->reason = "Invalid major version";
  6230. state->error_pos = (const char*) p;
  6231. state->_current = (void*) (intptr_t) s_error;
  6232. return s_error;
  6233. /* UNREACHABLE */;
  6234. abort();
  6235. }
  6236. case s_n_llhttp__internal__n_res_http_major:
  6237. s_n_llhttp__internal__n_res_http_major: {
  6238. if (p == endp) {
  6239. return s_n_llhttp__internal__n_res_http_major;
  6240. }
  6241. switch (*p) {
  6242. case '0': {
  6243. p++;
  6244. match = 0;
  6245. goto s_n_llhttp__internal__n_invoke_store_http_major_1;
  6246. }
  6247. case '1': {
  6248. p++;
  6249. match = 1;
  6250. goto s_n_llhttp__internal__n_invoke_store_http_major_1;
  6251. }
  6252. case '2': {
  6253. p++;
  6254. match = 2;
  6255. goto s_n_llhttp__internal__n_invoke_store_http_major_1;
  6256. }
  6257. case '3': {
  6258. p++;
  6259. match = 3;
  6260. goto s_n_llhttp__internal__n_invoke_store_http_major_1;
  6261. }
  6262. case '4': {
  6263. p++;
  6264. match = 4;
  6265. goto s_n_llhttp__internal__n_invoke_store_http_major_1;
  6266. }
  6267. case '5': {
  6268. p++;
  6269. match = 5;
  6270. goto s_n_llhttp__internal__n_invoke_store_http_major_1;
  6271. }
  6272. case '6': {
  6273. p++;
  6274. match = 6;
  6275. goto s_n_llhttp__internal__n_invoke_store_http_major_1;
  6276. }
  6277. case '7': {
  6278. p++;
  6279. match = 7;
  6280. goto s_n_llhttp__internal__n_invoke_store_http_major_1;
  6281. }
  6282. case '8': {
  6283. p++;
  6284. match = 8;
  6285. goto s_n_llhttp__internal__n_invoke_store_http_major_1;
  6286. }
  6287. case '9': {
  6288. p++;
  6289. match = 9;
  6290. goto s_n_llhttp__internal__n_invoke_store_http_major_1;
  6291. }
  6292. default: {
  6293. goto s_n_llhttp__internal__n_span_end_llhttp__on_version_9;
  6294. }
  6295. }
  6296. /* UNREACHABLE */;
  6297. abort();
  6298. }
  6299. case s_n_llhttp__internal__n_span_start_llhttp__on_version_1:
  6300. s_n_llhttp__internal__n_span_start_llhttp__on_version_1: {
  6301. if (p == endp) {
  6302. return s_n_llhttp__internal__n_span_start_llhttp__on_version_1;
  6303. }
  6304. state->_span_pos0 = (void*) p;
  6305. state->_span_cb0 = llhttp__on_version;
  6306. goto s_n_llhttp__internal__n_res_http_major;
  6307. /* UNREACHABLE */;
  6308. abort();
  6309. }
  6310. case s_n_llhttp__internal__n_start_res:
  6311. s_n_llhttp__internal__n_start_res: {
  6312. llparse_match_t match_seq;
  6313. if (p == endp) {
  6314. return s_n_llhttp__internal__n_start_res;
  6315. }
  6316. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob57, 5);
  6317. p = match_seq.current;
  6318. switch (match_seq.status) {
  6319. case kMatchComplete: {
  6320. p++;
  6321. goto s_n_llhttp__internal__n_span_start_llhttp__on_version_1;
  6322. }
  6323. case kMatchPause: {
  6324. return s_n_llhttp__internal__n_start_res;
  6325. }
  6326. case kMatchMismatch: {
  6327. goto s_n_llhttp__internal__n_error_107;
  6328. }
  6329. }
  6330. /* UNREACHABLE */;
  6331. abort();
  6332. }
  6333. case s_n_llhttp__internal__n_invoke_llhttp__on_method_complete:
  6334. s_n_llhttp__internal__n_invoke_llhttp__on_method_complete: {
  6335. switch (llhttp__on_method_complete(state, p, endp)) {
  6336. case 0:
  6337. goto s_n_llhttp__internal__n_req_first_space_before_url;
  6338. case 21:
  6339. goto s_n_llhttp__internal__n_pause_23;
  6340. default:
  6341. goto s_n_llhttp__internal__n_error_1;
  6342. }
  6343. /* UNREACHABLE */;
  6344. abort();
  6345. }
  6346. case s_n_llhttp__internal__n_req_or_res_method_2:
  6347. s_n_llhttp__internal__n_req_or_res_method_2: {
  6348. llparse_match_t match_seq;
  6349. if (p == endp) {
  6350. return s_n_llhttp__internal__n_req_or_res_method_2;
  6351. }
  6352. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob58, 2);
  6353. p = match_seq.current;
  6354. switch (match_seq.status) {
  6355. case kMatchComplete: {
  6356. p++;
  6357. match = 2;
  6358. goto s_n_llhttp__internal__n_invoke_store_method;
  6359. }
  6360. case kMatchPause: {
  6361. return s_n_llhttp__internal__n_req_or_res_method_2;
  6362. }
  6363. case kMatchMismatch: {
  6364. goto s_n_llhttp__internal__n_error_104;
  6365. }
  6366. }
  6367. /* UNREACHABLE */;
  6368. abort();
  6369. }
  6370. case s_n_llhttp__internal__n_invoke_update_type_1:
  6371. s_n_llhttp__internal__n_invoke_update_type_1: {
  6372. switch (llhttp__internal__c_update_type_1(state, p, endp)) {
  6373. default:
  6374. goto s_n_llhttp__internal__n_span_start_llhttp__on_version_1;
  6375. }
  6376. /* UNREACHABLE */;
  6377. abort();
  6378. }
  6379. case s_n_llhttp__internal__n_req_or_res_method_3:
  6380. s_n_llhttp__internal__n_req_or_res_method_3: {
  6381. llparse_match_t match_seq;
  6382. if (p == endp) {
  6383. return s_n_llhttp__internal__n_req_or_res_method_3;
  6384. }
  6385. match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob59, 3);
  6386. p = match_seq.current;
  6387. switch (match_seq.status) {
  6388. case kMatchComplete: {
  6389. p++;
  6390. goto s_n_llhttp__internal__n_span_end_llhttp__on_method_1;
  6391. }
  6392. case kMatchPause: {
  6393. return s_n_llhttp__internal__n_req_or_res_method_3;
  6394. }
  6395. case kMatchMismatch: {
  6396. goto s_n_llhttp__internal__n_error_104;
  6397. }
  6398. }
  6399. /* UNREACHABLE */;
  6400. abort();
  6401. }
  6402. case s_n_llhttp__internal__n_req_or_res_method_1:
  6403. s_n_llhttp__internal__n_req_or_res_method_1: {
  6404. if (p == endp) {
  6405. return s_n_llhttp__internal__n_req_or_res_method_1;
  6406. }
  6407. switch (*p) {
  6408. case 'E': {
  6409. p++;
  6410. goto s_n_llhttp__internal__n_req_or_res_method_2;
  6411. }
  6412. case 'T': {
  6413. p++;
  6414. goto s_n_llhttp__internal__n_req_or_res_method_3;
  6415. }
  6416. default: {
  6417. goto s_n_llhttp__internal__n_error_104;
  6418. }
  6419. }
  6420. /* UNREACHABLE */;
  6421. abort();
  6422. }
  6423. case s_n_llhttp__internal__n_req_or_res_method:
  6424. s_n_llhttp__internal__n_req_or_res_method: {
  6425. if (p == endp) {
  6426. return s_n_llhttp__internal__n_req_or_res_method;
  6427. }
  6428. switch (*p) {
  6429. case 'H': {
  6430. p++;
  6431. goto s_n_llhttp__internal__n_req_or_res_method_1;
  6432. }
  6433. default: {
  6434. goto s_n_llhttp__internal__n_error_104;
  6435. }
  6436. }
  6437. /* UNREACHABLE */;
  6438. abort();
  6439. }
  6440. case s_n_llhttp__internal__n_span_start_llhttp__on_method:
  6441. s_n_llhttp__internal__n_span_start_llhttp__on_method: {
  6442. if (p == endp) {
  6443. return s_n_llhttp__internal__n_span_start_llhttp__on_method;
  6444. }
  6445. state->_span_pos0 = (void*) p;
  6446. state->_span_cb0 = llhttp__on_method;
  6447. goto s_n_llhttp__internal__n_req_or_res_method;
  6448. /* UNREACHABLE */;
  6449. abort();
  6450. }
  6451. case s_n_llhttp__internal__n_start_req_or_res:
  6452. s_n_llhttp__internal__n_start_req_or_res: {
  6453. if (p == endp) {
  6454. return s_n_llhttp__internal__n_start_req_or_res;
  6455. }
  6456. switch (*p) {
  6457. case 'H': {
  6458. goto s_n_llhttp__internal__n_span_start_llhttp__on_method;
  6459. }
  6460. default: {
  6461. goto s_n_llhttp__internal__n_invoke_update_type_2;
  6462. }
  6463. }
  6464. /* UNREACHABLE */;
  6465. abort();
  6466. }
  6467. case s_n_llhttp__internal__n_invoke_load_type:
  6468. s_n_llhttp__internal__n_invoke_load_type: {
  6469. switch (llhttp__internal__c_load_type(state, p, endp)) {
  6470. case 1:
  6471. goto s_n_llhttp__internal__n_span_start_llhttp__on_method_1;
  6472. case 2:
  6473. goto s_n_llhttp__internal__n_start_res;
  6474. default:
  6475. goto s_n_llhttp__internal__n_start_req_or_res;
  6476. }
  6477. /* UNREACHABLE */;
  6478. abort();
  6479. }
  6480. case s_n_llhttp__internal__n_invoke_update_finish:
  6481. s_n_llhttp__internal__n_invoke_update_finish: {
  6482. switch (llhttp__internal__c_update_finish(state, p, endp)) {
  6483. default:
  6484. goto s_n_llhttp__internal__n_invoke_llhttp__on_message_begin;
  6485. }
  6486. /* UNREACHABLE */;
  6487. abort();
  6488. }
  6489. case s_n_llhttp__internal__n_start:
  6490. s_n_llhttp__internal__n_start: {
  6491. if (p == endp) {
  6492. return s_n_llhttp__internal__n_start;
  6493. }
  6494. switch (*p) {
  6495. case 10: {
  6496. p++;
  6497. goto s_n_llhttp__internal__n_start;
  6498. }
  6499. case 13: {
  6500. p++;
  6501. goto s_n_llhttp__internal__n_start;
  6502. }
  6503. default: {
  6504. goto s_n_llhttp__internal__n_invoke_load_initial_message_completed;
  6505. }
  6506. }
  6507. /* UNREACHABLE */;
  6508. abort();
  6509. }
  6510. default:
  6511. /* UNREACHABLE */
  6512. abort();
  6513. }
  6514. s_n_llhttp__internal__n_error_2: {
  6515. state->error = 0x7;
  6516. state->reason = "Invalid characters in url";
  6517. state->error_pos = (const char*) p;
  6518. state->_current = (void*) (intptr_t) s_error;
  6519. return s_error;
  6520. /* UNREACHABLE */;
  6521. abort();
  6522. }
  6523. s_n_llhttp__internal__n_invoke_update_finish_2: {
  6524. switch (llhttp__internal__c_update_finish_1(state, p, endp)) {
  6525. default:
  6526. goto s_n_llhttp__internal__n_start;
  6527. }
  6528. /* UNREACHABLE */;
  6529. abort();
  6530. }
  6531. s_n_llhttp__internal__n_invoke_update_initial_message_completed: {
  6532. switch (llhttp__internal__c_update_initial_message_completed(state, p, endp)) {
  6533. default:
  6534. goto s_n_llhttp__internal__n_invoke_update_finish_2;
  6535. }
  6536. /* UNREACHABLE */;
  6537. abort();
  6538. }
  6539. s_n_llhttp__internal__n_invoke_update_content_length: {
  6540. switch (llhttp__internal__c_update_content_length(state, p, endp)) {
  6541. default:
  6542. goto s_n_llhttp__internal__n_invoke_update_initial_message_completed;
  6543. }
  6544. /* UNREACHABLE */;
  6545. abort();
  6546. }
  6547. s_n_llhttp__internal__n_error_8: {
  6548. state->error = 0x5;
  6549. state->reason = "Data after `Connection: close`";
  6550. state->error_pos = (const char*) p;
  6551. state->_current = (void*) (intptr_t) s_error;
  6552. return s_error;
  6553. /* UNREACHABLE */;
  6554. abort();
  6555. }
  6556. s_n_llhttp__internal__n_invoke_test_lenient_flags_3: {
  6557. switch (llhttp__internal__c_test_lenient_flags_3(state, p, endp)) {
  6558. case 1:
  6559. goto s_n_llhttp__internal__n_closed;
  6560. default:
  6561. goto s_n_llhttp__internal__n_error_8;
  6562. }
  6563. /* UNREACHABLE */;
  6564. abort();
  6565. }
  6566. s_n_llhttp__internal__n_invoke_test_lenient_flags_2: {
  6567. switch (llhttp__internal__c_test_lenient_flags_2(state, p, endp)) {
  6568. case 1:
  6569. goto s_n_llhttp__internal__n_invoke_update_initial_message_completed;
  6570. default:
  6571. goto s_n_llhttp__internal__n_closed;
  6572. }
  6573. /* UNREACHABLE */;
  6574. abort();
  6575. }
  6576. s_n_llhttp__internal__n_invoke_update_finish_1: {
  6577. switch (llhttp__internal__c_update_finish_1(state, p, endp)) {
  6578. default:
  6579. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_2;
  6580. }
  6581. /* UNREACHABLE */;
  6582. abort();
  6583. }
  6584. s_n_llhttp__internal__n_pause_13: {
  6585. state->error = 0x15;
  6586. state->reason = "on_message_complete pause";
  6587. state->error_pos = (const char*) p;
  6588. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_is_equal_upgrade;
  6589. return s_error;
  6590. /* UNREACHABLE */;
  6591. abort();
  6592. }
  6593. s_n_llhttp__internal__n_error_38: {
  6594. state->error = 0x12;
  6595. state->reason = "`on_message_complete` callback error";
  6596. state->error_pos = (const char*) p;
  6597. state->_current = (void*) (intptr_t) s_error;
  6598. return s_error;
  6599. /* UNREACHABLE */;
  6600. abort();
  6601. }
  6602. s_n_llhttp__internal__n_pause_15: {
  6603. state->error = 0x15;
  6604. state->reason = "on_chunk_complete pause";
  6605. state->error_pos = (const char*) p;
  6606. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
  6607. return s_error;
  6608. /* UNREACHABLE */;
  6609. abort();
  6610. }
  6611. s_n_llhttp__internal__n_error_40: {
  6612. state->error = 0x14;
  6613. state->reason = "`on_chunk_complete` callback error";
  6614. state->error_pos = (const char*) p;
  6615. state->_current = (void*) (intptr_t) s_error;
  6616. return s_error;
  6617. /* UNREACHABLE */;
  6618. abort();
  6619. }
  6620. s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete_1: {
  6621. switch (llhttp__on_chunk_complete(state, p, endp)) {
  6622. case 0:
  6623. goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
  6624. case 21:
  6625. goto s_n_llhttp__internal__n_pause_15;
  6626. default:
  6627. goto s_n_llhttp__internal__n_error_40;
  6628. }
  6629. /* UNREACHABLE */;
  6630. abort();
  6631. }
  6632. s_n_llhttp__internal__n_pause_2: {
  6633. state->error = 0x15;
  6634. state->reason = "on_message_complete pause";
  6635. state->error_pos = (const char*) p;
  6636. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_pause_1;
  6637. return s_error;
  6638. /* UNREACHABLE */;
  6639. abort();
  6640. }
  6641. s_n_llhttp__internal__n_error_9: {
  6642. state->error = 0x12;
  6643. state->reason = "`on_message_complete` callback error";
  6644. state->error_pos = (const char*) p;
  6645. state->_current = (void*) (intptr_t) s_error;
  6646. return s_error;
  6647. /* UNREACHABLE */;
  6648. abort();
  6649. }
  6650. s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_1: {
  6651. switch (llhttp__on_message_complete(state, p, endp)) {
  6652. case 0:
  6653. goto s_n_llhttp__internal__n_pause_1;
  6654. case 21:
  6655. goto s_n_llhttp__internal__n_pause_2;
  6656. default:
  6657. goto s_n_llhttp__internal__n_error_9;
  6658. }
  6659. /* UNREACHABLE */;
  6660. abort();
  6661. }
  6662. s_n_llhttp__internal__n_error_36: {
  6663. state->error = 0xc;
  6664. state->reason = "Chunk size overflow";
  6665. state->error_pos = (const char*) p;
  6666. state->_current = (void*) (intptr_t) s_error;
  6667. return s_error;
  6668. /* UNREACHABLE */;
  6669. abort();
  6670. }
  6671. s_n_llhttp__internal__n_error_10: {
  6672. state->error = 0xc;
  6673. state->reason = "Invalid character in chunk size";
  6674. state->error_pos = (const char*) p;
  6675. state->_current = (void*) (intptr_t) s_error;
  6676. return s_error;
  6677. /* UNREACHABLE */;
  6678. abort();
  6679. }
  6680. s_n_llhttp__internal__n_invoke_test_lenient_flags_4: {
  6681. switch (llhttp__internal__c_test_lenient_flags_4(state, p, endp)) {
  6682. case 1:
  6683. goto s_n_llhttp__internal__n_chunk_size_otherwise;
  6684. default:
  6685. goto s_n_llhttp__internal__n_error_10;
  6686. }
  6687. /* UNREACHABLE */;
  6688. abort();
  6689. }
  6690. s_n_llhttp__internal__n_pause_3: {
  6691. state->error = 0x15;
  6692. state->reason = "on_chunk_complete pause";
  6693. state->error_pos = (const char*) p;
  6694. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_update_content_length_1;
  6695. return s_error;
  6696. /* UNREACHABLE */;
  6697. abort();
  6698. }
  6699. s_n_llhttp__internal__n_error_14: {
  6700. state->error = 0x14;
  6701. state->reason = "`on_chunk_complete` callback error";
  6702. state->error_pos = (const char*) p;
  6703. state->_current = (void*) (intptr_t) s_error;
  6704. return s_error;
  6705. /* UNREACHABLE */;
  6706. abort();
  6707. }
  6708. s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete: {
  6709. switch (llhttp__on_chunk_complete(state, p, endp)) {
  6710. case 0:
  6711. goto s_n_llhttp__internal__n_invoke_update_content_length_1;
  6712. case 21:
  6713. goto s_n_llhttp__internal__n_pause_3;
  6714. default:
  6715. goto s_n_llhttp__internal__n_error_14;
  6716. }
  6717. /* UNREACHABLE */;
  6718. abort();
  6719. }
  6720. s_n_llhttp__internal__n_error_13: {
  6721. state->error = 0x19;
  6722. state->reason = "Missing expected CR after chunk data";
  6723. state->error_pos = (const char*) p;
  6724. state->_current = (void*) (intptr_t) s_error;
  6725. return s_error;
  6726. /* UNREACHABLE */;
  6727. abort();
  6728. }
  6729. s_n_llhttp__internal__n_invoke_test_lenient_flags_6: {
  6730. switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
  6731. case 1:
  6732. goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete;
  6733. default:
  6734. goto s_n_llhttp__internal__n_error_13;
  6735. }
  6736. /* UNREACHABLE */;
  6737. abort();
  6738. }
  6739. s_n_llhttp__internal__n_error_15: {
  6740. state->error = 0x2;
  6741. state->reason = "Expected LF after chunk data";
  6742. state->error_pos = (const char*) p;
  6743. state->_current = (void*) (intptr_t) s_error;
  6744. return s_error;
  6745. /* UNREACHABLE */;
  6746. abort();
  6747. }
  6748. s_n_llhttp__internal__n_invoke_test_lenient_flags_7: {
  6749. switch (llhttp__internal__c_test_lenient_flags_7(state, p, endp)) {
  6750. case 1:
  6751. goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete;
  6752. default:
  6753. goto s_n_llhttp__internal__n_error_15;
  6754. }
  6755. /* UNREACHABLE */;
  6756. abort();
  6757. }
  6758. s_n_llhttp__internal__n_span_end_llhttp__on_body: {
  6759. const unsigned char* start;
  6760. int err;
  6761. start = state->_span_pos0;
  6762. state->_span_pos0 = NULL;
  6763. err = llhttp__on_body(state, start, p);
  6764. if (err != 0) {
  6765. state->error = err;
  6766. state->error_pos = (const char*) p;
  6767. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_chunk_data_almost_done;
  6768. return s_error;
  6769. }
  6770. goto s_n_llhttp__internal__n_chunk_data_almost_done;
  6771. /* UNREACHABLE */;
  6772. abort();
  6773. }
  6774. s_n_llhttp__internal__n_invoke_or_flags: {
  6775. switch (llhttp__internal__c_or_flags(state, p, endp)) {
  6776. default:
  6777. goto s_n_llhttp__internal__n_header_field_start;
  6778. }
  6779. /* UNREACHABLE */;
  6780. abort();
  6781. }
  6782. s_n_llhttp__internal__n_pause_4: {
  6783. state->error = 0x15;
  6784. state->reason = "on_chunk_header pause";
  6785. state->error_pos = (const char*) p;
  6786. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_is_equal_content_length;
  6787. return s_error;
  6788. /* UNREACHABLE */;
  6789. abort();
  6790. }
  6791. s_n_llhttp__internal__n_error_12: {
  6792. state->error = 0x13;
  6793. state->reason = "`on_chunk_header` callback error";
  6794. state->error_pos = (const char*) p;
  6795. state->_current = (void*) (intptr_t) s_error;
  6796. return s_error;
  6797. /* UNREACHABLE */;
  6798. abort();
  6799. }
  6800. s_n_llhttp__internal__n_invoke_llhttp__on_chunk_header: {
  6801. switch (llhttp__on_chunk_header(state, p, endp)) {
  6802. case 0:
  6803. goto s_n_llhttp__internal__n_invoke_is_equal_content_length;
  6804. case 21:
  6805. goto s_n_llhttp__internal__n_pause_4;
  6806. default:
  6807. goto s_n_llhttp__internal__n_error_12;
  6808. }
  6809. /* UNREACHABLE */;
  6810. abort();
  6811. }
  6812. s_n_llhttp__internal__n_error_16: {
  6813. state->error = 0x2;
  6814. state->reason = "Expected LF after chunk size";
  6815. state->error_pos = (const char*) p;
  6816. state->_current = (void*) (intptr_t) s_error;
  6817. return s_error;
  6818. /* UNREACHABLE */;
  6819. abort();
  6820. }
  6821. s_n_llhttp__internal__n_invoke_test_lenient_flags_8: {
  6822. switch (llhttp__internal__c_test_lenient_flags_8(state, p, endp)) {
  6823. case 1:
  6824. goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_header;
  6825. default:
  6826. goto s_n_llhttp__internal__n_error_16;
  6827. }
  6828. /* UNREACHABLE */;
  6829. abort();
  6830. }
  6831. s_n_llhttp__internal__n_error_11: {
  6832. state->error = 0x19;
  6833. state->reason = "Missing expected CR after chunk size";
  6834. state->error_pos = (const char*) p;
  6835. state->_current = (void*) (intptr_t) s_error;
  6836. return s_error;
  6837. /* UNREACHABLE */;
  6838. abort();
  6839. }
  6840. s_n_llhttp__internal__n_invoke_test_lenient_flags_5: {
  6841. switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
  6842. case 1:
  6843. goto s_n_llhttp__internal__n_chunk_size_almost_done;
  6844. default:
  6845. goto s_n_llhttp__internal__n_error_11;
  6846. }
  6847. /* UNREACHABLE */;
  6848. abort();
  6849. }
  6850. s_n_llhttp__internal__n_error_17: {
  6851. state->error = 0x2;
  6852. state->reason = "Invalid character in chunk extensions";
  6853. state->error_pos = (const char*) p;
  6854. state->_current = (void*) (intptr_t) s_error;
  6855. return s_error;
  6856. /* UNREACHABLE */;
  6857. abort();
  6858. }
  6859. s_n_llhttp__internal__n_error_18: {
  6860. state->error = 0x2;
  6861. state->reason = "Invalid character in chunk extensions";
  6862. state->error_pos = (const char*) p;
  6863. state->_current = (void*) (intptr_t) s_error;
  6864. return s_error;
  6865. /* UNREACHABLE */;
  6866. abort();
  6867. }
  6868. s_n_llhttp__internal__n_error_20: {
  6869. state->error = 0x19;
  6870. state->reason = "Missing expected CR after chunk extension name";
  6871. state->error_pos = (const char*) p;
  6872. state->_current = (void*) (intptr_t) s_error;
  6873. return s_error;
  6874. /* UNREACHABLE */;
  6875. abort();
  6876. }
  6877. s_n_llhttp__internal__n_pause_5: {
  6878. state->error = 0x15;
  6879. state->reason = "on_chunk_extension_name pause";
  6880. state->error_pos = (const char*) p;
  6881. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_test_lenient_flags_9;
  6882. return s_error;
  6883. /* UNREACHABLE */;
  6884. abort();
  6885. }
  6886. s_n_llhttp__internal__n_error_19: {
  6887. state->error = 0x22;
  6888. state->reason = "`on_chunk_extension_name` callback error";
  6889. state->error_pos = (const char*) p;
  6890. state->_current = (void*) (intptr_t) s_error;
  6891. return s_error;
  6892. /* UNREACHABLE */;
  6893. abort();
  6894. }
  6895. s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name: {
  6896. const unsigned char* start;
  6897. int err;
  6898. start = state->_span_pos0;
  6899. state->_span_pos0 = NULL;
  6900. err = llhttp__on_chunk_extension_name(state, start, p);
  6901. if (err != 0) {
  6902. state->error = err;
  6903. state->error_pos = (const char*) p;
  6904. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete;
  6905. return s_error;
  6906. }
  6907. goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete;
  6908. /* UNREACHABLE */;
  6909. abort();
  6910. }
  6911. s_n_llhttp__internal__n_pause_6: {
  6912. state->error = 0x15;
  6913. state->reason = "on_chunk_extension_name pause";
  6914. state->error_pos = (const char*) p;
  6915. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_chunk_size_almost_done;
  6916. return s_error;
  6917. /* UNREACHABLE */;
  6918. abort();
  6919. }
  6920. s_n_llhttp__internal__n_error_21: {
  6921. state->error = 0x22;
  6922. state->reason = "`on_chunk_extension_name` callback error";
  6923. state->error_pos = (const char*) p;
  6924. state->_current = (void*) (intptr_t) s_error;
  6925. return s_error;
  6926. /* UNREACHABLE */;
  6927. abort();
  6928. }
  6929. s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name_1: {
  6930. const unsigned char* start;
  6931. int err;
  6932. start = state->_span_pos0;
  6933. state->_span_pos0 = NULL;
  6934. err = llhttp__on_chunk_extension_name(state, start, p);
  6935. if (err != 0) {
  6936. state->error = err;
  6937. state->error_pos = (const char*) (p + 1);
  6938. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_1;
  6939. return s_error;
  6940. }
  6941. p++;
  6942. goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_1;
  6943. /* UNREACHABLE */;
  6944. abort();
  6945. }
  6946. s_n_llhttp__internal__n_pause_7: {
  6947. state->error = 0x15;
  6948. state->reason = "on_chunk_extension_name pause";
  6949. state->error_pos = (const char*) p;
  6950. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_chunk_extensions;
  6951. return s_error;
  6952. /* UNREACHABLE */;
  6953. abort();
  6954. }
  6955. s_n_llhttp__internal__n_error_22: {
  6956. state->error = 0x22;
  6957. state->reason = "`on_chunk_extension_name` callback error";
  6958. state->error_pos = (const char*) p;
  6959. state->_current = (void*) (intptr_t) s_error;
  6960. return s_error;
  6961. /* UNREACHABLE */;
  6962. abort();
  6963. }
  6964. s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name_2: {
  6965. const unsigned char* start;
  6966. int err;
  6967. start = state->_span_pos0;
  6968. state->_span_pos0 = NULL;
  6969. err = llhttp__on_chunk_extension_name(state, start, p);
  6970. if (err != 0) {
  6971. state->error = err;
  6972. state->error_pos = (const char*) (p + 1);
  6973. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_2;
  6974. return s_error;
  6975. }
  6976. p++;
  6977. goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_2;
  6978. /* UNREACHABLE */;
  6979. abort();
  6980. }
  6981. s_n_llhttp__internal__n_error_25: {
  6982. state->error = 0x19;
  6983. state->reason = "Missing expected CR after chunk extension value";
  6984. state->error_pos = (const char*) p;
  6985. state->_current = (void*) (intptr_t) s_error;
  6986. return s_error;
  6987. /* UNREACHABLE */;
  6988. abort();
  6989. }
  6990. s_n_llhttp__internal__n_pause_8: {
  6991. state->error = 0x15;
  6992. state->reason = "on_chunk_extension_value pause";
  6993. state->error_pos = (const char*) p;
  6994. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_test_lenient_flags_10;
  6995. return s_error;
  6996. /* UNREACHABLE */;
  6997. abort();
  6998. }
  6999. s_n_llhttp__internal__n_error_24: {
  7000. state->error = 0x23;
  7001. state->reason = "`on_chunk_extension_value` callback error";
  7002. state->error_pos = (const char*) p;
  7003. state->_current = (void*) (intptr_t) s_error;
  7004. return s_error;
  7005. /* UNREACHABLE */;
  7006. abort();
  7007. }
  7008. s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value: {
  7009. const unsigned char* start;
  7010. int err;
  7011. start = state->_span_pos0;
  7012. state->_span_pos0 = NULL;
  7013. err = llhttp__on_chunk_extension_value(state, start, p);
  7014. if (err != 0) {
  7015. state->error = err;
  7016. state->error_pos = (const char*) p;
  7017. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete;
  7018. return s_error;
  7019. }
  7020. goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete;
  7021. /* UNREACHABLE */;
  7022. abort();
  7023. }
  7024. s_n_llhttp__internal__n_pause_9: {
  7025. state->error = 0x15;
  7026. state->reason = "on_chunk_extension_value pause";
  7027. state->error_pos = (const char*) p;
  7028. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_chunk_size_almost_done;
  7029. return s_error;
  7030. /* UNREACHABLE */;
  7031. abort();
  7032. }
  7033. s_n_llhttp__internal__n_error_26: {
  7034. state->error = 0x23;
  7035. state->reason = "`on_chunk_extension_value` callback error";
  7036. state->error_pos = (const char*) p;
  7037. state->_current = (void*) (intptr_t) s_error;
  7038. return s_error;
  7039. /* UNREACHABLE */;
  7040. abort();
  7041. }
  7042. s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_1: {
  7043. const unsigned char* start;
  7044. int err;
  7045. start = state->_span_pos0;
  7046. state->_span_pos0 = NULL;
  7047. err = llhttp__on_chunk_extension_value(state, start, p);
  7048. if (err != 0) {
  7049. state->error = err;
  7050. state->error_pos = (const char*) (p + 1);
  7051. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_1;
  7052. return s_error;
  7053. }
  7054. p++;
  7055. goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_1;
  7056. /* UNREACHABLE */;
  7057. abort();
  7058. }
  7059. s_n_llhttp__internal__n_error_28: {
  7060. state->error = 0x19;
  7061. state->reason = "Missing expected CR after chunk extension value";
  7062. state->error_pos = (const char*) p;
  7063. state->_current = (void*) (intptr_t) s_error;
  7064. return s_error;
  7065. /* UNREACHABLE */;
  7066. abort();
  7067. }
  7068. s_n_llhttp__internal__n_invoke_test_lenient_flags_11: {
  7069. switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
  7070. case 1:
  7071. goto s_n_llhttp__internal__n_chunk_size_almost_done;
  7072. default:
  7073. goto s_n_llhttp__internal__n_error_28;
  7074. }
  7075. /* UNREACHABLE */;
  7076. abort();
  7077. }
  7078. s_n_llhttp__internal__n_error_29: {
  7079. state->error = 0x2;
  7080. state->reason = "Invalid character in chunk extensions quote value";
  7081. state->error_pos = (const char*) p;
  7082. state->_current = (void*) (intptr_t) s_error;
  7083. return s_error;
  7084. /* UNREACHABLE */;
  7085. abort();
  7086. }
  7087. s_n_llhttp__internal__n_pause_10: {
  7088. state->error = 0x15;
  7089. state->reason = "on_chunk_extension_value pause";
  7090. state->error_pos = (const char*) p;
  7091. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_chunk_extension_quoted_value_done;
  7092. return s_error;
  7093. /* UNREACHABLE */;
  7094. abort();
  7095. }
  7096. s_n_llhttp__internal__n_error_27: {
  7097. state->error = 0x23;
  7098. state->reason = "`on_chunk_extension_value` callback error";
  7099. state->error_pos = (const char*) p;
  7100. state->_current = (void*) (intptr_t) s_error;
  7101. return s_error;
  7102. /* UNREACHABLE */;
  7103. abort();
  7104. }
  7105. s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_2: {
  7106. const unsigned char* start;
  7107. int err;
  7108. start = state->_span_pos0;
  7109. state->_span_pos0 = NULL;
  7110. err = llhttp__on_chunk_extension_value(state, start, p);
  7111. if (err != 0) {
  7112. state->error = err;
  7113. state->error_pos = (const char*) p;
  7114. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_2;
  7115. return s_error;
  7116. }
  7117. goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_2;
  7118. /* UNREACHABLE */;
  7119. abort();
  7120. }
  7121. s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_3: {
  7122. const unsigned char* start;
  7123. int err;
  7124. start = state->_span_pos0;
  7125. state->_span_pos0 = NULL;
  7126. err = llhttp__on_chunk_extension_value(state, start, p);
  7127. if (err != 0) {
  7128. state->error = err;
  7129. state->error_pos = (const char*) (p + 1);
  7130. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_30;
  7131. return s_error;
  7132. }
  7133. p++;
  7134. goto s_n_llhttp__internal__n_error_30;
  7135. /* UNREACHABLE */;
  7136. abort();
  7137. }
  7138. s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_4: {
  7139. const unsigned char* start;
  7140. int err;
  7141. start = state->_span_pos0;
  7142. state->_span_pos0 = NULL;
  7143. err = llhttp__on_chunk_extension_value(state, start, p);
  7144. if (err != 0) {
  7145. state->error = err;
  7146. state->error_pos = (const char*) (p + 1);
  7147. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_31;
  7148. return s_error;
  7149. }
  7150. p++;
  7151. goto s_n_llhttp__internal__n_error_31;
  7152. /* UNREACHABLE */;
  7153. abort();
  7154. }
  7155. s_n_llhttp__internal__n_pause_11: {
  7156. state->error = 0x15;
  7157. state->reason = "on_chunk_extension_value pause";
  7158. state->error_pos = (const char*) p;
  7159. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_chunk_extensions;
  7160. return s_error;
  7161. /* UNREACHABLE */;
  7162. abort();
  7163. }
  7164. s_n_llhttp__internal__n_error_32: {
  7165. state->error = 0x23;
  7166. state->reason = "`on_chunk_extension_value` callback error";
  7167. state->error_pos = (const char*) p;
  7168. state->_current = (void*) (intptr_t) s_error;
  7169. return s_error;
  7170. /* UNREACHABLE */;
  7171. abort();
  7172. }
  7173. s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_5: {
  7174. const unsigned char* start;
  7175. int err;
  7176. start = state->_span_pos0;
  7177. state->_span_pos0 = NULL;
  7178. err = llhttp__on_chunk_extension_value(state, start, p);
  7179. if (err != 0) {
  7180. state->error = err;
  7181. state->error_pos = (const char*) (p + 1);
  7182. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_3;
  7183. return s_error;
  7184. }
  7185. p++;
  7186. goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_3;
  7187. /* UNREACHABLE */;
  7188. abort();
  7189. }
  7190. s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_6: {
  7191. const unsigned char* start;
  7192. int err;
  7193. start = state->_span_pos0;
  7194. state->_span_pos0 = NULL;
  7195. err = llhttp__on_chunk_extension_value(state, start, p);
  7196. if (err != 0) {
  7197. state->error = err;
  7198. state->error_pos = (const char*) (p + 1);
  7199. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_33;
  7200. return s_error;
  7201. }
  7202. p++;
  7203. goto s_n_llhttp__internal__n_error_33;
  7204. /* UNREACHABLE */;
  7205. abort();
  7206. }
  7207. s_n_llhttp__internal__n_pause_12: {
  7208. state->error = 0x15;
  7209. state->reason = "on_chunk_extension_name pause";
  7210. state->error_pos = (const char*) p;
  7211. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_chunk_extension_value;
  7212. return s_error;
  7213. /* UNREACHABLE */;
  7214. abort();
  7215. }
  7216. s_n_llhttp__internal__n_error_23: {
  7217. state->error = 0x22;
  7218. state->reason = "`on_chunk_extension_name` callback error";
  7219. state->error_pos = (const char*) p;
  7220. state->_current = (void*) (intptr_t) s_error;
  7221. return s_error;
  7222. /* UNREACHABLE */;
  7223. abort();
  7224. }
  7225. s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_3: {
  7226. switch (llhttp__on_chunk_extension_name_complete(state, p, endp)) {
  7227. case 0:
  7228. goto s_n_llhttp__internal__n_chunk_extension_value;
  7229. case 21:
  7230. goto s_n_llhttp__internal__n_pause_12;
  7231. default:
  7232. goto s_n_llhttp__internal__n_error_23;
  7233. }
  7234. /* UNREACHABLE */;
  7235. abort();
  7236. }
  7237. s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name_3: {
  7238. const unsigned char* start;
  7239. int err;
  7240. start = state->_span_pos0;
  7241. state->_span_pos0 = NULL;
  7242. err = llhttp__on_chunk_extension_name(state, start, p);
  7243. if (err != 0) {
  7244. state->error = err;
  7245. state->error_pos = (const char*) (p + 1);
  7246. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_value;
  7247. return s_error;
  7248. }
  7249. p++;
  7250. goto s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_value;
  7251. /* UNREACHABLE */;
  7252. abort();
  7253. }
  7254. s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name_4: {
  7255. const unsigned char* start;
  7256. int err;
  7257. start = state->_span_pos0;
  7258. state->_span_pos0 = NULL;
  7259. err = llhttp__on_chunk_extension_name(state, start, p);
  7260. if (err != 0) {
  7261. state->error = err;
  7262. state->error_pos = (const char*) (p + 1);
  7263. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_34;
  7264. return s_error;
  7265. }
  7266. p++;
  7267. goto s_n_llhttp__internal__n_error_34;
  7268. /* UNREACHABLE */;
  7269. abort();
  7270. }
  7271. s_n_llhttp__internal__n_error_35: {
  7272. state->error = 0xc;
  7273. state->reason = "Invalid character in chunk size";
  7274. state->error_pos = (const char*) p;
  7275. state->_current = (void*) (intptr_t) s_error;
  7276. return s_error;
  7277. /* UNREACHABLE */;
  7278. abort();
  7279. }
  7280. s_n_llhttp__internal__n_invoke_mul_add_content_length: {
  7281. switch (llhttp__internal__c_mul_add_content_length(state, p, endp, match)) {
  7282. case 1:
  7283. goto s_n_llhttp__internal__n_error_36;
  7284. default:
  7285. goto s_n_llhttp__internal__n_chunk_size;
  7286. }
  7287. /* UNREACHABLE */;
  7288. abort();
  7289. }
  7290. s_n_llhttp__internal__n_error_37: {
  7291. state->error = 0xc;
  7292. state->reason = "Invalid character in chunk size";
  7293. state->error_pos = (const char*) p;
  7294. state->_current = (void*) (intptr_t) s_error;
  7295. return s_error;
  7296. /* UNREACHABLE */;
  7297. abort();
  7298. }
  7299. s_n_llhttp__internal__n_span_end_llhttp__on_body_1: {
  7300. const unsigned char* start;
  7301. int err;
  7302. start = state->_span_pos0;
  7303. state->_span_pos0 = NULL;
  7304. err = llhttp__on_body(state, start, p);
  7305. if (err != 0) {
  7306. state->error = err;
  7307. state->error_pos = (const char*) p;
  7308. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
  7309. return s_error;
  7310. }
  7311. goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
  7312. /* UNREACHABLE */;
  7313. abort();
  7314. }
  7315. s_n_llhttp__internal__n_invoke_update_finish_3: {
  7316. switch (llhttp__internal__c_update_finish_3(state, p, endp)) {
  7317. default:
  7318. goto s_n_llhttp__internal__n_span_start_llhttp__on_body_2;
  7319. }
  7320. /* UNREACHABLE */;
  7321. abort();
  7322. }
  7323. s_n_llhttp__internal__n_error_39: {
  7324. state->error = 0xf;
  7325. state->reason = "Request has invalid `Transfer-Encoding`";
  7326. state->error_pos = (const char*) p;
  7327. state->_current = (void*) (intptr_t) s_error;
  7328. return s_error;
  7329. /* UNREACHABLE */;
  7330. abort();
  7331. }
  7332. s_n_llhttp__internal__n_pause: {
  7333. state->error = 0x15;
  7334. state->reason = "on_message_complete pause";
  7335. state->error_pos = (const char*) p;
  7336. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
  7337. return s_error;
  7338. /* UNREACHABLE */;
  7339. abort();
  7340. }
  7341. s_n_llhttp__internal__n_error_7: {
  7342. state->error = 0x12;
  7343. state->reason = "`on_message_complete` callback error";
  7344. state->error_pos = (const char*) p;
  7345. state->_current = (void*) (intptr_t) s_error;
  7346. return s_error;
  7347. /* UNREACHABLE */;
  7348. abort();
  7349. }
  7350. s_n_llhttp__internal__n_invoke_llhttp__on_message_complete: {
  7351. switch (llhttp__on_message_complete(state, p, endp)) {
  7352. case 0:
  7353. goto s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
  7354. case 21:
  7355. goto s_n_llhttp__internal__n_pause;
  7356. default:
  7357. goto s_n_llhttp__internal__n_error_7;
  7358. }
  7359. /* UNREACHABLE */;
  7360. abort();
  7361. }
  7362. s_n_llhttp__internal__n_invoke_or_flags_1: {
  7363. switch (llhttp__internal__c_or_flags_1(state, p, endp)) {
  7364. default:
  7365. goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
  7366. }
  7367. /* UNREACHABLE */;
  7368. abort();
  7369. }
  7370. s_n_llhttp__internal__n_invoke_or_flags_2: {
  7371. switch (llhttp__internal__c_or_flags_1(state, p, endp)) {
  7372. default:
  7373. goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
  7374. }
  7375. /* UNREACHABLE */;
  7376. abort();
  7377. }
  7378. s_n_llhttp__internal__n_invoke_update_upgrade: {
  7379. switch (llhttp__internal__c_update_upgrade(state, p, endp)) {
  7380. default:
  7381. goto s_n_llhttp__internal__n_invoke_or_flags_2;
  7382. }
  7383. /* UNREACHABLE */;
  7384. abort();
  7385. }
  7386. s_n_llhttp__internal__n_pause_14: {
  7387. state->error = 0x15;
  7388. state->reason = "Paused by on_headers_complete";
  7389. state->error_pos = (const char*) p;
  7390. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
  7391. return s_error;
  7392. /* UNREACHABLE */;
  7393. abort();
  7394. }
  7395. s_n_llhttp__internal__n_error_6: {
  7396. state->error = 0x11;
  7397. state->reason = "User callback error";
  7398. state->error_pos = (const char*) p;
  7399. state->_current = (void*) (intptr_t) s_error;
  7400. return s_error;
  7401. /* UNREACHABLE */;
  7402. abort();
  7403. }
  7404. s_n_llhttp__internal__n_invoke_llhttp__on_headers_complete: {
  7405. switch (llhttp__on_headers_complete(state, p, endp)) {
  7406. case 0:
  7407. goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
  7408. case 1:
  7409. goto s_n_llhttp__internal__n_invoke_or_flags_1;
  7410. case 2:
  7411. goto s_n_llhttp__internal__n_invoke_update_upgrade;
  7412. case 21:
  7413. goto s_n_llhttp__internal__n_pause_14;
  7414. default:
  7415. goto s_n_llhttp__internal__n_error_6;
  7416. }
  7417. /* UNREACHABLE */;
  7418. abort();
  7419. }
  7420. s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete: {
  7421. switch (llhttp__before_headers_complete(state, p, endp)) {
  7422. default:
  7423. goto s_n_llhttp__internal__n_invoke_llhttp__on_headers_complete;
  7424. }
  7425. /* UNREACHABLE */;
  7426. abort();
  7427. }
  7428. s_n_llhttp__internal__n_invoke_test_flags: {
  7429. switch (llhttp__internal__c_test_flags(state, p, endp)) {
  7430. case 1:
  7431. goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete_1;
  7432. default:
  7433. goto s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete;
  7434. }
  7435. /* UNREACHABLE */;
  7436. abort();
  7437. }
  7438. s_n_llhttp__internal__n_invoke_test_lenient_flags_1: {
  7439. switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
  7440. case 1:
  7441. goto s_n_llhttp__internal__n_invoke_test_flags;
  7442. default:
  7443. goto s_n_llhttp__internal__n_error_5;
  7444. }
  7445. /* UNREACHABLE */;
  7446. abort();
  7447. }
  7448. s_n_llhttp__internal__n_pause_17: {
  7449. state->error = 0x15;
  7450. state->reason = "on_chunk_complete pause";
  7451. state->error_pos = (const char*) p;
  7452. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
  7453. return s_error;
  7454. /* UNREACHABLE */;
  7455. abort();
  7456. }
  7457. s_n_llhttp__internal__n_error_42: {
  7458. state->error = 0x14;
  7459. state->reason = "`on_chunk_complete` callback error";
  7460. state->error_pos = (const char*) p;
  7461. state->_current = (void*) (intptr_t) s_error;
  7462. return s_error;
  7463. /* UNREACHABLE */;
  7464. abort();
  7465. }
  7466. s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete_2: {
  7467. switch (llhttp__on_chunk_complete(state, p, endp)) {
  7468. case 0:
  7469. goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
  7470. case 21:
  7471. goto s_n_llhttp__internal__n_pause_17;
  7472. default:
  7473. goto s_n_llhttp__internal__n_error_42;
  7474. }
  7475. /* UNREACHABLE */;
  7476. abort();
  7477. }
  7478. s_n_llhttp__internal__n_invoke_or_flags_3: {
  7479. switch (llhttp__internal__c_or_flags_1(state, p, endp)) {
  7480. default:
  7481. goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
  7482. }
  7483. /* UNREACHABLE */;
  7484. abort();
  7485. }
  7486. s_n_llhttp__internal__n_invoke_or_flags_4: {
  7487. switch (llhttp__internal__c_or_flags_1(state, p, endp)) {
  7488. default:
  7489. goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
  7490. }
  7491. /* UNREACHABLE */;
  7492. abort();
  7493. }
  7494. s_n_llhttp__internal__n_invoke_update_upgrade_1: {
  7495. switch (llhttp__internal__c_update_upgrade(state, p, endp)) {
  7496. default:
  7497. goto s_n_llhttp__internal__n_invoke_or_flags_4;
  7498. }
  7499. /* UNREACHABLE */;
  7500. abort();
  7501. }
  7502. s_n_llhttp__internal__n_pause_16: {
  7503. state->error = 0x15;
  7504. state->reason = "Paused by on_headers_complete";
  7505. state->error_pos = (const char*) p;
  7506. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
  7507. return s_error;
  7508. /* UNREACHABLE */;
  7509. abort();
  7510. }
  7511. s_n_llhttp__internal__n_error_41: {
  7512. state->error = 0x11;
  7513. state->reason = "User callback error";
  7514. state->error_pos = (const char*) p;
  7515. state->_current = (void*) (intptr_t) s_error;
  7516. return s_error;
  7517. /* UNREACHABLE */;
  7518. abort();
  7519. }
  7520. s_n_llhttp__internal__n_invoke_llhttp__on_headers_complete_1: {
  7521. switch (llhttp__on_headers_complete(state, p, endp)) {
  7522. case 0:
  7523. goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
  7524. case 1:
  7525. goto s_n_llhttp__internal__n_invoke_or_flags_3;
  7526. case 2:
  7527. goto s_n_llhttp__internal__n_invoke_update_upgrade_1;
  7528. case 21:
  7529. goto s_n_llhttp__internal__n_pause_16;
  7530. default:
  7531. goto s_n_llhttp__internal__n_error_41;
  7532. }
  7533. /* UNREACHABLE */;
  7534. abort();
  7535. }
  7536. s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete_1: {
  7537. switch (llhttp__before_headers_complete(state, p, endp)) {
  7538. default:
  7539. goto s_n_llhttp__internal__n_invoke_llhttp__on_headers_complete_1;
  7540. }
  7541. /* UNREACHABLE */;
  7542. abort();
  7543. }
  7544. s_n_llhttp__internal__n_invoke_test_flags_1: {
  7545. switch (llhttp__internal__c_test_flags(state, p, endp)) {
  7546. case 1:
  7547. goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete_2;
  7548. default:
  7549. goto s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete_1;
  7550. }
  7551. /* UNREACHABLE */;
  7552. abort();
  7553. }
  7554. s_n_llhttp__internal__n_error_43: {
  7555. state->error = 0x2;
  7556. state->reason = "Expected LF after headers";
  7557. state->error_pos = (const char*) p;
  7558. state->_current = (void*) (intptr_t) s_error;
  7559. return s_error;
  7560. /* UNREACHABLE */;
  7561. abort();
  7562. }
  7563. s_n_llhttp__internal__n_invoke_test_lenient_flags_12: {
  7564. switch (llhttp__internal__c_test_lenient_flags_8(state, p, endp)) {
  7565. case 1:
  7566. goto s_n_llhttp__internal__n_invoke_test_flags_1;
  7567. default:
  7568. goto s_n_llhttp__internal__n_error_43;
  7569. }
  7570. /* UNREACHABLE */;
  7571. abort();
  7572. }
  7573. s_n_llhttp__internal__n_span_end_llhttp__on_header_field: {
  7574. const unsigned char* start;
  7575. int err;
  7576. start = state->_span_pos0;
  7577. state->_span_pos0 = NULL;
  7578. err = llhttp__on_header_field(state, start, p);
  7579. if (err != 0) {
  7580. state->error = err;
  7581. state->error_pos = (const char*) (p + 1);
  7582. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_5;
  7583. return s_error;
  7584. }
  7585. p++;
  7586. goto s_n_llhttp__internal__n_error_5;
  7587. /* UNREACHABLE */;
  7588. abort();
  7589. }
  7590. s_n_llhttp__internal__n_invoke_test_lenient_flags_13: {
  7591. switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) {
  7592. case 1:
  7593. goto s_n_llhttp__internal__n_header_field_colon_discard_ws;
  7594. default:
  7595. goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field;
  7596. }
  7597. /* UNREACHABLE */;
  7598. abort();
  7599. }
  7600. s_n_llhttp__internal__n_error_58: {
  7601. state->error = 0xb;
  7602. state->reason = "Content-Length can't be present with Transfer-Encoding";
  7603. state->error_pos = (const char*) p;
  7604. state->_current = (void*) (intptr_t) s_error;
  7605. return s_error;
  7606. /* UNREACHABLE */;
  7607. abort();
  7608. }
  7609. s_n_llhttp__internal__n_error_46: {
  7610. state->error = 0xa;
  7611. state->reason = "Invalid header value char";
  7612. state->error_pos = (const char*) p;
  7613. state->_current = (void*) (intptr_t) s_error;
  7614. return s_error;
  7615. /* UNREACHABLE */;
  7616. abort();
  7617. }
  7618. s_n_llhttp__internal__n_invoke_test_lenient_flags_15: {
  7619. switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) {
  7620. case 1:
  7621. goto s_n_llhttp__internal__n_header_value_discard_ws;
  7622. default:
  7623. goto s_n_llhttp__internal__n_error_46;
  7624. }
  7625. /* UNREACHABLE */;
  7626. abort();
  7627. }
  7628. s_n_llhttp__internal__n_error_48: {
  7629. state->error = 0xb;
  7630. state->reason = "Empty Content-Length";
  7631. state->error_pos = (const char*) p;
  7632. state->_current = (void*) (intptr_t) s_error;
  7633. return s_error;
  7634. /* UNREACHABLE */;
  7635. abort();
  7636. }
  7637. s_n_llhttp__internal__n_pause_18: {
  7638. state->error = 0x15;
  7639. state->reason = "on_header_value_complete pause";
  7640. state->error_pos = (const char*) p;
  7641. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_field_start;
  7642. return s_error;
  7643. /* UNREACHABLE */;
  7644. abort();
  7645. }
  7646. s_n_llhttp__internal__n_error_47: {
  7647. state->error = 0x1d;
  7648. state->reason = "`on_header_value_complete` callback error";
  7649. state->error_pos = (const char*) p;
  7650. state->_current = (void*) (intptr_t) s_error;
  7651. return s_error;
  7652. /* UNREACHABLE */;
  7653. abort();
  7654. }
  7655. s_n_llhttp__internal__n_span_end_llhttp__on_header_value: {
  7656. const unsigned char* start;
  7657. int err;
  7658. start = state->_span_pos0;
  7659. state->_span_pos0 = NULL;
  7660. err = llhttp__on_header_value(state, start, p);
  7661. if (err != 0) {
  7662. state->error = err;
  7663. state->error_pos = (const char*) p;
  7664. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete;
  7665. return s_error;
  7666. }
  7667. goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete;
  7668. /* UNREACHABLE */;
  7669. abort();
  7670. }
  7671. s_n_llhttp__internal__n_invoke_update_header_state: {
  7672. switch (llhttp__internal__c_update_header_state(state, p, endp)) {
  7673. default:
  7674. goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value;
  7675. }
  7676. /* UNREACHABLE */;
  7677. abort();
  7678. }
  7679. s_n_llhttp__internal__n_invoke_or_flags_5: {
  7680. switch (llhttp__internal__c_or_flags_5(state, p, endp)) {
  7681. default:
  7682. goto s_n_llhttp__internal__n_invoke_update_header_state;
  7683. }
  7684. /* UNREACHABLE */;
  7685. abort();
  7686. }
  7687. s_n_llhttp__internal__n_invoke_or_flags_6: {
  7688. switch (llhttp__internal__c_or_flags_6(state, p, endp)) {
  7689. default:
  7690. goto s_n_llhttp__internal__n_invoke_update_header_state;
  7691. }
  7692. /* UNREACHABLE */;
  7693. abort();
  7694. }
  7695. s_n_llhttp__internal__n_invoke_or_flags_7: {
  7696. switch (llhttp__internal__c_or_flags_7(state, p, endp)) {
  7697. default:
  7698. goto s_n_llhttp__internal__n_invoke_update_header_state;
  7699. }
  7700. /* UNREACHABLE */;
  7701. abort();
  7702. }
  7703. s_n_llhttp__internal__n_invoke_or_flags_8: {
  7704. switch (llhttp__internal__c_or_flags_8(state, p, endp)) {
  7705. default:
  7706. goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value;
  7707. }
  7708. /* UNREACHABLE */;
  7709. abort();
  7710. }
  7711. s_n_llhttp__internal__n_invoke_load_header_state_2: {
  7712. switch (llhttp__internal__c_load_header_state(state, p, endp)) {
  7713. case 5:
  7714. goto s_n_llhttp__internal__n_invoke_or_flags_5;
  7715. case 6:
  7716. goto s_n_llhttp__internal__n_invoke_or_flags_6;
  7717. case 7:
  7718. goto s_n_llhttp__internal__n_invoke_or_flags_7;
  7719. case 8:
  7720. goto s_n_llhttp__internal__n_invoke_or_flags_8;
  7721. default:
  7722. goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value;
  7723. }
  7724. /* UNREACHABLE */;
  7725. abort();
  7726. }
  7727. s_n_llhttp__internal__n_invoke_load_header_state_1: {
  7728. switch (llhttp__internal__c_load_header_state(state, p, endp)) {
  7729. case 2:
  7730. goto s_n_llhttp__internal__n_error_48;
  7731. default:
  7732. goto s_n_llhttp__internal__n_invoke_load_header_state_2;
  7733. }
  7734. /* UNREACHABLE */;
  7735. abort();
  7736. }
  7737. s_n_llhttp__internal__n_error_45: {
  7738. state->error = 0xa;
  7739. state->reason = "Invalid header value char";
  7740. state->error_pos = (const char*) p;
  7741. state->_current = (void*) (intptr_t) s_error;
  7742. return s_error;
  7743. /* UNREACHABLE */;
  7744. abort();
  7745. }
  7746. s_n_llhttp__internal__n_invoke_test_lenient_flags_14: {
  7747. switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
  7748. case 1:
  7749. goto s_n_llhttp__internal__n_header_value_discard_lws;
  7750. default:
  7751. goto s_n_llhttp__internal__n_error_45;
  7752. }
  7753. /* UNREACHABLE */;
  7754. abort();
  7755. }
  7756. s_n_llhttp__internal__n_error_49: {
  7757. state->error = 0x2;
  7758. state->reason = "Expected LF after CR";
  7759. state->error_pos = (const char*) p;
  7760. state->_current = (void*) (intptr_t) s_error;
  7761. return s_error;
  7762. /* UNREACHABLE */;
  7763. abort();
  7764. }
  7765. s_n_llhttp__internal__n_invoke_test_lenient_flags_16: {
  7766. switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) {
  7767. case 1:
  7768. goto s_n_llhttp__internal__n_header_value_discard_lws;
  7769. default:
  7770. goto s_n_llhttp__internal__n_error_49;
  7771. }
  7772. /* UNREACHABLE */;
  7773. abort();
  7774. }
  7775. s_n_llhttp__internal__n_invoke_update_header_state_1: {
  7776. switch (llhttp__internal__c_update_header_state_1(state, p, endp)) {
  7777. default:
  7778. goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1;
  7779. }
  7780. /* UNREACHABLE */;
  7781. abort();
  7782. }
  7783. s_n_llhttp__internal__n_invoke_load_header_state_4: {
  7784. switch (llhttp__internal__c_load_header_state(state, p, endp)) {
  7785. case 8:
  7786. goto s_n_llhttp__internal__n_invoke_update_header_state_1;
  7787. default:
  7788. goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1;
  7789. }
  7790. /* UNREACHABLE */;
  7791. abort();
  7792. }
  7793. s_n_llhttp__internal__n_invoke_update_header_state_2: {
  7794. switch (llhttp__internal__c_update_header_state(state, p, endp)) {
  7795. default:
  7796. goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete;
  7797. }
  7798. /* UNREACHABLE */;
  7799. abort();
  7800. }
  7801. s_n_llhttp__internal__n_invoke_or_flags_9: {
  7802. switch (llhttp__internal__c_or_flags_5(state, p, endp)) {
  7803. default:
  7804. goto s_n_llhttp__internal__n_invoke_update_header_state_2;
  7805. }
  7806. /* UNREACHABLE */;
  7807. abort();
  7808. }
  7809. s_n_llhttp__internal__n_invoke_or_flags_10: {
  7810. switch (llhttp__internal__c_or_flags_6(state, p, endp)) {
  7811. default:
  7812. goto s_n_llhttp__internal__n_invoke_update_header_state_2;
  7813. }
  7814. /* UNREACHABLE */;
  7815. abort();
  7816. }
  7817. s_n_llhttp__internal__n_invoke_or_flags_11: {
  7818. switch (llhttp__internal__c_or_flags_7(state, p, endp)) {
  7819. default:
  7820. goto s_n_llhttp__internal__n_invoke_update_header_state_2;
  7821. }
  7822. /* UNREACHABLE */;
  7823. abort();
  7824. }
  7825. s_n_llhttp__internal__n_invoke_or_flags_12: {
  7826. switch (llhttp__internal__c_or_flags_8(state, p, endp)) {
  7827. default:
  7828. goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete;
  7829. }
  7830. /* UNREACHABLE */;
  7831. abort();
  7832. }
  7833. s_n_llhttp__internal__n_invoke_load_header_state_5: {
  7834. switch (llhttp__internal__c_load_header_state(state, p, endp)) {
  7835. case 5:
  7836. goto s_n_llhttp__internal__n_invoke_or_flags_9;
  7837. case 6:
  7838. goto s_n_llhttp__internal__n_invoke_or_flags_10;
  7839. case 7:
  7840. goto s_n_llhttp__internal__n_invoke_or_flags_11;
  7841. case 8:
  7842. goto s_n_llhttp__internal__n_invoke_or_flags_12;
  7843. default:
  7844. goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete;
  7845. }
  7846. /* UNREACHABLE */;
  7847. abort();
  7848. }
  7849. s_n_llhttp__internal__n_error_51: {
  7850. state->error = 0x3;
  7851. state->reason = "Missing expected LF after header value";
  7852. state->error_pos = (const char*) p;
  7853. state->_current = (void*) (intptr_t) s_error;
  7854. return s_error;
  7855. /* UNREACHABLE */;
  7856. abort();
  7857. }
  7858. s_n_llhttp__internal__n_error_50: {
  7859. state->error = 0x19;
  7860. state->reason = "Missing expected CR after header value";
  7861. state->error_pos = (const char*) p;
  7862. state->_current = (void*) (intptr_t) s_error;
  7863. return s_error;
  7864. /* UNREACHABLE */;
  7865. abort();
  7866. }
  7867. s_n_llhttp__internal__n_span_end_llhttp__on_header_value_1: {
  7868. const unsigned char* start;
  7869. int err;
  7870. start = state->_span_pos0;
  7871. state->_span_pos0 = NULL;
  7872. err = llhttp__on_header_value(state, start, p);
  7873. if (err != 0) {
  7874. state->error = err;
  7875. state->error_pos = (const char*) p;
  7876. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_test_lenient_flags_17;
  7877. return s_error;
  7878. }
  7879. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_17;
  7880. /* UNREACHABLE */;
  7881. abort();
  7882. }
  7883. s_n_llhttp__internal__n_span_end_llhttp__on_header_value_2: {
  7884. const unsigned char* start;
  7885. int err;
  7886. start = state->_span_pos0;
  7887. state->_span_pos0 = NULL;
  7888. err = llhttp__on_header_value(state, start, p);
  7889. if (err != 0) {
  7890. state->error = err;
  7891. state->error_pos = (const char*) (p + 1);
  7892. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_almost_done;
  7893. return s_error;
  7894. }
  7895. p++;
  7896. goto s_n_llhttp__internal__n_header_value_almost_done;
  7897. /* UNREACHABLE */;
  7898. abort();
  7899. }
  7900. s_n_llhttp__internal__n_span_end_llhttp__on_header_value_4: {
  7901. const unsigned char* start;
  7902. int err;
  7903. start = state->_span_pos0;
  7904. state->_span_pos0 = NULL;
  7905. err = llhttp__on_header_value(state, start, p);
  7906. if (err != 0) {
  7907. state->error = err;
  7908. state->error_pos = (const char*) p;
  7909. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_almost_done;
  7910. return s_error;
  7911. }
  7912. goto s_n_llhttp__internal__n_header_value_almost_done;
  7913. /* UNREACHABLE */;
  7914. abort();
  7915. }
  7916. s_n_llhttp__internal__n_span_end_llhttp__on_header_value_5: {
  7917. const unsigned char* start;
  7918. int err;
  7919. start = state->_span_pos0;
  7920. state->_span_pos0 = NULL;
  7921. err = llhttp__on_header_value(state, start, p);
  7922. if (err != 0) {
  7923. state->error = err;
  7924. state->error_pos = (const char*) (p + 1);
  7925. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_almost_done;
  7926. return s_error;
  7927. }
  7928. p++;
  7929. goto s_n_llhttp__internal__n_header_value_almost_done;
  7930. /* UNREACHABLE */;
  7931. abort();
  7932. }
  7933. s_n_llhttp__internal__n_span_end_llhttp__on_header_value_3: {
  7934. const unsigned char* start;
  7935. int err;
  7936. start = state->_span_pos0;
  7937. state->_span_pos0 = NULL;
  7938. err = llhttp__on_header_value(state, start, p);
  7939. if (err != 0) {
  7940. state->error = err;
  7941. state->error_pos = (const char*) p;
  7942. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_52;
  7943. return s_error;
  7944. }
  7945. goto s_n_llhttp__internal__n_error_52;
  7946. /* UNREACHABLE */;
  7947. abort();
  7948. }
  7949. s_n_llhttp__internal__n_invoke_test_lenient_flags_18: {
  7950. switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) {
  7951. case 1:
  7952. goto s_n_llhttp__internal__n_header_value_lenient;
  7953. default:
  7954. goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_3;
  7955. }
  7956. /* UNREACHABLE */;
  7957. abort();
  7958. }
  7959. s_n_llhttp__internal__n_invoke_update_header_state_4: {
  7960. switch (llhttp__internal__c_update_header_state(state, p, endp)) {
  7961. default:
  7962. goto s_n_llhttp__internal__n_header_value_connection;
  7963. }
  7964. /* UNREACHABLE */;
  7965. abort();
  7966. }
  7967. s_n_llhttp__internal__n_invoke_or_flags_13: {
  7968. switch (llhttp__internal__c_or_flags_5(state, p, endp)) {
  7969. default:
  7970. goto s_n_llhttp__internal__n_invoke_update_header_state_4;
  7971. }
  7972. /* UNREACHABLE */;
  7973. abort();
  7974. }
  7975. s_n_llhttp__internal__n_invoke_or_flags_14: {
  7976. switch (llhttp__internal__c_or_flags_6(state, p, endp)) {
  7977. default:
  7978. goto s_n_llhttp__internal__n_invoke_update_header_state_4;
  7979. }
  7980. /* UNREACHABLE */;
  7981. abort();
  7982. }
  7983. s_n_llhttp__internal__n_invoke_or_flags_15: {
  7984. switch (llhttp__internal__c_or_flags_7(state, p, endp)) {
  7985. default:
  7986. goto s_n_llhttp__internal__n_invoke_update_header_state_4;
  7987. }
  7988. /* UNREACHABLE */;
  7989. abort();
  7990. }
  7991. s_n_llhttp__internal__n_invoke_or_flags_16: {
  7992. switch (llhttp__internal__c_or_flags_8(state, p, endp)) {
  7993. default:
  7994. goto s_n_llhttp__internal__n_header_value_connection;
  7995. }
  7996. /* UNREACHABLE */;
  7997. abort();
  7998. }
  7999. s_n_llhttp__internal__n_invoke_load_header_state_6: {
  8000. switch (llhttp__internal__c_load_header_state(state, p, endp)) {
  8001. case 5:
  8002. goto s_n_llhttp__internal__n_invoke_or_flags_13;
  8003. case 6:
  8004. goto s_n_llhttp__internal__n_invoke_or_flags_14;
  8005. case 7:
  8006. goto s_n_llhttp__internal__n_invoke_or_flags_15;
  8007. case 8:
  8008. goto s_n_llhttp__internal__n_invoke_or_flags_16;
  8009. default:
  8010. goto s_n_llhttp__internal__n_header_value_connection;
  8011. }
  8012. /* UNREACHABLE */;
  8013. abort();
  8014. }
  8015. s_n_llhttp__internal__n_invoke_update_header_state_5: {
  8016. switch (llhttp__internal__c_update_header_state_1(state, p, endp)) {
  8017. default:
  8018. goto s_n_llhttp__internal__n_header_value_connection_token;
  8019. }
  8020. /* UNREACHABLE */;
  8021. abort();
  8022. }
  8023. s_n_llhttp__internal__n_invoke_update_header_state_3: {
  8024. switch (llhttp__internal__c_update_header_state_3(state, p, endp)) {
  8025. default:
  8026. goto s_n_llhttp__internal__n_header_value_connection_ws;
  8027. }
  8028. /* UNREACHABLE */;
  8029. abort();
  8030. }
  8031. s_n_llhttp__internal__n_invoke_update_header_state_6: {
  8032. switch (llhttp__internal__c_update_header_state_6(state, p, endp)) {
  8033. default:
  8034. goto s_n_llhttp__internal__n_header_value_connection_ws;
  8035. }
  8036. /* UNREACHABLE */;
  8037. abort();
  8038. }
  8039. s_n_llhttp__internal__n_invoke_update_header_state_7: {
  8040. switch (llhttp__internal__c_update_header_state_7(state, p, endp)) {
  8041. default:
  8042. goto s_n_llhttp__internal__n_header_value_connection_ws;
  8043. }
  8044. /* UNREACHABLE */;
  8045. abort();
  8046. }
  8047. s_n_llhttp__internal__n_span_end_llhttp__on_header_value_6: {
  8048. const unsigned char* start;
  8049. int err;
  8050. start = state->_span_pos0;
  8051. state->_span_pos0 = NULL;
  8052. err = llhttp__on_header_value(state, start, p);
  8053. if (err != 0) {
  8054. state->error = err;
  8055. state->error_pos = (const char*) p;
  8056. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_54;
  8057. return s_error;
  8058. }
  8059. goto s_n_llhttp__internal__n_error_54;
  8060. /* UNREACHABLE */;
  8061. abort();
  8062. }
  8063. s_n_llhttp__internal__n_invoke_mul_add_content_length_1: {
  8064. switch (llhttp__internal__c_mul_add_content_length_1(state, p, endp, match)) {
  8065. case 1:
  8066. goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_6;
  8067. default:
  8068. goto s_n_llhttp__internal__n_header_value_content_length;
  8069. }
  8070. /* UNREACHABLE */;
  8071. abort();
  8072. }
  8073. s_n_llhttp__internal__n_invoke_or_flags_17: {
  8074. switch (llhttp__internal__c_or_flags_17(state, p, endp)) {
  8075. default:
  8076. goto s_n_llhttp__internal__n_header_value_otherwise;
  8077. }
  8078. /* UNREACHABLE */;
  8079. abort();
  8080. }
  8081. s_n_llhttp__internal__n_span_end_llhttp__on_header_value_7: {
  8082. const unsigned char* start;
  8083. int err;
  8084. start = state->_span_pos0;
  8085. state->_span_pos0 = NULL;
  8086. err = llhttp__on_header_value(state, start, p);
  8087. if (err != 0) {
  8088. state->error = err;
  8089. state->error_pos = (const char*) p;
  8090. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_55;
  8091. return s_error;
  8092. }
  8093. goto s_n_llhttp__internal__n_error_55;
  8094. /* UNREACHABLE */;
  8095. abort();
  8096. }
  8097. s_n_llhttp__internal__n_error_53: {
  8098. state->error = 0x4;
  8099. state->reason = "Duplicate Content-Length";
  8100. state->error_pos = (const char*) p;
  8101. state->_current = (void*) (intptr_t) s_error;
  8102. return s_error;
  8103. /* UNREACHABLE */;
  8104. abort();
  8105. }
  8106. s_n_llhttp__internal__n_invoke_test_flags_2: {
  8107. switch (llhttp__internal__c_test_flags_2(state, p, endp)) {
  8108. case 0:
  8109. goto s_n_llhttp__internal__n_header_value_content_length;
  8110. default:
  8111. goto s_n_llhttp__internal__n_error_53;
  8112. }
  8113. /* UNREACHABLE */;
  8114. abort();
  8115. }
  8116. s_n_llhttp__internal__n_span_end_llhttp__on_header_value_9: {
  8117. const unsigned char* start;
  8118. int err;
  8119. start = state->_span_pos0;
  8120. state->_span_pos0 = NULL;
  8121. err = llhttp__on_header_value(state, start, p);
  8122. if (err != 0) {
  8123. state->error = err;
  8124. state->error_pos = (const char*) (p + 1);
  8125. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_57;
  8126. return s_error;
  8127. }
  8128. p++;
  8129. goto s_n_llhttp__internal__n_error_57;
  8130. /* UNREACHABLE */;
  8131. abort();
  8132. }
  8133. s_n_llhttp__internal__n_invoke_update_header_state_8: {
  8134. switch (llhttp__internal__c_update_header_state_8(state, p, endp)) {
  8135. default:
  8136. goto s_n_llhttp__internal__n_header_value_otherwise;
  8137. }
  8138. /* UNREACHABLE */;
  8139. abort();
  8140. }
  8141. s_n_llhttp__internal__n_span_end_llhttp__on_header_value_8: {
  8142. const unsigned char* start;
  8143. int err;
  8144. start = state->_span_pos0;
  8145. state->_span_pos0 = NULL;
  8146. err = llhttp__on_header_value(state, start, p);
  8147. if (err != 0) {
  8148. state->error = err;
  8149. state->error_pos = (const char*) (p + 1);
  8150. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_56;
  8151. return s_error;
  8152. }
  8153. p++;
  8154. goto s_n_llhttp__internal__n_error_56;
  8155. /* UNREACHABLE */;
  8156. abort();
  8157. }
  8158. s_n_llhttp__internal__n_invoke_test_lenient_flags_19: {
  8159. switch (llhttp__internal__c_test_lenient_flags_19(state, p, endp)) {
  8160. case 0:
  8161. goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_8;
  8162. default:
  8163. goto s_n_llhttp__internal__n_header_value_te_chunked;
  8164. }
  8165. /* UNREACHABLE */;
  8166. abort();
  8167. }
  8168. s_n_llhttp__internal__n_invoke_load_type_1: {
  8169. switch (llhttp__internal__c_load_type(state, p, endp)) {
  8170. case 1:
  8171. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_19;
  8172. default:
  8173. goto s_n_llhttp__internal__n_header_value_te_chunked;
  8174. }
  8175. /* UNREACHABLE */;
  8176. abort();
  8177. }
  8178. s_n_llhttp__internal__n_invoke_update_header_state_9: {
  8179. switch (llhttp__internal__c_update_header_state_1(state, p, endp)) {
  8180. default:
  8181. goto s_n_llhttp__internal__n_header_value;
  8182. }
  8183. /* UNREACHABLE */;
  8184. abort();
  8185. }
  8186. s_n_llhttp__internal__n_invoke_and_flags: {
  8187. switch (llhttp__internal__c_and_flags(state, p, endp)) {
  8188. default:
  8189. goto s_n_llhttp__internal__n_header_value_te_chunked;
  8190. }
  8191. /* UNREACHABLE */;
  8192. abort();
  8193. }
  8194. s_n_llhttp__internal__n_invoke_or_flags_19: {
  8195. switch (llhttp__internal__c_or_flags_18(state, p, endp)) {
  8196. default:
  8197. goto s_n_llhttp__internal__n_invoke_and_flags;
  8198. }
  8199. /* UNREACHABLE */;
  8200. abort();
  8201. }
  8202. s_n_llhttp__internal__n_invoke_test_lenient_flags_20: {
  8203. switch (llhttp__internal__c_test_lenient_flags_19(state, p, endp)) {
  8204. case 0:
  8205. goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_9;
  8206. default:
  8207. goto s_n_llhttp__internal__n_invoke_or_flags_19;
  8208. }
  8209. /* UNREACHABLE */;
  8210. abort();
  8211. }
  8212. s_n_llhttp__internal__n_invoke_load_type_2: {
  8213. switch (llhttp__internal__c_load_type(state, p, endp)) {
  8214. case 1:
  8215. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_20;
  8216. default:
  8217. goto s_n_llhttp__internal__n_invoke_or_flags_19;
  8218. }
  8219. /* UNREACHABLE */;
  8220. abort();
  8221. }
  8222. s_n_llhttp__internal__n_invoke_or_flags_18: {
  8223. switch (llhttp__internal__c_or_flags_18(state, p, endp)) {
  8224. default:
  8225. goto s_n_llhttp__internal__n_invoke_and_flags;
  8226. }
  8227. /* UNREACHABLE */;
  8228. abort();
  8229. }
  8230. s_n_llhttp__internal__n_invoke_test_flags_3: {
  8231. switch (llhttp__internal__c_test_flags_3(state, p, endp)) {
  8232. case 1:
  8233. goto s_n_llhttp__internal__n_invoke_load_type_2;
  8234. default:
  8235. goto s_n_llhttp__internal__n_invoke_or_flags_18;
  8236. }
  8237. /* UNREACHABLE */;
  8238. abort();
  8239. }
  8240. s_n_llhttp__internal__n_invoke_or_flags_20: {
  8241. switch (llhttp__internal__c_or_flags_20(state, p, endp)) {
  8242. default:
  8243. goto s_n_llhttp__internal__n_invoke_update_header_state_9;
  8244. }
  8245. /* UNREACHABLE */;
  8246. abort();
  8247. }
  8248. s_n_llhttp__internal__n_invoke_load_header_state_3: {
  8249. switch (llhttp__internal__c_load_header_state(state, p, endp)) {
  8250. case 1:
  8251. goto s_n_llhttp__internal__n_header_value_connection;
  8252. case 2:
  8253. goto s_n_llhttp__internal__n_invoke_test_flags_2;
  8254. case 3:
  8255. goto s_n_llhttp__internal__n_invoke_test_flags_3;
  8256. case 4:
  8257. goto s_n_llhttp__internal__n_invoke_or_flags_20;
  8258. default:
  8259. goto s_n_llhttp__internal__n_header_value;
  8260. }
  8261. /* UNREACHABLE */;
  8262. abort();
  8263. }
  8264. s_n_llhttp__internal__n_invoke_test_lenient_flags_21: {
  8265. switch (llhttp__internal__c_test_lenient_flags_21(state, p, endp)) {
  8266. case 0:
  8267. goto s_n_llhttp__internal__n_error_58;
  8268. default:
  8269. goto s_n_llhttp__internal__n_header_value_discard_ws;
  8270. }
  8271. /* UNREACHABLE */;
  8272. abort();
  8273. }
  8274. s_n_llhttp__internal__n_invoke_test_flags_4: {
  8275. switch (llhttp__internal__c_test_flags_4(state, p, endp)) {
  8276. case 1:
  8277. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_21;
  8278. default:
  8279. goto s_n_llhttp__internal__n_header_value_discard_ws;
  8280. }
  8281. /* UNREACHABLE */;
  8282. abort();
  8283. }
  8284. s_n_llhttp__internal__n_error_59: {
  8285. state->error = 0xf;
  8286. state->reason = "Transfer-Encoding can't be present with Content-Length";
  8287. state->error_pos = (const char*) p;
  8288. state->_current = (void*) (intptr_t) s_error;
  8289. return s_error;
  8290. /* UNREACHABLE */;
  8291. abort();
  8292. }
  8293. s_n_llhttp__internal__n_invoke_test_lenient_flags_22: {
  8294. switch (llhttp__internal__c_test_lenient_flags_21(state, p, endp)) {
  8295. case 0:
  8296. goto s_n_llhttp__internal__n_error_59;
  8297. default:
  8298. goto s_n_llhttp__internal__n_header_value_discard_ws;
  8299. }
  8300. /* UNREACHABLE */;
  8301. abort();
  8302. }
  8303. s_n_llhttp__internal__n_invoke_test_flags_5: {
  8304. switch (llhttp__internal__c_test_flags_2(state, p, endp)) {
  8305. case 1:
  8306. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_22;
  8307. default:
  8308. goto s_n_llhttp__internal__n_header_value_discard_ws;
  8309. }
  8310. /* UNREACHABLE */;
  8311. abort();
  8312. }
  8313. s_n_llhttp__internal__n_pause_19: {
  8314. state->error = 0x15;
  8315. state->reason = "on_header_field_complete pause";
  8316. state->error_pos = (const char*) p;
  8317. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_load_header_state;
  8318. return s_error;
  8319. /* UNREACHABLE */;
  8320. abort();
  8321. }
  8322. s_n_llhttp__internal__n_error_44: {
  8323. state->error = 0x1c;
  8324. state->reason = "`on_header_field_complete` callback error";
  8325. state->error_pos = (const char*) p;
  8326. state->_current = (void*) (intptr_t) s_error;
  8327. return s_error;
  8328. /* UNREACHABLE */;
  8329. abort();
  8330. }
  8331. s_n_llhttp__internal__n_span_end_llhttp__on_header_field_1: {
  8332. const unsigned char* start;
  8333. int err;
  8334. start = state->_span_pos0;
  8335. state->_span_pos0 = NULL;
  8336. err = llhttp__on_header_field(state, start, p);
  8337. if (err != 0) {
  8338. state->error = err;
  8339. state->error_pos = (const char*) (p + 1);
  8340. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete;
  8341. return s_error;
  8342. }
  8343. p++;
  8344. goto s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete;
  8345. /* UNREACHABLE */;
  8346. abort();
  8347. }
  8348. s_n_llhttp__internal__n_span_end_llhttp__on_header_field_2: {
  8349. const unsigned char* start;
  8350. int err;
  8351. start = state->_span_pos0;
  8352. state->_span_pos0 = NULL;
  8353. err = llhttp__on_header_field(state, start, p);
  8354. if (err != 0) {
  8355. state->error = err;
  8356. state->error_pos = (const char*) (p + 1);
  8357. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete;
  8358. return s_error;
  8359. }
  8360. p++;
  8361. goto s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete;
  8362. /* UNREACHABLE */;
  8363. abort();
  8364. }
  8365. s_n_llhttp__internal__n_error_60: {
  8366. state->error = 0xa;
  8367. state->reason = "Invalid header token";
  8368. state->error_pos = (const char*) p;
  8369. state->_current = (void*) (intptr_t) s_error;
  8370. return s_error;
  8371. /* UNREACHABLE */;
  8372. abort();
  8373. }
  8374. s_n_llhttp__internal__n_invoke_update_header_state_10: {
  8375. switch (llhttp__internal__c_update_header_state_1(state, p, endp)) {
  8376. default:
  8377. goto s_n_llhttp__internal__n_header_field_general;
  8378. }
  8379. /* UNREACHABLE */;
  8380. abort();
  8381. }
  8382. s_n_llhttp__internal__n_invoke_store_header_state: {
  8383. switch (llhttp__internal__c_store_header_state(state, p, endp, match)) {
  8384. default:
  8385. goto s_n_llhttp__internal__n_header_field_colon;
  8386. }
  8387. /* UNREACHABLE */;
  8388. abort();
  8389. }
  8390. s_n_llhttp__internal__n_invoke_update_header_state_11: {
  8391. switch (llhttp__internal__c_update_header_state_1(state, p, endp)) {
  8392. default:
  8393. goto s_n_llhttp__internal__n_header_field_general;
  8394. }
  8395. /* UNREACHABLE */;
  8396. abort();
  8397. }
  8398. s_n_llhttp__internal__n_error_4: {
  8399. state->error = 0x1e;
  8400. state->reason = "Unexpected space after start line";
  8401. state->error_pos = (const char*) p;
  8402. state->_current = (void*) (intptr_t) s_error;
  8403. return s_error;
  8404. /* UNREACHABLE */;
  8405. abort();
  8406. }
  8407. s_n_llhttp__internal__n_invoke_test_lenient_flags: {
  8408. switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) {
  8409. case 1:
  8410. goto s_n_llhttp__internal__n_header_field_start;
  8411. default:
  8412. goto s_n_llhttp__internal__n_error_4;
  8413. }
  8414. /* UNREACHABLE */;
  8415. abort();
  8416. }
  8417. s_n_llhttp__internal__n_pause_20: {
  8418. state->error = 0x15;
  8419. state->reason = "on_url_complete pause";
  8420. state->error_pos = (const char*) p;
  8421. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_headers_start;
  8422. return s_error;
  8423. /* UNREACHABLE */;
  8424. abort();
  8425. }
  8426. s_n_llhttp__internal__n_error_3: {
  8427. state->error = 0x1a;
  8428. state->reason = "`on_url_complete` callback error";
  8429. state->error_pos = (const char*) p;
  8430. state->_current = (void*) (intptr_t) s_error;
  8431. return s_error;
  8432. /* UNREACHABLE */;
  8433. abort();
  8434. }
  8435. s_n_llhttp__internal__n_invoke_llhttp__on_url_complete: {
  8436. switch (llhttp__on_url_complete(state, p, endp)) {
  8437. case 0:
  8438. goto s_n_llhttp__internal__n_headers_start;
  8439. case 21:
  8440. goto s_n_llhttp__internal__n_pause_20;
  8441. default:
  8442. goto s_n_llhttp__internal__n_error_3;
  8443. }
  8444. /* UNREACHABLE */;
  8445. abort();
  8446. }
  8447. s_n_llhttp__internal__n_invoke_update_http_minor: {
  8448. switch (llhttp__internal__c_update_http_minor(state, p, endp)) {
  8449. default:
  8450. goto s_n_llhttp__internal__n_invoke_llhttp__on_url_complete;
  8451. }
  8452. /* UNREACHABLE */;
  8453. abort();
  8454. }
  8455. s_n_llhttp__internal__n_invoke_update_http_major: {
  8456. switch (llhttp__internal__c_update_http_major(state, p, endp)) {
  8457. default:
  8458. goto s_n_llhttp__internal__n_invoke_update_http_minor;
  8459. }
  8460. /* UNREACHABLE */;
  8461. abort();
  8462. }
  8463. s_n_llhttp__internal__n_span_end_llhttp__on_url_3: {
  8464. const unsigned char* start;
  8465. int err;
  8466. start = state->_span_pos0;
  8467. state->_span_pos0 = NULL;
  8468. err = llhttp__on_url(state, start, p);
  8469. if (err != 0) {
  8470. state->error = err;
  8471. state->error_pos = (const char*) p;
  8472. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
  8473. return s_error;
  8474. }
  8475. goto s_n_llhttp__internal__n_url_skip_to_http09;
  8476. /* UNREACHABLE */;
  8477. abort();
  8478. }
  8479. s_n_llhttp__internal__n_error_61: {
  8480. state->error = 0x7;
  8481. state->reason = "Expected CRLF";
  8482. state->error_pos = (const char*) p;
  8483. state->_current = (void*) (intptr_t) s_error;
  8484. return s_error;
  8485. /* UNREACHABLE */;
  8486. abort();
  8487. }
  8488. s_n_llhttp__internal__n_span_end_llhttp__on_url_4: {
  8489. const unsigned char* start;
  8490. int err;
  8491. start = state->_span_pos0;
  8492. state->_span_pos0 = NULL;
  8493. err = llhttp__on_url(state, start, p);
  8494. if (err != 0) {
  8495. state->error = err;
  8496. state->error_pos = (const char*) p;
  8497. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
  8498. return s_error;
  8499. }
  8500. goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
  8501. /* UNREACHABLE */;
  8502. abort();
  8503. }
  8504. s_n_llhttp__internal__n_error_69: {
  8505. state->error = 0x17;
  8506. state->reason = "Pause on PRI/Upgrade";
  8507. state->error_pos = (const char*) p;
  8508. state->_current = (void*) (intptr_t) s_error;
  8509. return s_error;
  8510. /* UNREACHABLE */;
  8511. abort();
  8512. }
  8513. s_n_llhttp__internal__n_error_70: {
  8514. state->error = 0x9;
  8515. state->reason = "Expected HTTP/2 Connection Preface";
  8516. state->error_pos = (const char*) p;
  8517. state->_current = (void*) (intptr_t) s_error;
  8518. return s_error;
  8519. /* UNREACHABLE */;
  8520. abort();
  8521. }
  8522. s_n_llhttp__internal__n_error_67: {
  8523. state->error = 0x2;
  8524. state->reason = "Expected CRLF after version";
  8525. state->error_pos = (const char*) p;
  8526. state->_current = (void*) (intptr_t) s_error;
  8527. return s_error;
  8528. /* UNREACHABLE */;
  8529. abort();
  8530. }
  8531. s_n_llhttp__internal__n_invoke_test_lenient_flags_25: {
  8532. switch (llhttp__internal__c_test_lenient_flags_8(state, p, endp)) {
  8533. case 1:
  8534. goto s_n_llhttp__internal__n_headers_start;
  8535. default:
  8536. goto s_n_llhttp__internal__n_error_67;
  8537. }
  8538. /* UNREACHABLE */;
  8539. abort();
  8540. }
  8541. s_n_llhttp__internal__n_error_66: {
  8542. state->error = 0x9;
  8543. state->reason = "Expected CRLF after version";
  8544. state->error_pos = (const char*) p;
  8545. state->_current = (void*) (intptr_t) s_error;
  8546. return s_error;
  8547. /* UNREACHABLE */;
  8548. abort();
  8549. }
  8550. s_n_llhttp__internal__n_invoke_test_lenient_flags_24: {
  8551. switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
  8552. case 1:
  8553. goto s_n_llhttp__internal__n_req_http_complete_crlf;
  8554. default:
  8555. goto s_n_llhttp__internal__n_error_66;
  8556. }
  8557. /* UNREACHABLE */;
  8558. abort();
  8559. }
  8560. s_n_llhttp__internal__n_error_68: {
  8561. state->error = 0x9;
  8562. state->reason = "Expected CRLF after version";
  8563. state->error_pos = (const char*) p;
  8564. state->_current = (void*) (intptr_t) s_error;
  8565. return s_error;
  8566. /* UNREACHABLE */;
  8567. abort();
  8568. }
  8569. s_n_llhttp__internal__n_pause_21: {
  8570. state->error = 0x15;
  8571. state->reason = "on_version_complete pause";
  8572. state->error_pos = (const char*) p;
  8573. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_load_method_1;
  8574. return s_error;
  8575. /* UNREACHABLE */;
  8576. abort();
  8577. }
  8578. s_n_llhttp__internal__n_error_65: {
  8579. state->error = 0x21;
  8580. state->reason = "`on_version_complete` callback error";
  8581. state->error_pos = (const char*) p;
  8582. state->_current = (void*) (intptr_t) s_error;
  8583. return s_error;
  8584. /* UNREACHABLE */;
  8585. abort();
  8586. }
  8587. s_n_llhttp__internal__n_span_end_llhttp__on_version_1: {
  8588. const unsigned char* start;
  8589. int err;
  8590. start = state->_span_pos0;
  8591. state->_span_pos0 = NULL;
  8592. err = llhttp__on_version(state, start, p);
  8593. if (err != 0) {
  8594. state->error = err;
  8595. state->error_pos = (const char*) p;
  8596. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_version_complete;
  8597. return s_error;
  8598. }
  8599. goto s_n_llhttp__internal__n_invoke_llhttp__on_version_complete;
  8600. /* UNREACHABLE */;
  8601. abort();
  8602. }
  8603. s_n_llhttp__internal__n_span_end_llhttp__on_version: {
  8604. const unsigned char* start;
  8605. int err;
  8606. start = state->_span_pos0;
  8607. state->_span_pos0 = NULL;
  8608. err = llhttp__on_version(state, start, p);
  8609. if (err != 0) {
  8610. state->error = err;
  8611. state->error_pos = (const char*) p;
  8612. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_64;
  8613. return s_error;
  8614. }
  8615. goto s_n_llhttp__internal__n_error_64;
  8616. /* UNREACHABLE */;
  8617. abort();
  8618. }
  8619. s_n_llhttp__internal__n_invoke_load_http_minor: {
  8620. switch (llhttp__internal__c_load_http_minor(state, p, endp)) {
  8621. case 9:
  8622. goto s_n_llhttp__internal__n_span_end_llhttp__on_version_1;
  8623. default:
  8624. goto s_n_llhttp__internal__n_span_end_llhttp__on_version;
  8625. }
  8626. /* UNREACHABLE */;
  8627. abort();
  8628. }
  8629. s_n_llhttp__internal__n_invoke_load_http_minor_1: {
  8630. switch (llhttp__internal__c_load_http_minor(state, p, endp)) {
  8631. case 0:
  8632. goto s_n_llhttp__internal__n_span_end_llhttp__on_version_1;
  8633. case 1:
  8634. goto s_n_llhttp__internal__n_span_end_llhttp__on_version_1;
  8635. default:
  8636. goto s_n_llhttp__internal__n_span_end_llhttp__on_version;
  8637. }
  8638. /* UNREACHABLE */;
  8639. abort();
  8640. }
  8641. s_n_llhttp__internal__n_invoke_load_http_minor_2: {
  8642. switch (llhttp__internal__c_load_http_minor(state, p, endp)) {
  8643. case 0:
  8644. goto s_n_llhttp__internal__n_span_end_llhttp__on_version_1;
  8645. default:
  8646. goto s_n_llhttp__internal__n_span_end_llhttp__on_version;
  8647. }
  8648. /* UNREACHABLE */;
  8649. abort();
  8650. }
  8651. s_n_llhttp__internal__n_invoke_load_http_major: {
  8652. switch (llhttp__internal__c_load_http_major(state, p, endp)) {
  8653. case 0:
  8654. goto s_n_llhttp__internal__n_invoke_load_http_minor;
  8655. case 1:
  8656. goto s_n_llhttp__internal__n_invoke_load_http_minor_1;
  8657. case 2:
  8658. goto s_n_llhttp__internal__n_invoke_load_http_minor_2;
  8659. default:
  8660. goto s_n_llhttp__internal__n_span_end_llhttp__on_version;
  8661. }
  8662. /* UNREACHABLE */;
  8663. abort();
  8664. }
  8665. s_n_llhttp__internal__n_invoke_test_lenient_flags_23: {
  8666. switch (llhttp__internal__c_test_lenient_flags_23(state, p, endp)) {
  8667. case 1:
  8668. goto s_n_llhttp__internal__n_span_end_llhttp__on_version_1;
  8669. default:
  8670. goto s_n_llhttp__internal__n_invoke_load_http_major;
  8671. }
  8672. /* UNREACHABLE */;
  8673. abort();
  8674. }
  8675. s_n_llhttp__internal__n_invoke_store_http_minor: {
  8676. switch (llhttp__internal__c_store_http_minor(state, p, endp, match)) {
  8677. default:
  8678. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_23;
  8679. }
  8680. /* UNREACHABLE */;
  8681. abort();
  8682. }
  8683. s_n_llhttp__internal__n_span_end_llhttp__on_version_2: {
  8684. const unsigned char* start;
  8685. int err;
  8686. start = state->_span_pos0;
  8687. state->_span_pos0 = NULL;
  8688. err = llhttp__on_version(state, start, p);
  8689. if (err != 0) {
  8690. state->error = err;
  8691. state->error_pos = (const char*) p;
  8692. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_71;
  8693. return s_error;
  8694. }
  8695. goto s_n_llhttp__internal__n_error_71;
  8696. /* UNREACHABLE */;
  8697. abort();
  8698. }
  8699. s_n_llhttp__internal__n_span_end_llhttp__on_version_3: {
  8700. const unsigned char* start;
  8701. int err;
  8702. start = state->_span_pos0;
  8703. state->_span_pos0 = NULL;
  8704. err = llhttp__on_version(state, start, p);
  8705. if (err != 0) {
  8706. state->error = err;
  8707. state->error_pos = (const char*) p;
  8708. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_72;
  8709. return s_error;
  8710. }
  8711. goto s_n_llhttp__internal__n_error_72;
  8712. /* UNREACHABLE */;
  8713. abort();
  8714. }
  8715. s_n_llhttp__internal__n_invoke_store_http_major: {
  8716. switch (llhttp__internal__c_store_http_major(state, p, endp, match)) {
  8717. default:
  8718. goto s_n_llhttp__internal__n_req_http_dot;
  8719. }
  8720. /* UNREACHABLE */;
  8721. abort();
  8722. }
  8723. s_n_llhttp__internal__n_span_end_llhttp__on_version_4: {
  8724. const unsigned char* start;
  8725. int err;
  8726. start = state->_span_pos0;
  8727. state->_span_pos0 = NULL;
  8728. err = llhttp__on_version(state, start, p);
  8729. if (err != 0) {
  8730. state->error = err;
  8731. state->error_pos = (const char*) p;
  8732. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_73;
  8733. return s_error;
  8734. }
  8735. goto s_n_llhttp__internal__n_error_73;
  8736. /* UNREACHABLE */;
  8737. abort();
  8738. }
  8739. s_n_llhttp__internal__n_error_63: {
  8740. state->error = 0x8;
  8741. state->reason = "Invalid method for HTTP/x.x request";
  8742. state->error_pos = (const char*) p;
  8743. state->_current = (void*) (intptr_t) s_error;
  8744. return s_error;
  8745. /* UNREACHABLE */;
  8746. abort();
  8747. }
  8748. s_n_llhttp__internal__n_invoke_load_method: {
  8749. switch (llhttp__internal__c_load_method(state, p, endp)) {
  8750. case 0:
  8751. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8752. case 1:
  8753. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8754. case 2:
  8755. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8756. case 3:
  8757. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8758. case 4:
  8759. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8760. case 5:
  8761. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8762. case 6:
  8763. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8764. case 7:
  8765. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8766. case 8:
  8767. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8768. case 9:
  8769. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8770. case 10:
  8771. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8772. case 11:
  8773. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8774. case 12:
  8775. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8776. case 13:
  8777. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8778. case 14:
  8779. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8780. case 15:
  8781. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8782. case 16:
  8783. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8784. case 17:
  8785. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8786. case 18:
  8787. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8788. case 19:
  8789. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8790. case 20:
  8791. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8792. case 21:
  8793. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8794. case 22:
  8795. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8796. case 23:
  8797. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8798. case 24:
  8799. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8800. case 25:
  8801. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8802. case 26:
  8803. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8804. case 27:
  8805. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8806. case 28:
  8807. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8808. case 29:
  8809. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8810. case 30:
  8811. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8812. case 31:
  8813. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8814. case 32:
  8815. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8816. case 33:
  8817. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8818. case 34:
  8819. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8820. default:
  8821. goto s_n_llhttp__internal__n_error_63;
  8822. }
  8823. /* UNREACHABLE */;
  8824. abort();
  8825. }
  8826. s_n_llhttp__internal__n_error_76: {
  8827. state->error = 0x8;
  8828. state->reason = "Expected HTTP/";
  8829. state->error_pos = (const char*) p;
  8830. state->_current = (void*) (intptr_t) s_error;
  8831. return s_error;
  8832. /* UNREACHABLE */;
  8833. abort();
  8834. }
  8835. s_n_llhttp__internal__n_error_74: {
  8836. state->error = 0x8;
  8837. state->reason = "Expected SOURCE method for ICE/x.x request";
  8838. state->error_pos = (const char*) p;
  8839. state->_current = (void*) (intptr_t) s_error;
  8840. return s_error;
  8841. /* UNREACHABLE */;
  8842. abort();
  8843. }
  8844. s_n_llhttp__internal__n_invoke_load_method_2: {
  8845. switch (llhttp__internal__c_load_method(state, p, endp)) {
  8846. case 33:
  8847. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8848. default:
  8849. goto s_n_llhttp__internal__n_error_74;
  8850. }
  8851. /* UNREACHABLE */;
  8852. abort();
  8853. }
  8854. s_n_llhttp__internal__n_error_75: {
  8855. state->error = 0x8;
  8856. state->reason = "Invalid method for RTSP/x.x request";
  8857. state->error_pos = (const char*) p;
  8858. state->_current = (void*) (intptr_t) s_error;
  8859. return s_error;
  8860. /* UNREACHABLE */;
  8861. abort();
  8862. }
  8863. s_n_llhttp__internal__n_invoke_load_method_3: {
  8864. switch (llhttp__internal__c_load_method(state, p, endp)) {
  8865. case 1:
  8866. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8867. case 3:
  8868. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8869. case 6:
  8870. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8871. case 35:
  8872. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8873. case 36:
  8874. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8875. case 37:
  8876. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8877. case 38:
  8878. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8879. case 39:
  8880. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8881. case 40:
  8882. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8883. case 41:
  8884. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8885. case 42:
  8886. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8887. case 43:
  8888. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8889. case 44:
  8890. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8891. case 45:
  8892. goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
  8893. default:
  8894. goto s_n_llhttp__internal__n_error_75;
  8895. }
  8896. /* UNREACHABLE */;
  8897. abort();
  8898. }
  8899. s_n_llhttp__internal__n_pause_22: {
  8900. state->error = 0x15;
  8901. state->reason = "on_url_complete pause";
  8902. state->error_pos = (const char*) p;
  8903. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_req_http_start;
  8904. return s_error;
  8905. /* UNREACHABLE */;
  8906. abort();
  8907. }
  8908. s_n_llhttp__internal__n_error_62: {
  8909. state->error = 0x1a;
  8910. state->reason = "`on_url_complete` callback error";
  8911. state->error_pos = (const char*) p;
  8912. state->_current = (void*) (intptr_t) s_error;
  8913. return s_error;
  8914. /* UNREACHABLE */;
  8915. abort();
  8916. }
  8917. s_n_llhttp__internal__n_invoke_llhttp__on_url_complete_1: {
  8918. switch (llhttp__on_url_complete(state, p, endp)) {
  8919. case 0:
  8920. goto s_n_llhttp__internal__n_req_http_start;
  8921. case 21:
  8922. goto s_n_llhttp__internal__n_pause_22;
  8923. default:
  8924. goto s_n_llhttp__internal__n_error_62;
  8925. }
  8926. /* UNREACHABLE */;
  8927. abort();
  8928. }
  8929. s_n_llhttp__internal__n_span_end_llhttp__on_url_5: {
  8930. const unsigned char* start;
  8931. int err;
  8932. start = state->_span_pos0;
  8933. state->_span_pos0 = NULL;
  8934. err = llhttp__on_url(state, start, p);
  8935. if (err != 0) {
  8936. state->error = err;
  8937. state->error_pos = (const char*) p;
  8938. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
  8939. return s_error;
  8940. }
  8941. goto s_n_llhttp__internal__n_url_skip_to_http;
  8942. /* UNREACHABLE */;
  8943. abort();
  8944. }
  8945. s_n_llhttp__internal__n_span_end_llhttp__on_url_6: {
  8946. const unsigned char* start;
  8947. int err;
  8948. start = state->_span_pos0;
  8949. state->_span_pos0 = NULL;
  8950. err = llhttp__on_url(state, start, p);
  8951. if (err != 0) {
  8952. state->error = err;
  8953. state->error_pos = (const char*) p;
  8954. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
  8955. return s_error;
  8956. }
  8957. goto s_n_llhttp__internal__n_url_skip_to_http09;
  8958. /* UNREACHABLE */;
  8959. abort();
  8960. }
  8961. s_n_llhttp__internal__n_span_end_llhttp__on_url_7: {
  8962. const unsigned char* start;
  8963. int err;
  8964. start = state->_span_pos0;
  8965. state->_span_pos0 = NULL;
  8966. err = llhttp__on_url(state, start, p);
  8967. if (err != 0) {
  8968. state->error = err;
  8969. state->error_pos = (const char*) p;
  8970. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
  8971. return s_error;
  8972. }
  8973. goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
  8974. /* UNREACHABLE */;
  8975. abort();
  8976. }
  8977. s_n_llhttp__internal__n_span_end_llhttp__on_url_8: {
  8978. const unsigned char* start;
  8979. int err;
  8980. start = state->_span_pos0;
  8981. state->_span_pos0 = NULL;
  8982. err = llhttp__on_url(state, start, p);
  8983. if (err != 0) {
  8984. state->error = err;
  8985. state->error_pos = (const char*) p;
  8986. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
  8987. return s_error;
  8988. }
  8989. goto s_n_llhttp__internal__n_url_skip_to_http;
  8990. /* UNREACHABLE */;
  8991. abort();
  8992. }
  8993. s_n_llhttp__internal__n_error_77: {
  8994. state->error = 0x7;
  8995. state->reason = "Invalid char in url fragment start";
  8996. state->error_pos = (const char*) p;
  8997. state->_current = (void*) (intptr_t) s_error;
  8998. return s_error;
  8999. /* UNREACHABLE */;
  9000. abort();
  9001. }
  9002. s_n_llhttp__internal__n_span_end_llhttp__on_url_9: {
  9003. const unsigned char* start;
  9004. int err;
  9005. start = state->_span_pos0;
  9006. state->_span_pos0 = NULL;
  9007. err = llhttp__on_url(state, start, p);
  9008. if (err != 0) {
  9009. state->error = err;
  9010. state->error_pos = (const char*) p;
  9011. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
  9012. return s_error;
  9013. }
  9014. goto s_n_llhttp__internal__n_url_skip_to_http09;
  9015. /* UNREACHABLE */;
  9016. abort();
  9017. }
  9018. s_n_llhttp__internal__n_span_end_llhttp__on_url_10: {
  9019. const unsigned char* start;
  9020. int err;
  9021. start = state->_span_pos0;
  9022. state->_span_pos0 = NULL;
  9023. err = llhttp__on_url(state, start, p);
  9024. if (err != 0) {
  9025. state->error = err;
  9026. state->error_pos = (const char*) p;
  9027. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
  9028. return s_error;
  9029. }
  9030. goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
  9031. /* UNREACHABLE */;
  9032. abort();
  9033. }
  9034. s_n_llhttp__internal__n_span_end_llhttp__on_url_11: {
  9035. const unsigned char* start;
  9036. int err;
  9037. start = state->_span_pos0;
  9038. state->_span_pos0 = NULL;
  9039. err = llhttp__on_url(state, start, p);
  9040. if (err != 0) {
  9041. state->error = err;
  9042. state->error_pos = (const char*) p;
  9043. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
  9044. return s_error;
  9045. }
  9046. goto s_n_llhttp__internal__n_url_skip_to_http;
  9047. /* UNREACHABLE */;
  9048. abort();
  9049. }
  9050. s_n_llhttp__internal__n_error_78: {
  9051. state->error = 0x7;
  9052. state->reason = "Invalid char in url query";
  9053. state->error_pos = (const char*) p;
  9054. state->_current = (void*) (intptr_t) s_error;
  9055. return s_error;
  9056. /* UNREACHABLE */;
  9057. abort();
  9058. }
  9059. s_n_llhttp__internal__n_error_79: {
  9060. state->error = 0x7;
  9061. state->reason = "Invalid char in url path";
  9062. state->error_pos = (const char*) p;
  9063. state->_current = (void*) (intptr_t) s_error;
  9064. return s_error;
  9065. /* UNREACHABLE */;
  9066. abort();
  9067. }
  9068. s_n_llhttp__internal__n_span_end_llhttp__on_url: {
  9069. const unsigned char* start;
  9070. int err;
  9071. start = state->_span_pos0;
  9072. state->_span_pos0 = NULL;
  9073. err = llhttp__on_url(state, start, p);
  9074. if (err != 0) {
  9075. state->error = err;
  9076. state->error_pos = (const char*) p;
  9077. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
  9078. return s_error;
  9079. }
  9080. goto s_n_llhttp__internal__n_url_skip_to_http09;
  9081. /* UNREACHABLE */;
  9082. abort();
  9083. }
  9084. s_n_llhttp__internal__n_span_end_llhttp__on_url_1: {
  9085. const unsigned char* start;
  9086. int err;
  9087. start = state->_span_pos0;
  9088. state->_span_pos0 = NULL;
  9089. err = llhttp__on_url(state, start, p);
  9090. if (err != 0) {
  9091. state->error = err;
  9092. state->error_pos = (const char*) p;
  9093. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
  9094. return s_error;
  9095. }
  9096. goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
  9097. /* UNREACHABLE */;
  9098. abort();
  9099. }
  9100. s_n_llhttp__internal__n_span_end_llhttp__on_url_2: {
  9101. const unsigned char* start;
  9102. int err;
  9103. start = state->_span_pos0;
  9104. state->_span_pos0 = NULL;
  9105. err = llhttp__on_url(state, start, p);
  9106. if (err != 0) {
  9107. state->error = err;
  9108. state->error_pos = (const char*) p;
  9109. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
  9110. return s_error;
  9111. }
  9112. goto s_n_llhttp__internal__n_url_skip_to_http;
  9113. /* UNREACHABLE */;
  9114. abort();
  9115. }
  9116. s_n_llhttp__internal__n_span_end_llhttp__on_url_12: {
  9117. const unsigned char* start;
  9118. int err;
  9119. start = state->_span_pos0;
  9120. state->_span_pos0 = NULL;
  9121. err = llhttp__on_url(state, start, p);
  9122. if (err != 0) {
  9123. state->error = err;
  9124. state->error_pos = (const char*) p;
  9125. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
  9126. return s_error;
  9127. }
  9128. goto s_n_llhttp__internal__n_url_skip_to_http09;
  9129. /* UNREACHABLE */;
  9130. abort();
  9131. }
  9132. s_n_llhttp__internal__n_span_end_llhttp__on_url_13: {
  9133. const unsigned char* start;
  9134. int err;
  9135. start = state->_span_pos0;
  9136. state->_span_pos0 = NULL;
  9137. err = llhttp__on_url(state, start, p);
  9138. if (err != 0) {
  9139. state->error = err;
  9140. state->error_pos = (const char*) p;
  9141. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
  9142. return s_error;
  9143. }
  9144. goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
  9145. /* UNREACHABLE */;
  9146. abort();
  9147. }
  9148. s_n_llhttp__internal__n_span_end_llhttp__on_url_14: {
  9149. const unsigned char* start;
  9150. int err;
  9151. start = state->_span_pos0;
  9152. state->_span_pos0 = NULL;
  9153. err = llhttp__on_url(state, start, p);
  9154. if (err != 0) {
  9155. state->error = err;
  9156. state->error_pos = (const char*) p;
  9157. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
  9158. return s_error;
  9159. }
  9160. goto s_n_llhttp__internal__n_url_skip_to_http;
  9161. /* UNREACHABLE */;
  9162. abort();
  9163. }
  9164. s_n_llhttp__internal__n_error_80: {
  9165. state->error = 0x7;
  9166. state->reason = "Double @ in url";
  9167. state->error_pos = (const char*) p;
  9168. state->_current = (void*) (intptr_t) s_error;
  9169. return s_error;
  9170. /* UNREACHABLE */;
  9171. abort();
  9172. }
  9173. s_n_llhttp__internal__n_error_81: {
  9174. state->error = 0x7;
  9175. state->reason = "Unexpected char in url server";
  9176. state->error_pos = (const char*) p;
  9177. state->_current = (void*) (intptr_t) s_error;
  9178. return s_error;
  9179. /* UNREACHABLE */;
  9180. abort();
  9181. }
  9182. s_n_llhttp__internal__n_error_82: {
  9183. state->error = 0x7;
  9184. state->reason = "Unexpected char in url server";
  9185. state->error_pos = (const char*) p;
  9186. state->_current = (void*) (intptr_t) s_error;
  9187. return s_error;
  9188. /* UNREACHABLE */;
  9189. abort();
  9190. }
  9191. s_n_llhttp__internal__n_error_83: {
  9192. state->error = 0x7;
  9193. state->reason = "Unexpected char in url schema";
  9194. state->error_pos = (const char*) p;
  9195. state->_current = (void*) (intptr_t) s_error;
  9196. return s_error;
  9197. /* UNREACHABLE */;
  9198. abort();
  9199. }
  9200. s_n_llhttp__internal__n_error_84: {
  9201. state->error = 0x7;
  9202. state->reason = "Unexpected char in url schema";
  9203. state->error_pos = (const char*) p;
  9204. state->_current = (void*) (intptr_t) s_error;
  9205. return s_error;
  9206. /* UNREACHABLE */;
  9207. abort();
  9208. }
  9209. s_n_llhttp__internal__n_error_85: {
  9210. state->error = 0x7;
  9211. state->reason = "Unexpected start char in url";
  9212. state->error_pos = (const char*) p;
  9213. state->_current = (void*) (intptr_t) s_error;
  9214. return s_error;
  9215. /* UNREACHABLE */;
  9216. abort();
  9217. }
  9218. s_n_llhttp__internal__n_invoke_is_equal_method: {
  9219. switch (llhttp__internal__c_is_equal_method(state, p, endp)) {
  9220. case 0:
  9221. goto s_n_llhttp__internal__n_url_entry_normal;
  9222. default:
  9223. goto s_n_llhttp__internal__n_url_entry_connect;
  9224. }
  9225. /* UNREACHABLE */;
  9226. abort();
  9227. }
  9228. s_n_llhttp__internal__n_error_86: {
  9229. state->error = 0x6;
  9230. state->reason = "Expected space after method";
  9231. state->error_pos = (const char*) p;
  9232. state->_current = (void*) (intptr_t) s_error;
  9233. return s_error;
  9234. /* UNREACHABLE */;
  9235. abort();
  9236. }
  9237. s_n_llhttp__internal__n_pause_26: {
  9238. state->error = 0x15;
  9239. state->reason = "on_method_complete pause";
  9240. state->error_pos = (const char*) p;
  9241. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_req_first_space_before_url;
  9242. return s_error;
  9243. /* UNREACHABLE */;
  9244. abort();
  9245. }
  9246. s_n_llhttp__internal__n_error_105: {
  9247. state->error = 0x20;
  9248. state->reason = "`on_method_complete` callback error";
  9249. state->error_pos = (const char*) p;
  9250. state->_current = (void*) (intptr_t) s_error;
  9251. return s_error;
  9252. /* UNREACHABLE */;
  9253. abort();
  9254. }
  9255. s_n_llhttp__internal__n_span_end_llhttp__on_method_2: {
  9256. const unsigned char* start;
  9257. int err;
  9258. start = state->_span_pos0;
  9259. state->_span_pos0 = NULL;
  9260. err = llhttp__on_method(state, start, p);
  9261. if (err != 0) {
  9262. state->error = err;
  9263. state->error_pos = (const char*) p;
  9264. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_method_complete_1;
  9265. return s_error;
  9266. }
  9267. goto s_n_llhttp__internal__n_invoke_llhttp__on_method_complete_1;
  9268. /* UNREACHABLE */;
  9269. abort();
  9270. }
  9271. s_n_llhttp__internal__n_invoke_store_method_1: {
  9272. switch (llhttp__internal__c_store_method(state, p, endp, match)) {
  9273. default:
  9274. goto s_n_llhttp__internal__n_span_end_llhttp__on_method_2;
  9275. }
  9276. /* UNREACHABLE */;
  9277. abort();
  9278. }
  9279. s_n_llhttp__internal__n_error_106: {
  9280. state->error = 0x6;
  9281. state->reason = "Invalid method encountered";
  9282. state->error_pos = (const char*) p;
  9283. state->_current = (void*) (intptr_t) s_error;
  9284. return s_error;
  9285. /* UNREACHABLE */;
  9286. abort();
  9287. }
  9288. s_n_llhttp__internal__n_error_98: {
  9289. state->error = 0xd;
  9290. state->reason = "Invalid status code";
  9291. state->error_pos = (const char*) p;
  9292. state->_current = (void*) (intptr_t) s_error;
  9293. return s_error;
  9294. /* UNREACHABLE */;
  9295. abort();
  9296. }
  9297. s_n_llhttp__internal__n_error_96: {
  9298. state->error = 0xd;
  9299. state->reason = "Invalid status code";
  9300. state->error_pos = (const char*) p;
  9301. state->_current = (void*) (intptr_t) s_error;
  9302. return s_error;
  9303. /* UNREACHABLE */;
  9304. abort();
  9305. }
  9306. s_n_llhttp__internal__n_error_94: {
  9307. state->error = 0xd;
  9308. state->reason = "Invalid status code";
  9309. state->error_pos = (const char*) p;
  9310. state->_current = (void*) (intptr_t) s_error;
  9311. return s_error;
  9312. /* UNREACHABLE */;
  9313. abort();
  9314. }
  9315. s_n_llhttp__internal__n_pause_24: {
  9316. state->error = 0x15;
  9317. state->reason = "on_status_complete pause";
  9318. state->error_pos = (const char*) p;
  9319. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_headers_start;
  9320. return s_error;
  9321. /* UNREACHABLE */;
  9322. abort();
  9323. }
  9324. s_n_llhttp__internal__n_error_90: {
  9325. state->error = 0x1b;
  9326. state->reason = "`on_status_complete` callback error";
  9327. state->error_pos = (const char*) p;
  9328. state->_current = (void*) (intptr_t) s_error;
  9329. return s_error;
  9330. /* UNREACHABLE */;
  9331. abort();
  9332. }
  9333. s_n_llhttp__internal__n_invoke_llhttp__on_status_complete: {
  9334. switch (llhttp__on_status_complete(state, p, endp)) {
  9335. case 0:
  9336. goto s_n_llhttp__internal__n_headers_start;
  9337. case 21:
  9338. goto s_n_llhttp__internal__n_pause_24;
  9339. default:
  9340. goto s_n_llhttp__internal__n_error_90;
  9341. }
  9342. /* UNREACHABLE */;
  9343. abort();
  9344. }
  9345. s_n_llhttp__internal__n_error_89: {
  9346. state->error = 0xd;
  9347. state->reason = "Invalid response status";
  9348. state->error_pos = (const char*) p;
  9349. state->_current = (void*) (intptr_t) s_error;
  9350. return s_error;
  9351. /* UNREACHABLE */;
  9352. abort();
  9353. }
  9354. s_n_llhttp__internal__n_invoke_test_lenient_flags_27: {
  9355. switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
  9356. case 1:
  9357. goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete;
  9358. default:
  9359. goto s_n_llhttp__internal__n_error_89;
  9360. }
  9361. /* UNREACHABLE */;
  9362. abort();
  9363. }
  9364. s_n_llhttp__internal__n_error_91: {
  9365. state->error = 0x2;
  9366. state->reason = "Expected LF after CR";
  9367. state->error_pos = (const char*) p;
  9368. state->_current = (void*) (intptr_t) s_error;
  9369. return s_error;
  9370. /* UNREACHABLE */;
  9371. abort();
  9372. }
  9373. s_n_llhttp__internal__n_invoke_test_lenient_flags_28: {
  9374. switch (llhttp__internal__c_test_lenient_flags_8(state, p, endp)) {
  9375. case 1:
  9376. goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete;
  9377. default:
  9378. goto s_n_llhttp__internal__n_error_91;
  9379. }
  9380. /* UNREACHABLE */;
  9381. abort();
  9382. }
  9383. s_n_llhttp__internal__n_error_92: {
  9384. state->error = 0x19;
  9385. state->reason = "Missing expected CR after response line";
  9386. state->error_pos = (const char*) p;
  9387. state->_current = (void*) (intptr_t) s_error;
  9388. return s_error;
  9389. /* UNREACHABLE */;
  9390. abort();
  9391. }
  9392. s_n_llhttp__internal__n_span_end_llhttp__on_status: {
  9393. const unsigned char* start;
  9394. int err;
  9395. start = state->_span_pos0;
  9396. state->_span_pos0 = NULL;
  9397. err = llhttp__on_status(state, start, p);
  9398. if (err != 0) {
  9399. state->error = err;
  9400. state->error_pos = (const char*) (p + 1);
  9401. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_test_lenient_flags_29;
  9402. return s_error;
  9403. }
  9404. p++;
  9405. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_29;
  9406. /* UNREACHABLE */;
  9407. abort();
  9408. }
  9409. s_n_llhttp__internal__n_span_end_llhttp__on_status_1: {
  9410. const unsigned char* start;
  9411. int err;
  9412. start = state->_span_pos0;
  9413. state->_span_pos0 = NULL;
  9414. err = llhttp__on_status(state, start, p);
  9415. if (err != 0) {
  9416. state->error = err;
  9417. state->error_pos = (const char*) (p + 1);
  9418. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_res_line_almost_done;
  9419. return s_error;
  9420. }
  9421. p++;
  9422. goto s_n_llhttp__internal__n_res_line_almost_done;
  9423. /* UNREACHABLE */;
  9424. abort();
  9425. }
  9426. s_n_llhttp__internal__n_error_93: {
  9427. state->error = 0xd;
  9428. state->reason = "Invalid response status";
  9429. state->error_pos = (const char*) p;
  9430. state->_current = (void*) (intptr_t) s_error;
  9431. return s_error;
  9432. /* UNREACHABLE */;
  9433. abort();
  9434. }
  9435. s_n_llhttp__internal__n_invoke_mul_add_status_code_2: {
  9436. switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) {
  9437. case 1:
  9438. goto s_n_llhttp__internal__n_error_94;
  9439. default:
  9440. goto s_n_llhttp__internal__n_res_status_code_otherwise;
  9441. }
  9442. /* UNREACHABLE */;
  9443. abort();
  9444. }
  9445. s_n_llhttp__internal__n_error_95: {
  9446. state->error = 0xd;
  9447. state->reason = "Invalid status code";
  9448. state->error_pos = (const char*) p;
  9449. state->_current = (void*) (intptr_t) s_error;
  9450. return s_error;
  9451. /* UNREACHABLE */;
  9452. abort();
  9453. }
  9454. s_n_llhttp__internal__n_invoke_mul_add_status_code_1: {
  9455. switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) {
  9456. case 1:
  9457. goto s_n_llhttp__internal__n_error_96;
  9458. default:
  9459. goto s_n_llhttp__internal__n_res_status_code_digit_3;
  9460. }
  9461. /* UNREACHABLE */;
  9462. abort();
  9463. }
  9464. s_n_llhttp__internal__n_error_97: {
  9465. state->error = 0xd;
  9466. state->reason = "Invalid status code";
  9467. state->error_pos = (const char*) p;
  9468. state->_current = (void*) (intptr_t) s_error;
  9469. return s_error;
  9470. /* UNREACHABLE */;
  9471. abort();
  9472. }
  9473. s_n_llhttp__internal__n_invoke_mul_add_status_code: {
  9474. switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) {
  9475. case 1:
  9476. goto s_n_llhttp__internal__n_error_98;
  9477. default:
  9478. goto s_n_llhttp__internal__n_res_status_code_digit_2;
  9479. }
  9480. /* UNREACHABLE */;
  9481. abort();
  9482. }
  9483. s_n_llhttp__internal__n_error_99: {
  9484. state->error = 0xd;
  9485. state->reason = "Invalid status code";
  9486. state->error_pos = (const char*) p;
  9487. state->_current = (void*) (intptr_t) s_error;
  9488. return s_error;
  9489. /* UNREACHABLE */;
  9490. abort();
  9491. }
  9492. s_n_llhttp__internal__n_invoke_update_status_code: {
  9493. switch (llhttp__internal__c_update_status_code(state, p, endp)) {
  9494. default:
  9495. goto s_n_llhttp__internal__n_res_status_code_digit_1;
  9496. }
  9497. /* UNREACHABLE */;
  9498. abort();
  9499. }
  9500. s_n_llhttp__internal__n_error_100: {
  9501. state->error = 0x9;
  9502. state->reason = "Expected space after version";
  9503. state->error_pos = (const char*) p;
  9504. state->_current = (void*) (intptr_t) s_error;
  9505. return s_error;
  9506. /* UNREACHABLE */;
  9507. abort();
  9508. }
  9509. s_n_llhttp__internal__n_pause_25: {
  9510. state->error = 0x15;
  9511. state->reason = "on_version_complete pause";
  9512. state->error_pos = (const char*) p;
  9513. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_res_after_version;
  9514. return s_error;
  9515. /* UNREACHABLE */;
  9516. abort();
  9517. }
  9518. s_n_llhttp__internal__n_error_88: {
  9519. state->error = 0x21;
  9520. state->reason = "`on_version_complete` callback error";
  9521. state->error_pos = (const char*) p;
  9522. state->_current = (void*) (intptr_t) s_error;
  9523. return s_error;
  9524. /* UNREACHABLE */;
  9525. abort();
  9526. }
  9527. s_n_llhttp__internal__n_span_end_llhttp__on_version_6: {
  9528. const unsigned char* start;
  9529. int err;
  9530. start = state->_span_pos0;
  9531. state->_span_pos0 = NULL;
  9532. err = llhttp__on_version(state, start, p);
  9533. if (err != 0) {
  9534. state->error = err;
  9535. state->error_pos = (const char*) p;
  9536. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_version_complete_1;
  9537. return s_error;
  9538. }
  9539. goto s_n_llhttp__internal__n_invoke_llhttp__on_version_complete_1;
  9540. /* UNREACHABLE */;
  9541. abort();
  9542. }
  9543. s_n_llhttp__internal__n_span_end_llhttp__on_version_5: {
  9544. const unsigned char* start;
  9545. int err;
  9546. start = state->_span_pos0;
  9547. state->_span_pos0 = NULL;
  9548. err = llhttp__on_version(state, start, p);
  9549. if (err != 0) {
  9550. state->error = err;
  9551. state->error_pos = (const char*) p;
  9552. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_87;
  9553. return s_error;
  9554. }
  9555. goto s_n_llhttp__internal__n_error_87;
  9556. /* UNREACHABLE */;
  9557. abort();
  9558. }
  9559. s_n_llhttp__internal__n_invoke_load_http_minor_3: {
  9560. switch (llhttp__internal__c_load_http_minor(state, p, endp)) {
  9561. case 9:
  9562. goto s_n_llhttp__internal__n_span_end_llhttp__on_version_6;
  9563. default:
  9564. goto s_n_llhttp__internal__n_span_end_llhttp__on_version_5;
  9565. }
  9566. /* UNREACHABLE */;
  9567. abort();
  9568. }
  9569. s_n_llhttp__internal__n_invoke_load_http_minor_4: {
  9570. switch (llhttp__internal__c_load_http_minor(state, p, endp)) {
  9571. case 0:
  9572. goto s_n_llhttp__internal__n_span_end_llhttp__on_version_6;
  9573. case 1:
  9574. goto s_n_llhttp__internal__n_span_end_llhttp__on_version_6;
  9575. default:
  9576. goto s_n_llhttp__internal__n_span_end_llhttp__on_version_5;
  9577. }
  9578. /* UNREACHABLE */;
  9579. abort();
  9580. }
  9581. s_n_llhttp__internal__n_invoke_load_http_minor_5: {
  9582. switch (llhttp__internal__c_load_http_minor(state, p, endp)) {
  9583. case 0:
  9584. goto s_n_llhttp__internal__n_span_end_llhttp__on_version_6;
  9585. default:
  9586. goto s_n_llhttp__internal__n_span_end_llhttp__on_version_5;
  9587. }
  9588. /* UNREACHABLE */;
  9589. abort();
  9590. }
  9591. s_n_llhttp__internal__n_invoke_load_http_major_1: {
  9592. switch (llhttp__internal__c_load_http_major(state, p, endp)) {
  9593. case 0:
  9594. goto s_n_llhttp__internal__n_invoke_load_http_minor_3;
  9595. case 1:
  9596. goto s_n_llhttp__internal__n_invoke_load_http_minor_4;
  9597. case 2:
  9598. goto s_n_llhttp__internal__n_invoke_load_http_minor_5;
  9599. default:
  9600. goto s_n_llhttp__internal__n_span_end_llhttp__on_version_5;
  9601. }
  9602. /* UNREACHABLE */;
  9603. abort();
  9604. }
  9605. s_n_llhttp__internal__n_invoke_test_lenient_flags_26: {
  9606. switch (llhttp__internal__c_test_lenient_flags_23(state, p, endp)) {
  9607. case 1:
  9608. goto s_n_llhttp__internal__n_span_end_llhttp__on_version_6;
  9609. default:
  9610. goto s_n_llhttp__internal__n_invoke_load_http_major_1;
  9611. }
  9612. /* UNREACHABLE */;
  9613. abort();
  9614. }
  9615. s_n_llhttp__internal__n_invoke_store_http_minor_1: {
  9616. switch (llhttp__internal__c_store_http_minor(state, p, endp, match)) {
  9617. default:
  9618. goto s_n_llhttp__internal__n_invoke_test_lenient_flags_26;
  9619. }
  9620. /* UNREACHABLE */;
  9621. abort();
  9622. }
  9623. s_n_llhttp__internal__n_span_end_llhttp__on_version_7: {
  9624. const unsigned char* start;
  9625. int err;
  9626. start = state->_span_pos0;
  9627. state->_span_pos0 = NULL;
  9628. err = llhttp__on_version(state, start, p);
  9629. if (err != 0) {
  9630. state->error = err;
  9631. state->error_pos = (const char*) p;
  9632. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_101;
  9633. return s_error;
  9634. }
  9635. goto s_n_llhttp__internal__n_error_101;
  9636. /* UNREACHABLE */;
  9637. abort();
  9638. }
  9639. s_n_llhttp__internal__n_span_end_llhttp__on_version_8: {
  9640. const unsigned char* start;
  9641. int err;
  9642. start = state->_span_pos0;
  9643. state->_span_pos0 = NULL;
  9644. err = llhttp__on_version(state, start, p);
  9645. if (err != 0) {
  9646. state->error = err;
  9647. state->error_pos = (const char*) p;
  9648. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_102;
  9649. return s_error;
  9650. }
  9651. goto s_n_llhttp__internal__n_error_102;
  9652. /* UNREACHABLE */;
  9653. abort();
  9654. }
  9655. s_n_llhttp__internal__n_invoke_store_http_major_1: {
  9656. switch (llhttp__internal__c_store_http_major(state, p, endp, match)) {
  9657. default:
  9658. goto s_n_llhttp__internal__n_res_http_dot;
  9659. }
  9660. /* UNREACHABLE */;
  9661. abort();
  9662. }
  9663. s_n_llhttp__internal__n_span_end_llhttp__on_version_9: {
  9664. const unsigned char* start;
  9665. int err;
  9666. start = state->_span_pos0;
  9667. state->_span_pos0 = NULL;
  9668. err = llhttp__on_version(state, start, p);
  9669. if (err != 0) {
  9670. state->error = err;
  9671. state->error_pos = (const char*) p;
  9672. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_103;
  9673. return s_error;
  9674. }
  9675. goto s_n_llhttp__internal__n_error_103;
  9676. /* UNREACHABLE */;
  9677. abort();
  9678. }
  9679. s_n_llhttp__internal__n_error_107: {
  9680. state->error = 0x8;
  9681. state->reason = "Expected HTTP/";
  9682. state->error_pos = (const char*) p;
  9683. state->_current = (void*) (intptr_t) s_error;
  9684. return s_error;
  9685. /* UNREACHABLE */;
  9686. abort();
  9687. }
  9688. s_n_llhttp__internal__n_pause_23: {
  9689. state->error = 0x15;
  9690. state->reason = "on_method_complete pause";
  9691. state->error_pos = (const char*) p;
  9692. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_req_first_space_before_url;
  9693. return s_error;
  9694. /* UNREACHABLE */;
  9695. abort();
  9696. }
  9697. s_n_llhttp__internal__n_error_1: {
  9698. state->error = 0x20;
  9699. state->reason = "`on_method_complete` callback error";
  9700. state->error_pos = (const char*) p;
  9701. state->_current = (void*) (intptr_t) s_error;
  9702. return s_error;
  9703. /* UNREACHABLE */;
  9704. abort();
  9705. }
  9706. s_n_llhttp__internal__n_span_end_llhttp__on_method: {
  9707. const unsigned char* start;
  9708. int err;
  9709. start = state->_span_pos0;
  9710. state->_span_pos0 = NULL;
  9711. err = llhttp__on_method(state, start, p);
  9712. if (err != 0) {
  9713. state->error = err;
  9714. state->error_pos = (const char*) p;
  9715. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_method_complete;
  9716. return s_error;
  9717. }
  9718. goto s_n_llhttp__internal__n_invoke_llhttp__on_method_complete;
  9719. /* UNREACHABLE */;
  9720. abort();
  9721. }
  9722. s_n_llhttp__internal__n_invoke_update_type: {
  9723. switch (llhttp__internal__c_update_type(state, p, endp)) {
  9724. default:
  9725. goto s_n_llhttp__internal__n_span_end_llhttp__on_method;
  9726. }
  9727. /* UNREACHABLE */;
  9728. abort();
  9729. }
  9730. s_n_llhttp__internal__n_invoke_store_method: {
  9731. switch (llhttp__internal__c_store_method(state, p, endp, match)) {
  9732. default:
  9733. goto s_n_llhttp__internal__n_invoke_update_type;
  9734. }
  9735. /* UNREACHABLE */;
  9736. abort();
  9737. }
  9738. s_n_llhttp__internal__n_error_104: {
  9739. state->error = 0x8;
  9740. state->reason = "Invalid word encountered";
  9741. state->error_pos = (const char*) p;
  9742. state->_current = (void*) (intptr_t) s_error;
  9743. return s_error;
  9744. /* UNREACHABLE */;
  9745. abort();
  9746. }
  9747. s_n_llhttp__internal__n_span_end_llhttp__on_method_1: {
  9748. const unsigned char* start;
  9749. int err;
  9750. start = state->_span_pos0;
  9751. state->_span_pos0 = NULL;
  9752. err = llhttp__on_method(state, start, p);
  9753. if (err != 0) {
  9754. state->error = err;
  9755. state->error_pos = (const char*) p;
  9756. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_update_type_1;
  9757. return s_error;
  9758. }
  9759. goto s_n_llhttp__internal__n_invoke_update_type_1;
  9760. /* UNREACHABLE */;
  9761. abort();
  9762. }
  9763. s_n_llhttp__internal__n_invoke_update_type_2: {
  9764. switch (llhttp__internal__c_update_type(state, p, endp)) {
  9765. default:
  9766. goto s_n_llhttp__internal__n_span_start_llhttp__on_method_1;
  9767. }
  9768. /* UNREACHABLE */;
  9769. abort();
  9770. }
  9771. s_n_llhttp__internal__n_pause_27: {
  9772. state->error = 0x15;
  9773. state->reason = "on_message_begin pause";
  9774. state->error_pos = (const char*) p;
  9775. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_load_type;
  9776. return s_error;
  9777. /* UNREACHABLE */;
  9778. abort();
  9779. }
  9780. s_n_llhttp__internal__n_error: {
  9781. state->error = 0x10;
  9782. state->reason = "`on_message_begin` callback error";
  9783. state->error_pos = (const char*) p;
  9784. state->_current = (void*) (intptr_t) s_error;
  9785. return s_error;
  9786. /* UNREACHABLE */;
  9787. abort();
  9788. }
  9789. s_n_llhttp__internal__n_invoke_llhttp__on_message_begin: {
  9790. switch (llhttp__on_message_begin(state, p, endp)) {
  9791. case 0:
  9792. goto s_n_llhttp__internal__n_invoke_load_type;
  9793. case 21:
  9794. goto s_n_llhttp__internal__n_pause_27;
  9795. default:
  9796. goto s_n_llhttp__internal__n_error;
  9797. }
  9798. /* UNREACHABLE */;
  9799. abort();
  9800. }
  9801. s_n_llhttp__internal__n_pause_28: {
  9802. state->error = 0x15;
  9803. state->reason = "on_reset pause";
  9804. state->error_pos = (const char*) p;
  9805. state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_update_finish;
  9806. return s_error;
  9807. /* UNREACHABLE */;
  9808. abort();
  9809. }
  9810. s_n_llhttp__internal__n_error_108: {
  9811. state->error = 0x1f;
  9812. state->reason = "`on_reset` callback error";
  9813. state->error_pos = (const char*) p;
  9814. state->_current = (void*) (intptr_t) s_error;
  9815. return s_error;
  9816. /* UNREACHABLE */;
  9817. abort();
  9818. }
  9819. s_n_llhttp__internal__n_invoke_llhttp__on_reset: {
  9820. switch (llhttp__on_reset(state, p, endp)) {
  9821. case 0:
  9822. goto s_n_llhttp__internal__n_invoke_update_finish;
  9823. case 21:
  9824. goto s_n_llhttp__internal__n_pause_28;
  9825. default:
  9826. goto s_n_llhttp__internal__n_error_108;
  9827. }
  9828. /* UNREACHABLE */;
  9829. abort();
  9830. }
  9831. s_n_llhttp__internal__n_invoke_load_initial_message_completed: {
  9832. switch (llhttp__internal__c_load_initial_message_completed(state, p, endp)) {
  9833. case 1:
  9834. goto s_n_llhttp__internal__n_invoke_llhttp__on_reset;
  9835. default:
  9836. goto s_n_llhttp__internal__n_invoke_update_finish;
  9837. }
  9838. /* UNREACHABLE */;
  9839. abort();
  9840. }
  9841. }
  9842. int llhttp__internal_execute(llhttp__internal_t* state, const char* p, const char* endp) {
  9843. llparse_state_t next;
  9844. /* check lingering errors */
  9845. if (state->error != 0) {
  9846. return state->error;
  9847. }
  9848. /* restart spans */
  9849. if (state->_span_pos0 != NULL) {
  9850. state->_span_pos0 = (void*) p;
  9851. }
  9852. next = llhttp__internal__run(state, (const unsigned char*) p, (const unsigned char*) endp);
  9853. if (next == s_error) {
  9854. return state->error;
  9855. }
  9856. state->_current = (void*) (intptr_t) next;
  9857. /* execute spans */
  9858. if (state->_span_pos0 != NULL) {
  9859. int error;
  9860. error = ((llhttp__internal__span_cb) state->_span_cb0)(state, state->_span_pos0, (const char*) endp);
  9861. if (error != 0) {
  9862. state->error = error;
  9863. state->error_pos = endp;
  9864. return error;
  9865. }
  9866. }
  9867. return 0;
  9868. }
  9869. #ifdef __GNUC__
  9870. #pragma GCC diagnostic pop
  9871. #endif