You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by na...@apache.org on 2002/04/20 05:06:18 UTC

cvs commit: jakarta-tomcat-connectors/jk/native2/server/isapi isapi.def isapi.dsp jk_iis.h jk_isapi_plugin.c jk_service_iis.c

nacho       02/04/19 20:06:18

  Modified:    jk/native2/server/isapi isapi.dsp jk_iis.h jk_isapi_plugin.c
                        jk_service_iis.c
  Added:       jk/native2/server/isapi isapi.def
  Log:
  * Adding a def file
  * Delete references to apr from dsp
  * Compiles cleanly
  * added registry config server_root
  * deleted registry configs related to log, they are now on wk2.p
  * Some debug statements, dll doesnt load in my iis :( testers welcomed..
  * XXX : Probably we doesnt need registry settings related to uri_decode, we can set this info in wk2.p and dig then from config..
  
  Revision  Changes    Path
  1.4       +3 -10     jakarta-tomcat-connectors/jk/native2/server/isapi/isapi.dsp
  
  Index: isapi.dsp
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/server/isapi/isapi.dsp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- isapi.dsp	19 Apr 2002 23:08:53 -0000	1.3
  +++ isapi.dsp	20 Apr 2002 03:06:18 -0000	1.4
  @@ -73,13 +73,14 @@
   # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
   # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
   # ADD BASE RSC /l 0xc0a /d "_DEBUG"
  -# ADD RSC /l 0xc0a /d "_DEBUG"
  +# ADD RSC /l 0x409 /d "_DEBUG"
   BSC32=bscmake.exe
   # ADD BASE BSC32 /nologo
   # ADD BSC32 /nologo
   LINK32=link.exe
   # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
  -# ADD LINK32 libapr.lib libaprutil.lib kernel32.lib user32.lib advapi32.lib wsock32.lib /nologo /dll /debug /machine:I386 /out:"e:\tomcat\jakarta-tomcat\build\tomcat\bin\native\isapi_redirector2.dll" /pdbtype:sept /libpath:"$(APACHE20_HOME)\Release" /libpath:"$(APR_HOME)\apr\Release" /libpath:"$(APR_HOME)\apr-util\Release"
  +# ADD LINK32 kernel32.lib user32.lib advapi32.lib wsock32.lib /nologo /dll /debug /machine:I386 /out:"e:\tomcat\jakarta-tomcat\build\tomcat\bin\native\isapi_redirector2.dll" /pdbtype:sept /libpath:"$(APACHE20_HOME)\Release" /libpath:"$(APR_HOME)\apr\Release" /libpath:"$(APR_HOME)\apr-util\Release"
  +# SUBTRACT LINK32 /nodefaultlib
   
   !ENDIF 
   
  @@ -92,10 +93,6 @@
   # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
   # Begin Source File
   
  -SOURCE=..\..\common\jk_channel_apr_socket.c
  -# End Source File
  -# Begin Source File
  -
   SOURCE=..\..\common\jk_channel_socket.c
   # End Source File
   # Begin Source File
  @@ -145,10 +142,6 @@
   # Begin Source File
   
   SOURCE=..\..\common\jk_pool.c
  -# End Source File
  -# Begin Source File
  -
  -SOURCE=..\..\common\jk_pool_apr.c
   # End Source File
   # Begin Source File
   
  
  
  
  1.6       +8 -2      jakarta-tomcat-connectors/jk/native2/server/isapi/jk_iis.h
  
  Index: jk_iis.h
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/server/isapi/jk_iis.h,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- jk_iis.h	19 Apr 2002 23:08:53 -0000	1.5
  +++ jk_iis.h	20 Apr 2002 03:06:18 -0000	1.6
  @@ -106,7 +106,7 @@
   #define MAX_SERVERNAME                  128
   
   
  -#define GET_SERVER_VARIABLE_VALUE(name, place) {    \
  +#define GET_SERVER_VARIABLE_VALUE(pool, name, place) {    \
       (place) = NULL;                                 \
       huge_buf_sz = sizeof(huge_buf);                 \
       if (get_server_value(env,                       \
  @@ -115,7 +115,7 @@
                           huge_buf,                   \
                           huge_buf_sz,                \
                           "")) {                      \
  -        (place) = w->pool->pstrdup(env,w->pool,huge_buf);   \
  +        (place) = (pool)->pstrdup(env,(pool),huge_buf);   \
       }   \
   }\
   
  @@ -151,6 +151,12 @@
                    struct jk_worker *w, void *serverObj );
   
   int jk2_service_iis_init(jk_env_t *env, jk_ws_service_t *s);
  +
  +int get_server_value(struct jk_env *env, LPEXTENSION_CONTROL_BLOCK lpEcb,
  +                            char *name,
  +                            char  *buf,
  +                            DWORD bufsz,
  +                            char  *def_val);
   
   #ifdef __cplusplus
   }
  
  
  
  1.7       +72 -90    jakarta-tomcat-connectors/jk/native2/server/isapi/jk_isapi_plugin.c
  
  Index: jk_isapi_plugin.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/server/isapi/jk_isapi_plugin.c,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- jk_isapi_plugin.c	19 Apr 2002 23:08:53 -0000	1.6
  +++ jk_isapi_plugin.c	20 Apr 2002 03:06:18 -0000	1.7
  @@ -60,7 +60,7 @@
    * Author:      Gal Shachor <sh...@il.ibm.com>                           *
    * Author:      Larry Isaacs <la...@apache.org>                           *
    * Author:      Ignacio J. Ortega <na...@apache.org>                       *
  - * Version:     $Revision: 1.6 $                                           *
  + * Version:     $Revision: 1.7 $                                           *
    ***************************************************************************/
   
   // This define is needed to include wincrypt,h, needed to get client certificates
  @@ -82,9 +82,10 @@
   #include "jk_iis.h"
   //#include "jk_uri_worker_map.h"
   
  -#define EXTENSION_URI_TAG       ("extension_uri")
  +#define WORKERS_FILE_TAG       ("worker_file")
   #define SERVER_ROOT_TAG          ("server_root")
   #define URI_SELECT_TAG          ("uri_select")
  +#define EXTENSION_URI_TAG       ("extension_uri")
   
   #define URI_SELECT_PARSED_VERB      ("parsed")
   #define URI_SELECT_UNPARSED_VERB    ("unparsed")
  @@ -101,11 +102,11 @@
   
   
   static char extension_uri[INTERNET_MAX_URL_LENGTH] = "/jakarta/isapi_redirector2.dll";
  -static char log_file[MAX_PATH * 2];
  -static int  log_level = JK_LOG_EMERG_LEVEL;
  -//static char worker_file[MAX_PATH * 2];
  +static char worker_file[MAX_PATH * 2];
   static char server_root[MAX_PATH * 2];
  -//static char worker_mount_file[MAX_PATH * 2];
  +
  +FILE *fLog;
  +
   
   #define URI_SELECT_OPT_PARSED       0
   #define URI_SELECT_OPT_UNPARSED     1
  @@ -126,15 +127,10 @@
                                            DWORD sz);
   
   
  -static int get_server_value(LPEXTENSION_CONTROL_BLOCK lpEcb,
  -                            char *name,
  -                            char  *buf,
  -                            DWORD bufsz,
  -                            char  *def_val);
  -
   static jk_env_t* jk2_create_config();
   
   
  +
   static void write_error_response(PHTTP_FILTER_CONTEXT pfc,char *status,char * msg)
   {
       char crlf[3] = { (char)13, (char)10, '\0' };
  @@ -160,6 +156,7 @@
   {
       ULONG http_filter_revision = HTTP_FILTER_REVISION;
   
  +
       pVer->dwFilterVersion = pVer->dwServerFilterVersion;
                           
       if (pVer->dwFilterVersion > http_filter_revision) {
  @@ -175,9 +172,11 @@
       strcpy(pVer->lpszFilterDesc, VERSION_STRING);
   
       if (!is_inited) {
  +        fprintf(fLog,"GetFilterVersion::!is_inited\n");
           return initialize_extension();
       }
   
  +    fprintf(fLog,"GetFilterVersion::Return TRUE\n");
       return TRUE;
   }
   
  @@ -440,48 +439,54 @@
   	}
   
   	if (is_inited) {
  -            jk_ws_service_t sOnStack;
  -            jk_ws_service_t *s=&sOnStack;
  +        jk_ws_service_t sOnStack;
  +        jk_ws_service_t *s=&sOnStack;
  +        char *worker_name;
  +        char huge_buf[16 * 1024]; /* should be enough for all */
  +        DWORD huge_buf_sz;
   
  -            jk_worker_t *worker=workerEnv->defaultWorker;
  -            jk_pool_t *rPool=NULL;
  -            int rc1;
  -            
  -            /* Get a pool for the request XXX move it in workerEnv to
  -               be shared with other server adapters */
  -            rPool= worker->rPoolCache->get( env, worker->rPoolCache );
  -            if( rPool == NULL ) {
  -                rPool=worker->pool->create( env, worker->pool, HUGE_POOL_SIZE );
  -                env->l->jkLog(env, env->l, JK_LOG_INFO,
  -                              "mod_jk.handler(): new rpool\n");
  -            }
  +        
  +        jk_worker_t *worker;
  +        jk_pool_t *rPool=NULL;
  +        int rc1;
  +
  +        GET_SERVER_VARIABLE_VALUE(workerEnv->pool,HTTP_WORKER_HEADER_NAME, ( worker_name ));
  +        worker=workerEnv->worker_map->get(env,workerEnv->worker_map,worker_name);
  +        /* Get a pool for the request XXX move it in workerEnv to
  +           be shared with other server adapters */
  +        rPool= worker->rPoolCache->get( env, worker->rPoolCache );
  +        if( rPool == NULL ) {
  +            rPool=worker->pool->create( env, worker->pool, HUGE_POOL_SIZE );
  +            env->l->jkLog(env, env->l, JK_LOG_INFO,
  +                          "mod_jk.handler(): new rpool\n");
  +        }
  +
  +        jk2_service_iis_init( env, s );
  +        s->pool = rPool;
  +        s->is_recoverable_error = JK_FALSE;
  +        s->response_started = JK_FALSE;
  +        s->content_read = 0;
  +        s->ws_private = lpEcb;
   
  -            jk2_service_iis_init( env, s );
  -            s->pool = rPool;
  -            s->is_recoverable_error = JK_FALSE;
  -            s->response_started = JK_FALSE;
  -            s->content_read = 0;
  -            s->ws_private = lpEcb;
  -
  -            /* Initialize the ws_service structure */
  -            s->init( env, s, worker, lpEcb );
  -            
  -            /* env->l->jkLog(env, env->l,  JK_LOG_DEBUG, 
  -                   "HttpExtensionProc %s a worker for name %s\n", 
  -                   worker ? "got" : "could not get",
  -                   worker_name);
  -            */
  -            rc = worker->service(env, worker, s);
  -            
  -            s->afterRequest(env, s);
  -            
  -            rPool->reset(env, rPool);
  -            
  -            rc1=worker->rPoolCache->put( env, worker->rPoolCache, rPool );
  -            
  -            lpEcb->dwHttpStatusCode = HTTP_STATUS_OK;
  -            env->l->jkLog(env, env->l,  JK_LOG_DEBUG, 
  -                   "HttpExtensionProc service() returned OK\n");
  +        /* Initialize the ws_service structure */
  +        s->init( env, s, worker, lpEcb );
  +        
  +        /* env->l->jkLog(env, env->l,  JK_LOG_DEBUG, 
  +               "HttpExtensionProc %s a worker for name %s\n", 
  +               worker ? "got" : "could not get",
  +               worker_name);
  +        */
  +        rc = worker->service(env, worker, s);
  +        
  +        s->afterRequest(env, s);
  +        
  +        rPool->reset(env, rPool);
  +        
  +        rc1=worker->rPoolCache->put( env, worker->rPoolCache, rPool );
  +        
  +        lpEcb->dwHttpStatusCode = HTTP_STATUS_OK;
  +        env->l->jkLog(env, env->l,  JK_LOG_DEBUG, 
  +               "HttpExtensionProc service() returned OK\n");
       } else {
           env->l->jkLog(env, env->l,  JK_LOG_ERROR, 
                  "HttpExtensionProc error, not initialized\n");
  @@ -513,11 +518,14 @@
                       ULONG ulReason,         // Reason why NT called this DLL
                       LPVOID lpReserved)      // Reserved parameter for future use
   {
  -    BOOL fReturn = TRUE;
  +    BOOL fReturn = TRUE; 
       char drive[_MAX_DRIVE];
       char dir[_MAX_DIR];
       char fname[_MAX_FNAME];
       char file_name[_MAX_PATH];
  +    
  +    fLog=fopen("c:\\isapi.log","a");
  +    fprintf(fLog,"DllMain::ulReason=%d\n",ulReason);
   
       switch (ulReason) {
           case DLL_PROCESS_DETACH:
  @@ -536,7 +544,8 @@
       } else {
           fReturn = JK_FALSE;
       }
  -
  +    fprintf(fLog,"DllMain::fReturn=%d\n",fReturn);
  +    fclose(fLog);
       return fReturn;
   }
   
  @@ -553,21 +562,22 @@
       } else {
           env->l->jkLog(env, env->l,  JK_LOG_DEBUG, "Using registry.\n");
       }
  -    env->l->jkLog(env, env->l,  JK_LOG_DEBUG, "Using log file %s.\n", log_file);
  -    env->l->jkLog(env, env->l,  JK_LOG_DEBUG, "Using log level %d.\n", log_level);
  +    //env->l->jkLog(env, env->l,  JK_LOG_DEBUG, "Using log file %s.\n", log_file);
  +    //env->l->jkLog(env, env->l,  JK_LOG_DEBUG, "Using log level %d.\n", log_level);
       env->l->jkLog(env, env->l,  JK_LOG_DEBUG, "Using extension uri %s.\n", extension_uri);
       env->l->jkLog(env, env->l,  JK_LOG_DEBUG, "Using server root %s.\n", server_root);
  -//    env->l->jkLog(env, env->l,  JK_LOG_DEBUG, "Using worker mount file %s.\n", worker_mount_file);
  +    env->l->jkLog(env, env->l,  JK_LOG_DEBUG, "Using worker file %s.\n", worker_file);
       env->l->jkLog(env, env->l,  JK_LOG_DEBUG, "Using uri select %d.\n", uri_select_option);
       return rc;
   }
   
   static int initialize_extension(void)
   {
  -
  +    fprintf(fLog,"initialize_extension::is_inited=%d\n",is_inited);
       if (read_registry_init_data()) {
           is_inited = JK_TRUE;
       }
  +    fprintf(fLog,"initialize_extension::is_inited=%d\n",is_inited);
       return is_inited;
   }
   
  @@ -593,11 +603,11 @@
       char tmpbuf[INTERNET_MAX_URL_LENGTH];
       HKEY hkey;
       long rc;
  -    int  ok = JK_TRUE;
  +    int  ok = JK_TRUE; 
  +/*  
       char *tmp;
       jk_map_t *map;
   
  -/*
       if (map_alloc(&map)) {
           if (map_read_properties(map, ini_file_name)) {
               using_ini_file = JK_TRUE;
  @@ -638,7 +648,7 @@
               }
           }
       
  -    } else */ {
  +    } else  */{
           rc = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
                             REGISTRY_LOCATION,
                             (DWORD)0,
  @@ -649,24 +659,6 @@
           } 
   
           if(get_registry_config_parameter(hkey,
  -                                         JK_LOG_FILE_TAG, 
  -                                         tmpbuf,
  -                                         sizeof(log_file))) {
  -            strcpy(log_file, tmpbuf);
  -        } else {
  -            ok = JK_FALSE;
  -        }
  -    
  -        if(get_registry_config_parameter(hkey,
  -                                         JK_LOG_LEVEL_TAG,
  -                                         tmpbuf,
  -                                         sizeof(tmpbuf))) {
  -            log_level = jk2_logger_file_parseLogLevel(tmpbuf);
  -        } else {
  -            ok = JK_FALSE;
  -        }
  -
  -        if(get_registry_config_parameter(hkey,
                                            EXTENSION_URI_TAG,
                                            tmpbuf,
                                            sizeof(extension_uri))) {
  @@ -683,7 +675,6 @@
           } else {
               ok = JK_FALSE;
           }
  -/*
           if(get_registry_config_parameter(hkey,
                                            JK_WORKER_FILE_TAG,
                                            tmpbuf,
  @@ -694,15 +685,6 @@
           }
   
           if(get_registry_config_parameter(hkey,
  -                                         JK_MOUNT_FILE_TAG,
  -                                         tmpbuf,
  -                                         sizeof(worker_mount_file))) {
  -            strcpy(worker_mount_file, tmpbuf);
  -        } else {
  -            ok = JK_FALSE;
  -        }
  -*/
  -        if(get_registry_config_parameter(hkey,
                                            URI_SELECT_TAG, 
                                            tmpbuf,
                                            sizeof(tmpbuf))) {
  @@ -715,7 +697,7 @@
           }
   
           RegCloseKey(hkey);
  -    }    
  +    }
       return ok;
   } 
   
  
  
  
  1.9       +12 -14    jakarta-tomcat-connectors/jk/native2/server/isapi/jk_service_iis.c
  
  Index: jk_service_iis.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/server/isapi/jk_service_iis.c,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- jk_service_iis.c	19 Apr 2002 23:08:53 -0000	1.8
  +++ jk_service_iis.c	20 Apr 2002 03:06:18 -0000	1.9
  @@ -256,7 +256,7 @@
       return JK_FALSE;
   }
   
  -static int get_server_value(struct jk_env *env, LPEXTENSION_CONTROL_BLOCK lpEcb,
  +int get_server_value(struct jk_env *env, LPEXTENSION_CONTROL_BLOCK lpEcb,
                               char *name,
                               char  *buf,
                               DWORD bufsz,
  @@ -285,34 +285,32 @@
   /* */
   {
       LPEXTENSION_CONTROL_BLOCK  lpEcb=(LPEXTENSION_CONTROL_BLOCK)serverObj;
  -    char *worker_name;
       char huge_buf[16 * 1024]; /* should be enough for all */
   
       DWORD huge_buf_sz;
   
       s->jvm_route = NULL;
   
  -    GET_SERVER_VARIABLE_VALUE(HTTP_WORKER_HEADER_NAME, ( worker_name ));
  -    GET_SERVER_VARIABLE_VALUE(HTTP_URI_HEADER_NAME, s->req_uri);     
  -    GET_SERVER_VARIABLE_VALUE(HTTP_QUERY_HEADER_NAME, s->query_string);     
  +    GET_SERVER_VARIABLE_VALUE(w->pool,HTTP_URI_HEADER_NAME, s->req_uri);     
  +    GET_SERVER_VARIABLE_VALUE(w->pool,HTTP_QUERY_HEADER_NAME, s->query_string);     
       
       if (s->req_uri == NULL) {
           s->query_string = lpEcb->lpszQueryString;
           /* *worker_name    = DEFAULT_WORKER_NAME; */
  -        GET_SERVER_VARIABLE_VALUE("URL", s->req_uri);       
  +        GET_SERVER_VARIABLE_VALUE(w->pool,"URL", s->req_uri);       
           if (jk_requtil_unescapeUrl(s->req_uri) < 0)
               return JK_FALSE;
           jk_requtil_getParents(s->req_uri);
       }
       
  -    GET_SERVER_VARIABLE_VALUE("AUTH_TYPE", s->auth_type);
  -    GET_SERVER_VARIABLE_VALUE("REMOTE_USER", s->remote_user);
  -    GET_SERVER_VARIABLE_VALUE("SERVER_PROTOCOL", s->protocol);
  -    GET_SERVER_VARIABLE_VALUE("REMOTE_HOST", s->remote_host);
  -    GET_SERVER_VARIABLE_VALUE("REMOTE_ADDR", s->remote_addr);
  -    GET_SERVER_VARIABLE_VALUE(SERVER_NAME, s->server_name);
  +    GET_SERVER_VARIABLE_VALUE(w->pool,"AUTH_TYPE", s->auth_type);
  +    GET_SERVER_VARIABLE_VALUE(w->pool,"REMOTE_USER", s->remote_user);
  +    GET_SERVER_VARIABLE_VALUE(w->pool,"SERVER_PROTOCOL", s->protocol);
  +    GET_SERVER_VARIABLE_VALUE(w->pool,"REMOTE_HOST", s->remote_host);
  +    GET_SERVER_VARIABLE_VALUE(w->pool,"REMOTE_ADDR", s->remote_addr);
  +    GET_SERVER_VARIABLE_VALUE(w->pool,SERVER_NAME, s->server_name);
       GET_SERVER_VARIABLE_VALUE_INT("SERVER_PORT", s->server_port, 80);
  -    GET_SERVER_VARIABLE_VALUE(SERVER_SOFTWARE, s->server_software);
  +    GET_SERVER_VARIABLE_VALUE(w->pool,SERVER_SOFTWARE, s->server_software);
       GET_SERVER_VARIABLE_VALUE_INT("SERVER_PORT_SECURE", s->is_ssl, 0);
   
       s->method           = lpEcb->lpszMethod;
  @@ -358,7 +356,7 @@
           unsigned num_of_vars = 0;
   
           for(i = 0 ; i < 9 ; i++) {
  -            GET_SERVER_VARIABLE_VALUE(ssl_env_names[i], ssl_env_values[i]);
  +            GET_SERVER_VARIABLE_VALUE(w->pool,ssl_env_names[i], ssl_env_values[i]);
               if (ssl_env_values[i]) {
                   num_of_vars++;
               }
  
  
  
  1.1                  jakarta-tomcat-connectors/jk/native2/server/isapi/isapi.def
  
  Index: isapi.def
  ===================================================================
  LIBRARY	     "isapi_redirector2"
  
  EXPORTS
  	HttpFilterProc
  	GetFilterVersion
  	GetExtensionVersion
  	HttpExtensionProc	
  	TerminateFilter
  	TerminateExtension
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>