- From: Xavier Beaudouin <kiwi AT cvs.caudiumforge.net>
- To: caudium-commits AT caudium.net
- Subject: CVS: caudium/server/modules/vhs vhs_dirparser.pike,1.4.2.7,1.4.2.8
- Date: Fri, 17 Dec 2004 16:01:15 +0100
Update of /cvs/caudium/caudium/server/modules/vhs
In directory cvs.caudiumforge.net:/tmp/cvs-serv31740/server/modules/vhs
Modified Files:
Tag: stable_1_2
vhs_dirparser.pike
Log Message:
New feature "Index redirect files"
Index: vhs_dirparser.pike
===================================================================
RCS file: /cvs/caudium/caudium/server/modules/vhs/vhs_dirparser.pike,v
retrieving revision 1.4.2.7
retrieving revision 1.4.2.8
diff -u -r1.4.2.7 -r1.4.2.8
--- vhs_dirparser.pike 12 Nov 2004 10:00:56 -0000 1.4.2.7
+++ vhs_dirparser.pike 17 Dec 2004 15:01:12 -0000 1.4.2.8
@@ -18,7 +18,7 @@
*
*/
/*
- * $Id: vhs_dirparser.pike,v 1.4.2.7 2004/11/12 10:00:56 kiwi Exp $
+ * $Id: vhs_dirparser.pike,v 1.4.2.8 2004/12/17 15:01:12 kiwi Exp $
*/
/*
@@ -38,9 +38,9 @@
//! inherits: module
//! inherits: caudiumlib
//! type: MODULE_DIRECTORIES
-//! cvs_version: $Id: vhs_dirparser.pike,v 1.4.2.7 2004/11/12 10:00:56 kiwi
Exp $
+//! cvs_version: $Id: vhs_dirparser.pike,v 1.4.2.8 2004/12/17 15:01:12 kiwi
Exp $
-constant cvs_version = "$Id: vhs_dirparser.pike,v 1.4.2.7 2004/11/12
10:00:56 kiwi Exp $";
+constant cvs_version = "$Id: vhs_dirparser.pike,v 1.4.2.8 2004/12/17
15:01:12 kiwi Exp $";
constant thread_safe = 1; /* Probably. Check _root */
#include <module.h>
@@ -210,6 +210,13 @@
"If one of these files is present in a directory, it will "
"be returned instead of the directory listing.");
+ defvar("indexredirectfiles", ({ }), "Index files with redirect",
TYPE_STRING_LIST,
+ "If one of these files is present in a directory, it will be
redirected into "
+ "this file instead of the directory listing. This can be usefull
when you "
+ "have a L7 load balancer and you would like to handle special index
files "
+ "with a third party webserver for example. Leave this empty if you
don't "
+ "want to use this feature.");
+
defvar("dotfiles", 0, "Show dotfiles", TYPE_FLAG|VAR_MORE,
"If set, show dotfiles (files beginning with '.') in directory"
" listings");
@@ -486,13 +493,31 @@
old_file = id->not_query;
if (old_file[-1] == '.') old_file = old_file[..strlen(old_file)-2];
- foreach (query("indexfiles") - ({""}), file) // Make recursion impossible
+ foreach (QUERY(indexfiles) - ({""}), file) // Make recursion impossible
{
DW(sprintf("old_file = %s, file = %s", old_file, file));
id->not_query = old_file + file;
if (got = id->conf->low_get_file(id)) return got;
+ }
+
+ if(sizeof(QUERY(indexredirectfiles)))
+ {
+ foreach(QUERY(indexredirectfiles) - ({""}), file)
+ {
+ DW(sprintf("(redirect) old_file = %s, file = %s", old_file, file));
+
+ id->not_query = old_file + file;
+
+ if (got = id->conf->low_get_file(id))
+ {
+ if(id->query && sizeof(id->query))
+ return http_redirect(id->not_query + "?"+ id->query, id);
+ else
+ return http_redirect(id->not_query, id);
+ }
+ }
}
id->not_query = old_file;
- CVS: caudium/server/modules/vhs vhs_dirparser.pike,1.4.2.7,1.4.2.8, Xavier Beaudouin
Archive powered by MhonArc 2.6.10.