diff options
Diffstat (limited to 'src/mod_rewrite.c')
-rw-r--r-- | src/mod_rewrite.c | 29 |
1 files changed, 8 insertions, 21 deletions
diff --git a/src/mod_rewrite.c b/src/mod_rewrite.c index 12bef677..bf1b8446 100644 --- a/src/mod_rewrite.c +++ b/src/mod_rewrite.c @@ -266,16 +266,17 @@ SETDEFAULTS_FUNC(mod_rewrite_set_defaults) { return HANDLER_GO_ON; } #ifdef HAVE_PCRE_H -static int mod_rewrite_patch_connection(server *srv, connection *con, plugin_data *p, const char *stage, size_t stage_len) { +static int mod_rewrite_patch_connection(server *srv, connection *con, plugin_data *p) { size_t i, j; + plugin_config *s = p->config_storage[0]; + p->conf.rewrite = s->rewrite; /* skip the first, the global context */ for (i = 1; i < srv->config_context->used; i++) { data_config *dc = (data_config *)srv->config_context->data[i]; - plugin_config *s = p->config_storage[i]; + s = p->config_storage[i]; - /* not our stage */ - if (!buffer_is_equal_string(dc->comp_key, stage, stage_len)) continue; + if (buffer_is_equal_string(dc->comp_key, CONST_STR_LEN("HTTPurl"))) continue; /* condition didn't match */ if (!config_check_cond(srv, con, dc)) continue; @@ -298,17 +299,6 @@ static int mod_rewrite_patch_connection(server *srv, connection *con, plugin_dat return 0; } - -static int mod_rewrite_setup_connection(server *srv, connection *con, plugin_data *p) { - plugin_config *s = p->config_storage[0]; - - UNUSED(srv); - UNUSED(con); - - p->conf.rewrite = s->rewrite; - - return 0; -} #endif URIHANDLER_FUNC(mod_rewrite_con_reset) { plugin_data *p = p_d; @@ -348,12 +338,9 @@ URIHANDLER_FUNC(mod_rewrite_uri_handler) { if (hctx->state == REWRITE_STATE_FINISHED) return HANDLER_GO_ON; } - mod_rewrite_setup_connection(srv, con, p); - for (i = 0; i < srv->config_patches->used; i++) { - buffer *patch = srv->config_patches->ptr[i]; - - mod_rewrite_patch_connection(srv, con, p, CONST_BUF_LEN(patch)); - } + mod_rewrite_patch_connection(srv, con, p); + + if (!p->conf.rewrite) return HANDLER_GO_ON; buffer_copy_string_buffer(p->match_buf, con->request.uri); |