--- httpd-2.4.2/modules/aaa/mod_authz_dbm.c.orig 2011-12-05 00:08:01.000000000 +0000 +++ httpd-2.4.2/modules/aaa/mod_authz_dbm.c 2012-07-31 12:28:33.724190818 +0100 @@ -33,6 +33,7 @@ typedef struct { const char *grpfile; const char *dbmtype; + int case_insensitive; } authz_dbm_config_rec; APR_DECLARE_OPTIONAL_FN(char*, authz_owner_get_file_group, (request_rec *r)); @@ -65,6 +66,7 @@ conf->grpfile = NULL; conf->dbmtype = "default"; + conf->case_insensitive = 0; /* case sensitive by default */ return conf; } @@ -77,6 +79,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.)"), {NULL} }; @@ -188,6 +194,9 @@ if (!strcmp(v, w)) { return AUTHZ_GRANTED; } + if (conf->case_insensitive && !strcasecmp(v, w)) { + return AUTHZ_GRANTED; + } } } @@ -256,6 +265,9 @@ if (!strcmp(v, filegroup)) { return AUTHZ_GRANTED; } + if (conf->case_insensitive && !strcasecmp(v, filegroup)) { + return AUTHZ_GRANTED; + } } }