Fossil SCM

Fix a redirect loop problem for the /home URL. Ticket [77dc5de6397fb18c0fbad]

drh 2010-11-24 17:30 trunk
Commit 135fcbbb052bd5a1817383127df5e634f9326b08
1 file changed +4 -3
+4 -3
--- src/wiki.c
+++ src/wiki.c
@@ -81,21 +81,22 @@
8181
*/
8282
void home_page(void){
8383
char *zPageName = db_get("project-name",0);
8484
char *zIndexPage = db_get("index-page",0);
8585
login_check_credentials();
86
- if( !g.okRdWiki ){
87
- cgi_redirectf("%s/login?g=%s/home", g.zBaseURL, g.zBaseURL);
88
- }
8986
if( zIndexPage ){
9087
const char *zPathInfo = P("PATH_INFO");
9188
while( zIndexPage[0]=='/' ) zIndexPage++;
89
+ while( zPathInfo[0]=='/' ) zPathInfo++;
9290
if( strcmp(zIndexPage, zPathInfo)==0 ) zIndexPage = 0;
9391
}
9492
if( zIndexPage ){
9593
cgi_redirectf("%s/%s", g.zBaseURL, zIndexPage);
9694
}
95
+ if( !g.okRdWiki ){
96
+ cgi_redirectf("%s/login?g=%s/home", g.zBaseURL, g.zBaseURL);
97
+ }
9798
if( zPageName ){
9899
login_check_credentials();
99100
g.zExtra = zPageName;
100101
cgi_set_parameter_nocopy("name", g.zExtra);
101102
g.isHome = 1;
102103
--- src/wiki.c
+++ src/wiki.c
@@ -81,21 +81,22 @@
81 */
82 void home_page(void){
83 char *zPageName = db_get("project-name",0);
84 char *zIndexPage = db_get("index-page",0);
85 login_check_credentials();
86 if( !g.okRdWiki ){
87 cgi_redirectf("%s/login?g=%s/home", g.zBaseURL, g.zBaseURL);
88 }
89 if( zIndexPage ){
90 const char *zPathInfo = P("PATH_INFO");
91 while( zIndexPage[0]=='/' ) zIndexPage++;
 
92 if( strcmp(zIndexPage, zPathInfo)==0 ) zIndexPage = 0;
93 }
94 if( zIndexPage ){
95 cgi_redirectf("%s/%s", g.zBaseURL, zIndexPage);
96 }
 
 
 
97 if( zPageName ){
98 login_check_credentials();
99 g.zExtra = zPageName;
100 cgi_set_parameter_nocopy("name", g.zExtra);
101 g.isHome = 1;
102
--- src/wiki.c
+++ src/wiki.c
@@ -81,21 +81,22 @@
81 */
82 void home_page(void){
83 char *zPageName = db_get("project-name",0);
84 char *zIndexPage = db_get("index-page",0);
85 login_check_credentials();
 
 
 
86 if( zIndexPage ){
87 const char *zPathInfo = P("PATH_INFO");
88 while( zIndexPage[0]=='/' ) zIndexPage++;
89 while( zPathInfo[0]=='/' ) zPathInfo++;
90 if( strcmp(zIndexPage, zPathInfo)==0 ) zIndexPage = 0;
91 }
92 if( zIndexPage ){
93 cgi_redirectf("%s/%s", g.zBaseURL, zIndexPage);
94 }
95 if( !g.okRdWiki ){
96 cgi_redirectf("%s/login?g=%s/home", g.zBaseURL, g.zBaseURL);
97 }
98 if( zPageName ){
99 login_check_credentials();
100 g.zExtra = zPageName;
101 cgi_set_parameter_nocopy("name", g.zExtra);
102 g.isHome = 1;
103

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button