ó a˜Qc@sddlZddlZddlZddlmZddlmZmZmZi ddgfd!gd6ddgfd"gd 6dd gfd#gd 6dd gfd$gd6ddgfd%gd6ddgfd&gd6ddgfd'gd6ddgfd(gd6ddgfd)gd6ddgfgd6dd gfd dgfgd6ddgfd*gd6Z d„Z de fd„ƒYZ d „ZdS(+i˙˙˙˙N(tutil(t ErrorResponset statusmessagetHTTP_NOT_MODIFIEDtcmdt changelogtrevtcltshortlogtslt changesettnodetcstfiletfilenodetftfilelogtfltfiledifftfdtannotatetfatmanifesttmftarchivetcattagsttiptstaticcCsŻxhtjƒD]Z}||kr x;t|D]/\}}|dkrO||}n|||@scCsEt|jjdƒpdƒ}x tj|jd|ƒD]}q7WdS(s:need to read all data from request, httplib is half-duplextCONTENT_LENGTHitlimitN(tintR1tgetRt filechunkiterR,(R7tlengthts((s;/sys/lib/python2.7/site-packages/mercurial/hgweb/request.pytdrainCscCsď|jdk rĆ|jjd|fƒ|rs|jdƒdjddƒjddƒ}|jjdd |fƒn|dk r¤|jjd tt|ƒƒfƒnx<|jD]1\}}t|tƒsŽt d |fƒ‚qŽqŽWt|t ƒrf|jj |jƒ|j t krNg|jD]$\}}|dkr||f^q|_nt|j |jƒ}n3|dkr{d}nt|tƒr™t|ƒ}n|j||jƒ|_d|_g|_n|dk rë|j|ƒd|_ndS(Ns Content-Typet/i˙˙˙˙s\s\\t"s\"sContent-Dispositionsinline; filename="%s"sContent-Lengthsheader value must be string: %rtDatetETagtExpiress Cache-ControltVaryiČs200 Script output follows(RJRKRLs Cache-ControlRM(R4RR6tappendtsplittreplacetstrtlent isinstancet TypeErrorRtextendtcodeRRtmessageRBR5twrite(R7tstatusttypetfilenametbodyR#R&((s;/sys/lib/python2.7/site-packages/mercurial/hgweb/request.pytrespondIs:  %!      cCsP|rLy|j|ƒWqLtjk rH}|dtjkrI‚qIqLXndS(Ni(R5tsocketterrorterrnot ECONNRESET(R7tthingtinst((s;/sys/lib/python2.7/site-packages/mercurial/hgweb/request.pyRXns cCs"x|D]}|j|ƒqWdS(N(RX(R7tlinestline((s;/sys/lib/python2.7/site-packages/mercurial/hgweb/request.pyt writelinesvs cCsdS(N(R(R7((s;/sys/lib/python2.7/site-packages/mercurial/hgweb/request.pytflushzscCsdS(N(R(R7((s;/sys/lib/python2.7/site-packages/mercurial/hgweb/request.pytclose}sN( t__name__t __module__R;R=R>RGRR]RXRfRgRh(((s;/sys/lib/python2.7/site-packages/mercurial/hgweb/request.pyR)*s    %   cs|ƒ‰‡fd†}|S(s{For compatibility with old CGI scripts. A plain hgweb() or hgwebdir() can and should now be used as a WSGI application.cs ˆ||ƒS(N((R1R](t application(s;/sys/lib/python2.7/site-packages/mercurial/hgweb/request.pytrun_wsgi„s((t app_makerRl((Rks;/sys/lib/python2.7/site-packages/mercurial/hgweb/request.pytwsgiapplication€s (RN(RN(snodeN(RN(RN(snodeN(RN(RN(snodeN(sfileN(R^R2R`t mercurialRtcommonRRRRRR(tobjectR)Rn(((s;/sys/lib/python2.7/site-packages/mercurial/hgweb/request.pyt s$$ V