mturk       2004/08/04 05:31:12

  Modified:    ajp/proxy mod_proxy.h proxy_util.c
  Log:
  Add ap_proxy_pre_request API function.
  It calls the actual module pre_request hook if present
  
  Revision  Changes    Path
  1.11      +4 -2      jakarta-tomcat-connectors/ajp/proxy/mod_proxy.h
  
  Index: mod_proxy.h
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/ajp/proxy/mod_proxy.h,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- mod_proxy.h       4 Aug 2004 08:56:24 -0000       1.10
  +++ mod_proxy.h       4 Aug 2004 12:31:12 -0000       1.11
  @@ -249,11 +249,13 @@
   #endif
   };
   
  -/* data structure for set/get module_config */
  +/* per connection data structure for set/get module_config */
   typedef struct {
       char                  *url;         /* rewtitten url */
       struct proxy_balancer *balancer;    /* load balancer to use */
       proxy_worker          *worker;      /* most suitable worker */
  +    proxy_conn_rec        *conn_rec;
  +    proxy_conn            *conn;
       void                  *opaque;      /* module private data */
   } proxy_module_conf;
   
  @@ -350,7 +352,7 @@
   PROXY_DECLARE(struct proxy_balancer *) ap_proxy_get_balancer(apr_pool_t *p, 
proxy_server_conf *conf, const char *url);
   PROXY_DECLARE(const char *) ap_proxy_add_balancer(struct proxy_balancer **balancer, 
apr_pool_t *p, proxy_server_conf *conf, const char *url);
   PROXY_DECLARE(void) ap_proxy_add_worker_to_balancer(struct proxy_balancer 
*balancer, proxy_worker *worker);
  -
  +PROXY_DECLARE(int) ap_proxy_pre_request(proxy_worker **worker, struct 
proxy_balancer **balancer, request_rec *r, proxy_server_conf *conf, char **url);
   
   /* For proxy_util */
   extern module PROXY_DECLARE_DATA proxy_module;
  
  
  
  1.5       +41 -0     jakarta-tomcat-connectors/ajp/proxy/proxy_util.c
  
  Index: proxy_util.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/ajp/proxy/proxy_util.c,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- proxy_util.c      4 Aug 2004 07:44:34 -0000       1.4
  +++ proxy_util.c      4 Aug 2004 12:31:12 -0000       1.5
  @@ -1192,6 +1192,47 @@
   
   }
   
  +PROXY_DECLARE(int) ap_proxy_pre_request(proxy_worker **worker,
  +                                        struct proxy_balancer **balancer,
  +                                        request_rec *r,
  +                                        proxy_server_conf *conf, char **url)
  +{
  +    int access_status;
  +
  +    access_status = proxy_run_pre_request(worker, balancer, r, conf, url);
  +    if (access_status == DECLINED && *balancer == NULL) {
  +        *worker = ap_proxy_get_worker(r->pool, conf, *url);
  +        if (*worker) {
  +            *balancer = NULL;
  +            access_status = OK;
  +        }
  +        else
  +            access_status = DECLINED;
  +    }
  +    else if (access_status == DECLINED && balancer != NULL) {
  +        /* All the workers are busy */
  +        access_status = HTTP_SERVICE_UNAVAILABLE;
  +    }
  +    return access_status;
  +}
  +
  +PROXY_DECLARE(int) ap_proxy_post_request(proxy_worker *worker,
  +                                         struct proxy_balancer *balancer,
  +                                         request_rec *r,
  +                                         proxy_server_conf *conf)
  +{
  +    int access_status;
  +    if (balancer)
  +        access_status = proxy_run_post_request(worker, balancer, r, conf);
  +    else { 
  +        
  +
  +        access_status = OK;
  +    }
  +
  +    return access_status;
  +}
  +
   PROXY_DECLARE(int) ap_proxy_connect_to_backend(apr_socket_t **newsock,
                                                  const char *proxy_function,
                                                  apr_sockaddr_t *backend_addr,
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to