Mladen, there are 2 ways to configure i_r2.dll, with a properties file in the same dir where the dll resides, and using the registry, i'm all to this patch but i like to see it configurable in the p file aswell, right now this needs to have jk2 inited as is using jk2 own p files reading methods, using jk2 pools and map objets and so on , see read_registry_init_data in jk_isapi_plugin.c..,
Saludos , Ignacio J. Ortega > -----Mensaje original----- > De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] > Enviado el: 6 de julio de 2002 10:06 > Para: [EMAIL PROTECTED] > Asunto: cvs commit: jakarta-tomcat-connectors/jk/native2/server/isapi > jk_isapi_plugin.c > > > mturk 2002/07/06 01:05:49 > > Modified: jk/native2/server/isapi jk_isapi_plugin.c > Log: > Fix the Q250397 bug introducing authComplete registry param > that one when set enables the SF_NOTIFY_AUTH_COMPLETE > filter notification. > Remove the iis5 version checking acordingly using new approach. > > Revision Changes Path > 1.35 +83 -46 > 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.34 > retrieving revision 1.35 > diff -u -r1.34 -r1.35 > --- jk_isapi_plugin.c 5 Jul 2002 08:12:09 -0000 1.34 > +++ jk_isapi_plugin.c 6 Jul 2002 08:05:49 -0000 1.35 > @@ -85,6 +85,7 @@ > #define SERVER_ROOT_TAG ("serverRoot") > #define EXTENSION_URI_TAG ("extensionUri") > #define WORKERS_FILE_TAG ("workersFile") > +#define USE_AUTH_COMP_TAG ("authComplete") > > > static char file_name[_MAX_PATH]; > @@ -93,7 +94,7 @@ > static int is_inited = JK_FALSE; > static int is_mapread = JK_FALSE; > static int was_inited = JK_FALSE; > -static int iis5 = -1; > +static int auth_notification_flags = 0; > > static jk_workerEnv_t *workerEnv; > static apr_pool_t *jk_globalPool; > @@ -117,7 +118,7 @@ > > > static jk_env_t* jk2_create_config(); > - > +static int get_auth_flags(); > > > static void write_error_response(PHTTP_FILTER_CONTEXT > pfc,char *status,char * msg) > @@ -151,20 +152,23 @@ > if (pVer->dwFilterVersion > http_filter_revision) { > pVer->dwFilterVersion = http_filter_revision; > } > - > + auth_notification_flags = get_auth_flags(); > #ifdef SF_NOTIFY_AUTH_COMPLETE > - > - pVer->dwFlags = SF_NOTIFY_ORDER_HIGH | > - SF_NOTIFY_SECURE_PORT | > - SF_NOTIFY_NONSECURE_PORT | > - SF_NOTIFY_PREPROC_HEADERS | > - SF_NOTIFY_AUTH_COMPLETE; > -#else > - pVer->dwFlags = SF_NOTIFY_ORDER_HIGH | > - SF_NOTIFY_SECURE_PORT | > - SF_NOTIFY_NONSECURE_PORT | > - SF_NOTIFY_PREPROC_HEADERS; > + if (auth_notification_flags == SF_NOTIFY_AUTH_COMPLETE) { > + pVer->dwFlags = SF_NOTIFY_ORDER_HIGH | > + SF_NOTIFY_SECURE_PORT | > + SF_NOTIFY_NONSECURE_PORT | > + SF_NOTIFY_PREPROC_HEADERS | > + SF_NOTIFY_AUTH_COMPLETE; > + } > + else > #endif > + { > + pVer->dwFlags = SF_NOTIFY_ORDER_HIGH | > + SF_NOTIFY_SECURE_PORT | > + SF_NOTIFY_NONSECURE_PORT | > + SF_NOTIFY_PREPROC_HEADERS; > + } > > strcpy(pVer->lpszFilterDesc, VERSION_STRING); > > @@ -201,28 +205,8 @@ > } > if (is_inited && is_mapread) { > env = workerEnv->globalEnv->getEnv( workerEnv->globalEnv ); > - if (is_inited && (iis5 < 0) ) { > - char serverSoftware[256]; > - DWORD dwLen = sizeof(serverSoftware); > - iis5=0; > - if > (pfc->GetServerVariable(pfc,SERVER_SOFTWARE, serverSoftware, &dwLen)){ > - iis5=(atof(serverSoftware + 14) >= 5.0); > - if (iis5) { > - env->l->jkLog(env, env->l, > JK_LOG_INFO,"Detected IIS >= 5.0\n"); > - } else { > - env->l->jkLog(env, env->l, > JK_LOG_INFO,"Detected IIS < 5.0\n"); > - } > - } > - } > -#ifdef SF_NOTIFY_AUTH_COMPLETE > - if (is_inited && > - (((SF_NOTIFY_PREPROC_HEADERS == > dwNotificationType) && !iis5) || > - ((SF_NOTIFY_AUTH_COMPLETE == > dwNotificationType) && iis5) > - ) > - ) > -#else > - if (is_inited && (SF_NOTIFY_PREPROC_HEADERS == > dwNotificationType)) > -#endif > + > + if (auth_notification_flags == dwNotificationType) > { > char uri[INTERNET_MAX_URL_LENGTH]; > char snuri[INTERNET_MAX_URL_LENGTH]="/"; > @@ -240,22 +224,18 @@ > DWORD szTranslate = sizeof(Translate); > > #ifdef SF_NOTIFY_AUTH_COMPLETE > - if (iis5) { > + if (auth_notification_flags == > SF_NOTIFY_AUTH_COMPLETE) { > > GetHeader=((PHTTP_FILTER_AUTH_COMPLETE_INFO)pvNotification)->G > etHeader; > > SetHeader=((PHTTP_FILTER_AUTH_COMPLETE_INFO)pvNotification)->S > etHeader; > > AddHeader=((PHTTP_FILTER_AUTH_COMPLETE_INFO)pvNotification)->A > ddHeader; > - } else { > + } > + else > +#endif > + { > > GetHeader=((PHTTP_FILTER_PREPROC_HEADERS)pvNotification)->GetHeader; > > SetHeader=((PHTTP_FILTER_PREPROC_HEADERS)pvNotification)->SetHeader; > > AddHeader=((PHTTP_FILTER_PREPROC_HEADERS)pvNotification)->AddHeader; > } > -#else > - > GetHeader=((PHTTP_FILTER_PREPROC_HEADERS)pvNotification)->GetHeader; > - > SetHeader=((PHTTP_FILTER_PREPROC_HEADERS)pvNotification)->SetHeader; > - > AddHeader=((PHTTP_FILTER_PREPROC_HEADERS)pvNotification)->AddHeader; > -#endif > - > - > > env->l->jkLog(env, env->l, JK_LOG_DEBUG, > "HttpFilterProc started\n"); > @@ -814,3 +794,60 @@ > > return env; > } > + > +#ifdef SF_NOTIFY_AUTH_COMPLETE > +static int get_auth_flags() > +{ > + HKEY hkey; > + long rc; > + int maj, sz; > + int rv = SF_NOTIFY_PREPROC_HEADERS; > + int use_auth = JK_FALSE; > + /* Retreive the IIS version Major*/ > + rc = RegOpenKeyEx(HKEY_LOCAL_MACHINE, > + W3SVC_REGISTRY_KEY, > + (DWORD)0, > + KEY_READ, > + &hkey); > + if(ERROR_SUCCESS != rc) { > + return rv; > + } > + sz = sizeof(int); > + rc = RegQueryValueEx(hkey, > + "MajorVersion", > + NULL, > + NULL, > + (LPBYTE)&maj, > + &sz); > + if (ERROR_SUCCESS != rc) { > + CloseHandle(hkey); > + return rv; > + } > + CloseHandle(hkey); > + rc = RegOpenKeyEx(HKEY_LOCAL_MACHINE, > + REGISTRY_LOCATION, > + (DWORD)0, > + KEY_READ, > + &hkey); > + if(ERROR_SUCCESS != rc) { > + return rv; > + } > + > + rc = RegQueryValueEx(hkey, > + USE_AUTH_COMP_TAG, > + NULL, > + NULL, > + (LPBYTE)&use_auth, > + &sz); > + CloseHandle(hkey); > + if (use_auth && maj > 4) > + rv = SF_NOTIFY_AUTH_COMPLETE; > + > + return rv; > +} > +#else > +static int get_auth_flags() > +{ > + return SF_NOTIFY_PREPROC_HEADERS; > +} > +#endif > > > > > -- > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>