--- httpd-2.2.4/modules/aaa/mod_authz_dbm.c.orig 2006-07-12 04:38:44.000000000 +0100 +++ httpd-2.2.4/modules/aaa/mod_authz_dbm.c 2007-08-15 14:07:37.000000000 +0100 @@ -32,6 +32,7 @@ typedef struct { char *grpfile; char *dbmtype; + int case_insensitive; int authoritative; } authz_dbm_config_rec; @@ -62,6 +63,7 @@ conf->grpfile = NULL; conf->dbmtype = "default"; + conf->case_insensitive = 0; /* case sensitive by default */ conf->authoritative = 1; /* fortress is secure by default */ return conf; @@ -75,6 +77,10 @@ AP_INIT_TAKE1("AuthzDBMType", ap_set_string_slot, (void *)APR_OFFSETOF(authz_dbm_config_rec, dbmtype), OR_AUTHCFG, "what type of DBM file the group file is"), + AP_INIT_FLAG("AuthzDBMCaseInsensitive", ap_set_flag_slot, + (void *)APR_OFFSETOF(authz_dbm_config_rec, case_insensitive), + OR_AUTHCFG, "Set to 'On' to force tests groupnames" + "made by this module to be case insensitive (default is Off.)"), AP_INIT_FLAG("AuthzDBMAuthoritative", ap_set_flag_slot, (void *)APR_OFFSETOF(authz_dbm_config_rec, authoritative), OR_AUTHCFG, "Set to 'Off' to allow access control to be passed along to " @@ -221,6 +227,9 @@ if (!strcmp(v, filegroup)) { return OK; } + if (conf->case_insensitive && !strcasecmp(v, filegroup)) { + return OK; + } } if (conf->authoritative) { @@ -243,6 +252,9 @@ if (!strcmp(v, w)) { return OK; } + if (conf->case_insensitive && !strcasecmp(v, w)) { + return OK; + } } } }