--- modules/aaa/mod_authz_host.c.orig 2008-04-29 10:54:56.000000000 +0300 +++ modules/aaa/mod_authz_host.c 2008-04-29 11:39:17.000000000 +0300 @@ -42,6 +42,7 @@ enum allowdeny_type { T_ENV, + T_NENV, T_ALL, T_IP, T_HOST, @@ -123,10 +124,13 @@ a->x.from = where; a->limited = cmd->limited; - if (!strncasecmp(where, "env=", 4)) { + if (!strncasecmp(where, "env=!", 5)) { + a->type = T_NENV; + a->x.from += 5; + } + else if (!strncasecmp(where, "env=", 4)) { a->type = T_ENV; a->x.from += 4; - } else if (!strcasecmp(where, "all")) { a->type = T_ALL; @@ -220,6 +224,12 @@ } break; + case T_NENV: + if (!apr_table_get(r->subprocess_env, ap[i].x.from)) { + return 1; + } + break; + case T_ALL: return 1;