Artifact
757e5f5ce949b335b2e9226d4e74379243f7c5e1:
Ticket change
[757e5f5ce9]
- Ticket [4060715d46]
Implement FastCGI interface status still Open with 1 other change
by
drh
2011-11-25 15:31:22.
0000: 44 20 32 30 31 31 2d 31 31 2d 32 35 54 31 35 3a D 2011-11-25T15:
0010: 33 31 3a 32 32 2e 39 33 38 0a 4a 20 2b 63 6f 6d 31:22.938.J +com
0020: 6d 65 6e 74 20 5c 6e 5c 6e 3c 68 72 5c 73 2f 3e ment \n\n<hr\s/>
0030: 3c 69 3e 64 72 68 5c 73 61 64 64 65 64 5c 73 6f <i>drh\sadded\so
0040: 6e 5c 73 32 30 31 31 2d 31 31 2d 32 35 5c 73 31 n\s2011-11-25\s1
0050: 35 3a 33 31 3a 32 32 5c 73 55 54 43 3a 3c 2f 69 5:31:22\sUTC:</i
0060: 3e 3c 62 72 5c 73 2f 3e 5c 6e 41 5c 73 72 65 61 ><br\s/>\nA\srea
0070: 73 6f 6e 61 62 6c 65 5c 73 69 6d 70 6c 65 6d 65 sonable\simpleme
0080: 6e 74 61 74 69 6f 6e 5c 73 6f 66 5c 73 46 61 73 ntation\sof\sFas
0090: 74 43 47 49 5c 73 66 6f 72 5c 73 46 6f 73 73 69 tCGI\sfor\sFossi
00a0: 6c 5c 73 77 6f 75 6c 64 5c 73 62 65 3a 5c 72 5c l\swould\sbe:\r\
00b0: 6e 5c 72 5c 6e 5c 73 5c 73 31 2e 5c 73 5c 73 43 n\r\n\s\s1.\s\sC
00c0: 61 70 74 75 72 65 5c 73 74 68 65 5c 73 46 61 73 apture\sthe\sFas
00d0: 74 43 47 49 5c 73 70 61 72 61 6d 65 74 65 72 73 tCGI\sparameters
00e0: 5c 73 61 6e 64 5c 73 71 75 65 72 79 5c 73 63 6f \sand\squery\sco
00f0: 6e 74 65 6e 74 5c 72 5c 6e 5c 73 5c 73 32 2e 5c ntent\r\n\s\s2.\
0100: 73 5c 73 57 72 69 74 65 5c 73 74 68 65 5c 73 71 s\sWrite\sthe\sq
0110: 75 65 72 79 5c 73 70 61 72 61 6d 65 74 65 72 73 uery\sparameters
0120: 5c 73 61 6e 64 5c 73 63 6f 6e 74 65 6e 74 5c 73 \sand\scontent\s
0130: 69 6e 74 6f 5c 73 61 5c 73 74 65 6d 70 6f 72 61 into\sa\stempora
0140: 72 79 5c 73 66 69 6c 65 5c 72 5c 6e 5c 73 5c 73 ry\sfile\r\n\s\s
0150: 5c 73 5c 73 5c 73 5c 73 66 6f 72 6d 61 74 74 65 \s\s\s\sformatte
0160: 64 5c 73 61 73 5c 73 61 5c 73 6e 6f 72 6d 61 6c d\sas\sa\snormal
0170: 5c 73 48 54 54 50 5c 73 72 65 71 75 65 73 74 5c \sHTTP\srequest\
0180: 72 5c 6e 5c 73 5c 73 33 2e 5c 73 5c 73 55 73 65 r\n\s\s3.\s\sUse
0190: 5c 73 66 6f 73 73 69 6c 5f 73 79 73 74 65 6d 28 \sfossil_system(
01a0: 29 5c 73 74 6f 5c 73 72 65 63 75 72 73 69 76 65 )\sto\srecursive
01b0: 6c 79 5c 73 69 6e 76 6f 6b 65 5c 73 46 6f 73 73 ly\sinvoke\sFoss
01c0: 69 6c 5c 73 74 6f 5c 73 70 72 6f 63 65 73 73 5c il\sto\sprocess\
01d0: 72 5c 6e 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 74 r\n\s\s\s\s\s\st
01e0: 68 65 5c 73 67 65 6e 65 72 61 74 65 64 5c 73 48 he\sgenerated\sH
01f0: 54 54 50 5c 73 72 65 71 75 65 73 74 2c 5c 73 77 TTP\srequest,\sw
0200: 72 69 74 69 6e 67 5c 73 74 68 65 5c 73 72 65 73 riting\sthe\sres
0210: 75 6c 74 73 5c 73 69 6e 74 6f 5c 73 61 6e 6f 74 ults\sinto\sanot
0220: 68 65 72 5c 72 5c 6e 5c 73 5c 73 5c 73 5c 73 5c her\r\n\s\s\s\s\
0230: 73 5c 73 74 65 6d 70 6f 72 61 72 79 5c 73 66 69 s\stemporary\sfi
0240: 6c 65 2e 5c 72 5c 6e 5c 73 5c 73 34 2e 5c 73 5c le.\r\n\s\s4.\s\
0250: 73 52 65 61 64 5c 73 62 61 63 6b 5c 73 74 68 65 sRead\sback\sthe
0260: 5c 73 72 65 70 6c 79 5c 73 6f 75 74 5c 73 6f 66 \sreply\sout\sof
0270: 5c 73 74 68 65 5c 73 73 65 63 6f 6e 64 5c 73 74 \sthe\ssecond\st
0280: 65 6d 70 6f 72 61 72 79 5c 73 66 69 6c 65 5c 72 emporary\sfile\r
0290: 5c 6e 5c 73 5c 73 35 2e 5c 73 5c 73 52 65 66 6f \n\s\s5.\s\sRefo
02a0: 72 6d 61 74 5c 73 61 6e 64 5c 73 73 65 6e 64 5c rmat\sand\ssend\
02b0: 73 74 68 65 5c 73 72 65 70 6c 79 5c 73 62 61 63 sthe\sreply\sbac
02c0: 6b 5c 73 74 6f 5c 73 74 68 65 5c 73 46 61 73 74 k\sto\sthe\sFast
02d0: 43 47 49 5c 73 72 65 71 75 65 73 74 6f 72 5c 72 CGI\srequestor\r
02e0: 5c 6e 5c 73 5c 73 36 2e 5c 73 5c 73 44 65 6c 65 \n\s\s6.\s\sDele
02f0: 74 65 5c 73 74 68 65 5c 73 74 77 6f 5c 73 74 65 te\sthe\stwo\ste
0300: 6d 70 6f 72 61 72 79 5c 73 66 69 6c 65 73 2e 5c mporary\sfiles.\
0310: 72 5c 6e 5c 72 5c 6e 54 68 65 5c 73 61 62 6f 76 r\n\r\nThe\sabov
0320: 65 5c 73 69 73 5c 73 62 61 73 69 63 61 6c 6c 79 e\sis\sbasically
0330: 5c 73 74 68 65 5c 73 70 72 6f 63 65 64 75 72 65 \sthe\sprocedure
0340: 5c 73 75 73 65 64 5c 73 74 6f 5c 73 69 6d 70 6c \sused\sto\simpl
0350: 65 6d 65 6e 74 5c 73 74 68 65 5c 73 22 75 69 22 ement\sthe\s"ui"
0360: 5c 73 61 6e 64 5c 72 5c 6e 22 73 65 72 76 65 72 \sand\r\n"server
0370: 22 5c 73 63 6f 6d 6d 61 6e 64 73 5c 73 66 6f 72 "\scommands\sfor
0380: 5c 73 77 69 6e 64 6f 77 73 2c 5c 73 61 73 5c 73 \swindows,\sas\s
0390: 73 68 6f 77 6e 5c 73 69 6e 5c 73 74 68 65 5c 72 shown\sin\sthe\r
03a0: 5c 6e 77 69 6e 33 32 5f 70 72 6f 63 65 73 73 5f \nwin32_process_
03b0: 6f 6e 65 5f 68 74 74 70 5f 72 65 71 75 65 73 74 one_http_request
03c0: 28 29 5c 73 66 75 6e 63 74 69 6f 6e 5c 73 69 6e ()\sfunction\sin
03d0: 5c 73 74 68 65 5c 73 77 69 6e 68 74 74 70 2e 63 \sthe\swinhttp.c
03e0: 5c 73 73 6f 75 72 63 65 5c 73 66 69 6c 65 2e 5c \ssource\sfile.\
03f0: 73 5c 73 54 68 65 5c 72 5c 6e 6d 61 69 6e 5c 73 s\sThe\r\nmain\s
0400: 64 69 66 66 65 72 65 6e 63 65 5c 73 69 73 5c 73 difference\sis\s
0410: 74 68 61 74 5c 73 69 6e 5c 73 74 68 65 5c 73 63 that\sin\sthe\sc
0420: 61 73 65 5c 73 6f 66 5c 73 74 68 65 5c 73 22 75 ase\sof\sthe\s"u
0430: 69 22 5c 73 61 6e 64 5c 73 22 73 65 72 76 65 72 i"\sand\s"server
0440: 22 5c 73 63 6f 6d 6d 61 6e 64 73 2c 5c 72 5c 6e "\scommands,\r\n
0450: 74 68 65 5c 73 69 6e 63 6f 6d 69 6e 67 5c 73 72 the\sincoming\sr
0460: 65 71 75 65 73 74 5c 73 69 73 5c 73 61 6c 72 65 equest\sis\salre
0470: 61 64 79 5c 73 61 5c 73 76 61 6c 69 64 5c 73 48 ady\sa\svalid\sH
0480: 54 54 50 5c 73 72 65 71 75 65 73 74 5c 73 61 6e TTP\srequest\san
0490: 64 5c 73 64 6f 65 73 5c 73 6e 6f 74 5c 73 6e 65 d\sdoes\snot\sne
04a0: 65 64 5c 72 5c 6e 74 6f 5c 73 62 65 5c 73 74 72 ed\r\nto\sbe\str
04b0: 61 6e 73 6c 61 74 65 64 5c 73 61 73 5c 73 69 74 anslated\sas\sit
04c0: 5c 73 69 73 5c 73 6d 6f 76 65 64 5c 73 69 6e 5c \sis\smoved\sin\
04d0: 73 61 6e 64 5c 73 6f 75 74 5c 73 6f 66 5c 73 74 sand\sout\sof\st
04e0: 68 65 5c 73 74 65 6d 70 6f 72 61 72 79 5c 72 5c he\stemporary\r\
04f0: 6e 66 69 6c 65 73 2e 5c 73 5c 73 53 6f 2c 5c 73 nfiles.\s\sSo,\s
0500: 69 6e 5c 73 6f 74 68 65 72 5c 73 77 6f 72 64 73 in\sother\swords
0510: 2c 5c 73 61 5c 73 46 6f 73 73 69 6c 5c 73 46 61 ,\sa\sFossil\sFa
0520: 73 74 43 47 49 5c 73 69 6d 70 6c 65 6d 65 6e 74 stCGI\simplement
0530: 61 74 69 6f 6e 5c 73 77 6f 75 6c 64 5c 73 62 61 ation\swould\sba
0540: 73 69 63 61 6c 6c 79 5c 72 5c 6e 62 65 5c 73 74 sically\r\nbe\st
0550: 68 65 5c 73 73 61 6d 65 5c 73 61 73 5c 73 74 68 he\ssame\sas\sth
0560: 65 5c 73 77 69 6e 64 6f 77 73 5c 73 75 69 2f 73 e\swindows\sui/s
0570: 65 72 76 65 72 5c 73 69 6d 70 6c 65 6d 65 6e 74 erver\simplement
0580: 61 74 69 6f 6e 5c 73 77 69 74 68 5c 73 73 6f 6d ation\swith\ssom
0590: 65 5c 73 65 78 74 72 61 5c 72 5c 6e 63 6f 64 69 e\sextra\r\ncodi
05a0: 6e 67 5c 73 61 6e 64 5c 73 64 65 63 6f 64 69 6e ng\sand\sdecodin
05b0: 67 5c 73 6c 6f 67 69 63 5c 73 74 68 72 6f 77 6e g\slogic\sthrown
05c0: 5c 73 69 6e 2e 5c 72 5c 6e 5c 72 5c 6e 4e 6f 74 \sin.\r\n\r\nNot
05d0: 65 5c 73 74 68 61 74 5c 73 74 68 65 5c 73 61 62 e\sthat\sthe\sab
05e0: 6f 76 65 5c 73 69 6d 70 6c 65 6d 65 6e 74 61 74 ove\simplementat
05f0: 69 6f 6e 5c 73 69 73 5c 73 63 6f 6d 70 6c 65 74 ion\sis\scomplet
0600: 65 6c 79 5c 73 69 73 6f 6c 61 74 65 64 5c 73 61 ely\sisolated\sa
0610: 6e 64 5c 73 64 6f 65 73 5c 72 5c 6e 6e 6f 74 5c nd\sdoes\r\nnot\
0620: 73 72 65 71 75 69 72 65 5c 73 61 6e 79 5c 73 63 srequire\sany\sc
0630: 68 61 6e 67 65 73 5c 73 74 6f 5c 73 61 6e 79 5c hanges\sto\sany\
0640: 73 65 78 69 73 74 69 6e 67 5c 73 70 61 72 74 73 sexisting\sparts
0650: 5c 73 6f 66 5c 73 46 6f 73 73 69 6c 2e 5c 73 5c \sof\sFossil.\s\
0660: 73 4f 6e 65 5c 73 68 61 73 5c 72 5c 6e 6d 65 72 sOne\shas\r\nmer
0670: 65 6c 79 5c 73 74 6f 5c 73 61 64 64 5c 73 61 5c ely\sto\sadd\sa\
0680: 73 6e 65 77 5c 73 22 66 61 73 74 63 67 69 2e 63 snew\s"fastcgi.c
0690: 22 5c 73 73 6f 75 72 63 65 5c 73 66 69 6c 65 5c "\ssource\sfile\
06a0: 73 74 68 61 74 5c 73 69 6d 70 6c 65 6d 65 6e 74 sthat\simplement
06b0: 73 5c 73 74 68 65 5c 73 61 62 6f 76 65 2e 5c 72 s\sthe\sabove.\r
06c0: 5c 6e 41 6c 6c 5c 73 6f 66 5c 73 74 68 65 5c 73 \nAll\sof\sthe\s
06d0: 46 61 73 74 43 47 49 5c 73 64 65 63 6f 64 69 6e FastCGI\sdecodin
06e0: 67 5c 73 61 6e 64 5c 73 74 72 61 6e 73 6c 61 74 g\sand\stranslat
06f0: 69 6f 6e 5c 73 61 6e 64 5c 73 70 72 6f 74 6f 63 ion\sand\sprotoc
0700: 6f 6c 5c 73 68 61 6e 64 6c 69 6e 67 5c 73 77 6f ol\shandling\swo
0710: 75 6c 64 5c 72 5c 6e 62 65 5c 73 63 6f 6e 74 61 uld\r\nbe\sconta
0720: 69 6e 65 64 5c 73 65 6e 74 69 72 65 6c 79 5c 73 ined\sentirely\s
0730: 69 6e 5c 73 74 68 61 74 5c 73 6f 6e 65 5c 73 73 in\sthat\sone\ss
0740: 6f 75 72 63 65 5c 73 66 69 6c 65 2e 5c 72 5c 6e ource\sfile.\r\n
0750: 5c 72 5c 6e 49 5c 73 74 68 69 6e 6b 5c 73 74 68 \r\nI\sthink\sth
0760: 65 5c 73 6f 6e 6c 79 5c 73 72 65 61 73 6f 6e 5c e\sonly\sreason\
0770: 73 66 6f 72 5c 73 77 61 6e 74 69 6e 67 5c 73 74 sfor\swanting\st
0780: 6f 5c 73 73 75 70 70 6f 72 74 5c 73 46 61 73 74 o\ssupport\sFast
0790: 43 47 49 5c 73 69 73 5c 73 73 6f 5c 73 74 68 61 CGI\sis\sso\stha
07a0: 74 5c 73 79 6f 75 5c 72 5c 6e 63 61 6e 5c 73 72 t\syou\r\ncan\sr
07b0: 75 6e 5c 73 46 6f 73 73 69 6c 5c 73 6d 6f 72 65 un\sFossil\smore
07c0: 5c 73 65 61 73 69 6c 79 5c 73 75 73 69 6e 67 5c \seasily\susing\
07d0: 73 6e 67 69 6e 78 2e 5c 73 5c 73 46 61 73 74 43 snginx.\s\sFastC
07e0: 47 49 5c 73 77 6f 6e 27 74 5c 73 62 65 5c 73 61 GI\swon't\sbe\sa
07f0: 6e 79 5c 73 6d 6f 72 65 5c 73 65 66 66 69 63 69 ny\smore\seffici
0800: 65 6e 74 2e 5c 72 5c 6e 49 6e 5c 73 66 61 63 74 ent.\r\nIn\sfact
0810: 2c 5c 73 69 66 5c 73 79 6f 75 5c 73 63 6f 6e 73 ,\sif\syou\scons
0820: 69 64 65 72 5c 73 74 68 65 5c 73 65 78 74 72 61 ider\sthe\sextra
0830: 5c 73 65 6e 63 6f 64 69 6e 67 5c 73 61 6e 64 5c \sencoding\sand\
0840: 73 64 65 63 6f 64 69 6e 67 5c 73 6c 6f 67 69 63 sdecoding\slogic
0850: 5c 73 74 68 61 74 5c 73 68 61 73 5c 72 5c 6e 74 \sthat\shas\r\nt
0860: 6f 5c 73 72 75 6e 2c 5c 73 46 61 73 74 43 47 49 o\srun,\sFastCGI
0870: 5c 73 77 69 6c 6c 5c 73 70 72 6f 62 61 62 6c 79 \swill\sprobably
0880: 5c 73 62 65 5c 73 6c 65 73 73 5c 73 65 66 66 69 \sbe\sless\seffi
0890: 63 69 65 6e 74 5c 73 74 68 61 6e 5c 73 73 69 6d cient\sthan\ssim
08a0: 70 6c 79 5c 73 63 6f 6e 66 69 67 75 72 69 6e 67 ply\sconfiguring
08b0: 5c 72 5c 6e 6e 67 69 6e 78 5c 73 74 6f 5c 73 72 \r\nnginx\sto\sr
08c0: 65 6c 61 79 5c 73 72 65 71 75 65 73 74 73 5c 73 elay\srequests\s
08d0: 74 6f 5c 73 61 5c 73 72 75 6e 6e 69 6e 67 5c 73 to\sa\srunning\s
08e0: 46 6f 73 73 69 6c 5c 73 22 73 65 72 76 65 72 22 Fossil\s"server"
08f0: 5c 73 69 6e 73 74 61 6e 63 65 2e 5c 72 5c 6e 5c \sinstance.\r\n\
0900: 72 5c 6e 0a 4b 20 34 30 36 30 37 31 35 64 34 36 r\n.K 4060715d46
0910: 31 36 35 30 35 39 32 37 32 37 31 36 32 37 37 37 1650592727162777
0920: 37 39 37 61 63 65 36 66 62 38 33 64 37 62 0a 55 797ace6fb83d7b.U
0930: 20 64 72 68 0a 5a 20 31 61 30 65 35 63 38 32 32 drh.Z 1a0e5c822
0940: 31 30 34 39 63 64 33 63 33 39 31 31 66 66 32 39 1049cd3c3911ff29
0950: 62 30 32 34 30 32 34 0a b024024.