diff options
author | Jan Kneschke <jan@kneschke.de> | 2007-04-09 20:22:41 +0000 |
---|---|---|
committer | Jan Kneschke <jan@kneschke.de> | 2007-04-09 20:22:41 +0000 |
commit | 05ecedce5fa1f94b6ff07c3a2d3672d7a529e14f (patch) | |
tree | 10076eea4904478ebfc3d005c121df2ab825aa5d | |
parent | 8f900481dac8d8b499888fabd71d380b9430e377 (diff) | |
download | lighttpd-git-05ecedce5fa1f94b6ff07c3a2d3672d7a529e14f.tar.gz |
fixed conditional dir-listing.exclude (fixes #930)
git-svn-id: svn+ssh://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@1732 152afb58-edef-0310-8abb-c4023f1b3aa9
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | src/mod_dirlisting.c | 53 |
2 files changed, 34 insertions, 22 deletions
@@ -29,7 +29,8 @@ NEWS * fixed accesslog.use-syslog in a conditional and the caching of the accesslog for files (fixes #1064) * fixed various crashes at startup on broken accesslog.format strings (#1000) - * fixed handling of %% in accesslog.format + * fixed handling of %% in accesslog.format + * fixed conditional dir-listing.exclude (#930) - 1.4.13 - 2006-10-09 diff --git a/src/mod_dirlisting.c b/src/mod_dirlisting.c index 165699b0..c15c7e71 100644 --- a/src/mod_dirlisting.c +++ b/src/mod_dirlisting.c @@ -230,21 +230,32 @@ static int parse_config_entry(server *srv, plugin_config *s, array *ca, const ch /* handle plugin config and check values */ +#define CONFIG_EXCLUDE "dir-listing.exclude" +#define CONFIG_ACTIVATE "dir-listing.activate" +#define CONFIG_HIDE_DOTFILES "dir-listing.hide-dotfiles" +#define CONFIG_EXTERNAL_CSS "dir-listing.external-css" +#define CONFIG_ENCODING "dir-listing.encoding" +#define CONFIG_SHOW_README "dir-listing.show-readme" +#define CONFIG_HIDE_README_FILE "dir-listing.hide-readme-file" +#define CONFIG_SHOW_HEADER "dir-listing.show-header" +#define CONFIG_HIDE_HEADER_FILE "dir-listing.hide-header-file" +#define CONFIG_DIR_LISTING "server.dir-listing" + SETDEFAULTS_FUNC(mod_dirlisting_set_defaults) { plugin_data *p = p_d; size_t i = 0; config_values_t cv[] = { - { "dir-listing.exclude", NULL, T_CONFIG_LOCAL, T_CONFIG_SCOPE_CONNECTION }, /* 0 */ - { "dir-listing.activate", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 1 */ - { "dir-listing.hide-dotfiles", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 2 */ - { "dir-listing.external-css", NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_CONNECTION }, /* 3 */ - { "dir-listing.encoding", NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_CONNECTION }, /* 4 */ - { "dir-listing.show-readme", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 5 */ - { "dir-listing.hide-readme-file", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 6 */ - { "dir-listing.show-header", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 7 */ - { "dir-listing.hide-header-file", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 8 */ - { "server.dir-listing", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 9 */ + { CONFIG_EXCLUDE, NULL, T_CONFIG_LOCAL, T_CONFIG_SCOPE_CONNECTION }, /* 0 */ + { CONFIG_ACTIVATE, NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 1 */ + { CONFIG_HIDE_DOTFILES, NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 2 */ + { CONFIG_EXTERNAL_CSS, NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_CONNECTION }, /* 3 */ + { CONFIG_ENCODING, NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_CONNECTION }, /* 4 */ + { CONFIG_SHOW_README, NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 5 */ + { CONFIG_HIDE_README_FILE, NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 6 */ + { CONFIG_SHOW_HEADER, NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 7 */ + { CONFIG_HIDE_HEADER_FILE, NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 8 */ + { CONFIG_DIR_LISTING, NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 9 */ { NULL, NULL, T_CONFIG_UNSET, T_CONFIG_SCOPE_UNSET } }; @@ -286,7 +297,7 @@ SETDEFAULTS_FUNC(mod_dirlisting_set_defaults) { return HANDLER_ERROR; } - parse_config_entry(srv, s, ca, "dir-listing.exclude"); + parse_config_entry(srv, s, ca, CONFIG_EXCLUDE); } return HANDLER_GO_ON; @@ -320,24 +331,24 @@ static int mod_dirlisting_patch_connection(server *srv, connection *con, plugin_ for (j = 0; j < dc->value->used; j++) { data_unset *du = dc->value->data[j]; - if (buffer_is_equal_string(du->key, CONST_STR_LEN("dir-listing.activate")) || - buffer_is_equal_string(du->key, CONST_STR_LEN("server.dir-listing"))) { + if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_ACTIVATE)) || + buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_DIR_LISTING))) { PATCH(dir_listing); - } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("dir-listing.hide-dotfiles"))) { + } else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_HIDE_DOTFILES))) { PATCH(hide_dot_files); - } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("dir-listing.external-css"))) { + } else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_EXTERNAL_CSS))) { PATCH(external_css); - } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("dir-listing.encoding"))) { + } else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_ENCODING))) { PATCH(encoding); - } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("dir-listing.show-readme"))) { + } else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_SHOW_README))) { PATCH(show_readme); - } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("dir-listing.hide-readme-file"))) { + } else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_HIDE_README_FILE))) { PATCH(hide_readme_file); - } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("dir-listing.show-header"))) { + } else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_SHOW_HEADER))) { PATCH(show_header); - } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("dir-listing.hide-header-file"))) { + } else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_HIDE_HEADER_FILE))) { PATCH(hide_header_file); - } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("dir-listing.excludes"))) { + } else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_EXCLUDE))) { PATCH(excludes); } } |