You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by mt...@apache.org on 2004/08/05 15:45:45 UTC
cvs commit: jakarta-tomcat-connectors/ajp/proxy mod_proxy.c proxy_util.c mod_proxy.h
mturk 2004/08/05 06:45:45
Modified: ajp/proxy mod_proxy.c proxy_util.c mod_proxy.h
Log:
Remove proxy_conn struct and add it's params to proxy_conn_rec.
Use named structure type declarations.
Revision Changes Path
1.23 +8 -8 jakarta-tomcat-connectors/ajp/proxy/mod_proxy.c
Index: mod_proxy.c
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/ajp/proxy/mod_proxy.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- mod_proxy.c 4 Aug 2004 18:39:26 -0000 1.22
+++ mod_proxy.c 5 Aug 2004 13:45:44 -0000 1.23
@@ -120,7 +120,7 @@
return NULL;
}
-static const char *set_balancer_param(struct proxy_balancer *balancer,
+static const char *set_balancer_param(proxy_balancer *balancer,
const char *key,
const char *val)
{
@@ -473,7 +473,7 @@
int direct_connect = 0;
const char *str;
long maxfwd;
- struct proxy_balancer *balancer = NULL;
+ proxy_balancer *balancer = NULL;
proxy_worker *worker = NULL;
proxy_module_conf *mconf;
@@ -654,7 +654,7 @@
ps->dirconn = apr_array_make(p, 10, sizeof(struct dirconn_entry));
ps->allowed_connect_ports = apr_array_make(p, 10, sizeof(int));
ps->workers = apr_array_make(p, 10, sizeof(proxy_worker));
- ps->balancers = apr_array_make(p, 10, sizeof(struct proxy_balancer));
+ ps->balancers = apr_array_make(p, 10, sizeof(proxy_balancer));
ps->domain = NULL;
ps->viaopt = via_off; /* initially backward compatible with 1.3.1 */
ps->viaopt_set = 0; /* 0 means default */
@@ -855,7 +855,7 @@
elts = (const apr_table_entry_t *)arr->elts;
/* Distinguish the balancer from woker */
if (strncasecmp(r, "balancer:", 9) == 0) {
- struct proxy_balancer *balancer = ap_proxy_get_balancer(cmd->pool, conf, r);
+ proxy_balancer *balancer = ap_proxy_get_balancer(cmd->pool, conf, r);
if (!balancer) {
const char *err = ap_proxy_add_balancer(&balancer,
cmd->pool,
@@ -1203,7 +1203,7 @@
server_rec *s = cmd->server;
proxy_server_conf *conf =
ap_get_module_config(s->module_config, &proxy_module);
- struct proxy_balancer *balancer;
+ proxy_balancer *balancer;
proxy_worker *worker;
char *path = cmd->path;
char *name = NULL;
@@ -1279,7 +1279,7 @@
server_rec *s = cmd->server;
proxy_server_conf *conf =
ap_get_module_config(s->module_config, &proxy_module);
- struct proxy_balancer *balancer;
+ proxy_balancer *balancer;
const char *name, *sticky;
if (r != NULL && cmd->path == NULL ) {
@@ -1540,14 +1540,14 @@
url),DECLINED)
APR_IMPLEMENT_EXTERNAL_HOOK_RUN_FIRST(proxy, PROXY, int, pre_request, (
proxy_worker **worker,
- struct proxy_balancer **balancer,
+ proxy_balancer **balancer,
request_rec *r,
proxy_server_conf *conf,
char **url),(worker,balancer,
r,conf,url),DECLINED)
APR_IMPLEMENT_EXTERNAL_HOOK_RUN_FIRST(proxy, PROXY, int, post_request,
(proxy_worker *worker,
- struct proxy_balancer *balancer,
+ proxy_balancer *balancer,
request_rec *r,
proxy_server_conf *conf),(worker,
balancer,r,conf),DECLINED)
1.11 +14 -14 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.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- proxy_util.c 4 Aug 2004 16:43:39 -0000 1.10
+++ proxy_util.c 5 Aug 2004 13:45:44 -0000 1.11
@@ -988,11 +988,11 @@
apr_table_add(t, key, value + offset);
}
-PROXY_DECLARE(struct proxy_balancer *) ap_proxy_get_balancer(apr_pool_t *p,
- proxy_server_conf *conf,
- const char *url)
+PROXY_DECLARE(proxy_balancer *) ap_proxy_get_balancer(apr_pool_t *p,
+ proxy_server_conf *conf,
+ const char *url)
{
- struct proxy_balancer *balancer;
+ proxy_balancer *balancer;
char *c, *uri = apr_pstrdup(p, url);
int i;
@@ -1002,7 +1002,7 @@
/* remove path from uri */
if ((c = strchr(c + 3, '/')))
*c = '\0';
- balancer = (struct proxy_balancer *)conf->balancers->elts;
+ balancer = (proxy_balancer *)conf->balancers->elts;
for (i = 0; i < conf->balancers->nelts; i++) {
if (strcasecmp(balancer->name, uri) == 0)
return balancer;
@@ -1011,7 +1011,7 @@
return NULL;
}
-PROXY_DECLARE(const char *) ap_proxy_add_balancer(struct proxy_balancer **balancer,
+PROXY_DECLARE(const char *) ap_proxy_add_balancer(proxy_balancer **balancer,
apr_pool_t *p,
proxy_server_conf *conf,
const char *url)
@@ -1155,7 +1155,7 @@
}
PROXY_DECLARE(void)
-ap_proxy_add_worker_to_balancer(struct proxy_balancer *balancer, proxy_worker *worker)
+ap_proxy_add_worker_to_balancer(proxy_balancer *balancer, proxy_worker *worker)
{
int i;
double median, ffactor = 0.0;
@@ -1202,7 +1202,7 @@
}
PROXY_DECLARE(int) ap_proxy_pre_request(proxy_worker **worker,
- struct proxy_balancer **balancer,
+ proxy_balancer **balancer,
request_rec *r,
proxy_server_conf *conf, char **url)
{
@@ -1226,7 +1226,7 @@
}
PROXY_DECLARE(int) ap_proxy_post_request(proxy_worker *worker,
- struct proxy_balancer *balancer,
+ proxy_balancer *balancer,
request_rec *r,
proxy_server_conf *conf)
{
@@ -1315,7 +1315,7 @@
static apr_status_t proxy_conn_cleanup(void *theconn)
{
- proxy_conn *conn = (proxy_conn *)theconn;
+ proxy_conn_rec *conn = (proxy_conn_rec *)theconn;
/* Close the socket */
if (conn->sock)
apr_socket_close(conn->sock);
@@ -1328,7 +1328,7 @@
apr_pool_t *pool)
{
apr_pool_t *ctx;
- proxy_conn *conn;
+ proxy_conn_rec *conn;
server_rec *s = (server_rec *)params;
/* Create the subpool for each connection
@@ -1336,7 +1336,7 @@
* when disconnecting from backend.
*/
apr_pool_create(&ctx, pool);
- conn = apr_pcalloc(ctx, sizeof(proxy_conn));
+ conn = apr_pcalloc(ctx, sizeof(proxy_conn_rec));
conn->pool = ctx;
*resource = conn;
@@ -1354,7 +1354,7 @@
static apr_status_t connection_destructor(void *resource, void *params,
apr_pool_t *pool)
{
- proxy_conn *conn = (proxy_conn *)resource;
+ proxy_conn_rec *conn = (proxy_conn_rec *)resource;
server_rec *s = (server_rec *)params;
apr_pool_destroy(conn->pool);
@@ -1378,7 +1378,7 @@
else
#endif
{
- worker->cp->conn = apr_pcalloc(worker->cp->pool, sizeof(proxy_conn));
+ worker->cp->conn = apr_pcalloc(worker->cp->pool, sizeof(proxy_conn_rec));
/* register the pool cleanup.
* The cleanup is registered on conn_pool pool, so that
* the same mechanism (apr_pool_cleanup) can be used
1.15 +24 -20 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.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- mod_proxy.h 4 Aug 2004 18:39:26 -0000 1.14
+++ mod_proxy.h 5 Aug 2004 13:45:44 -0000 1.15
@@ -173,6 +173,11 @@
} proxy_server_conf;
+typedef struct proxy_balancer proxy_balancer;
+typedef struct proxy_worker proxy_worker;
+typedef struct proxy_conn proxy_conn;
+typedef struct proxy_conn_pool proxy_conn_pool;
+
typedef struct {
const char *p; /* The path */
int p_is_fnmatch; /* Is this path an fnmatch candidate? */
@@ -180,10 +185,16 @@
} proxy_dir_conf;
typedef struct {
- conn_rec *connection;
- char *hostname;
- apr_port_t port;
- int is_ssl;
+ conn_rec *connection;
+ const char *hostname;
+ apr_port_t port;
+ int is_ssl;
+ apr_pool_t *pool; /* Subpool used for creating socket */
+ apr_socket_t *sock; /* Connection socket */
+ apr_uint32_t flags; /* Conection flags */
+ int close; /* Close 'this' connection */
+ proxy_worker *worker; /* Connection pool this connection belogns to */
+ void *data; /* per scheme connection data */
} proxy_conn_rec;
typedef struct {
@@ -191,26 +202,18 @@
int content_length; /* length of the content */
} proxy_completion;
-/* Physical connection to the backend server */
-typedef struct {
- apr_pool_t *pool; /* Subpool used for creating socket */
- apr_socket_t *sock;
- int flags; /* 0: newly created 1: initialized -1: in error */
- int close; /* Close 'this' connection */
-} proxy_conn;
-
/* Connection pool */
-typedef struct {
+struct proxy_conn_pool {
apr_pool_t *pool; /* The pool used in constructor and destructor calls */
apr_sockaddr_t *addr; /* Preparsed remote address info */
#if APR_HAS_THREADS
apr_reslist_t *res; /* Connection resource list */
#endif
- proxy_conn *conn; /* Single connection for prefork mpm's */
-} proxy_conn_pool;
+ proxy_conn_rec *conn; /* Single connection for prefork mpm's */
+};
/* Worker configuration */
-typedef struct {
+struct proxy_worker {
int status;
apr_time_t error_time; /* time of the last error */
apr_interval_time_t retry; /* retry interval */
@@ -229,10 +232,11 @@
proxy_conn_pool *cp; /* Connection pool to use */
void *opaque; /* per scheme worker data */
-} proxy_worker;
+};
/* Runtime worker status informations. Shared in scoreboard */
typedef struct {
+ proxy_balancer *b; /* balancer containing this worker */
proxy_worker *w;
double lbfactor; /* dynamic lbfactor */
double lbsatus; /* Current lbstatus */
@@ -352,9 +356,9 @@
PROXY_DECLARE(proxy_worker *) ap_proxy_get_worker(apr_pool_t *p, proxy_server_conf *conf, const char *url);
PROXY_DECLARE(const char *) ap_proxy_add_worker(proxy_worker **worker, apr_pool_t *p, proxy_server_conf *conf, const char *url);
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);
+PROXY_DECLARE(const char *) ap_proxy_add_balancer(proxy_balancer **balancer, apr_pool_t *p, proxy_server_conf *conf, const char *url);
+PROXY_DECLARE(void) ap_proxy_add_worker_to_balancer(proxy_balancer *balancer, proxy_worker *worker);
+PROXY_DECLARE(int) ap_proxy_pre_request(proxy_worker **worker, proxy_balancer **balancer, request_rec *r, proxy_server_conf *conf, char **url);
PROXY_DECLARE(apr_status_t) ap_proxy_determine_connection(apr_pool_t *p, request_rec *r, proxy_server_conf *conf, proxy_module_conf *mconf,
apr_pool_t *ppool, apr_uri_t *uri, char **url, const char *proxyname, apr_port_t proxyport,
char *server_portstr, int server_portstr_size);
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org