MCPcopy Create free account
hub / github.com/apache/httpd / worker_matches

Function worker_matches

modules/proxy/proxy_util.c:1839–1863  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1837}
1838
1839static int worker_matches(proxy_worker *worker,
1840 const char *url, apr_size_t url_len,
1841 apr_size_t min_match, apr_size_t *max_match,
1842 unsigned int mask)
1843{
1844 apr_size_t name_len = strlen(worker->s->name_ex);
1845 if (name_len <= url_len
1846 && name_len > *max_match
1847 /* min_match is the length of the scheme://host part only of url,
1848 * so it's used as a fast path to avoid the match when url is too
1849 * small, but it's irrelevant when the worker host contains globs
1850 * (i.e. ->is_host_matchable).
1851 */
1852 && (worker->s->is_name_matchable
1853 ? ((mask & AP_PROXY_WORKER_IS_MATCH)
1854 && (worker->s->is_host_matchable || name_len >= min_match)
1855 && !ap_proxy_strcmp_ematch(url, worker->s->name_ex))
1856 : ((mask & AP_PROXY_WORKER_IS_PREFIX)
1857 && (name_len >= min_match)
1858 && !strncmp(url, worker->s->name_ex, name_len)))) {
1859 *max_match = name_len;
1860 return 1;
1861 }
1862 return 0;
1863}
1864
1865PROXY_DECLARE(proxy_worker *) ap_proxy_get_worker_ex(apr_pool_t *p,
1866 proxy_balancer *balancer,

Callers 1

ap_proxy_get_worker_exFunction · 0.85

Calls 1

ap_proxy_strcmp_ematchFunction · 0.85

Tested by

no test coverage detected