Author: rjung
Date: Sun Jan 13 08:18:59 2008
New Revision: 611589
URL: http://svn.apache.org/viewvc?rev=611589&view=rev
Log:
Refactor ajp13/ajp14 factories, move common parts into ajp_factory.
Modified:
tomcat/connectors/trunk/jk/native/common/jk_ajp13_worker.c
tomcat/connectors/trunk/jk/native/common/jk_ajp14_worker.c
tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c
tomcat/connectors/trunk/jk/native/common/jk_ajp_common.h
tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml
Modified: tomcat/connectors/trunk/jk/native/common/jk_ajp13_worker.c
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_ajp13_worker.c?rev=611589&r1=611588&r2=611589&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_ajp13_worker.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_ajp13_worker.c Sun Jan 13
08:18:59 2008
@@ -78,38 +78,17 @@
ajp_worker_t *aw;
JK_TRACE_ENTER(l);
- if (name == NULL || w == NULL) {
- JK_LOG_NULL_PARAMS(l);
- JK_TRACE_EXIT(l);
+ if (ajp_worker_factory(w, name, l) == JK_FALSE)
return 0;
- }
- aw = (ajp_worker_t *) calloc(1, sizeof(ajp_worker_t));
- if (!aw) {
- jk_log(l, JK_LOG_ERROR,
- "malloc of private_data failed");
- JK_TRACE_EXIT(l);
- return 0;
- }
-
- aw->name = name;
+ aw = (*w)->worker_private;
aw->proto = AJP13_PROTO;
- aw->login = NULL;
-
- aw->ep_cache_sz = 0;
- aw->ep_cache = NULL;
- aw->connect_retry_attempts = AJP_DEF_RETRY_ATTEMPTS;
- aw->worker.worker_private = aw;
aw->worker.validate = validate;
aw->worker.init = init;
aw->worker.get_endpoint = get_endpoint;
aw->worker.destroy = destroy;
- aw->worker.maintain = ajp_maintain;
-
- aw->logon = NULL; /* No Logon on AJP13 */
- *w = &aw->worker;
JK_TRACE_EXIT(l);
return JK_AJP13_WORKER_TYPE;
}
Modified: tomcat/connectors/trunk/jk/native/common/jk_ajp14_worker.c
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_ajp14_worker.c?rev=611589&r1=611588&r2=611589&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_ajp14_worker.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_ajp14_worker.c Sun Jan 13
08:18:59 2008
@@ -371,31 +371,10 @@
ajp_worker_t *aw;
JK_TRACE_ENTER(l);
-
- if (name == NULL || w == NULL) {
- JK_LOG_NULL_PARAMS(l);
- JK_TRACE_EXIT(l);
+ if (ajp_worker_factory(w, name, l) == JK_FALSE)
return 0;
- }
-
- aw = (ajp_worker_t *) calloc(1, sizeof(ajp_worker_t));
- if (!aw) {
- jk_log(l, JK_LOG_ERROR,
- "malloc of private data failed");
- JK_TRACE_EXIT(l);
- return 0;
- }
-
- aw->name = strdup(name);
-
- if (!aw->name) {
- free(aw);
- jk_log(l, JK_LOG_ERROR,
- "malloc failed for name");
- JK_TRACE_EXIT(l);
- return 0;
- }
+ aw = (*w)->worker_private;
aw->proto = AJP14_PROTO;
aw->login = (jk_login_service_t *)malloc(sizeof(jk_login_service_t));
@@ -413,19 +392,12 @@
(AJP14_CONTEXT_INFO_NEG | AJP14_PROTO_SUPPORT_AJP14_NEG);
aw->login->web_server_name = NULL; /* must be set in init */
- aw->ep_cache_sz = 0;
- aw->ep_cache = NULL;
- aw->connect_retry_attempts = AJP_DEF_RETRY_ATTEMPTS;
- aw->worker.worker_private = aw;
-
aw->worker.validate = validate;
aw->worker.init = init;
aw->worker.get_endpoint = get_endpoint;
aw->worker.destroy = destroy;
- aw->worker.maintain = ajp_maintain;
aw->logon = logon; /* LogOn Handler for AJP14 */
- *w = &aw->worker;
JK_TRACE_EXIT(l);
return JK_AJP14_WORKER_TYPE;
Modified: tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c?rev=611589&r1=611588&r2=611589&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c Sun Jan 13
08:18:59 2008
@@ -2471,6 +2471,48 @@
return rc;
}
+int JK_METHOD ajp_worker_factory(jk_worker_t **w,
+ const char *name, jk_logger_t *l)
+{
+ ajp_worker_t *aw;
+
+ JK_TRACE_ENTER(l);
+ if (name == NULL || w == NULL) {
+ JK_LOG_NULL_PARAMS(l);
+ JK_TRACE_EXIT(l);
+ return JK_FALSE;
+ }
+
+ aw = (ajp_worker_t *) calloc(1, sizeof(ajp_worker_t));
+ if (!aw) {
+ jk_log(l, JK_LOG_ERROR,
+ "malloc of private_data failed");
+ JK_TRACE_EXIT(l);
+ return JK_FALSE;
+ }
+
+ jk_open_pool(&aw->p,
+ aw->buf,
+ sizeof(jk_pool_atom_t) * TINY_POOL_SIZE);
+
+ strncpy(aw->name, name, JK_SHM_STR_SIZ);
+ aw->login = NULL;
+
+ aw->ep_cache_sz = 0;
+ aw->ep_cache = NULL;
+ aw->connect_retry_attempts = AJP_DEF_RETRY_ATTEMPTS;
+ aw->worker.worker_private = aw;
+
+ aw->worker.maintain = ajp_maintain;
+
+ aw->logon = NULL;
+
+ *w = &aw->worker;
+
+ JK_TRACE_EXIT(l);
+ return JK_TRUE;
+}
+
int ajp_destroy(jk_worker_t **pThis, jk_logger_t *l, int proto)
{
JK_TRACE_ENTER(l);
@@ -2500,6 +2542,7 @@
aw->login = NULL;
}
+ jk_close_pool(&aw->p);
free(aw);
JK_TRACE_EXIT(l);
return JK_TRUE;
@@ -2639,6 +2682,7 @@
JK_TRACE_EXIT(l);
return JK_TRUE;
}
+
JK_ENTER_CS(&aw->cs, rc);
if (rc) {
unsigned int n = 0, cnt = 0;
Modified: tomcat/connectors/trunk/jk/native/common/jk_ajp_common.h
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_ajp_common.h?rev=611589&r1=611588&r2=611589&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_ajp_common.h (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_ajp_common.h Sun Jan 13
08:18:59 2008
@@ -27,6 +27,7 @@
#include "jk_service.h"
#include "jk_msg_buff.h"
+#include "jk_shm.h"
#include "jk_mt.h"
#ifdef __cplusplus
@@ -232,9 +233,17 @@
struct ajp_worker
{
+ jk_worker_t worker;
+
+ char name[JK_SHM_STR_SIZ+1];
+
+ jk_pool_t p;
+ jk_pool_atom_t buf[TINY_POOL_SIZE];
+
+ JK_CRIT_SEC cs;
+
struct sockaddr_in worker_inet_addr; /* Contains host and port */
unsigned connect_retry_attempts;
- const char *name;
const char *host;
int port;
/*
@@ -244,7 +253,6 @@
* 2. Cache size.
* 3. An array of "open" endpoints.
*/
- JK_CRIT_SEC cs;
unsigned int ep_cache_sz;
unsigned int ep_mincache_sz;
unsigned int ep_maxcache_sz;
@@ -257,8 +265,6 @@
/* Weak secret similar with ajp12, used in ajp13 */
const char *secret;
- jk_worker_t worker;
-
/*
* Post physical connect handler.
* AJP14 will set here its login handler
@@ -355,6 +361,9 @@
int ajp_init(jk_worker_t *pThis,
jk_map_t *props,
jk_worker_env_t *we, jk_logger_t *l, int proto);
+
+int JK_METHOD ajp_worker_factory(jk_worker_t **w,
+ const char *name, jk_logger_t *l);
int ajp_destroy(jk_worker_t **pThis, jk_logger_t *l, int proto);
Modified: tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml?rev=611589&r1=611588&r2=611589&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml (original)
+++ tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml Sun Jan 13
08:18:59 2008
@@ -44,6 +44,10 @@
<subsection name="Native">
<changelog>
<update>
+ AJP: Refactor factories, move ajp13/ajp14 common parts into
+ ajp_factory. (rjung)
+ </update>
+ <update>
Status: Only sync shm worker config values of the workers
for which we changed values. (rjung)
</update>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]