dgaudet     97/11/08 13:39:13

  Modified:    src      CHANGES
               src/main http_request.c
               src/modules/proxy mod_proxy.c
  Log:
  find_types() shouldn't be called if we just found a matching
  ProxyPass directive and set handler to 'proxy-server', because
  find_types() resets r->handler if we have an other
  handler (server-info, server-parsed, etc.) that will be invoked
  on the URI from the request.
  
  PR:           870
  Submitted by: Lars Eilebrecht
  Reviewed by:  Dean Gaudet, Martin Kraemer
  
  Revision  Changes    Path
  1.497     +6 -0      apachen/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /export/home/cvs/apachen/src/CHANGES,v
  retrieving revision 1.496
  retrieving revision 1.497
  diff -u -r1.496 -r1.497
  --- CHANGES   1997/11/08 21:33:07     1.496
  +++ CHANGES   1997/11/08 21:39:07     1.497
  @@ -1,5 +1,11 @@
   Changes with Apache 1.3b3
   
  +  *) Preserve handler value on ProxyPass'ed requests by not
  +     calling find_types on a proxy'd request; fixes problems
  +     where some ProxyPass'ed URLs weren't actually passed
  +     to the proxy.
  +     [Lars Eilebrecht] PR#870
  +
     *) Fix a byte ordering problem in mod_access which prevented
        the old-style syntax (i.e. "a.b.c." to match a class C)
        from working properly. [Dean Gaudet] PR#1248, 1328, 1384
  
  
  
  1.92      +5 -4      apachen/src/main/http_request.c
  
  Index: http_request.c
  ===================================================================
  RCS file: /export/home/cvs/apachen/src/main/http_request.c,v
  retrieving revision 1.91
  retrieving revision 1.92
  diff -u -r1.91 -r1.92
  --- http_request.c    1997/10/22 20:29:44     1.91
  +++ http_request.c    1997/11/08 21:39:11     1.92
  @@ -1093,10 +1093,11 @@
           break;
       }
   
  -    if ((access_status = find_types(r)) != 0) {
  -        decl_die(access_status, "find types", r);
  -        return;
  -    }
  +    if (!r->proxyreq)
  +      if ((access_status = find_types(r)) != 0) {
  +          decl_die(access_status, "find types", r);
  +          return;
  +      }
   
       if ((access_status = run_fixups(r)) != 0) {
           die(access_status, r);
  
  
  
  1.28      +2 -1      apachen/src/modules/proxy/mod_proxy.c
  
  Index: mod_proxy.c
  ===================================================================
  RCS file: /export/home/cvs/apachen/src/modules/proxy/mod_proxy.c,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- mod_proxy.c       1997/10/22 20:30:04     1.27
  +++ mod_proxy.c       1997/11/08 21:39:12     1.28
  @@ -140,11 +140,12 @@
   
        for (i = 0; i < conf->aliases->nelts; i++) {
            len = alias_match(r->uri, ent[i].fake);
  -
  +         
            if (len > 0) {
                r->filename = pstrcat(r->pool, "proxy:", ent[i].real,
                                      r->uri + len, NULL);
                r->handler = "proxy-server";
  +             r->proxyreq = 1;
                return OK;
            }
        }
  
  
  

Reply via email to