I think it's simply the attached (couldn't apply the inline text patch).

No need to change the hook name.

On Mon, Jul 23, 2018 at 9:16 AM, Plüm, Rüdiger, Vodafone Group <
ruediger.pl...@vodafone.com> wrote:

> So something like the below?
>
>
>
> Regards
>
>
>
> Rüdiger
>
>
>
> Index: modules/proxy/balancers/mod_lbmethod_bybusyness.c
>
> ===================================================================
>
> --- modules/proxy/balancers/mod_lbmethod_bybusyness.c       (revision
> 1836460)
>
> +++ modules/proxy/balancers/mod_lbmethod_bybusyness.c    (working copy)
>
> @@ -22,8 +22,8 @@
>
>  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 APR_OPTIONAL_FN_TYPE(proxy_balancer_get_best_worker)
>
> +                            *proxy_balancer_get_best_worker_fn = NULL;
>
>  static int is_best_bybusyness(proxy_worker *current, proxy_worker
> *prev_best, void *baton)
>
> {
>
> @@ -47,7 +47,7 @@
>
> {
>
>      int total_factor = 0;
>
>      proxy_worker *worker =
>
> -        ap_proxy_balancer_get_best_worker_fn(balancer, r,
> is_best_bybusyness,
>
> +        proxy_balancer_get_best_worker_fn(balancer, r,
> is_best_bybusyness,
>
>                                            &total_factor);
>
>      if (worker) {
>
> @@ -96,9 +96,9 @@
>
>          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) {
>
> +    proxy_balancer_get_best_worker_fn =
>
> +                 APR_RETRIEVE_OPTIONAL_FN(proxy_balancer_get_best_
> worker);
>
> +    if (!proxy_balancer_get_best_worker_fn) {
>
>          ap_log_error(APLOG_MARK, APLOG_EMERG, 0, s, APLOGNO(10151)
>
>                       "mod_proxy must be loaded for
> mod_lbmethod_bybusyness");
>
>          return !OK;
>
> Index: modules/proxy/balancers/mod_lbmethod_byrequests.c
>
> ===================================================================
>
> --- modules/proxy/balancers/mod_lbmethod_byrequests.c        (revision
> 1836460)
>
> +++ modules/proxy/balancers/mod_lbmethod_byrequests.c     (working copy)
>
> @@ -22,8 +22,8 @@
>
>  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 APR_OPTIONAL_FN_TYPE(proxy_balancer_get_best_worker)
>
> +                            *proxy_balancer_get_best_worker_fn = NULL;
>
>  static int is_best_byrequests(proxy_worker *current, proxy_worker
> *prev_best, void *baton)
>
> {
>
> @@ -84,7 +84,7 @@
>
>                                  request_rec *r)
>
> {
>
>      int total_factor = 0;
>
> -    proxy_worker *worker = ap_proxy_balancer_get_best_worker_fn(balancer,
> r, is_best_byrequests, &total_factor);
>
> +    proxy_worker *worker = proxy_balancer_get_best_worker_fn(balancer,
> r, is_best_byrequests, &total_factor);
>
>      if (worker) {
>
>          worker->s->lbstatus -= total_factor;
>
> @@ -137,9 +137,9 @@
>
>          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) {
>
> +    proxy_balancer_get_best_worker_fn =
>
> +                 APR_RETRIEVE_OPTIONAL_FN(proxy_balancer_get_best_
> worker);
>
> +    if (!proxy_balancer_get_best_worker_fn) {
>
>          ap_log_error(APLOG_MARK, APLOG_EMERG, 0, s, APLOGNO(10152)
>
>                       "mod_proxy must be loaded for
> mod_lbmethod_byrequests");
>
>          return !OK;
>
> Index: modules/proxy/balancers/mod_lbmethod_bytraffic.c
>
> ===================================================================
>
> --- modules/proxy/balancers/mod_lbmethod_bytraffic.c
> (revision 1836460)
>
> +++ modules/proxy/balancers/mod_lbmethod_bytraffic.c          (working
> copy)
>
> @@ -22,8 +22,8 @@
>
>  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 APR_OPTIONAL_FN_TYPE(proxy_balancer_get_best_worker)
>
> +                            *proxy_balancer_get_best_worker_fn = NULL;
>
>  static int is_best_bytraffic(proxy_worker *current, proxy_worker
> *prev_best, void *baton)
>
> {
>
> @@ -62,7 +62,7 @@
>
> {
>
>      apr_off_t min_traffic = 0;
>
> -    return ap_proxy_balancer_get_best_worker_fn(balancer, r,
> is_best_bytraffic,
>
> +    return proxy_balancer_get_best_worker_fn(balancer, r,
> is_best_bytraffic,
>
>                                               &min_traffic);
>
> }
>
> @@ -107,9 +107,9 @@
>
>          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) {
>
> +    proxy_balancer_get_best_worker_fn =
>
> +                 APR_RETRIEVE_OPTIONAL_FN(proxy_balancer_get_best_
> worker);
>
> +    if (!proxy_balancer_get_best_worker_fn) {
>
>          ap_log_error(APLOG_MARK, APLOG_EMERG, 0, s, APLOGNO(10150)
>
>                       "mod_proxy must be loaded for
> mod_lbmethod_bytraffic");
>
>          return !OK;
>
> Index: modules/proxy/mod_proxy.h
>
> ===================================================================
>
> --- modules/proxy/mod_proxy.h             (revision 1836460)
>
> +++ modules/proxy/mod_proxy.h           (working copy)
>
> @@ -883,7 +883,7 @@
>
> /*
>
>   * Needed by the lb modules.
>
>   */
>
> -APR_DECLARE_OPTIONAL_FN(proxy_worker *, ap_proxy_balancer_get_best_
> worker,
>
> +APR_DECLARE_OPTIONAL_FN(proxy_worker *, proxy_balancer_get_best_worker,
>
>                                          (proxy_balancer *balancer,
>
>                                           request_rec *r,
>
>                                           proxy_is_best_callback_fn_t
> *is_best,
>
> Index: modules/proxy/proxy_util.c
>
> ===================================================================
>
> --- modules/proxy/proxy_util.c (revision 1836460)
>
> +++ modules/proxy/proxy_util.c              (working copy)
>
> @@ -1415,6 +1415,13 @@
>
>      return best_worker;
>
> }
>
> +static proxy_worker* proxy_balancer_get_best_worker(proxy_balancer
> *balancer,
>
> +
>                  request_rec *r,
>
> +
> proxy_is_best_callback_fn_t *is_best,
>
> +                                                                void
> *baton)
>
> +{
>
> +    return ap_proxy_balancer_get_best_worker(balancer, r, is_best,
> baton);
>
> +}
>
> /*
>
>   * CONNECTION related...
>
>   */
>
> @@ -4079,5 +4086,5 @@
>
> {
>
>      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);
>
> +    APR_REGISTER_OPTIONAL_FN(proxy_balancer_get_best_worker);
>
> }
>
>
>
> *Von:* William A Rowe Jr <wr...@rowe-clan.net>
> *Gesendet:* Montag, 23. Juli 2018 16:04
> *An:* httpd <dev@httpd.apache.org>
> *Betreff:* Re: Current trunk win build error
>
>
>
> Perhaps use proxy_balancer_get_best_worker, and don't export
>
> that? That can be the delegate for ap_proxy_balancer_get_best_worker.
>
>
>
> We either keep callbacks local, or export them _NONSTD. All the
>
> *_DECLARE (without _NONSTD) are not usable as apr/httpd
>
> callbacks.
>
>
>
>
>
> On Mon, Jul 23, 2018 at 7:22 AM, Plüm, Rüdiger, Vodafone Group <
> ruediger.pl...@vodafone.com> wrote:
>
>
> > -----Ursprüngliche Nachricht-----
> > Von: Apache Lounge <i...@apachelounge.com>
> > Gesendet: Montag, 23. Juli 2018 13:35
> > An: dev@httpd.apache.org
> > Betreff: Current trunk win build error
>
> >
> >
> >
> >
> >
> > Error C2440 'initializing': cannot convert from 'proxy_worker
> > *(__stdcall *)(proxy_balancer *,request_rec
> > *,proxy_is_best_callback_fn_t (__cdecl *),void *)' to
> > 'apr_OFN_ap_proxy_balancer_get_best_worker_t (__cdecl *)'
> >
> > mod_proxy c:\vc15\win32\httpd-trunk\modules\proxy\proxy_util.c 4082
> >
>
> Windows experts to the rescue please :-)
> Seems to be an issue between PROXY_DECLARE and the optional function stuff.
> Does the following patch fix it (just guessing)?
>
> Index: mod_proxy.h
> ===================================================================
> --- mod_proxy.h (revision 1836460)
> +++ mod_proxy.h (working copy)
> @@ -883,7 +883,7 @@
>  /*
>   * Needed by the lb modules.
>   */
> -APR_DECLARE_OPTIONAL_FN(proxy_worker *, ap_proxy_balancer_get_best_
> worker,
> +APR_DECLARE_OPTIONAL_FN(PROXY_DECLARE(proxy_worker *),
> ap_proxy_balancer_get_best_worker,
>                                          (proxy_balancer *balancer,
>                                           request_rec *r,
>                                           proxy_is_best_callback_fn_t
> *is_best,
>
>
>
> Regards
>
> Rüdiger
>
>
>
Index: modules/proxy/proxy_util.c
===================================================================
--- modules/proxy/proxy_util.c	(revision 1836497)
+++ modules/proxy/proxy_util.c	(working copy)
@@ -69,6 +69,10 @@
 static int proxy_match_hostname(struct dirconn_entry *This, request_rec *r);
 static int proxy_match_word(struct dirconn_entry *This, request_rec *r);
 static int ap_proxy_retry_worker(const char *proxy_function, proxy_worker *worker, server_rec *s);
+static proxy_worker *proxy_balancer_get_best_worker(proxy_balancer *balancer,
+                                                    request_rec *r,
+                                                    proxy_is_best_callback_fn_t *is_best,
+                                                    void *baton);
 
 APR_IMPLEMENT_OPTIONAL_HOOK_RUN_ALL(proxy, PROXY, int, create_req,
                                    (request_rec *r, request_rec *pr), (r, pr),
@@ -1300,10 +1304,10 @@
     return APR_SUCCESS;
 }
 
-PROXY_DECLARE(proxy_worker *) ap_proxy_balancer_get_best_worker(proxy_balancer *balancer,
-                                                                request_rec *r,
-                                                                proxy_is_best_callback_fn_t *is_best,
-                                                                void *baton)
+static proxy_worker *proxy_balancer_get_best_worker(proxy_balancer *balancer,
+                                                    request_rec *r,
+                                                    proxy_is_best_callback_fn_t *is_best,
+                                                    void *baton)
 {
     int i = 0;
     int cur_lbset = 0;
@@ -1415,6 +1419,14 @@
     return best_worker;
 }
 
+PROXY_DECLARE(proxy_worker *) ap_proxy_balancer_get_best_worker(proxy_balancer *balancer,
+                                                                request_rec *r,
+                                                                proxy_is_best_callback_fn_t *is_best,
+                                                                void *baton)
+{
+    return proxy_balancer_get_best_worker(balancer, r, is_best, baton)
+}
+
 /*
  * CONNECTION related...
  */
@@ -4079,5 +4091,5 @@
 {
     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);
+    APR_REGISTER_OPTIONAL_FN(proxy_balancer_get_best_worker);
 }

Reply via email to