Loading CHANGES +4 −0 Changes for CHANGES: 4 added lines, 0 removed lines. Original line number Diff line number Diff line Changes with Apache 2.0.51 *) mod_rewrite no longer confuses the RewriteMap caches if different maps defined in different virtual hosts use the same map name. PR 26462. [André Malo] *) mod_setenvif: Remove "support" for Remote_User variable which never worked at all. PR 25725. [André Malo] Loading STATUS +1 −8 Changes for STATUS: 1 added line, 8 removed lines. Original line number Diff line number Diff line APACHE 2.0 STATUS: -*-text-*- Last modified at [$Date: 2004/08/20 18:51:01 $] Last modified at [$Date: 2004/08/20 21:17:39 $] Release: Loading Loading @@ -212,13 +212,6 @@ PATCHES TO BACKPORT FROM 2.1 server/config.c: r1.175 +1: nd *) mod_rewrite: Fix confused map cache (with maps in different VHs using the same name). PR 26462. (2.0 + 1.3) A patch for 1.3 is here (2.0 goes similar): <http://www.apache.org/~nd/mod_rewrite-confusion-1.3.patch> modules/mappers/mod_rewrite.c: r1.256 +1: nd, trawick, jorton *) mod_log_config: Cleanup log_header_out function to allow multiple headers like Set-Cookie to be logged properly. PR 27787 (2.0 + 1.3) modules/loggers/mod_log_config.c: r1.116 Loading modules/mappers/mod_rewrite.c +19 −9 Changes for modules/mappers/mod_rewrite.c: 19 added lines, 9 removed lines. Original line number Diff line number Diff line Loading @@ -402,11 +402,15 @@ static const char *cmd_rewritemap(cmd_parms *cmd, void *dconf, const char *a1, newmap->type = MAPTYPE_TXT; newmap->datafile = a2+4; newmap->checkfile = a2+4; newmap->cachename = apr_psprintf(cmd->pool, "%pp:%s", (void *)cmd->server, a1); } else if (strncmp(a2, "rnd:", 4) == 0) { newmap->type = MAPTYPE_RND; newmap->datafile = a2+4; newmap->checkfile = a2+4; newmap->cachename = apr_psprintf(cmd->pool, "%pp:%s", (void *)cmd->server, a1); } else if (strncmp(a2, "dbm", 3) == 0) { const char *ignored_fname; Loading @@ -414,6 +418,8 @@ static const char *cmd_rewritemap(cmd_parms *cmd, void *dconf, const char *a1, apr_status_t rv; newmap->type = MAPTYPE_DBM; newmap->cachename = apr_psprintf(cmd->pool, "%pp:%s", (void *)cmd->server, a1); if (a2[3] == ':') { newmap->dbmtype = "default"; Loading Loading @@ -453,12 +459,14 @@ static const char *cmd_rewritemap(cmd_parms *cmd, void *dconf, const char *a1, apr_tokenize_to_argv(a2 + 4, &newmap->argv, cmd->pool); newmap->datafile = NULL; newmap->checkfile = newmap->argv[0]; newmap->cachename = NULL; } else if (strncmp(a2, "int:", 4) == 0) { newmap->type = MAPTYPE_INT; newmap->datafile = NULL; newmap->checkfile = NULL; newmap->cachename = NULL; newmap->func = (char *(*)(request_rec *,char *)) apr_hash_get(mapfunc_hash, a2+4, strlen(a2+4)); if ((sconf->state == ENGINE_ENABLED) && (newmap->func == NULL)) { Loading @@ -470,6 +478,8 @@ static const char *cmd_rewritemap(cmd_parms *cmd, void *dconf, const char *a1, newmap->type = MAPTYPE_TXT; newmap->datafile = a2; newmap->checkfile = a2; newmap->cachename = apr_psprintf(cmd->pool, "%pp:%s", (void *)cmd->server, a1); } newmap->fpin = NULL; newmap->fpout = NULL; Loading Loading @@ -2965,7 +2975,7 @@ static char *lookup_map(request_rec *r, char *name, char *key) "see error log"); return NULL; } value = get_cache_string(cachep, s->name, CACHEMODE_TS, value = get_cache_string(cachep, s->cachename, CACHEMODE_TS, st.mtime, key); if (value == NULL) { rewritelog(r, 6, "cache lookup FAILED, forcing new " Loading @@ -2974,14 +2984,14 @@ static char *lookup_map(request_rec *r, char *name, char *key) lookup_map_txtfile(r, s->datafile, key)) != NULL) { rewritelog(r, 5, "map lookup OK: map=%s key=%s[txt] " "-> val=%s", s->name, key, value); set_cache_string(cachep, s->name, CACHEMODE_TS, set_cache_string(cachep, s->cachename, CACHEMODE_TS, st.mtime, key, value); return value; } else { rewritelog(r, 5, "map lookup FAILED: map=%s[txt] " "key=%s", s->name, key); set_cache_string(cachep, s->name, CACHEMODE_TS, set_cache_string(cachep, s->cachename, CACHEMODE_TS, st.mtime, key, ""); return NULL; } Loading @@ -3002,7 +3012,7 @@ static char *lookup_map(request_rec *r, char *name, char *key) "see error log"); return NULL; } value = get_cache_string(cachep, s->name, CACHEMODE_TS, value = get_cache_string(cachep, s->cachename, CACHEMODE_TS, st.mtime, key); if (value == NULL) { rewritelog(r, 6, Loading @@ -3011,14 +3021,14 @@ static char *lookup_map(request_rec *r, char *name, char *key) lookup_map_dbmfile(r, s->datafile, s->dbmtype, key)) != NULL) { rewritelog(r, 5, "map lookup OK: map=%s[dbm] key=%s " "-> val=%s", s->name, key, value); set_cache_string(cachep, s->name, CACHEMODE_TS, set_cache_string(cachep, s->cachename, CACHEMODE_TS, st.mtime, key, value); return value; } else { rewritelog(r, 5, "map lookup FAILED: map=%s[dbm] " "key=%s", s->name, key); set_cache_string(cachep, s->name, CACHEMODE_TS, set_cache_string(cachep, s->cachename, CACHEMODE_TS, st.mtime, key, ""); return NULL; } Loading Loading @@ -3062,7 +3072,7 @@ static char *lookup_map(request_rec *r, char *name, char *key) "see error log"); return NULL; } value = get_cache_string(cachep, s->name, CACHEMODE_TS, value = get_cache_string(cachep, s->cachename, CACHEMODE_TS, st.mtime, key); if (value == NULL) { rewritelog(r, 6, "cache lookup FAILED, forcing new " Loading @@ -3071,13 +3081,13 @@ static char *lookup_map(request_rec *r, char *name, char *key) lookup_map_txtfile(r, s->datafile, key)) != NULL) { rewritelog(r, 5, "map lookup OK: map=%s key=%s[txt] " "-> val=%s", s->name, key, value); set_cache_string(cachep, s->name, CACHEMODE_TS, set_cache_string(cachep, s->cachename, CACHEMODE_TS, st.mtime, key, value); } else { rewritelog(r, 5, "map lookup FAILED: map=%s[txt] " "key=%s", s->name, key); set_cache_string(cachep, s->name, CACHEMODE_TS, set_cache_string(cachep, s->cachename, CACHEMODE_TS, st.mtime, key, ""); return NULL; } Loading modules/mappers/mod_rewrite.h +1 −0 Changes for modules/mappers/mod_rewrite.h: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -192,6 +192,7 @@ typedef struct { char *(*func)(request_rec *, /* function pointer for internal maps */ char *); char **argv; char *cachename; /* name for the cache */ } rewritemap_entry; typedef struct { Loading Loading
CHANGES +4 −0 Changes for CHANGES: 4 added lines, 0 removed lines. Original line number Diff line number Diff line Changes with Apache 2.0.51 *) mod_rewrite no longer confuses the RewriteMap caches if different maps defined in different virtual hosts use the same map name. PR 26462. [André Malo] *) mod_setenvif: Remove "support" for Remote_User variable which never worked at all. PR 25725. [André Malo] Loading
STATUS +1 −8 Changes for STATUS: 1 added line, 8 removed lines. Original line number Diff line number Diff line APACHE 2.0 STATUS: -*-text-*- Last modified at [$Date: 2004/08/20 18:51:01 $] Last modified at [$Date: 2004/08/20 21:17:39 $] Release: Loading Loading @@ -212,13 +212,6 @@ PATCHES TO BACKPORT FROM 2.1 server/config.c: r1.175 +1: nd *) mod_rewrite: Fix confused map cache (with maps in different VHs using the same name). PR 26462. (2.0 + 1.3) A patch for 1.3 is here (2.0 goes similar): <http://www.apache.org/~nd/mod_rewrite-confusion-1.3.patch> modules/mappers/mod_rewrite.c: r1.256 +1: nd, trawick, jorton *) mod_log_config: Cleanup log_header_out function to allow multiple headers like Set-Cookie to be logged properly. PR 27787 (2.0 + 1.3) modules/loggers/mod_log_config.c: r1.116 Loading
modules/mappers/mod_rewrite.c +19 −9 Changes for modules/mappers/mod_rewrite.c: 19 added lines, 9 removed lines. Original line number Diff line number Diff line Loading @@ -402,11 +402,15 @@ static const char *cmd_rewritemap(cmd_parms *cmd, void *dconf, const char *a1, newmap->type = MAPTYPE_TXT; newmap->datafile = a2+4; newmap->checkfile = a2+4; newmap->cachename = apr_psprintf(cmd->pool, "%pp:%s", (void *)cmd->server, a1); } else if (strncmp(a2, "rnd:", 4) == 0) { newmap->type = MAPTYPE_RND; newmap->datafile = a2+4; newmap->checkfile = a2+4; newmap->cachename = apr_psprintf(cmd->pool, "%pp:%s", (void *)cmd->server, a1); } else if (strncmp(a2, "dbm", 3) == 0) { const char *ignored_fname; Loading @@ -414,6 +418,8 @@ static const char *cmd_rewritemap(cmd_parms *cmd, void *dconf, const char *a1, apr_status_t rv; newmap->type = MAPTYPE_DBM; newmap->cachename = apr_psprintf(cmd->pool, "%pp:%s", (void *)cmd->server, a1); if (a2[3] == ':') { newmap->dbmtype = "default"; Loading Loading @@ -453,12 +459,14 @@ static const char *cmd_rewritemap(cmd_parms *cmd, void *dconf, const char *a1, apr_tokenize_to_argv(a2 + 4, &newmap->argv, cmd->pool); newmap->datafile = NULL; newmap->checkfile = newmap->argv[0]; newmap->cachename = NULL; } else if (strncmp(a2, "int:", 4) == 0) { newmap->type = MAPTYPE_INT; newmap->datafile = NULL; newmap->checkfile = NULL; newmap->cachename = NULL; newmap->func = (char *(*)(request_rec *,char *)) apr_hash_get(mapfunc_hash, a2+4, strlen(a2+4)); if ((sconf->state == ENGINE_ENABLED) && (newmap->func == NULL)) { Loading @@ -470,6 +478,8 @@ static const char *cmd_rewritemap(cmd_parms *cmd, void *dconf, const char *a1, newmap->type = MAPTYPE_TXT; newmap->datafile = a2; newmap->checkfile = a2; newmap->cachename = apr_psprintf(cmd->pool, "%pp:%s", (void *)cmd->server, a1); } newmap->fpin = NULL; newmap->fpout = NULL; Loading Loading @@ -2965,7 +2975,7 @@ static char *lookup_map(request_rec *r, char *name, char *key) "see error log"); return NULL; } value = get_cache_string(cachep, s->name, CACHEMODE_TS, value = get_cache_string(cachep, s->cachename, CACHEMODE_TS, st.mtime, key); if (value == NULL) { rewritelog(r, 6, "cache lookup FAILED, forcing new " Loading @@ -2974,14 +2984,14 @@ static char *lookup_map(request_rec *r, char *name, char *key) lookup_map_txtfile(r, s->datafile, key)) != NULL) { rewritelog(r, 5, "map lookup OK: map=%s key=%s[txt] " "-> val=%s", s->name, key, value); set_cache_string(cachep, s->name, CACHEMODE_TS, set_cache_string(cachep, s->cachename, CACHEMODE_TS, st.mtime, key, value); return value; } else { rewritelog(r, 5, "map lookup FAILED: map=%s[txt] " "key=%s", s->name, key); set_cache_string(cachep, s->name, CACHEMODE_TS, set_cache_string(cachep, s->cachename, CACHEMODE_TS, st.mtime, key, ""); return NULL; } Loading @@ -3002,7 +3012,7 @@ static char *lookup_map(request_rec *r, char *name, char *key) "see error log"); return NULL; } value = get_cache_string(cachep, s->name, CACHEMODE_TS, value = get_cache_string(cachep, s->cachename, CACHEMODE_TS, st.mtime, key); if (value == NULL) { rewritelog(r, 6, Loading @@ -3011,14 +3021,14 @@ static char *lookup_map(request_rec *r, char *name, char *key) lookup_map_dbmfile(r, s->datafile, s->dbmtype, key)) != NULL) { rewritelog(r, 5, "map lookup OK: map=%s[dbm] key=%s " "-> val=%s", s->name, key, value); set_cache_string(cachep, s->name, CACHEMODE_TS, set_cache_string(cachep, s->cachename, CACHEMODE_TS, st.mtime, key, value); return value; } else { rewritelog(r, 5, "map lookup FAILED: map=%s[dbm] " "key=%s", s->name, key); set_cache_string(cachep, s->name, CACHEMODE_TS, set_cache_string(cachep, s->cachename, CACHEMODE_TS, st.mtime, key, ""); return NULL; } Loading Loading @@ -3062,7 +3072,7 @@ static char *lookup_map(request_rec *r, char *name, char *key) "see error log"); return NULL; } value = get_cache_string(cachep, s->name, CACHEMODE_TS, value = get_cache_string(cachep, s->cachename, CACHEMODE_TS, st.mtime, key); if (value == NULL) { rewritelog(r, 6, "cache lookup FAILED, forcing new " Loading @@ -3071,13 +3081,13 @@ static char *lookup_map(request_rec *r, char *name, char *key) lookup_map_txtfile(r, s->datafile, key)) != NULL) { rewritelog(r, 5, "map lookup OK: map=%s key=%s[txt] " "-> val=%s", s->name, key, value); set_cache_string(cachep, s->name, CACHEMODE_TS, set_cache_string(cachep, s->cachename, CACHEMODE_TS, st.mtime, key, value); } else { rewritelog(r, 5, "map lookup FAILED: map=%s[txt] " "key=%s", s->name, key); set_cache_string(cachep, s->name, CACHEMODE_TS, set_cache_string(cachep, s->cachename, CACHEMODE_TS, st.mtime, key, ""); return NULL; } Loading
modules/mappers/mod_rewrite.h +1 −0 Changes for modules/mappers/mod_rewrite.h: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -192,6 +192,7 @@ typedef struct { char *(*func)(request_rec *, /* function pointer for internal maps */ char *); char **argv; char *cachename; /* name for the cache */ } rewritemap_entry; typedef struct { Loading