home *** CD-ROM | disk | FTP | other *** search
Wrap
P/yrNum f_cCrel/dseEvn 1.1k dnpidfiGr:kMMNNFFRBB: major minorHXix fooalrbetaCopyrAlways ncreasCsColong T_EeswitstrackiasPT_Eesdallo brarch.ARMEXForvexatCoe, y Soft 1.4.2rwolustbks'10402100', 2.5b7rwolustbks'20500007'. * I_Eee ap_kiAPACHE_RELEASE 10324100()diACHsrdrtSERVER_PROTOCOL "HTTP/1.1"_EeCH,e ImSERVER_SUPcefu_EeCHsrdrtSERVER_SUPcefu_"hpri://www.a Soft.org/"_Ef #endihaACHsrdriDECLINnD -1mrbelMee AP declp_ksrtoypandlee I_Eee ap_kiDONns-2 mrbelMee AP hasyservGMCisR resplnseEcotCoessly EF t_ -sit' saftstoydie() IMEXCno gene ouC uLEF tI_Eee ap_kiOK 0 mrbelMee AP hasypandledCorfe atage.MEne APha/yr----------------------- HTTPHSrdtus Clrks ------------------------- *ne AP/yreiU s lesbEPT_Ees ascCoCrayait epri_protocol.cHXG1istoC()I_EM* avolurT_EepotEpidalVresplnseEsrdtus-lp_ksr(ays SrlivtT ).ARMEXA fulÇ psvn 1.1ksholus{dynwiic ap_ogenerasuPT_EetT Catls ar;up. * I_Eee ap_kiRESPeeSE_CODES 55e APACHsrdrtHTTP_see INUE 100e Tdy"_EAtHTTP_SWITCHING_PROTOCOLS 101e Tdy"_EAtHTTP_PROCES_ACAE 102e Tdy"_EAtHTTP_OK 200e Tdy"_EAtHTTP_CREATED 201e Tdy"_EAtHTTP_ACCEPTED 202e Tdy"_EAtHTTP_NON_AUTHORITATIVE 203e Tdy"_EAtHTTP_NO_see ENT 204e Tdy"_EAtHTTP_RESET_see ENT 205e Tdy"_EAtHTTP_PARTIAL_see ENT 206e Tdy"_EAtHTTP_MULTI_STATUS 207e Tdy"_EAtHTTP_MULTIPLE_CHOICES 300e Tdy"_EAtHTTP_MOVED_PERMANENTLY 301e Tdy"_EAtHTTP_MOVED_TEMcefARILY 302e Tdy"_EAtHTTP_SEE_D_ACC 303e Tdy"_EAtHTTP_NOT_MMeIFIED 304e Tdy"_EAtHTTP_USE_PROXY 305e Tdy"_EAtHTTP_TEMcefARY_REDIRECT 307e Tdy"_EAtHTTP_BAD_REQUEST 400e Tdy"_EAtHTTP_UNAUTHORIZED 401e Tdy"_EAtHTTP_PAYMENT_REQUIRED 402e Tdy"_EAtHTTP_FORBIDDEN 403e Tdy"_EAtHTTP_NOT_FOUND 404e Tdy"_EAtHTTP_METHOD_NOT_ALLOWED 405e Tdy"_EAtHTTP_NOT_ACCEPT1i>O 406e Tdy"_EAtHTTP_PROXY_AUTHENTICAIBM _REQUIRED 407e Tdy"_EAtHTTP_REQUEST_TIME_OUT 408APACHsrdrtHTTP_seeFLICT 409APACHsrdrtHTTP_GONnssssssssssssssssssssssssss410e Tdy"_EAtHTTP_LENGTH_REQUIRED s411e Tdy"_EAtHTTP_PREseeDITAM _FAILED 412e Tdy"_EAtHTTP_REQUEST_ENTITY_TOO_LARGE 413e Tdy"_EAtHTTP_REQUEST_URI_TOO_LARGE 414e Tdy"_EAtHTTP_UNSUPcefuED_MEDIA_TYPE 415e Tdy"_EAtHTTP_RANGE_NOT_SAIBSFI1i>O 416e Tdy"_EAtHTTP_fecECTATAM _FAILED 417e Tdy"_EAtHTTP_UNPROCES_1i>_ENTITY 422e Tdy"_EAtHTTP_LOCKED 423e Tdy"_EAtHTTP_FAILED_DEPENDENCY 424e Tdy"_EAtHTTP_N/"INNAL_SERVER_ERROR 500e Tdy"_EAtHTTP_NOT_IMPLEMENTED 501e Tdy"_EAtHTTP_BAD_GATEWAY 502e Tdy"_EAtHTTP_SERVICE_UNAVAIL1i>O 503e Tdy"_EAtHTTP_GATEWAY_TIME_OUT 504e Tdy"_EAtHTTP_VERSBM _NOT_SUPcefuED 505e Tdy"_EAtHTTP_VARIANT_ALSO_VARIES 506e Tdy"_EAtHTTP_INSUFFICIENT_STefAGE 507e Tdy"_EAtHTTP_NOT_EXTENDED 510()diACHsrdrtDOCUMENT_FOLLOWS HTTP_OKdiACHsrdrtPARTIAL_see ENT HTTP_PARTIAL_see ENT_Eee ap_kiMULTIPLE_CHOICES HTTP_MULTIPLE_CHOICES_Eee ap_kiMOVED HTTP_MOVED_PERMANENTLY_Eee ap_kiREDIRECT HTTP_MOVED_TEMcefARILY_Eee ap_kiUSE_LOCAL_sePY HTTP_NOT_MMeIFIED_Eee ap_kiBAD_REQUEST HTTP_BAD_REQUEST_Eee ap_kiAUTH_REQUIRED HTTP_UNAUTHORIZED_Eee ap_kiFORBIDDEN HTTP_FORBIDDEN_Eee ap_kiNOT_FOUND HTTP_NOT_FOUND_Eee ap_kiMETHOD_NOT_ALLOWED HTTP_METHOD_NOT_ALLOWED_Eee ap_kiNOT_ACCEPT1i>O HTTP_NOT_ACCEPT1i>_Eee ap_kiLENGTH_REQUIRED HTTP_LENGTH_REQUIREDdiACHsrdrtPREseeDITAM _FAILED HTTP_PREseeDITAM _FAILED_EeCHsrdrtSERVER_ERROR HTTP_N/"INNAL_SERVER_ERROR_Eee ap_kiNOT_IMPLEMENTED HTTP_NOT_IMPLEMENTED_Eee ap_kiBAD_GATEWAY HTTP_BAD_GATEWAY_Eee ap_kiVARIANT_ALSO_VARIES HTTP_VARIANT_ALSO_VARIES_EhaTdy"_EAPIMEis_HTTP_N/FO(x) (((x) >= 100)&&((x) < 200))haTdy"_EAPIMEis_HTTP_SUCCESS(x) (((x) >= 200)&&((x) < 300))haTdy"_EAPIMEis_HTTP_REDIRECT(x) (((x) >= 300)&&((x) < 400))haTdy"_EAPIMEis_HTTP_ERROR(x) (((x) >= 400)&&((x) < 600))haTdy"_EAPIMEis_HTTP_CLIENT_ERROR(x) (((x) >= 400)&&((x) < 500))haTdy"_EAPIMEis_HTTP_SERVER_ERROR(x) (((x) >= 500)&&((x) < 600))hahaTdy"_EAPIMEsrdtus_drops_HHAneos #(x) \EF__________________ (((x) == HTTP_BAD_REQUEST) || \/*__________________ ((x) == HTTP_REQUEST_TIME_OUT) || \/*__________________ ((x) == HTTP_LENGTH_REQUIRED) || \/*__________________ ((x) == HTTP_REQUEST_ENTITY_TOO_LARGE) || \/*__________________ ((x) == HTTP_REQUEST_URI_TOO_LARGE) || \/*__________________ ((x) == HTTP_N/"INNAL_SERVER_ERROR) || \/*__________________ ((x) == HTTP_SERVICE_UNAVAIL1i>)_|| \/* har ((x) == HTTP_NOT_IMPLEMENTED))hahabelMethoMs recogn ledf(t HNEyneoessaf_lyypandled)oPn4T_EeservGr.ARMEXCa se**chara e oCe*IUN_Eit botsshiftS3)_maskvoluCo lesdnp,*so*itrfee APAunsaftstoyhavU gene methoMs taanAbipsQfnyanoitM. HEAD == M_GET. * I_Eee ap_kiM_GET 0_Eee ap_kiM_PUT 1_Eee ap_kiM_POST 2_Eee ap_kiM_DELET>O 3_Eee ap_kiM_seeNECT 4_Eee ap_kiM_OE_IOlS 5_Eee ap_kiM_TRACE 6_Eee ap_kiM_PATCH 7_Eee ap_kiM_PROPFIND 8_ETdy"_EAiM_PROPPATCH 9_ETdy"_EAiM_MKCOL 10_Eee ap_kiM_sePY 11_Eee ap_kiM_MOVE 12_Eee ap_kiM_LOCK 13_Eee ap_kiM_UNLOCK 14_Eee ap_kiM_INVALID 15e APACHsrdrtMETHODS 16e APACHsrdrtCGI_MAGIC_TYPE "applsn roin/x-hprid-cgi"APACHsrdrtINCLUDES_MAGIC_TYPE " n "/x-tervGr-parson-html"_EfCHsrdrtINCLUDES_MAGIC_TYPE3 " n "/x-tervGr-parson-html3"fiA1iseuAsHARSET_EBCDIC_Eee ap_kiASCIITEXT_MAGIC_TYPE_PREFIX " n "/x-ascii-"0iseTn "nfileslIhoseEco ent-tRNCAs ar;sEIMEXCisisroCe*pasUN_EthruAunse vn tere I_Ee #en0issHARSET_EBCDIC I_Eee ap_kiMAP_FILE_MAGIC_TYPE "applsn roin/x-tRNC-map"APACHsrdrtASIS_MAGIC_TYPE "hprid/aend-as-is"N/Tdy"_EAPDIR_MAGIC_TYPE "hprid/unix-direosory"APACHsrdrtSTATUS_MAGIC_TYPE "applsn roin/x-hprid-srdtus"_EAP/yARMEXD fffU a e HTML doctRNCAs rfreeHcentr ap_. * I_Eee ap_kiDOCTYPE_HTML_2_0 "<!DOCTYPE HTML PUBLIC \"-//IETF//" \/*__________________ "DTD HTML 2.0//EN\">\n"_Eee ap_kiDOCTYPE_HTML_3_2 "<!DOCTYPE HTML PUBLIC \"-//W3C//" \/*__________________ "DTD HTML 3.2 Fooal//EN\">\n"_Eee ap_kiDOCTYPE_HTML_4_0S "<!DOCTYPE HTML PUBLIC \"-//W3C//" \/*__________________ "DTD HTML 4.0//EN\"\n" \/*__________________ "\"hpri://www.w3.org/TR/REC-html40/s rfct.dtd\">\n"_Eee ap_kiDOCTYPE_HTML_4_0T "<!DOCTYPE HTML PUBLIC \"-//W3C//" \/*__________________ "DTD HTML 4.0 Transisiooal//EN\"\n" \/*__________________ "\"hpri://www.w3.org/TR/REC-html40/loose.dtd\">\n"_Eee ap_kiDOCTYPE_HTML_4_0F "<!DOCTYPE HTML PUBLIC \"-//W3C//" \/*__________________ "DTD HTML 4.0 Frwitset//EN\"\n" \/*__________________ "\"hpri://www.w3.org/TR/REC-html40/frwitset.dtd\">\n"_EhabelJustCLt cdseEyAur lp_kfeN_EisestrT_EeofU a e 1isR e00Lisrpxpeosre-_ I_EeCH,e ImsHARSET_EBCDIC_Eee ap_kiLF 10_Eee ap_kiCR 13_Eee ap_kiCRLF "\015\012"_Eee ap_kiOS_ASC(c) (c)_Eflde belCHARSET_EBCDIC_ I_EeCS _Ee__"apEebcdic.h"2 isiOSD_POSIX usksrta cEBCDIC_charsot.XCa ctransisiooiASCII->EBCDIC_isrdontsitErEXCT_Eebuap*packager(bread/bputs/bwrate),*so*suchyvermsAlde,Awe ZEDCopyr"nasivo EBCDIC"iCR aidQNLr*pa aosers. ditsefoCe*isRifo pQe APACdoaee APA'\r' aidQ'\n'. * NB:Cisisris HNEyT_Eewhale TruEXC-Eshe#hiits \015 aidQ\012 oCe**chtaitonfffffLt later a (EBCDIC!)As rfree,*so*titsefoCe*HNEyse vn teret pasUN_. * I_Eee ap_kiCR '\r'_Eee ap_kiLF '\n'_Eee ap_kiCRLF "\r\n"_Eee ap_kiOS_ASC(c) (os_toascii[c])_Ef #en0iseCHARSET_EBCDIC_ I_E2 isiPossi Cvaluee XG1irequest_reo.read_bodye(set_byypandlS3)_mee AP): per rREQUEST_NO_BODY Se00L413Ep)ror t00gessagerhasyanyrbody per rREQUEST_CHUNKED_ERROR Se00L411Ep)ror t00bodyewiphouCPCo ent-Length per rREQUEST_CHUNKED_DECHUNKrrI00chunked,rvemoveCT_Eechunks t geme. per rREQUEST_CHUNKED_PASS PasUCT_Eechunks toymeewiphouCPvemoval. * I_Eee ap_kiREQUEST_NO_BODY 0_Eee ap_kiREQUEST_CHUNKED_ERROR 1_Eee ap_kiREQUEST_CHUNKED_DECHUNKrr2_Eee ap_kiREQUEST_CHUNKED_PASS 3e AP/yreifreeHEee ITmaysvaryCpegefile-lookup WITHINCaCrequest --- * e.g., srdtesbEPMIME_HHAVig.A Basic ap_, ta c witsbEPanoobjeos,VARff_EM* abouC a e 1bjeos,Vand anyslisR ARffAwe may ahveHEee ITmays,_SEEtoHNE* *pangerasywe go pok()I_arstra looking t geitr(e.g., overriddenoPnHNE* .hpaccessnfiles)1 * CopyrNhceHhowQa U seuaultQsldtesbEPalmost avotitsefT_freeHfe propeglye APAzero,*so*tiat avoocas)IsitEIMEXCpcavoocrdoksrta cr * T_fre*wiphouCIZet_(Cwhale loL offpairyCitiidaliz roin1..*so*long asywe ane widr()Isto pemake ormr(fairly) MP_ET CassumpsiooiRIA/tf ssbotspat"C" {bEPa NULLTPMEXpoitMTrEfe,Ait faos,Vzero.po *ne AP/yreife represe sCisR resultQluCEadr()Ishpaccess;*titsefoCe*cachndoforLLO)_pacXCrequest.po *ne OG u luhpaccess_resultQ{ *passwdir; mrbelisRrdireosoryCtoyEee ITisisropplses* I_Eer r1np*override;mrbelisRroverrides avoowCdot geisRr.hpaccessnfile* I_Eer r ap_ *hpaccess;mrbelisRrcHAViguras #edireosves o 2 iseta c n "nont,sbrkNULLr100no gene; N.B.lnsuch *pangerisisr I_Eer r*char OG u luhpaccess_resultQ* n ";_E};_EayTRNCAff OG u luHHAn_reouHHAn_reo;()TRNCAff OG u luservGr_reouservGr_reo;()TRNCAff OG u lurequest_reourequest_reo;()TRNCAff OG u luap);en_reouap);en_reo;dihaA1S _Ee__"util_uri.h"N/haenum proxyreqtRNCA{ NOT_PROXY=0,ErE STD_PROXY,ErE PROXY_PASS_E};_EayOG u lurequest_reou{_EayE IMEIool *Iool;_Eer r*chn_reou*HHAneos #;_Eer rservGr_reou*servGr;_EayE request_reou* n ";mrbelI00we wiAVEuptgets)Isredireosed,EF t_poitMTrEaorT_Eerequest wesredireosedEao.EF tI_EE request_reou*pmsu;mrbelI00isisris anoitMTr alrredireos,EF t_poitMTrEaorvermsAwesredireosedE*from*.EF tI_E_EE request_reou*mait;mrbelI00isisris afOub_request (seerrequest.h) EF t_poitMTrEbackEaorT_Eemain request.po tI_E_EE belIRffAabouC a e requestSitself1..*we{begit IMEXCstuap*RIA/tonly/*_____* protocol.cHsholus{evTrEaouch1../*_____*I_E_EE *passwtft_request;mrbelFir);apdrtnfLrequest,_shtwe cdl logAit* I_Eer r1np*assbackwards;mrbelHTTP/0.9, "sttCoe"nrequestSOne er renum proxyreqtRNCAproxyreq;/EXA proxynrequestS(Eadcul rN_Edur()I_E t_post_read_requestS geiransl rN_ wit)* I_Eer r1np*hr.her_only;mrbelHEAD request,_asyopposN_EtoyGET I_Eer r*passwprotocol;mrbelProtocol,_asygvenEtoyus,sbrkHTTP/0.9* I_Eer r1np*proto_num;mrbelNumberHvn 1.1kbEPprotocol;i1.1 = 1001r I_Eer r*char *passwhost wit;rbelHost,_asyset_byyfuvoURIsbrkHost:_*I_E_EE haf._lurequest_haf.;rbelWern T_EerequestSs ar;nd One APer r*char *passwsrdtus_apdr;rbelSrdtus apdr, t00set_byyscript* I_Eer r1np*srdtus; mrbelIt anyscdseEtI_E_EE belRequestSmethoM,*tw oways; also, protocol,_etc.. OutsodG bEPprotocol.c,/*_____* look,it doestraouch1/*_____*I_E_EE *char *passwmethoM;mrbelGET,lHEAD, POST,_etc.* I_Eer r1np*methoM_ umber;mrbelM_GET,iM_POST,_etc.* I_E_EE be_E avoowCdois afbotveosorsbEPT_EeavoowCdomethoMs._E_E AypandlersmustCensune taaC a e requestSmethoM ii)one taaC dt)AsrcapT Coffpandlre-_ Generaap_oAee APs*sholus{DECLINn_E any requestSmethoMsAoreysdo*HNEypandle-_ Prnorvto abort()Ist sre pandlerslike orisCisR pandlerssholus{set_r->avoowCdoaorT_Eeap);re oEPmethoMs taat*itrfe widr()Istoypandle-_ eife botveosorsfe IUN_e toy*char u luT_Ee"Avoow:" hr.herHrequiredot geOE_IOlS requests,_E andiMETHOD_NOT_ALLOWED aidQNOT_IMPLEMENTED srdtus clrks._E_E S nce a U seuault_pandlersdealslIMEXCOE_IOlS, avoAee APs*cane usu ap_odeclp_kstoydeallIMEXCOE_IOlS-_ eRACE is always avoowCd,_E Aee APs*doestr,_SEEto{set_itrpxplsnitly._E_E S nce a U seuault_pandlerswidrAalways pandleealGET,la_E Aee APyEee ITdoksr*HNE* ttCoed GET sholus{probT yereturA_E METHOD_NOT_ALLOWED. Urt gtu assly orisCmeans taat*a Script*GETfi pandlerscan't{bee nst(voereb_oAee_aos #e1/*____ I_Eer r1np*avoowCd;mrbelAvoowCdomethoMs -ot ge405,COE_IOlS, etc* I_E_EE 1np*s _bodyct;mrbelbnteEselntCLt ar eam is t gebodye I_Eer rlong bntes_s ;mrbelbodyebnteEselnt, XG1ieasyeaccess I_Eer rhaf._lumhaf.;rrbelTimeCisR resdallo waeHaastSmo010sndotI_E_EE belHTTP/1.1 HHAneos #-level fealÇ ps* I_E_EE 1np*chunked;mrbelseoo()I_Hhunkedeiransfer-clr()I_ I_EE 1np*bnterange;mrbelnumberHnfLbnteEranges I_Eer r*passwbstraary;mrbelmult( Lli/bnterangee bstraaryr I_Eer r*char *passwrange;mrbelCa cRange:khr.herH I_Eer rlong clength;mrbelCa c" eal"Cco e lengths I_E_EE long remain()I;mrbelbnteeHaef toyreadr I_Eer rlong read_length;mrbelbnteeHtaat*havU been*readr I_Eer rdnp*read_body;mrbelhowQa U requestSbodyesholus{beereadr I_Eer rdnp*read_chunked;mrbelread()I_Hhunkedeiransfer-clr()I_ I_EE unoignedrpxpeosre_100;rbelAsrcli iwaiLing t gea 100Vresplnse?otI_E_EE belMIME_hr.herHenvirond s,Qfnyand ouL1isrdso, dl oCraya*chtait()I_EM____* environd P af_T i)toybnspasUN_EtofOubprocessEs,_shtppoCoe cane A____* wraterAee APs*toyaddoto*tiat environd 1/*_____*e A____* Ca csiaprCence between*hr.hers_ouC and err_hr.hers_ouC is taaC a e/*_____* lat"C"roCe*pritMTs{evT#CCnPp)ror,tand pn 1.st acrossoitMTr alrredireoss/*_____* (so*tit*hr.hers*pritMTs{t geE)rorDocud pandlersswidrAhavU a em)1/*_____*e A____* Ca c'HNEes'etT Cis t geHNEes from one Aee APytoyanlisR, IMEXCnoe A____* lisR set_purposNi1r mind1../*_____*I_E_EE tT C*hr.hers_i#;_Eer rtT C*hr.hers_ouC;_Eer rtT C*err_hr.hers_ouC;_Eer rtT C*Oubprocess_env;_Eer rtT C*HNEes;_E_EE belco e _tRNC, pandler,lco e _enclr()I,lco e _lang