Re: Current trunk win build error
+1, looks great. On Tue, Jul 24, 2018 at 1:34 AM, Plüm, Rüdiger, Vodafone Group < ruediger.pl...@vodafone.com> wrote: > Unfortunately this did not work and caused. > > > > In file included from mod_proxy.h:30:0, > > from proxy_util.c:18: > > proxy_util.c: In function 'proxy_util_register_hooks': > > /home/pluem/apache/httpd-trunk/srclib/apr/include/apr_optional.h:42:36: > error: unknown type name 'apr_OFN_proxy_balancer_get_best_worker_t' > > #define APR_OPTIONAL_FN_TYPE(name) apr_OFN_##name##_t > > ^ > > /home/pluem/apache/httpd-trunk/srclib/apr/include/apr_optional.h:71:3: > note: in expansion of macro 'APR_OPTIONAL_FN_TYPE' > >APR_OPTIONAL_FN_TYPE(name) *apu__opt = name; \ > >^ > > proxy_util.c:4094:5: note: in expansion of macro 'APR_REGISTER_OPTIONAL_FN' > > APR_REGISTER_OPTIONAL_FN(proxy_balancer_get_best_worker); > > ^ > > proxy_util.c:4094:30: warning: initialization from incompatible pointer > type [enabled by default] > > APR_REGISTER_OPTIONAL_FN(proxy_balancer_get_best_worker); > > ^ > > /home/pluem/apache/httpd-trunk/srclib/apr/include/apr_optional.h:71:42: > note: in definition of macro 'APR_REGISTER_OPTIONAL_FN' > >APR_OPTIONAL_FN_TYPE(name) *apu__opt = name; \ > > ^ > > make[4]: *** [proxy_util.slo] Error 1 > > make[3]: *** [shared-build-recursive] Error 1 > > make[2]: *** [shared-build-recursive] Error 1 > > make[1]: *** [shared-build-recursive] Error 1 > > make: *** [all-recursive] Error 1 > > > > The attached one which is shorter then my original one, but longer than > yours and does work. > > > > > > > > Regards > > > > Rüdiger > > > > *Von:* William A Rowe Jr > *Gesendet:* Montag, 23. Juli 2018 16:54 > > *An:* httpd > *Betreff:* Re: Current trunk win build error > > > > 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, > >_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_wo
Re: Current trunk win build error
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, > > _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 mailto:wr...@rowe-clan.net>> > *Gesendet:* Montag, 23. Juli 2018 16:04 > *An:* httpd mailto: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. > > >
Re: Current trunk win build error
*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, > > _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 > *Gesendet:* Montag, 23. Juli 2018 16:04 > *An:* httpd > *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 > > 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, >
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 > > 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 >