Hex Artifact Content
Not logged in

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.