Re: svn commit: r537429 - in /httpd/httpd/trunk/modules/proxy: mod_proxy.c mod_proxy.h

2007-09-20 Thread rbowen
 Author: jim
 Date: Sat May 12 07:12:24 2007
 New Revision: 537429

 URL: http://svn.apache.org/viewvc?view=revrev=537429
 Log:
 Add regex pattern matching to ProxyPass, allowing,
 for example:

ProxyPass ~ \.gif balancer://imagecluster

It would also be really nice to have ProxyPassMatch, a la RedirectMatch
and AliasMatch and DirectoryMatch, et al. Historically, we seem to have a
problem with the '~' syntax in that it's extremely easy to overlook it in
the documentation, or, in certain fonts, to misread it as '-' or '_'.

--Rich


Re: svn commit: r537429 - in /httpd/httpd/trunk/modules/proxy: mod_proxy.c mod_proxy.h

2007-05-14 Thread Jim Jagielski


On May 13, 2007, at 3:07 PM, Ruediger Pluem wrote:




On 05/12/2007 05:10 PM, Ruediger Pluem wrote:


On 05/12/2007 04:12 PM, [EMAIL PROTECTED] wrote:


Author: jim
Date: Sat May 12 07:12:24 2007
New Revision: 537429

URL: http://svn.apache.org/viewvc?view=revrev=537429
Log:
Add regex pattern matching to ProxyPass, allowing,
for example:

  ProxyPass ~ \.gif balancer://imagecluster


URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/ 
mod_proxy.h?view=diffrev=537429r1=537428r2=537429
 
==

--- httpd/httpd/trunk/modules/proxy/mod_proxy.h (original)
+++ httpd/httpd/trunk/modules/proxy/mod_proxy.h Sat May 12  
07:12:24 2007

@@ -109,6 +109,7 @@
struct proxy_alias {
const char  *real;
const char  *fake;
+ap_regex_t  *regex;
};



Doesn't this require a minor bump?


What about the minor bump? Is it not needed because there is no  
typedef
for struct proxy_alias and thus struct proxy_alias is regarded as  
private?




Yep... at least I don't think we need one since it's not
a publicly used struct.



Re: svn commit: r537429 - in /httpd/httpd/trunk/modules/proxy: mod_proxy.c mod_proxy.h

2007-05-13 Thread Jim Jagielski


On May 12, 2007, at 12:45 PM, Joshua Slive wrote:


On 05/12/2007 04:12 PM, [EMAIL PROTECTED] wrote:
 Author: jim
 Date: Sat May 12 07:12:24 2007
 New Revision: 537429

 URL: http://svn.apache.org/viewvc?view=revrev=537429
 Log:
 Add regex pattern matching to ProxyPass, allowing,
 for example:

ProxyPass ~ \.gif balancer://imagecluster


On the configuration consistency side, the ~ thing is deprecated
everywhere and the standard way to do this is to have a ProxyPassMatch
directive (see RedirectMatch, DirectoryMatch, etc).



Yep. The ProxyPassMatch stuff is currently being worked
(basically, some function name changes ala add_proxy_regex)
but I was hoping to work the support for DirectoryMatch ..
into that patch as well before committing... but most likely
I'll just add in ProxyPassMatch first.



Re: svn commit: r537429 - in /httpd/httpd/trunk/modules/proxy: mod_proxy.c mod_proxy.h

2007-05-13 Thread Jim Jagielski


On May 12, 2007, at 11:10 AM, Ruediger Pluem wrote:



Sorry for being picky here: One space too much.

...



Again I am picky here: Too many spaces.



No worries. Good catches.



Re: svn commit: r537429 - in /httpd/httpd/trunk/modules/proxy: mod_proxy.c mod_proxy.h

2007-05-13 Thread Ruediger Pluem


On 05/12/2007 05:10 PM, Ruediger Pluem wrote:
 
 On 05/12/2007 04:12 PM, [EMAIL PROTECTED] wrote:
 
Author: jim
Date: Sat May 12 07:12:24 2007
New Revision: 537429

URL: http://svn.apache.org/viewvc?view=revrev=537429
Log:
Add regex pattern matching to ProxyPass, allowing,
for example:

   ProxyPass ~ \.gif balancer://imagecluster

URL: 
http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy.h?view=diffrev=537429r1=537428r2=537429
==
--- httpd/httpd/trunk/modules/proxy/mod_proxy.h (original)
+++ httpd/httpd/trunk/modules/proxy/mod_proxy.h Sat May 12 07:12:24 2007
@@ -109,6 +109,7 @@
 struct proxy_alias {
 const char  *real;
 const char  *fake;
+ap_regex_t  *regex;
 };
 
 
 Doesn't this require a minor bump?

What about the minor bump? Is it not needed because there is no typedef
for struct proxy_alias and thus struct proxy_alias is regarded as private?

Regards

RĂ¼diger


Re: svn commit: r537429 - in /httpd/httpd/trunk/modules/proxy: mod_proxy.c mod_proxy.h

2007-05-12 Thread Ruediger Pluem


On 05/12/2007 04:12 PM, [EMAIL PROTECTED] wrote:
 Author: jim
 Date: Sat May 12 07:12:24 2007
 New Revision: 537429
 
 URL: http://svn.apache.org/viewvc?view=revrev=537429
 Log:
 Add regex pattern matching to ProxyPass, allowing,
 for example:
 
ProxyPass ~ \.gif balancer://imagecluster
 
 
 
 Modified:
 httpd/httpd/trunk/modules/proxy/mod_proxy.c
 httpd/httpd/trunk/modules/proxy/mod_proxy.h
 
 Modified: httpd/httpd/trunk/modules/proxy/mod_proxy.c
 URL: 
 http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy.c?view=diffrev=537429r1=537428r2=537429
 ==
 --- httpd/httpd/trunk/modules/proxy/mod_proxy.c (original)
 +++ httpd/httpd/trunk/modules/proxy/mod_proxy.c Sat May 12 07:12:24 2007
 @@ -510,19 +512,34 @@
  fake = ent[i].fake;
  real = ent[i].real;
  }
 -len = alias_match(r-uri, fake);
 +if (ent[i].regex) {
 +if (!ap_regexec(ent[i].regex, r-uri, AP_MAX_REG_MATCH, regm, 
 0)) {
 +if ((real[0] == '!')  (real[1] == '\0')) {
 +return DECLINED;
 +}
 +found = apr_pstrcat(r-pool, proxy:, real,
 +r-uri, NULL);
 +}
 +}
 +else {
 +len = alias_match(r-uri, fake);
  
 -   if (len  0) {
 -   if ((real[0] == '!')  (real[1] == 0)) {
 -   return DECLINED;
 -   }
 +if (len != 0) {
 +if ((real[0] == '!')  (real[1] == '\0')) {
 +return DECLINED;
 +}
  
 -   r-filename = apr_pstrcat(r-pool, proxy:, real,
 +found = apr_pstrcat(r-pool, proxy:, real,
   r-uri + len, NULL);

Sorry for being picky here: One space too much.

 -   r-handler = proxy-server;
 -   r-proxyreq = PROXYREQ_REVERSE;
 -   return OK;
 -   }
 +
 +}
 +}
 +if (found) {
 +r-filename = found;
 +r-handler = proxy-server;
 +r-proxyreq = PROXYREQ_REVERSE;
 +return OK;
 +}

Again I am picky here: Too many spaces.

 Modified: httpd/httpd/trunk/modules/proxy/mod_proxy.h
 URL: 
 http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy.h?view=diffrev=537429r1=537428r2=537429
 ==
 --- httpd/httpd/trunk/modules/proxy/mod_proxy.h (original)
 +++ httpd/httpd/trunk/modules/proxy/mod_proxy.h Sat May 12 07:12:24 2007
 @@ -109,6 +109,7 @@
  struct proxy_alias {
  const char  *real;
  const char  *fake;
 +ap_regex_t  *regex;
  };

Doesn't this require a minor bump?

Regards

RĂ¼diger



Re: svn commit: r537429 - in /httpd/httpd/trunk/modules/proxy: mod_proxy.c mod_proxy.h

2007-05-12 Thread Joshua Slive

On 05/12/2007 04:12 PM, [EMAIL PROTECTED] wrote:
 Author: jim
 Date: Sat May 12 07:12:24 2007
 New Revision: 537429

 URL: http://svn.apache.org/viewvc?view=revrev=537429
 Log:
 Add regex pattern matching to ProxyPass, allowing,
 for example:

ProxyPass ~ \.gif balancer://imagecluster


On the configuration consistency side, the ~ thing is deprecated
everywhere and the standard way to do this is to have a ProxyPassMatch
directive (see RedirectMatch, DirectoryMatch, etc).

Joshua.