mturk 2005/02/15 00:52:54 Modified: jk/native/common jk_ajp12_worker.c jk_ajp12_worker.h jk_ajp13_worker.c jk_ajp13_worker.h jk_ajp14_worker.c jk_ajp14_worker.h jk_jni_worker.c jk_jni_worker.h jk_lb_worker.c jk_lb_worker.h jk_service.h jk_status.c jk_status.h jk_worker.c jk_worker_list.h Log: Make worker factory to return the numeric type of the worker, and use that type instead of string. Revision Changes Path 1.22 +3 -3 jakarta-tomcat-connectors/jk/native/common/jk_ajp12_worker.c Index: jk_ajp12_worker.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_ajp12_worker.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- jk_ajp12_worker.c 15 Feb 2005 07:17:17 -0000 1.21 +++ jk_ajp12_worker.c 15 Feb 2005 08:52:53 -0000 1.22 @@ -260,7 +260,7 @@ private_data->worker.retries = JK_RETRIES; *w = &private_data->worker; - return JK_TRUE; + return JK_AJP12_WORKER_TYPE; } free(private_data); @@ -271,7 +271,7 @@ jk_log(l, JK_LOG_ERROR, "In ajp12_worker_factory, NULL parameters"); } - return JK_FALSE; + return 0; } static int ajpv12_sendnbytes(ajp12_endpoint_t * p, 1.9 +2 -1 jakarta-tomcat-connectors/jk/native/common/jk_ajp12_worker.h Index: jk_ajp12_worker.h =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_ajp12_worker.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- jk_ajp12_worker.h 8 Nov 2004 13:23:25 -0000 1.8 +++ jk_ajp12_worker.h 15 Feb 2005 08:52:53 -0000 1.9 @@ -32,6 +32,7 @@ #endif /* __cplusplus */ #define JK_AJP12_WORKER_NAME ("ajp12") +#define JK_AJP12_WORKER_TYPE (1) int JK_METHOD ajp12_worker_factory(jk_worker_t **w, const char *name, jk_logger_t *l); 1.24 +4 -4 jakarta-tomcat-connectors/jk/native/common/jk_ajp13_worker.c Index: jk_ajp13_worker.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_ajp13_worker.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- jk_ajp13_worker.c 6 Feb 2005 13:45:11 -0000 1.23 +++ jk_ajp13_worker.c 15 Feb 2005 08:52:53 -0000 1.24 @@ -84,7 +84,7 @@ if (name == NULL || w == NULL) { JK_LOG_NULL_PARAMS(l); JK_TRACE_EXIT(l); - return JK_FALSE; + return 0; } aw = (ajp_worker_t *) calloc(1, sizeof(ajp_worker_t)); @@ -92,7 +92,7 @@ jk_log(l, JK_LOG_ERROR, "malloc of private_data failed"); JK_TRACE_EXIT(l); - return JK_FALSE; + return 0; } aw->name = name; @@ -114,5 +114,5 @@ *w = &aw->worker; JK_TRACE_EXIT(l); - return JK_TRUE; + return JK_AJP13_WORKER_TYPE; } 1.11 +2 -1 jakarta-tomcat-connectors/jk/native/common/jk_ajp13_worker.h Index: jk_ajp13_worker.h =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_ajp13_worker.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- jk_ajp13_worker.h 8 Nov 2004 13:24:46 -0000 1.10 +++ jk_ajp13_worker.h 15 Feb 2005 08:52:53 -0000 1.11 @@ -37,6 +37,7 @@ #endif /* __cplusplus */ #define JK_AJP13_WORKER_NAME ("ajp13") +#define JK_AJP13_WORKER_TYPE (2) int JK_METHOD ajp13_worker_factory(jk_worker_t **w, const char *name, jk_logger_t *l); 1.28 +6 -6 jakarta-tomcat-connectors/jk/native/common/jk_ajp14_worker.c Index: jk_ajp14_worker.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_ajp14_worker.c,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- jk_ajp14_worker.c 6 Feb 2005 13:45:11 -0000 1.27 +++ jk_ajp14_worker.c 15 Feb 2005 08:52:53 -0000 1.28 @@ -376,7 +376,7 @@ if (name == NULL || w == NULL) { JK_LOG_NULL_PARAMS(l); JK_TRACE_EXIT(l); - return JK_FALSE; + return 0; } aw = (ajp_worker_t *) calloc(1, sizeof(ajp_worker_t)); @@ -384,7 +384,7 @@ jk_log(l, JK_LOG_ERROR, "malloc of private data failed"); JK_TRACE_EXIT(l); - return JK_FALSE; + return 0; } aw->name = strdup(name); @@ -394,7 +394,7 @@ jk_log(l, JK_LOG_ERROR, "malloc failed for name"); JK_TRACE_EXIT(l); - return JK_FALSE; + return 0; } aw->proto = AJP14_PROTO; @@ -405,7 +405,7 @@ jk_log(l, JK_LOG_ERROR, "malloc failed for login area"); JK_TRACE_EXIT(l); - return JK_FALSE; + return 0; } memset(aw->login, 0, sizeof(jk_login_service_t)); @@ -429,5 +429,5 @@ *w = &aw->worker; JK_TRACE_EXIT(l); - return JK_TRUE; + return JK_AJP14_WORKER_TYPE; } 1.13 +2 -1 jakarta-tomcat-connectors/jk/native/common/jk_ajp14_worker.h Index: jk_ajp14_worker.h =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_ajp14_worker.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- jk_ajp14_worker.h 8 Nov 2004 13:26:45 -0000 1.12 +++ jk_ajp14_worker.h 15 Feb 2005 08:52:53 -0000 1.13 @@ -39,6 +39,7 @@ #endif /* __cplusplus */ #define JK_AJP14_WORKER_NAME ("ajp14") +#define JK_AJP14_WORKER_TYPE (3) int JK_METHOD ajp14_worker_factory(jk_worker_t **w, const char *name, jk_logger_t *l); 1.32 +6 -6 jakarta-tomcat-connectors/jk/native/common/jk_jni_worker.c Index: jk_jni_worker.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_jni_worker.c,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- jk_jni_worker.c 7 Feb 2005 16:35:15 -0000 1.31 +++ jk_jni_worker.c 15 Feb 2005 08:52:53 -0000 1.32 @@ -639,7 +639,7 @@ if (!name || !w) { JK_LOG_NULL_PARAMS(l); JK_TRACE_EXIT(l); - return JK_FALSE; + return 0; } if (the_singleton_jni_worker) { @@ -647,7 +647,7 @@ "instance already created"); *w = the_singleton_jni_worker; JK_TRACE_EXIT(l); - return JK_TRUE; + return JK_JNI_WORKER_TYPE; } private_data = (jni_worker_t *) malloc(sizeof(jni_worker_t)); @@ -656,7 +656,7 @@ jk_log(l, JK_LOG_ERROR, "memory allocation error"); JK_TRACE_EXIT(l); - return JK_FALSE; + return 0; } jk_open_pool(&private_data->p, @@ -670,7 +670,7 @@ jk_close_pool(&private_data->p); free(private_data); JK_TRACE_EXIT(l); - return JK_FALSE; + return 0; } private_data->was_verified = JK_FALSE; @@ -707,7 +707,7 @@ the_singleton_jni_worker = &private_data->worker; JK_TRACE_EXIT(l); - return JK_TRUE; + return JK_JNI_WORKER_TYPE; } static int load_jvm_dll(jni_worker_t * p, jk_logger_t *l) 1.9 +3 -2 jakarta-tomcat-connectors/jk/native/common/jk_jni_worker.h Index: jk_jni_worker.h =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_jni_worker.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- jk_jni_worker.h 8 Nov 2004 13:29:52 -0000 1.8 +++ jk_jni_worker.h 15 Feb 2005 08:52:53 -0000 1.9 @@ -31,7 +31,8 @@ { #endif /* __cplusplus */ -#define JK_JNI_WORKER_NAME ("jni") +#define JK_JNI_WORKER_NAME ("jni") +#define JK_JNI_WORKER_TYPE (4) int JK_METHOD jni_worker_factory(jk_worker_t **w, const char *name, jk_logger_t *l); 1.50 +4 -4 jakarta-tomcat-connectors/jk/native/common/jk_lb_worker.c Index: jk_lb_worker.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_lb_worker.c,v retrieving revision 1.49 retrieving revision 1.50 diff -u -r1.49 -r1.50 --- jk_lb_worker.c 15 Feb 2005 07:25:41 -0000 1.49 +++ jk_lb_worker.c 15 Feb 2005 08:52:53 -0000 1.50 @@ -785,7 +785,7 @@ if (!private_data->s) { free(private_data); JK_TRACE_EXIT(l); - return JK_FALSE; + return 0; } strncpy(private_data->s->name, name, JK_SHM_STR_SIZ); private_data->lb_workers = NULL; @@ -800,12 +800,12 @@ private_data->s->recover_wait_time = WAIT_BEFORE_RECOVER; *w = &private_data->worker; JK_TRACE_EXIT(l); - return JK_TRUE; + return JK_LB_WORKER_TYPE; } else { JK_LOG_NULL_PARAMS(l); } JK_TRACE_EXIT(l); - return JK_FALSE; + return 0; } 1.11 +2 -1 jakarta-tomcat-connectors/jk/native/common/jk_lb_worker.h Index: jk_lb_worker.h =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_lb_worker.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- jk_lb_worker.h 14 Feb 2005 17:22:35 -0000 1.10 +++ jk_lb_worker.h 15 Feb 2005 08:52:53 -0000 1.11 @@ -34,6 +34,7 @@ #endif /* __cplusplus */ #define JK_LB_WORKER_NAME ("lb") +#define JK_LB_WORKER_TYPE (5) #define JK_LB_DEF_DOMAIN_NAME ("unknown") struct worker_record 1.28 +2 -2 jakarta-tomcat-connectors/jk/native/common/jk_service.h Index: jk_service.h =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_service.h,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- jk_service.h 14 Feb 2005 17:26:34 -0000 1.27 +++ jk_service.h 15 Feb 2005 08:52:53 -0000 1.28 @@ -364,7 +364,7 @@ */ void *worker_private; - const char *type; + int type; /* * For all of the below (except destroy), the first argument is * essentially a 'this' pointer. 1.7 +30 -11 jakarta-tomcat-connectors/jk/native/common/jk_status.c Index: jk_status.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_status.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- jk_status.c 15 Feb 2005 07:27:46 -0000 1.6 +++ jk_status.c 15 Feb 2005 08:52:53 -0000 1.7 @@ -29,6 +29,8 @@ #include "jk_shm.h" #include "jk_ajp_common.h" #include "jk_lb_worker.h" +#include "jk_ajp13_worker.h" +#include "jk_ajp14_worker.h" #include "jk_connect.h" #define HUGE_BUFFER_SIZE (8*1024) @@ -61,6 +63,17 @@ jk_worker_env_t *we; }; +static const char *worker_type[] = { + "unknown", + "ajp12", + "ajp13", + "ajp14", + "jni", + "lb", + "status", + NULL +}; + static const char *headers_names[] = { "Content-Type", "Cache-Control", @@ -170,6 +183,14 @@ } while (1);
} +static const char *status_worker_type(int t) +{ + if (t > 0 && t < 7) + t = 0; + return worker_type[t]; +} + + static const char *status_val_bool(int v) { if (v == 0) @@ -240,13 +261,11 @@ lb_worker_t *lb = NULL; if (w == NULL) continue; - if (!strcasecmp(w->type, "lb")) { + if (w->type == JK_LB_WORKER_TYPE) { lb = (lb_worker_t *)w->worker_private; } - else if (!strcasecmp(w->type, "ajp13")) { - aw = (ajp_worker_t *)w->worker_private; - } - else if (!strcasecmp(w->type, "ajp14")) { + else if (w->type == JK_AJP13_WORKER_TYPE || + w->type == JK_AJP14_WORKER_TYPE) { aw = (ajp_worker_t *)w->worker_private; } else { @@ -265,7 +284,7 @@ "<th>Local worker only</th>" "<th>Retries</th>" "</tr>\n<tr>"); - jk_putv(s, "<td>", w->type, "</td>", NULL); + jk_putv(s, "<td>", status_worker_type(w->type), "</td>", NULL); jk_putv(s, "<td>", status_val_bool(lb->s->sticky_session), "</td>", NULL); jk_putv(s, "<td>", status_val_bool(lb->s->local_worker_only), @@ -285,7 +304,7 @@ wr->s->name, "</td>", NULL); if (dworker && strcmp(dworker, wr->s->name) == 0) selected = j; - jk_putv(s, "<td>", wr->w->type, "</td>", NULL); + jk_putv(s, "<td>", status_worker_type(wr->w->type), "</td>", NULL); jk_printf(s, "<td>%s:%d</td>", a->host, a->port); jk_putv(s, "<td>", jk_dump_hinfo(&a->worker_inet_addr, buf), "</td>", NULL); @@ -344,7 +363,7 @@ jk_puts(s, "\n\n<table border=\"0\"><tr>" "<th>Type</th><th>Host</th><th>Addr</th>" "</tr>\n<tr>"); - jk_putv(s, "<td>", w->type, "</td>", NULL); + jk_putv(s, "<td>", status_worker_type(w->type), "</td>", NULL); jk_puts(s, "</tr>\n</table>\n"); jk_printf(s, "<td>%s:%d</td>", aw->host, aw->port); jk_putv(s, "<td>", jk_dump_hinfo(&aw->worker_inet_addr, buf), @@ -575,12 +594,12 @@ private_data->ep.s_worker = private_data; *w = &private_data->worker; JK_TRACE_EXIT(l); - return JK_TRUE; + return JK_STATUS_WORKER_TYPE; } else { JK_LOG_NULL_PARAMS(l); } JK_TRACE_EXIT(l); - return JK_FALSE; + return 0; } 1.2 +2 -2 jakarta-tomcat-connectors/jk/native/common/jk_status.h Index: jk_status.h =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_status.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- jk_status.h 6 Feb 2005 17:43:09 -0000 1.1 +++ jk_status.h 15 Feb 2005 08:52:53 -0000 1.2 @@ -32,7 +32,7 @@ #endif /* __cplusplus */ #define JK_STATUS_WORKER_NAME ("status") -#define JK_STATUS_DEF_DOMAIN_NAME ("unknown") +#define JK_STATUS_WORKER_TYPE (6) int JK_METHOD status_worker_factory(jk_worker_t **w, const char *name, jk_logger_t *l); 1.31 +4 -3 jakarta-tomcat-connectors/jk/native/common/jk_worker.c Index: jk_worker.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_worker.c,v retrieving revision 1.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- jk_worker.c 14 Feb 2005 17:26:34 -0000 1.30 +++ jk_worker.c 15 Feb 2005 08:52:54 -0000 1.31 @@ -110,6 +110,7 @@ jk_worker_t *w = NULL; unsigned int i, num_of_maps; char **map_names; + int wtype; *rc = NULL; @@ -125,7 +126,7 @@ "about to create instance %s of %s", name, type); - if (!fac(&w, name, l) || !w) { + if (((wtype = fac(&w, name, l)) == 0) || !w) { jk_log(l, JK_LOG_ERROR, "factory for %s failed for %s", type, name); @@ -169,7 +170,7 @@ } } } - w->type = type; + w->type = wtype; *rc = w; JK_TRACE_EXIT(l); return JK_TRUE; 1.13 +9 -8 jakarta-tomcat-connectors/jk/native/common/jk_worker_list.h Index: jk_worker_list.h =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_worker_list.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- jk_worker_list.h 6 Feb 2005 17:43:09 -0000 1.12 +++ jk_worker_list.h 15 Feb 2005 08:52:54 -0000 1.13 @@ -51,6 +51,7 @@ struct worker_factory_record { const char *name; + int type; worker_factory fac; }; typedef struct worker_factory_record worker_factory_record_t; @@ -59,38 +60,38 @@ /* * AJPv12 worker, this is the stable worker. */ - {JK_AJP12_WORKER_NAME, ajp12_worker_factory}, + {JK_AJP12_WORKER_NAME, JK_AJP12_WORKER_TYPE, ajp12_worker_factory}, /* * AJPv13 worker, fast bi-directional worker. */ - {JK_AJP13_WORKER_NAME, ajp13_worker_factory}, + {JK_AJP13_WORKER_NAME, JK_AJP13_WORKER_TYPE, ajp13_worker_factory}, /* * AJPv14 worker, next generation fast bi-directional worker. */ - {JK_AJP14_WORKER_NAME, ajp14_worker_factory}, + {JK_AJP14_WORKER_NAME, JK_AJP14_WORKER_TYPE, ajp14_worker_factory}, /* * In process JNI based worker. Requires the server to be * multithreaded and to use native threads. */ #ifdef HAVE_JNI - {JK_JNI_WORKER_NAME, jni_worker_factory}, + {JK_JNI_WORKER_NAME, JK_JNI_WORKER_TYPE, jni_worker_factory}, #endif /* * Load balancing worker. Performs round robin with sticky * session load balancing. */ - {JK_LB_WORKER_NAME, lb_worker_factory}, + {JK_LB_WORKER_NAME, JK_LB_WORKER_TYPE, lb_worker_factory}, /* * Status worker. Performs display display and * worker management. */ - {JK_STATUS_WORKER_NAME, status_worker_factory}, + {JK_STATUS_WORKER_NAME, JK_STATUS_WORKER_TYPE, status_worker_factory}, /* * Marks the end of the worker factory list. */ - {NULL, NULL} + {NULL, 0, NULL} }; #endif /* _JK_WORKER_LIST_H */ #endif /* _PLACE_WORKER_LIST_HERE */ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]