mturk       2005/02/06 09:43:10

  Modified:    jk/native/apache-1.3 Makefile.netware Makefile.vc mod_jk.dsp
               jk/native/apache-2.0 Makefile.vc NWGNUmakefile mod_jk.dsp
               jk/native/common jk_util.c jk_worker_list.h list.mk.in
               jk/native/iis isapi.dsp
               jk/native/netscape nsapi.dsp
  Added:       jk/native/common jk_status.c jk_status.h
  Log:
  Add jk_status worker for displaying and managing worker runtime data.
  
  Revision  Changes    Path
  1.5       +2 -0      
jakarta-tomcat-connectors/jk/native/apache-1.3/Makefile.netware
  
  Index: Makefile.netware
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/native/apache-1.3/Makefile.netware,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- Makefile.netware  28 Jul 2004 14:35:46 -0000      1.4
  +++ Makefile.netware  6 Feb 2005 17:43:09 -0000       1.5
  @@ -140,7 +140,9 @@
        $(OBJDIR)/jk_md5.o \
        $(OBJDIR)/jk_msg_buff.o \
        $(OBJDIR)/jk_pool.o \
  +     $(OBJDIR)/jk_shm.o \
        $(OBJDIR)/jk_sockbuf.o \
  +     $(OBJDIR)/jk_status.o \
        $(OBJDIR)/jk_uri_worker_map.o \
        $(OBJDIR)/jk_util.o \
        $(OBJDIR)/jk_worker.o \
  
  
  
  1.4       +8 -0      
jakarta-tomcat-connectors/jk/native/apache-1.3/Makefile.vc
  
  Index: Makefile.vc
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/native/apache-1.3/Makefile.vc,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Makefile.vc       5 Feb 2005 19:40:19 -0000       1.3
  +++ Makefile.vc       6 Feb 2005 17:43:09 -0000       1.4
  @@ -53,6 +53,7 @@
        [EMAIL PROTECTED] "$(INTDIR)\jk_pool.obj"
        [EMAIL PROTECTED] "$(INTDIR)\jk_shm.obj"
        [EMAIL PROTECTED] "$(INTDIR)\jk_sockbuf.obj"
  +     [EMAIL PROTECTED] "$(INTDIR)\jk_status.obj"
        [EMAIL PROTECTED] "$(INTDIR)\jk_uri_worker_map.obj"
        [EMAIL PROTECTED] "$(INTDIR)\jk_util.obj"
        [EMAIL PROTECTED] "$(INTDIR)\jk_worker.obj"
  @@ -90,6 +91,7 @@
        "$(INTDIR)\jk_pool.obj" \
        "$(INTDIR)\jk_shm.obj" \
        "$(INTDIR)\jk_sockbuf.obj" \
  +     "$(INTDIR)\jk_status.obj" \
        "$(INTDIR)\jk_uri_worker_map.obj" \
        "$(INTDIR)\jk_util.obj" \
        "$(INTDIR)\jk_worker.obj" \
  @@ -240,6 +242,12 @@
        $(CPP) $(CPP_PROJ) $(SOURCE)
   
   
  +SOURCE=..\common\jk_status.c
  +
  +"$(INTDIR)\jk_status.obj" : $(SOURCE) "$(INTDIR)"
  +     $(CPP) $(CPP_PROJ) $(SOURCE)
  +
  +
   SOURCE=..\common\jk_uri_worker_map.c
   
   "$(INTDIR)\jk_uri_worker_map.obj" : $(SOURCE) "$(INTDIR)"
  
  
  
  1.9       +8 -0      jakarta-tomcat-connectors/jk/native/apache-1.3/mod_jk.dsp
  
  Index: mod_jk.dsp
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/native/apache-1.3/mod_jk.dsp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- mod_jk.dsp        5 Feb 2005 19:40:19 -0000       1.8
  +++ mod_jk.dsp        6 Feb 2005 17:43:09 -0000       1.9
  @@ -156,6 +156,10 @@
   # End Source File
   # Begin Source File
   
  +SOURCE=..\common\jk_status.c
  +# End Source File
  +# Begin Source File
  +
   SOURCE=..\common\jk_uri_worker_map.c
   # End Source File
   # Begin Source File
  @@ -256,6 +260,10 @@
   # End Source File
   # Begin Source File
   
  +SOURCE=..\common\jk_status.h
  +# End Source File
  +# Begin Source File
  +
   SOURCE=..\common\jk_uri_worker_map.h
   # End Source File
   # Begin Source File
  
  
  
  1.4       +8 -0      
jakarta-tomcat-connectors/jk/native/apache-2.0/Makefile.vc
  
  Index: Makefile.vc
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/native/apache-2.0/Makefile.vc,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Makefile.vc       5 Feb 2005 19:40:19 -0000       1.3
  +++ Makefile.vc       6 Feb 2005 17:43:09 -0000       1.4
  @@ -53,6 +53,7 @@
        [EMAIL PROTECTED] "$(INTDIR)\jk_pool.obj"
        [EMAIL PROTECTED] "$(INTDIR)\jk_shm.obj"
        [EMAIL PROTECTED] "$(INTDIR)\jk_sockbuf.obj"
  +     [EMAIL PROTECTED] "$(INTDIR)\jk_status.obj"
        [EMAIL PROTECTED] "$(INTDIR)\jk_uri_worker_map.obj"
        [EMAIL PROTECTED] "$(INTDIR)\jk_util.obj"
        [EMAIL PROTECTED] "$(INTDIR)\jk_worker.obj"
  @@ -90,6 +91,7 @@
        "$(INTDIR)\jk_pool.obj" \
        "$(INTDIR)\jk_shm.obj" \
        "$(INTDIR)\jk_sockbuf.obj" \
  +     "$(INTDIR)\jk_status.obj" \
        "$(INTDIR)\jk_uri_worker_map.obj" \
        "$(INTDIR)\jk_util.obj" \
        "$(INTDIR)\jk_worker.obj" \
  @@ -240,6 +242,12 @@
        $(CPP) $(CPP_PROJ) $(SOURCE)
   
   
  +SOURCE=..\common\jk_status.c
  +
  +"$(INTDIR)\jk_status.obj" : $(SOURCE) "$(INTDIR)"
  +     $(CPP) $(CPP_PROJ) $(SOURCE)
  +
  +
   SOURCE=..\common\jk_uri_worker_map.c
   
   "$(INTDIR)\jk_uri_worker_map.obj" : $(SOURCE) "$(INTDIR)"
  
  
  
  1.6       +1 -0      
jakarta-tomcat-connectors/jk/native/apache-2.0/NWGNUmakefile
  
  Index: NWGNUmakefile
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/native/apache-2.0/NWGNUmakefile,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- NWGNUmakefile     5 Feb 2005 19:40:19 -0000       1.5
  +++ NWGNUmakefile     6 Feb 2005 17:43:09 -0000       1.6
  @@ -210,6 +210,7 @@
        $(OBJDIR)/jk_pool.o \
        $(OBJDIR)/jk_shm.o \
        $(OBJDIR)/jk_sockbuf.o \
  +     $(OBJDIR)/jk_status.o \
        $(OBJDIR)/jk_uri_worker_map.o \
        $(OBJDIR)/jk_util.o \
        $(OBJDIR)/jk_worker.o \
  
  
  
  1.10      +8 -0      jakarta-tomcat-connectors/jk/native/apache-2.0/mod_jk.dsp
  
  Index: mod_jk.dsp
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/native/apache-2.0/mod_jk.dsp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- mod_jk.dsp        5 Feb 2005 19:40:19 -0000       1.9
  +++ mod_jk.dsp        6 Feb 2005 17:43:09 -0000       1.10
  @@ -156,6 +156,10 @@
   # End Source File
   # Begin Source File
   
  +SOURCE=..\common\jk_status.c
  +# End Source File
  +# Begin Source File
  +
   SOURCE=..\common\jk_uri_worker_map.c
   # End Source File
   # Begin Source File
  @@ -260,6 +264,10 @@
   # End Source File
   # Begin Source File
   
  +SOURCE=..\common\jk_status.h
  +# End Source File
  +# Begin Source File
  +
   SOURCE=..\common\jk_uri_worker_map.h
   # End Source File
   # Begin Source File
  
  
  
  1.53      +3 -3      jakarta-tomcat-connectors/jk/native/common/jk_util.c
  
  Index: jk_util.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_util.c,v
  retrieving revision 1.52
  retrieving revision 1.53
  diff -u -r1.52 -r1.53
  --- jk_util.c 6 Feb 2005 13:30:34 -0000       1.52
  +++ jk_util.c 6 Feb 2005 17:43:09 -0000       1.53
  @@ -121,7 +121,7 @@
    */
   #if !defined(HAVE_VSNPRINTF) && !defined(HAVE_APR)
   static FILE *f = NULL;
  -int vsnprintf(char *str, size_t n, const char *fmt, va_list ap)
  +static int vsnprintf(char *str, size_t n, const char *fmt, va_list ap)
   {
       int res;
   
  @@ -141,7 +141,7 @@
   }
   #endif
   #if !defined(HAVE_SNPRINTF) && !defined(HAVE_APR)
  -int snprintf(char *str, size_t n, const char *fmt, ...)
  +static int snprintf(char *str, size_t n, const char *fmt, ...)
   {
       va_list ap;
       int res;
  
  
  
  1.12      +8 -1      
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.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- jk_worker_list.h  16 Dec 2004 08:42:19 -0000      1.11
  +++ jk_worker_list.h  6 Feb 2005 17:43:09 -0000       1.12
  @@ -46,6 +46,7 @@
   #include "jk_jni_worker.h"
   #endif
   #include "jk_lb_worker.h"
  +#include "jk_status.h"
   
   struct worker_factory_record
   {
  @@ -81,6 +82,12 @@
       {JK_LB_WORKER_NAME, lb_worker_factory},
   
       /*
  +     * Status worker. Performs display display and
  +     * worker management.
  +     */
  +    {JK_STATUS_WORKER_NAME, status_worker_factory},
  +
  +    /*
        * Marks the end of the worker factory list.
        */
       {NULL, NULL}
  
  
  
  1.9       +2 -1      jakarta-tomcat-connectors/jk/native/common/list.mk.in
  
  Index: list.mk.in
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/list.mk.in,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- list.mk.in        5 Feb 2005 19:40:19 -0000       1.8
  +++ list.mk.in        6 Feb 2005 17:43:09 -0000       1.9
  @@ -7,4 +7,5 @@
                   ${JK}jk_map${OEXT} ${JK}jk_uri_worker_map${OEXT} \
                   ${JK}jk_ajp14${OEXT} ${JK}jk_ajp14_worker${OEXT} \
                   ${JK}jk_md5${OEXT} ${JK}jk_shm${OEXT} @JK_JNI_WORKER@ \
  -                ${JK}jk_ajp_common${OEXT} ${JK}jk_context${OEXT}
  +                ${JK}jk_ajp_common${OEXT} ${JK}jk_context${OEXT} \
  +                ${JK}jk_status${OEXT}
  
  
  
  1.1                  jakarta-tomcat-connectors/jk/native/common/jk_status.c
  
  Index: jk_status.c
  ===================================================================
  /*
   *  Copyright 1999-2004 The Apache Software Foundation
   *
   *  Licensed under the Apache License, Version 2.0 (the "License");
   *  you may not use this file except in compliance with the License.
   *  You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
   *  Unless required by applicable law or agreed to in writing, software
   *  distributed under the License is distributed on an "AS IS" BASIS,
   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   *  See the License for the specific language governing permissions and
   *  limitations under the License.
   */
  
  /***************************************************************************
   * Description: Status worker, dispay and manages JK workers               *
   * Author:      Mladen Turk <[EMAIL PROTECTED]>                              *
   * Version:     $Revision: 1.1 $                                           *
   ***************************************************************************/
  
  #include "jk_pool.h"
  #include "jk_service.h"
  #include "jk_util.h"
  #include "jk_worker.h"
  #include "jk_status.h"
  #include "jk_mt.h"
  
  #define HUGE_BUFFER_SIZE (8*1024)
  
  typedef struct status_worker status_worker_t;
  
  struct status_endpoint
  {
      jk_endpoint_t   *e;
      status_worker_t *s_worker;
      jk_endpoint_t   endpoint;
  };
  
  typedef struct status_endpoint status_endpoint_t;
  
  struct status_worker
  {
      jk_pool_t         p;
      jk_pool_atom_t    buf[TINY_POOL_SIZE];
      const char        *name;
      jk_worker_t       worker;
      status_endpoint_t ep;
  };
  
  static const char *headers_names[] = {
      "Content-Type",
      "Cache-Control",
      "Pragma",
      NULL
  };
  
  static const char *headers_vals[] = {
      "text/html",
      "no-cache",
      "no-cache",
      NULL
  };
  
  #if !defined(HAVE_VSNPRINTF) && !defined(HAVE_APR)
  static FILE *f = NULL;
  static int vsnprintf(char *str, size_t n, const char *fmt, va_list ap)
  {
      int res;
  
      if (f == NULL)
          f = fopen("/dev/null", "w");
      if (f == NULL)
          return -1;
  
      setvbuf(f, str, _IOFBF, n);
  
      res = vfprintf(f, fmt, ap);
  
      if (res > 0 && res < n) {
          res = vsprintf(str, fmt, ap);
      }
      return res;
  }
  #endif
  
  int jk_printf(jk_ws_service_t *s, const char *fmt, ...)
  {
      int rc = 0;
      va_list args;
  #ifdef NETWARE
  /* On NetWare, this can get called on a thread that has a limited stack so */
  /* we will allocate and free the temporary buffer in this function         */
          char *buf;
  #else
          char buf[HUGE_BUFFER_SIZE];
  #endif
  
      if (!s || !fmt) {
          return -1;
      }
      va_start(args, fmt);
  
  #ifdef NETWARE
          buf = (char *)malloc(HUGE_BUFFER_SIZE);
          if (NULL == buf)
              return -1;
  #endif
  #ifdef USE_VSPRINTF             /* until we get a vsnprintf function */
      rc = vsprintf(buf, fmt, args);
  #else
      rc = vsnprintf(buf, HUGE_BUFFER_SIZE, fmt, args);
  #endif
      va_end(args);
      if (rc > 0)
          s->write(s, buf, rc);
  #ifdef NETWARE
          free(buf);
  #endif
      return rc;
  }
  
  static int JK_METHOD service(jk_endpoint_t *e,
                               jk_ws_service_t *s,
                               jk_logger_t *l, int *is_recoverable_error)
  {
      JK_TRACE_ENTER(l);
  
      if (e && e->endpoint_private && s) {
          status_endpoint_t *p = e->endpoint_private;
  
  
          JK_TRACE_EXIT(l);
          return JK_TRUE;
      }
  
      jk_log(l, JK_LOG_ERROR, "status: end of service with error");
      JK_TRACE_EXIT(l);
      return JK_FALSE;
  }
  
  static int JK_METHOD done(jk_endpoint_t **e, jk_logger_t *l)
  {
      JK_TRACE_ENTER(l);
  
      if (e && *e && (*e)->endpoint_private) {
          *e = NULL;
          JK_TRACE_EXIT(l);
          return JK_TRUE;
      }
  
      JK_LOG_NULL_PARAMS(l);
      JK_TRACE_EXIT(l);
      return JK_FALSE;
  }
  
  static int JK_METHOD validate(jk_worker_t *pThis,
                                jk_map_t *props,
                                jk_worker_env_t *we, jk_logger_t *l)
  {
      JK_TRACE_ENTER(l);
  
      if (pThis && pThis->worker_private) {
          status_worker_t *p = pThis->worker_private;
      }
  
      JK_LOG_NULL_PARAMS(l);
      JK_TRACE_EXIT(l);
      return JK_FALSE;
  }
  
  static int JK_METHOD init(jk_worker_t *pThis,
                            jk_map_t *props,
                            jk_worker_env_t *we, jk_logger_t *log)
  {
      status_worker_t *p = (status_worker_t *)pThis->worker_private;
      JK_TRACE_ENTER(log);
  
      JK_TRACE_EXIT(log);
      return JK_TRUE;
  }
  
  static int JK_METHOD get_endpoint(jk_worker_t *pThis,
                                    jk_endpoint_t **pend, jk_logger_t *l)
  {
      JK_TRACE_ENTER(l);
  
      if (pThis && pThis->worker_private && pend) {
          status_worker_t *p = (status_worker_t *)pThis->worker_private;
          *pend = p->ep.e;
          JK_TRACE_EXIT(l);
          return JK_TRUE;
      }
      else {
          JK_LOG_NULL_PARAMS(l);
      }
  
      JK_TRACE_EXIT(l);
      return JK_FALSE;
  }
  
  static int JK_METHOD destroy(jk_worker_t **pThis, jk_logger_t *l)
  {
      JK_TRACE_ENTER(l);
  
      if (pThis && *pThis && (*pThis)->worker_private) {
          status_worker_t *private_data = (*pThis)->worker_private;
  
          jk_close_pool(&private_data->p);
          free(private_data);
  
          JK_TRACE_EXIT(l);
          return JK_TRUE;
      }
  
      JK_LOG_NULL_PARAMS(l);
      JK_TRACE_EXIT(l);
      return JK_FALSE;
  }
  
  int JK_METHOD status_worker_factory(jk_worker_t **w,
                                      const char *name, jk_logger_t *l)
  {
      JK_TRACE_ENTER(l);
  
      if (NULL != name && NULL != w) {
          status_worker_t *private_data =
              (status_worker_t *) calloc(1, sizeof(status_worker_t));
  
          jk_open_pool(&private_data->p,
                          private_data->buf,
                          sizeof(jk_pool_atom_t) * TINY_POOL_SIZE);
  
          private_data->name = name;
  
          private_data->worker.worker_private = private_data;
          private_data->worker.validate = validate;
          private_data->worker.init = init;
          private_data->worker.get_endpoint = get_endpoint;
          private_data->worker.destroy = destroy;
          private_data->worker.retries = JK_RETRIES;
  
          /* Status worker has single static endpoint. */
          private_data->ep.endpoint.done = done;
          private_data->ep.endpoint.service = service;
          private_data->ep.endpoint.endpoint_private = &private_data->ep;
          private_data->ep.e = &(private_data->ep.endpoint);
          private_data->ep.s_worker = private_data;
          *w = &private_data->worker;
          JK_TRACE_EXIT(l);
          return JK_TRUE;
      }
      else {
          JK_LOG_NULL_PARAMS(l);
      }
  
      JK_TRACE_EXIT(l);
      return JK_FALSE;
  }
  
  
  
  1.1                  jakarta-tomcat-connectors/jk/native/common/jk_status.h
  
  Index: jk_status.h
  ===================================================================
  /*
   *  Copyright 1999-2004 The Apache Software Foundation
   *
   *  Licensed under the Apache License, Version 2.0 (the "License");
   *  you may not use this file except in compliance with the License.
   *  You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
   *  Unless required by applicable law or agreed to in writing, software
   *  distributed under the License is distributed on an "AS IS" BASIS,
   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   *  See the License for the specific language governing permissions and
   *  limitations under the License.
   */
  
  /***************************************************************************
   * Description: Status worker header file                                  *
   * Author:      Mladen Turk <[EMAIL PROTECTED]>                              
* 
   * Version:     $Revision: 1.1 $                                           *
   ***************************************************************************/
  
  #ifndef JK_STATUS_H
  #define JK_STATUS_H
  
  #include "jk_logger.h"
  #include "jk_service.h"
  
  #ifdef __cplusplus
  extern "C"
  {
  #endif                          /* __cplusplus */
  
  #define JK_STATUS_WORKER_NAME     ("status")
  #define JK_STATUS_DEF_DOMAIN_NAME ("unknown")
  
  int JK_METHOD status_worker_factory(jk_worker_t **w,
                                      const char *name, jk_logger_t *l);
  
  #ifdef __cplusplus
  }
  #endif                          /* __cplusplus */
  #endif                          /* JK_STATUS_H */
  
  
  
  1.12      +8 -0      jakarta-tomcat-connectors/jk/native/iis/isapi.dsp
  
  Index: isapi.dsp
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/iis/isapi.dsp,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- isapi.dsp 5 Feb 2005 19:40:19 -0000       1.11
  +++ isapi.dsp 6 Feb 2005 17:43:09 -0000       1.12
  @@ -164,6 +164,10 @@
   # End Source File
   # Begin Source File
   
  +SOURCE=..\common\jk_status.c
  +# End Source File
  +# Begin Source File
  +
   SOURCE=..\common\jk_uri_worker_map.c
   # End Source File
   # Begin Source File
  @@ -260,6 +264,10 @@
   # End Source File
   # Begin Source File
   
  +SOURCE=..\common\jk_status.h
  +# End Source File
  +# Begin Source File
  +
   SOURCE=..\common\jk_uri_worker_map.h
   # End Source File
   # Begin Source File
  
  
  
  1.11      +8 -0      jakarta-tomcat-connectors/jk/native/netscape/nsapi.dsp
  
  Index: nsapi.dsp
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/netscape/nsapi.dsp,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- nsapi.dsp 5 Feb 2005 19:40:19 -0000       1.10
  +++ nsapi.dsp 6 Feb 2005 17:43:09 -0000       1.11
  @@ -162,6 +162,10 @@
   # End Source File
   # Begin Source File
   
  +SOURCE=..\common\jk_status.c
  +# End Source File
  +# Begin Source File
  +
   SOURCE=..\common\jk_uri_worker_map.c
   # End Source File
   # Begin Source File
  @@ -250,6 +254,10 @@
   # End Source File
   # Begin Source File
   
  +SOURCE=..\common\jk_status.h
  +# End Source File
  +# Begin Source File
  +
   SOURCE=..\common\jk_uri_worker_map.h
   # End Source File
   # Begin Source File
  
  
  

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

Reply via email to