Hex Artifact Content
Not logged in

Artifact a4c21b5f66db654a6e797c80287c7eff24ff4dd3:

Attachment "fix-doc-redirect.diff" to ticket [1ec8be0c53] added by anonymous 2010-06-17 14:35:50.
0000: 49 6e 64 65 78 3a 20 73 72 63 2f 64 6f 63 2e 63  Index: src/doc.c
0010: 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  .===============
0020: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0030: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0040: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0050: 3d 3d 3d 3d 0a 2d 2d 2d 20 73 72 63 2f 64 6f 63  ====.--- src/doc
0060: 2e 63 0a 2b 2b 2b 20 73 72 63 2f 64 6f 63 2e 63  .c.+++ src/doc.c
0070: 0a 40 40 20 2d 33 30 38 2c 31 30 20 2b 33 30 38  .@@ -308,10 +308
0080: 2c 31 34 20 40 40 0a 20 20 20 20 20 7d 0a 20 20  ,14 @@.     }.  
0090: 20 7d 0a 20 20 20 72 65 74 75 72 6e 20 22 61 70   }.   return "ap
00a0: 70 6c 69 63 61 74 69 6f 6e 2f 78 2d 66 6f 73 73  plication/x-foss
00b0: 69 6c 2d 61 72 74 69 66 61 63 74 22 3b 0a 20 7d  il-artifact";. }
00c0: 0a 20 0a 2b 73 74 61 74 69 63 20 76 6f 69 64 20  . .+static void 
00d0: 64 6f 63 5f 69 6e 64 65 78 5f 72 65 64 69 72 65  doc_index_redire
00e0: 63 74 28 76 6f 69 64 29 7b 0a 2b 20 20 20 20 64  ct(void){.+    d
00f0: 62 5f 65 6e 64 5f 74 72 61 6e 73 61 63 74 69 6f  b_end_transactio
0100: 6e 28 30 29 3b 0a 2b 20 20 20 20 63 67 69 5f 72  n(0);.+    cgi_r
0110: 65 64 69 72 65 63 74 66 28 22 25 73 25 73 22 2c  edirectf("%s%s",
0120: 20 67 2e 7a 42 61 73 65 55 52 4c 2c 20 22 2f 64   g.zBaseURL, "/d
0130: 6f 63 2f 74 69 70 2f 69 6e 64 65 78 2e 77 69 6b  oc/tip/index.wik
0140: 69 22 29 3b 0a 2b 7d 0a 20 2f 2a 0a 20 2a 2a 20  i");.+}. /*. ** 
0150: 57 45 42 50 41 47 45 3a 20 64 6f 63 0a 20 2a 2a  WEBPAGE: doc. **
0160: 20 55 52 4c 3a 20 2f 64 6f 63 3f 6e 61 6d 65 3d   URL: /doc?name=
0170: 42 41 53 45 4c 49 4e 45 2f 50 41 54 48 0a 20 2a  BASELINE/PATH. *
0180: 2a 20 55 52 4c 3a 20 2f 64 6f 63 2f 42 41 53 45  * URL: /doc/BASE
0190: 4c 49 4e 45 2f 50 41 54 48 0a 20 2a 2a 0a 40 40  LINE/PATH. **.@@
01a0: 20 2d 33 33 35 2c 31 33 20 2b 33 33 39 2c 31 36   -335,13 +339,16
01b0: 20 40 40 0a 20 20 20 63 68 61 72 20 7a 42 61 73   @@.   char zBas
01c0: 65 6c 69 6e 65 5b 55 55 49 44 5f 53 49 5a 45 2b  eline[UUID_SIZE+
01d0: 31 5d 3b 20 20 20 20 20 20 2f 2a 20 42 61 73 65  1];      /* Base
01e0: 6c 69 6e 65 20 55 55 49 44 20 2a 2f 0a 20 20 20  line UUID */.   
01f0: 63 68 61 72 20 2a 20 72 65 61 73 6f 6e 20 3d 20  char * reason = 
0200: 22 64 6f 63 75 6d 65 6e 74 20 6e 6f 74 20 70 72  "document not pr
0210: 65 73 65 6e 74 20 69 6e 20 74 68 65 20 72 65 70  esent in the rep
0220: 6f 73 69 74 6f 72 79 22 3b 0a 20 0a 20 20 20 6c  ository";. .   l
0230: 6f 67 69 6e 5f 63 68 65 63 6b 5f 63 72 65 64 65  ogin_check_crede
0240: 6e 74 69 61 6c 73 28 29 3b 0a 20 20 20 69 66 28  ntials();.   if(
0250: 20 21 67 2e 6f 6b 52 65 61 64 20 29 7b 20 6c 6f   !g.okRead ){ lo
0260: 67 69 6e 5f 6e 65 65 64 65 64 28 29 3b 20 72 65  gin_needed(); re
0270: 74 75 72 6e 3b 20 7d 0a 2d 20 20 7a 4e 61 6d 65  turn; }.-  zName
0280: 20 3d 20 50 44 28 22 6e 61 6d 65 22 2c 20 22 74   = PD("name", "t
0290: 69 70 2f 69 6e 64 65 78 2e 77 69 6b 69 22 29 3b  ip/index.wiki");
02a0: 0a 2b 20 20 7a 4e 61 6d 65 20 3d 20 50 28 22 6e  .+  zName = P("n
02b0: 61 6d 65 22 29 3b 0a 2b 20 20 69 66 28 20 21 7a  ame");.+  if( !z
02c0: 4e 61 6d 65 29 20 7b 20 72 65 74 75 72 6e 20 64  Name) { return d
02d0: 6f 63 5f 69 6e 64 65 78 5f 72 65 64 69 72 65 63  oc_index_redirec
02e0: 74 28 29 3b 20 7d 0a 20 20 20 66 6f 72 28 69 3d  t(); }.   for(i=
02f0: 30 3b 20 7a 4e 61 6d 65 5b 69 5d 20 26 26 20 7a  0; zName[i] && z
0300: 4e 61 6d 65 5b 69 5d 21 3d 27 2f 27 3b 20 69 2b  Name[i]!='/'; i+
0310: 2b 29 7b 7d 0a 2b 20 20 69 66 28 20 21 20 2a 7a  +){}.+  if( ! *z
0320: 4e 61 6d 65 29 20 7b 20 72 65 74 75 72 6e 20 64  Name) { return d
0330: 6f 63 5f 69 6e 64 65 78 5f 72 65 64 69 72 65 63  oc_index_redirec
0340: 74 28 29 3b 20 7d 0a 20 20 20 69 66 28 20 7a 4e  t(); }.   if( zN
0350: 61 6d 65 5b 69 5d 3d 3d 30 20 7c 7c 20 69 3e 55  ame[i]==0 || i>U
0360: 55 49 44 5f 53 49 5a 45 20 29 7b 0a 2b 20 20 20  UID_SIZE ){.+   
0370: 20 72 65 61 73 6f 6e 20 3d 20 22 69 6e 76 61 6c   reason = "inval
0380: 69 64 20 64 6f 63 75 6d 65 6e 74 20 73 70 65 63  id document spec
0390: 69 66 69 65 64 22 3b 0a 20 20 20 20 20 67 6f 74  ified";.     got
03a0: 6f 20 64 6f 63 5f 6e 6f 74 5f 66 6f 75 6e 64 3b  o doc_not_found;
03b0: 0a 20 20 20 7d 0a 20 20 20 6d 65 6d 63 70 79 28  .   }.   memcpy(
03c0: 7a 42 61 73 65 6c 69 6e 65 2c 20 7a 4e 61 6d 65  zBaseline, zName
03d0: 2c 20 69 29 3b 0a 20 20 20 7a 42 61 73 65 6c 69  , i);.   zBaseli
03e0: 6e 65 5b 69 5d 20 3d 20 30 3b 0a 20 20 20 7a 4e  ne[i] = 0;.   zN
03f0: 61 6d 65 20 2b 3d 20 69 3b 0a 0a                 ame += i;..