From c5da1cc934d5c75b109e2cc81398cb6cb4b37d92 Mon Sep 17 00:00:00 2001 From: Stephan Leemburg Date: Sat, 10 Sep 2016 19:22:45 +0200 Subject: [PATCH] Continue with forward proxy if ReverseOnly is not true and no mapping available (#35) allow non-reverse mappings if reverseonly is not enabled --- src/reqs.c | 14 ++++++++++---- src/reverse-proxy.c | 8 +------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/reqs.c b/src/reqs.c index d0f296f..990152a 100644 --- a/src/reqs.c +++ b/src/reqs.c @@ -369,12 +369,18 @@ BAD_REQUEST_ERROR: reverse_url = reverse_rewrite_url (connptr, hashofheaders, url); - if (!reverse_url) { + if (reverse_url != NULL) { + safefree (url); + url = reverse_url; + } else if (config.reverseonly) { + log_message (LOG_ERR, + "Bad request, no mapping for '%s' found", + url); + indicate_http_error (connptr, 400, "Bad Request", + "detail", "No mapping found for " + "requested url", "url", url, NULL); goto fail; } - - safefree (url); - url = reverse_url; } #endif diff --git a/src/reverse-proxy.c b/src/reverse-proxy.c index 9ca55f6..0264787 100644 --- a/src/reverse-proxy.c +++ b/src/reverse-proxy.c @@ -156,13 +156,7 @@ char *reverse_rewrite_url (struct conn_s *connptr, hashmap_t hashofheaders, } } - /* Forward proxy support off and no reverse path match found */ - if (config.reverseonly && !rewrite_url) { - log_message (LOG_ERR, "Bad request"); - indicate_http_error (connptr, 400, "Bad Request", - "detail", - "Request has an invalid URL", "url", url, - NULL); + if (rewrite_url == NULL) { return NULL; }