diff options
Diffstat (limited to 'www-servers/apache/files/apache-2.4.34-PR62557.patch')
-rw-r--r-- | www-servers/apache/files/apache-2.4.34-PR62557.patch | 216 |
1 files changed, 0 insertions, 216 deletions
diff --git a/www-servers/apache/files/apache-2.4.34-PR62557.patch b/www-servers/apache/files/apache-2.4.34-PR62557.patch deleted file mode 100644 index d95a9864d1bc..000000000000 --- a/www-servers/apache/files/apache-2.4.34-PR62557.patch +++ /dev/null @@ -1,216 +0,0 @@ -From d7713339dbde7cfa4cfc9914f683b4644dcab92e Mon Sep 17 00:00:00 2001 -From: Ruediger Pluem <rpluem@apache.org> -Date: Fri, 20 Jul 2018 19:27:31 +0000 -Subject: [PATCH] * mod_proxy: Remove load order and link dependency between - mod_lbmethod_* modules and mod_proxy by providing mod_proxy's - ap_proxy_balancer_get_best_worker as an optional function. - -PR: 62557 - - -git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1836381 13f79535-47bb-0310-9956-ffa450edef68 ---- - CHANGES | 3 +++ - include/ap_mmn.h | 5 +++- - modules/proxy/balancers/mod_lbmethod_bybusyness.c | 28 ++++++++++++++++++++++- - modules/proxy/balancers/mod_lbmethod_byrequests.c | 28 ++++++++++++++++++++++- - modules/proxy/balancers/mod_lbmethod_bytraffic.c | 28 ++++++++++++++++++++++- - modules/proxy/mod_proxy.h | 8 +++++++ - modules/proxy/proxy_util.c | 1 + - 7 files changed, 97 insertions(+), 4 deletions(-) - ---- apache2.orig/modules/proxy/balancers/mod_lbmethod_bybusyness.c -+++ apache2/modules/proxy/balancers/mod_lbmethod_bybusyness.c -@@ -22,6 +22,9 @@ - - module AP_MODULE_DECLARE_DATA lbmethod_bybusyness_module; - -+static APR_OPTIONAL_FN_TYPE(ap_proxy_balancer_get_best_worker) -+ *ap_proxy_balancer_get_best_worker_fn = NULL; -+ - static int is_best_bybusyness(proxy_worker *current, proxy_worker *prev_best, void *baton) - { - int *total_factor = (int *)baton; -@@ -44,7 +47,7 @@ static proxy_worker *find_best_bybusynes - { - int total_factor = 0; - proxy_worker *worker = -- ap_proxy_balancer_get_best_worker(balancer, r, is_best_bybusyness, -+ ap_proxy_balancer_get_best_worker_fn(balancer, r, is_best_bybusyness, - &total_factor); - - if (worker) { -@@ -82,9 +85,32 @@ static const proxy_balancer_method bybus - NULL - }; - -+/* post_config hook: */ -+static int lbmethod_bybusyness_post_config(apr_pool_t *pconf, apr_pool_t *plog, -+ apr_pool_t *ptemp, server_rec *s) -+{ -+ -+ /* lbmethod_bybusyness_post_config() will be called twice during startup. So, don't -+ * set up the static data the 1st time through. */ -+ if (ap_state_query(AP_SQ_MAIN_STATE) == AP_SQ_MS_CREATE_PRE_CONFIG) { -+ return OK; -+ } -+ -+ ap_proxy_balancer_get_best_worker_fn = -+ APR_RETRIEVE_OPTIONAL_FN(ap_proxy_balancer_get_best_worker); -+ if (!ap_proxy_balancer_get_best_worker_fn) { -+ ap_log_error(APLOG_MARK, APLOG_EMERG, 0, s, APLOGNO() -+ "mod_proxy must be loaded for mod_lbmethod_bybusyness"); -+ return !OK; -+ } -+ -+ return OK; -+} -+ - static void register_hook(apr_pool_t *p) - { - ap_register_provider(p, PROXY_LBMETHOD, "bybusyness", "0", &bybusyness); -+ ap_hook_post_config(lbmethod_bybusyness_post_config, NULL, NULL, APR_HOOK_MIDDLE); - } - - AP_DECLARE_MODULE(lbmethod_bybusyness) = { ---- apache2.orig/modules/proxy/balancers/mod_lbmethod_byrequests.c -+++ apache2/modules/proxy/balancers/mod_lbmethod_byrequests.c -@@ -22,6 +22,9 @@ - - module AP_MODULE_DECLARE_DATA lbmethod_byrequests_module; - -+static APR_OPTIONAL_FN_TYPE(ap_proxy_balancer_get_best_worker) -+ *ap_proxy_balancer_get_best_worker_fn = NULL; -+ - static int is_best_byrequests(proxy_worker *current, proxy_worker *prev_best, void *baton) - { - int *total_factor = (int *)baton; -@@ -81,7 +84,7 @@ static proxy_worker *find_best_byrequest - request_rec *r) - { - int total_factor = 0; -- proxy_worker *worker = ap_proxy_balancer_get_best_worker(balancer, r, is_best_byrequests, &total_factor); -+ proxy_worker *worker = ap_proxy_balancer_get_best_worker_fn(balancer, r, is_best_byrequests, &total_factor); - - if (worker) { - worker->s->lbstatus -= total_factor; -@@ -123,6 +126,28 @@ static const proxy_balancer_method byreq - NULL - }; - -+/* post_config hook: */ -+static int lbmethod_byrequests_post_config(apr_pool_t *pconf, apr_pool_t *plog, -+ apr_pool_t *ptemp, server_rec *s) -+{ -+ -+ /* lbmethod_byrequests_post_config() will be called twice during startup. So, don't -+ * set up the static data the 1st time through. */ -+ if (ap_state_query(AP_SQ_MAIN_STATE) == AP_SQ_MS_CREATE_PRE_CONFIG) { -+ return OK; -+ } -+ -+ ap_proxy_balancer_get_best_worker_fn = -+ APR_RETRIEVE_OPTIONAL_FN(ap_proxy_balancer_get_best_worker); -+ if (!ap_proxy_balancer_get_best_worker_fn) { -+ ap_log_error(APLOG_MARK, APLOG_EMERG, 0, s, APLOGNO() -+ "mod_proxy must be loaded for mod_lbmethod_byrequests"); -+ return !OK; -+ } -+ -+ return OK; -+} -+ - static void register_hook(apr_pool_t *p) - { - /* Only the mpm_winnt has child init hook handler. -@@ -130,6 +155,7 @@ static void register_hook(apr_pool_t *p) - * initializes and after the mod_proxy - */ - ap_register_provider(p, PROXY_LBMETHOD, "byrequests", "0", &byrequests); -+ ap_hook_post_config(lbmethod_byrequests_post_config, NULL, NULL, APR_HOOK_MIDDLE); - } - - AP_DECLARE_MODULE(lbmethod_byrequests) = { ---- apache2.orig/modules/proxy/balancers/mod_lbmethod_bytraffic.c -+++ apache2/modules/proxy/balancers/mod_lbmethod_bytraffic.c -@@ -22,6 +22,9 @@ - - module AP_MODULE_DECLARE_DATA lbmethod_bytraffic_module; - -+static APR_OPTIONAL_FN_TYPE(ap_proxy_balancer_get_best_worker) -+ *ap_proxy_balancer_get_best_worker_fn = NULL; -+ - static int is_best_bytraffic(proxy_worker *current, proxy_worker *prev_best, void *baton) - { - apr_off_t *min_traffic = (apr_off_t *)baton; -@@ -59,7 +62,7 @@ static proxy_worker *find_best_bytraffic - { - apr_off_t min_traffic = 0; - -- return ap_proxy_balancer_get_best_worker(balancer, r, is_best_bytraffic, -+ return ap_proxy_balancer_get_best_worker_fn(balancer, r, is_best_bytraffic, - &min_traffic); - } - -@@ -93,6 +96,28 @@ static const proxy_balancer_method bytra - NULL - }; - -+/* post_config hook: */ -+static int lbmethod_bytraffic_post_config(apr_pool_t *pconf, apr_pool_t *plog, -+ apr_pool_t *ptemp, server_rec *s) -+{ -+ -+ /* lbmethod_bytraffic_post_config() will be called twice during startup. So, don't -+ * set up the static data the 1st time through. */ -+ if (ap_state_query(AP_SQ_MAIN_STATE) == AP_SQ_MS_CREATE_PRE_CONFIG) { -+ return OK; -+ } -+ -+ ap_proxy_balancer_get_best_worker_fn = -+ APR_RETRIEVE_OPTIONAL_FN(ap_proxy_balancer_get_best_worker); -+ if (!ap_proxy_balancer_get_best_worker_fn) { -+ ap_log_error(APLOG_MARK, APLOG_EMERG, 0, s, APLOGNO() -+ "mod_proxy must be loaded for mod_lbmethod_bytraffic"); -+ return !OK; -+ } -+ -+ return OK; -+} -+ - static void register_hook(apr_pool_t *p) - { - /* Only the mpm_winnt has child init hook handler. -@@ -100,6 +125,7 @@ static void register_hook(apr_pool_t *p) - * initializes and after the mod_proxy - */ - ap_register_provider(p, PROXY_LBMETHOD, "bytraffic", "0", &bytraffic); -+ ap_hook_post_config(lbmethod_bytraffic_post_config, NULL, NULL, APR_HOOK_MIDDLE); - } - - AP_DECLARE_MODULE(lbmethod_bytraffic) = { ---- apache2.orig/modules/proxy/mod_proxy.h -+++ apache2/modules/proxy/mod_proxy.h -@@ -846,6 +846,14 @@ PROXY_DECLARE(proxy_worker *) ap_proxy_b - request_rec *r, - proxy_is_best_callback_fn_t *is_best, - void *baton); -+/* -+ * Needed by the lb modules. -+ */ -+APR_DECLARE_OPTIONAL_FN(proxy_worker *, ap_proxy_balancer_get_best_worker, -+ (proxy_balancer *balancer, -+ request_rec *r, -+ proxy_is_best_callback_fn_t *is_best, -+ void *baton)); - - /** - * Find the shm of the worker as needed ---- apache2.orig/modules/proxy/proxy_util.c -+++ apache2/modules/proxy/proxy_util.c -@@ -4028,4 +4028,5 @@ void proxy_util_register_hooks(apr_pool_ - { - APR_REGISTER_OPTIONAL_FN(ap_proxy_retry_worker); - APR_REGISTER_OPTIONAL_FN(ap_proxy_clear_connection); -+ APR_REGISTER_OPTIONAL_FN(ap_proxy_balancer_get_best_worker); - } |