diff --git a/src/gw_backend.c b/src/gw_backend.c index 4e41e8a7..b111b75f 100644 --- a/src/gw_backend.c +++ b/src/gw_backend.c @@ -1175,6 +1175,15 @@ void gw_free(void *p_d) { } } +void gw_exts_clear_check_local(gw_exts *exts) { + for (uint32_t j = 0; j < exts->used; ++j) { + gw_extension *ex = exts->exts[j]; + for (uint32_t n = 0; n < ex->used; ++n) { + ex->hosts[n]->check_local = 0; + } + } +} + int gw_set_defaults_backend(server *srv, gw_plugin_data *p, const array *a, gw_plugin_config *s, int sh_exec, const char *cpkkey) { /* per-module plugin_config MUST have common "base class" gw_plugin_config*/ /* per-module plugin_data MUST have pointer-compatible common "base class" diff --git a/src/gw_backend.h b/src/gw_backend.h index 2d030561..8a9fa906 100644 --- a/src/gw_backend.h +++ b/src/gw_backend.h @@ -336,6 +336,9 @@ void gw_plugin_config_free(gw_plugin_config *s); __attribute_cold__ void gw_free(void *p_d); +__attribute_cold__ +void gw_exts_clear_check_local(gw_exts *exts); + __attribute_cold__ int gw_set_defaults_backend(server *srv, gw_plugin_data *p, const array *a, gw_plugin_config *s, int sh_exec, const char *cpkkey); diff --git a/src/mod_proxy.c b/src/mod_proxy.c index fdc0c4fb..fcb523eb 100644 --- a/src/mod_proxy.c +++ b/src/mod_proxy.c @@ -386,12 +386,7 @@ SETDEFAULTS_FUNC(mod_proxy_set_defaults) /* disable check-local for all exts (default enabled) */ if (gw && gw->exts) { /*(check after gw_set_defaults_backend())*/ - for (uint32_t j = 0; j < gw->exts->used; ++j) { - gw_extension *ex = gw->exts->exts[j]; - for (uint32_t n = 0; n < ex->used; ++n) { - ex->hosts[n]->check_local = 0; - } - } + gw_exts_clear_check_local(gw->exts); } } diff --git a/src/mod_sockproxy.c b/src/mod_sockproxy.c index ae6247b6..c4d62da9 100644 --- a/src/mod_sockproxy.c +++ b/src/mod_sockproxy.c @@ -106,12 +106,7 @@ SETDEFAULTS_FUNC(mod_sockproxy_set_defaults) { /* disable check-local for all exts (default enabled) */ if (gw && gw->exts) { /*(check after gw_set_defaults_backend())*/ - for (uint32_t j = 0; j < gw->exts->used; ++j) { - gw_extension *ex = gw->exts->exts[j]; - for (uint32_t n = 0; n < ex->used; ++n) { - ex->hosts[n]->check_local = 0; - } - } + gw_exts_clear_check_local(gw->exts); } } diff --git a/src/mod_wstunnel.c b/src/mod_wstunnel.c index af21b6e1..b64cd3c6 100644 --- a/src/mod_wstunnel.c +++ b/src/mod_wstunnel.c @@ -344,12 +344,7 @@ SETDEFAULTS_FUNC(mod_wstunnel_set_defaults) { /* disable check-local for all exts (default enabled) */ if (gw && gw->exts) { /*(check after gw_set_defaults_backend())*/ - for (uint32_t j = 0; j < gw->exts->used; ++j) { - gw_extension *ex = gw->exts->exts[j]; - for (uint32_t n = 0; n < ex->used; ++n) { - ex->hosts[n]->check_local = 0; - } - } + gw_exts_clear_check_local(gw->exts); } }