On Sun, Nov 23, 2014 at 9:57 PM, Eric Covener <[email protected]> wrote:
> On Fri, Jul 11, 2014 at 6:36 AM, <[email protected]> wrote:
>> static int ap_proxy_strcmp_ematch(const char *str, const char *expected)
>> +{
>> + apr_size_t x, y;
>> +
>> + for (x = 0, y = 0; expected[y]; ++y, ++x) {
>> + if ((!str[x]) && (expected[y] != '
>> || !apr_isdigit(expected[y + 1])))
>> + return -1;
>> + if (expected[y] == ' && apr_isdigit(expected[y + 1])) {
>> + while (expected[y] == ' && apr_isdigit(expected[y + 1]))
>> + y += 2;
>> + if (!expected[y])
>> + return 0;
>> + while (str[x]) {
>> + int ret;
>> + if ((ret = ap_proxy_strcmp_ematch(&str[x++], &expected[y]))
>> != 1)
>> + return ret;
>> + }
>> + return -1;
>> + }
>> + else if (expected[y] == '\\') {
>> + /* NUL is an invalid char! */
>> + if (!expected[++y])
>> + return -2;
>> + }
>> + if (str[x] != expected[y])
>> + return 1;
>> + }
>> + return (str[x] != '\0');
>> +}
>
Sorry, stray keystroke (tab?) made gmail send early.
This is breaking the common PHP-FPM recipes using unix domain sockets
in trunk e.g.
ProxyPassMatch ^/info.php$
"unix:/var/run/php5-fpm.sock|fcgi://localhost/home/covener/SRC/httpd-trunk/built/htdocs/"
The old test accepted the worker URL being a prefix of the worker:
strncmp(url_copy, worker->s->name, worker_name_length) == 0)
but now that doesn't happen for ProxyPassMatch. This seems to be
due to the last return expecting str[x] to have been totally consumed
by the expected (worker) string.
--
Eric Covener
[email protected]