axis-c-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dami...@apache.org
Subject svn commit: r958884 [5/9] - in /axis/axis2/c/core/trunk: axiom/src/om/ axiom/src/soap/ samples/client/amqp/echo/ samples/client/amqp/mtom/ samples/client/amqp/notify/ src/core/deployment/ src/core/transport/amqp/receiver/ src/core/transport/amqp/receiv...
Date Tue, 29 Jun 2010 08:57:06 GMT
Modified: axis/axis2/c/core/trunk/src/core/transport/http/server/IIS/axis2_isapi_plugin.c
URL: http://svn.apache.org/viewvc/axis/axis2/c/core/trunk/src/core/transport/http/server/IIS/axis2_isapi_plugin.c?rev=958884&r1=958883&r2=958884&view=diff
==============================================================================
--- axis/axis2/c/core/trunk/src/core/transport/http/server/IIS/axis2_isapi_plugin.c (original)
+++ axis/axis2/c/core/trunk/src/core/transport/http/server/IIS/axis2_isapi_plugin.c Tue Jun
29 08:57:05 2010
@@ -1,42 +1,42 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */  
-
-#include <windows.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <httpfilt.h>
-#include <httpext.h>
-
-#include "axis2_iis_constants.h"
-#include "axis2_iis_worker.h"
-
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */  
+
+#include <windows.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <httpfilt.h>
+#include <httpext.h>
+
+#include "axis2_iis_constants.h"
+#include "axis2_iis_worker.h"
+
 /* Axis headers */ 
 #include <axutil_error_default.h>
 #include <axutil_log_default.h>
 #include <axutil_thread_pool.h>
 #include <axiom_xml_reader.h>
-#include <axutil_log.h>
-
-#ifndef _WIN32_WINNT 
-#define _WIN32_WINNT 0x0500 
-#endif 
-
+#include <axutil_log.h>
+
+#ifndef _WIN32_WINNT 
+#define _WIN32_WINNT 0x0500 
+#endif 
+
 #define	AXIS2_IIS_LOG_FILE_TAG		 "log_file"
 #define AXIS2_IIS_LOG_LEVEL_TAG		 "log_level" 
 #define AXIS2_IIS_REPO_PATH_TAG		 "axis2c_home"
@@ -68,19 +68,19 @@ static axis2_char_t log_file[MAX_FILE_PA
 static axutil_log_levels_t log_level		 = AXIS2_LOG_LEVEL_CRITICAL;
 
 /* Path variables */ 
-static char szOriginalPath[_MAX_PATH + 1];
+static char szOriginalPath[_MAX_PATH + 1];
 static char szPath[_MAX_PATH + 1];
 
-axis2_char_t    general_error[] = "<html>\r\n" 
-                        "<head><title> An IIS server error occurred. </title></head>\r\n"

-                        "<h1> An IIS server error occurred </h1>\r\n" 
-                        "<hr>\r\n" 
+axis2_char_t    general_error[] = "<html>\r\n" 
+                        "<head><title> An IIS server error occurred. </title></head>\r\n"

+                        "<h1> An IIS server error occurred </h1>\r\n" 
+                        "<hr>\r\n" 
                         "An error occurred in IIS while processing this request.</hr></html>";

 
-axis2_char_t	initializing_error[] = "<html>\r\n" 
-                        "<head><title> An IIS server error occurred. </title></head>\r\n"

-                        "<h1> An IIS server error occurred </h1>\r\n" 
-                        "<hr>\r\n" 
+axis2_char_t	initializing_error[] = "<html>\r\n" 
+                        "<head><title> An IIS server error occurred. </title></head>\r\n"

+                        "<h1> An IIS server error occurred </h1>\r\n" 
+                        "<hr>\r\n" 
                         "An error occurred while initilizing Axis2/C.</hr></html>";

 
 
@@ -103,243 +103,243 @@ static axis2_status_t AXIS2_CALL get_reg
  * Parse the given string and return the corresponding log_level
  */ 
 axutil_log_levels_t AXIS2_CALL axis2_iis_parse_log_level(char level[]);
-
-/*
- * Initialize axis. This function is called in the begining of the module loading.
- * It initializes the axis by reading values from the configuration and creating the
- * required structures for the axis2c
-*/
-axis2_status_t AXIS2_CALL init_axis2();
-    
-/* 
- * This is the function to be called after the processing 
- * is over for non Axis2 requets
- */
-VOID 
-WINAPI 
-ExecUrlCompletion ( 
-    EXTENSION_CONTROL_BLOCK *   pecb, 
-    PVOID                       pContext, 
-    DWORD                       cbIO, 
-    DWORD                       dwError 
-    ); 
-
-/* 
- * If somethign went wrong in the IIS server when 
- * we are proccessing we send this 
- */
-BOOL 
-send_error(		
-	EXTENSION_CONTROL_BLOCK * pecb, 
-    CHAR error[]); 
-
-axis2_status_t AXIS2_CALL init_axis2();
-
-BOOL 
-WINAPI 
-GetExtensionVersion(HSE_VERSION_INFO * pVer)  
-{     
-    pVer->dwExtensionVersion = MAKELONG( HSE_VERSION_MINOR, 
-                                         HSE_VERSION_MAJOR); 
-    strncpy( pVer->lpszExtensionDesc, 
-             "WildCardMap Sample ISAPI Extension", HSE_MAX_EXT_DLL_NAME_LEN ); 
-
-    pVer->lpszExtensionDesc[HSE_MAX_EXT_DLL_NAME_LEN-1] = '\0'; 
-	server_version = 5;
-	return TRUE; 
-} 
-
-DWORD 
-WINAPI 
-HttpExtensionProc(EXTENSION_CONTROL_BLOCK * pecb) 
-
-{ 
-    HSE_EXEC_URL_INFO   ExecUrlInfo; 
-    DWORD               cbData = INTERNET_MAX_URL_LENGTH; 
-    char				url[INTERNET_MAX_URL_LENGTH]; 
-	axis2_bool_t		is_for_us = AXIS2_TRUE;
-
-    /* Get the URL */      
-    if ( pecb->GetServerVariable( pecb->ConnID, 
-                                  "URL", 
-                                  url, 
-                                  &cbData ) == FALSE ) 
-    { 
-        return HSE_STATUS_ERROR;  
-    } 
-
-	if (!is_inited) 
-	{			
-		DWORD dwBufferSize = 0;
-		axis2_char_t server_software[256];
-		axis2_char_t *version = NULL;
-
-		ZeroMemory(szOriginalPath, sizeof szOriginalPath);
-		dwBufferSize = sizeof szOriginalPath;
-
-#if _WIN32_WINNT >= 0x0502
-		GetDllDirectory( dwBufferSize, szOriginalPath );
-#else
-		GetCurrentDirectory( dwBufferSize, szOriginalPath );
-#endif
-		ZeroMemory(szPath, sizeof szPath);
-		dwBufferSize = sizeof szPath;
-		/* Get the current physical paht */
-		if (pecb->GetServerVariable(pecb->ConnID, "APPL_PHYSICAL_PATH", szPath, &dwBufferSize)
== FALSE)
-		{
-			send_error(pecb, initializing_error);
-			return HSE_STATUS_ERROR;				
-		}
-		/* Retrieve the server version */
-		dwBufferSize = 32;
-		if (pecb->GetServerVariable(pecb->ConnID, "SERVER_SOFTWARE", server_software, &dwBufferSize)
== FALSE)
-		{
-			send_error(pecb, initializing_error);
-			return HSE_STATUS_ERROR;				
-		}
-		version = axutil_strchr(server_software, '/');	
-		if (version)
-		{
-			server_version = atoi(version + 1);
-		}
-#if _WIN32_WINNT >= 0x0502
-		SetDllDirectory( szPath );
-#else
-		SetCurrentDirectory( szPath );
-#endif
-		/* If we haven't initialized axis2/c before initialization failed */
-		if (AXIS2_FAILURE == init_axis2())
-		{
-			send_error(pecb, initializing_error);
-			return HSE_STATUS_ERROR;
-		}
-#if _WIN32_WINNT >= 0x0502
-		SetDllDirectory( szOriginalPath );
-#else
-		SetCurrentDirectory( szOriginalPath );
-#endif
-	}
-
-	/* Check weather we have a request for Axis2/C */
-	if (server_version >= 6 && strlen(url) >= strlen(axis2_location))
-    {
-		int i = 0;
-		is_for_us = AXIS2_TRUE;	
-		while (axis2_location[i] != '\0')
-		{
-			if (axis2_location[i] != (url)[i]) {
-				is_for_us = AXIS2_FALSE;
-				break;
-			}
-			i++;
-		}		
-		if (url[i] != '/' && url[i] != '\0')
-		{
-			is_for_us = AXIS2_FALSE;
-		}
-	}
-		
-	if (is_for_us)
-	{			
-		/* Windows cannot find the correct dlls unless the path is set*/ 
-#if _WIN32_WINNT >= 0x0502
-		SetDllDirectory( szPath );
-#else
-		SetCurrentDirectory( szPath );
-#endif
-		pecb->dwHttpStatusCode = HTTP_INTERNAL_SERVER_ERROR;
-		/* We are sure that worker is not NULL since it is NULL init_axis2 would have failed */
-		axis2_iis_worker_process_request(axis2_worker, axutil_env, pecb);
-
-	    /* Windows cannot find the correct dlls unless the dir is set
-		 but we want to reset to previous dir after the load */
-#if _WIN32_WINNT >= 0x0502
-		SetDllDirectory( szOriginalPath );
-#else
-		SetCurrentDirectory( szOriginalPath );
-#endif
-		return HSE_STATUS_SUCCESS;
-	}
-	else if (server_version >= 6)
-	{
-		/* For IIS 5.1 or earlier this code is never executed. Since the URL is 
-		redirected to Axis2/C by the Filter */
-
-		/* If not for Axis2/C let the request go to who ever wants it */
-		ExecUrlInfo.pszUrl = NULL;          /* Use original request URL */
-		ExecUrlInfo.pszMethod = NULL;       /* Use original request method */
-		ExecUrlInfo.pszChildHeaders = NULL; /* Use original request headers */
-		ExecUrlInfo.pUserInfo = NULL;       /* Use original request user info */
-		ExecUrlInfo.pEntity = NULL;         /* Use original request entity */
-		
-		/* Provent recursion */
-		ExecUrlInfo.dwExecUrlFlags = HSE_EXEC_URL_IGNORE_CURRENT_INTERCEPTOR; 
-	     
-		/* Associate the completion routine and the current URL with this request. */ 
-		if ( pecb->ServerSupportFunction( pecb->ConnID, 
-										  HSE_REQ_IO_COMPLETION, 
-										  ExecUrlCompletion, 
-										  NULL,  
-										  NULL) == FALSE ) 
-		{        
-			return HSE_STATUS_ERROR; 
-		} 
-	    		
-		/* Ok, now that everything is set up, let's call the child request */     
-		if ( pecb->ServerSupportFunction( pecb->ConnID, 
-										  HSE_REQ_EXEC_URL, 
-										  &ExecUrlInfo, 
-										  NULL, 
-										  NULL ) == FALSE ) 
-		{         
-			return HSE_STATUS_ERROR; 
-		} 
-		/* Return pending and let the completion clean up */ 
-		return HSE_STATUS_PENDING; 
-	} 
-	return HSE_STATUS_ERROR;
-} 
-
-VOID 
-WINAPI 
-ExecUrlCompletion ( 
-    EXTENSION_CONTROL_BLOCK *   pecb, 
-    PVOID                       pContext, 
-    DWORD                       cbIO, 
-    DWORD                       dwError 
-    ) 
-{ 
-	/* We are done so notify */
-    pecb->ServerSupportFunction( 
-        pecb->ConnID, 
-        HSE_REQ_DONE_WITH_SESSION, 
-        NULL, 
-        NULL, 
-        NULL); 
-} 
-
-
-BOOL 
-send_error(		
-	EXTENSION_CONTROL_BLOCK * pecb, 
-    axis2_char_t error[]) 
-{ 
-    DWORD   cbData;             
-    pecb->dwHttpStatusCode = 500;     
-    /* Send headers and response */    
-    pecb->ServerSupportFunction( pecb->ConnID, 
-                                 HSE_REQ_SEND_RESPONSE_HEADER, 
-                                 "500 Server Error", 
-                                 NULL, 
-                                 (LPDWORD)"Content-Type: text/html\r\n\r\n" ); 
-
-    cbData = axutil_strlen( error ); 
-    return pecb->WriteClient( pecb->ConnID, 
-                              error, 
-                              &cbData, 
-                              HSE_IO_SYNC ); 
-} 
-
+
+/*
+ * Initialize axis. This function is called in the begining of the module loading.
+ * It initializes the axis by reading values from the configuration and creating the
+ * required structures for the axis2c
+*/
+axis2_status_t AXIS2_CALL init_axis2();
+    
+/* 
+ * This is the function to be called after the processing 
+ * is over for non Axis2 requets
+ */
+VOID 
+WINAPI 
+ExecUrlCompletion ( 
+    EXTENSION_CONTROL_BLOCK *   pecb, 
+    PVOID                       pContext, 
+    DWORD                       cbIO, 
+    DWORD                       dwError 
+    ); 
+
+/* 
+ * If somethign went wrong in the IIS server when 
+ * we are proccessing we send this 
+ */
+BOOL 
+send_error(		
+	EXTENSION_CONTROL_BLOCK * pecb, 
+    CHAR error[]); 
+
+axis2_status_t AXIS2_CALL init_axis2();
+
+BOOL 
+WINAPI 
+GetExtensionVersion(HSE_VERSION_INFO * pVer)  
+{     
+    pVer->dwExtensionVersion = MAKELONG( HSE_VERSION_MINOR, 
+                                         HSE_VERSION_MAJOR); 
+    strncpy( pVer->lpszExtensionDesc, 
+             "WildCardMap Sample ISAPI Extension", HSE_MAX_EXT_DLL_NAME_LEN ); 
+
+    pVer->lpszExtensionDesc[HSE_MAX_EXT_DLL_NAME_LEN-1] = '\0'; 
+	server_version = 5;
+	return TRUE; 
+} 
+
+DWORD 
+WINAPI 
+HttpExtensionProc(EXTENSION_CONTROL_BLOCK * pecb) 
+
+{ 
+    HSE_EXEC_URL_INFO   ExecUrlInfo; 
+    DWORD               cbData = INTERNET_MAX_URL_LENGTH; 
+    char				url[INTERNET_MAX_URL_LENGTH]; 
+	axis2_bool_t		is_for_us = AXIS2_TRUE;
+
+    /* Get the URL */      
+    if ( pecb->GetServerVariable( pecb->ConnID, 
+                                  "URL", 
+                                  url, 
+                                  &cbData ) == FALSE ) 
+    { 
+        return HSE_STATUS_ERROR;  
+    } 
+
+	if (!is_inited) 
+	{			
+		DWORD dwBufferSize = 0;
+		axis2_char_t server_software[256];
+		axis2_char_t *version = NULL;
+
+		ZeroMemory(szOriginalPath, sizeof szOriginalPath);
+		dwBufferSize = sizeof szOriginalPath;
+
+#if _WIN32_WINNT >= 0x0502
+		GetDllDirectory( dwBufferSize, szOriginalPath );
+#else
+		GetCurrentDirectory( dwBufferSize, szOriginalPath );
+#endif
+		ZeroMemory(szPath, sizeof szPath);
+		dwBufferSize = sizeof szPath;
+		/* Get the current physical paht */
+		if (pecb->GetServerVariable(pecb->ConnID, "APPL_PHYSICAL_PATH", szPath, &dwBufferSize)
== FALSE)
+		{
+			send_error(pecb, initializing_error);
+			return HSE_STATUS_ERROR;				
+		}
+		/* Retrieve the server version */
+		dwBufferSize = 32;
+		if (pecb->GetServerVariable(pecb->ConnID, "SERVER_SOFTWARE", server_software, &dwBufferSize)
== FALSE)
+		{
+			send_error(pecb, initializing_error);
+			return HSE_STATUS_ERROR;				
+		}
+		version = axutil_strchr(server_software, '/');	
+		if (version)
+		{
+			server_version = atoi(version + 1);
+		}
+#if _WIN32_WINNT >= 0x0502
+		SetDllDirectory( szPath );
+#else
+		SetCurrentDirectory( szPath );
+#endif
+		/* If we haven't initialized axis2/c before initialization failed */
+		if (AXIS2_FAILURE == init_axis2())
+		{
+			send_error(pecb, initializing_error);
+			return HSE_STATUS_ERROR;
+		}
+#if _WIN32_WINNT >= 0x0502
+		SetDllDirectory( szOriginalPath );
+#else
+		SetCurrentDirectory( szOriginalPath );
+#endif
+	}
+
+	/* Check weather we have a request for Axis2/C */
+	if (server_version >= 6 && strlen(url) >= strlen(axis2_location))
+    {
+		int i = 0;
+		is_for_us = AXIS2_TRUE;	
+		while (axis2_location[i] != '\0')
+		{
+			if (axis2_location[i] != (url)[i]) {
+				is_for_us = AXIS2_FALSE;
+				break;
+			}
+			i++;
+		}		
+		if (url[i] != '/' && url[i] != '\0')
+		{
+			is_for_us = AXIS2_FALSE;
+		}
+	}
+		
+	if (is_for_us)
+	{			
+		/* Windows cannot find the correct dlls unless the path is set*/ 
+#if _WIN32_WINNT >= 0x0502
+		SetDllDirectory( szPath );
+#else
+		SetCurrentDirectory( szPath );
+#endif
+		pecb->dwHttpStatusCode = HTTP_INTERNAL_SERVER_ERROR;
+		/* We are sure that worker is not NULL since it is NULL init_axis2 would have failed */
+		axis2_iis_worker_process_request(axis2_worker, axutil_env, pecb);
+
+	    /* Windows cannot find the correct dlls unless the dir is set
+		 but we want to reset to previous dir after the load */
+#if _WIN32_WINNT >= 0x0502
+		SetDllDirectory( szOriginalPath );
+#else
+		SetCurrentDirectory( szOriginalPath );
+#endif
+		return HSE_STATUS_SUCCESS;
+	}
+	else if (server_version >= 6)
+	{
+		/* For IIS 5.1 or earlier this code is never executed. Since the URL is 
+		redirected to Axis2/C by the Filter */
+
+		/* If not for Axis2/C let the request go to who ever wants it */
+		ExecUrlInfo.pszUrl = NULL;          /* Use original request URL */
+		ExecUrlInfo.pszMethod = NULL;       /* Use original request method */
+		ExecUrlInfo.pszChildHeaders = NULL; /* Use original request headers */
+		ExecUrlInfo.pUserInfo = NULL;       /* Use original request user info */
+		ExecUrlInfo.pEntity = NULL;         /* Use original request entity */
+		
+		/* Provent recursion */
+		ExecUrlInfo.dwExecUrlFlags = HSE_EXEC_URL_IGNORE_CURRENT_INTERCEPTOR; 
+	     
+		/* Associate the completion routine and the current URL with this request. */ 
+		if ( pecb->ServerSupportFunction( pecb->ConnID, 
+										  HSE_REQ_IO_COMPLETION, 
+										  ExecUrlCompletion, 
+										  NULL,  
+										  NULL) == FALSE ) 
+		{        
+			return HSE_STATUS_ERROR; 
+		} 
+	    		
+		/* Ok, now that everything is set up, let's call the child request */     
+		if ( pecb->ServerSupportFunction( pecb->ConnID, 
+										  HSE_REQ_EXEC_URL, 
+										  &ExecUrlInfo, 
+										  NULL, 
+										  NULL ) == FALSE ) 
+		{         
+			return HSE_STATUS_ERROR; 
+		} 
+		/* Return pending and let the completion clean up */ 
+		return HSE_STATUS_PENDING; 
+	} 
+	return HSE_STATUS_ERROR;
+} 
+
+VOID 
+WINAPI 
+ExecUrlCompletion ( 
+    EXTENSION_CONTROL_BLOCK *   pecb, 
+    PVOID                       pContext, 
+    DWORD                       cbIO, 
+    DWORD                       dwError 
+    ) 
+{ 
+	/* We are done so notify */
+    pecb->ServerSupportFunction( 
+        pecb->ConnID, 
+        HSE_REQ_DONE_WITH_SESSION, 
+        NULL, 
+        NULL, 
+        NULL); 
+} 
+
+
+BOOL 
+send_error(		
+	EXTENSION_CONTROL_BLOCK * pecb, 
+    axis2_char_t error[]) 
+{ 
+    DWORD   cbData;             
+    pecb->dwHttpStatusCode = 500;     
+    /* Send headers and response */    
+    pecb->ServerSupportFunction( pecb->ConnID, 
+                                 HSE_REQ_SEND_RESPONSE_HEADER, 
+                                 "500 Server Error", 
+                                 NULL, 
+                                 (LPDWORD)"Content-Type: text/html\r\n\r\n" ); 
+
+    cbData = axutil_strlen( error ); 
+    return pecb->WriteClient( pecb->ConnID, 
+                              error, 
+                              &cbData, 
+                              HSE_IO_SYNC ); 
+} 
+
 axis2_status_t AXIS2_CALL read_registery_init_data() 
 {
     long rc = 0;

Modified: axis/axis2/c/core/trunk/src/core/transport/http/server/IIS/iis_iaspi_plugin_51/axis2_isapi_51.c
URL: http://svn.apache.org/viewvc/axis/axis2/c/core/trunk/src/core/transport/http/server/IIS/iis_iaspi_plugin_51/axis2_isapi_51.c?rev=958884&r1=958883&r2=958884&view=diff
==============================================================================
--- axis/axis2/c/core/trunk/src/core/transport/http/server/IIS/iis_iaspi_plugin_51/axis2_isapi_51.c
(original)
+++ axis/axis2/c/core/trunk/src/core/transport/http/server/IIS/iis_iaspi_plugin_51/axis2_isapi_51.c
Tue Jun 29 08:57:05 2010
@@ -1,153 +1,153 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */
-
-#include <windows.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <httpfilt.h>
-    
-#include <axis2_const.h>
-#include <axis2_defines.h>
-#include <axutil_env.h>
-#include <axutil_stream.h>
-
-#include "..\\axis2_iis_constants.h"
-
-#define REGISTRY_LOC			 "Software\\Apache Axis2c\\IIS ISAPI Redirector"
-#define AXIS2_IIS_AXIS2_LOC		 "axis2_location" 
-static char *axis2_loc = "/axis2";
-
-static axis2_char_t redirect_word[INTERNET_MAX_URL_LENGTH] = "/axis2/mod_axis2_IIS.dll\?";
-/*
- * Search a given uri to find weather it matches a uri for the axis2
- * The uri format for axis2 is of the form
- * scheme://server:port/axis2/other_parts
- * This function search  a give uri for the /axis2/. If a match
- * is found it will replace the /axis2 part of the url with /axis2/mod_iis.dll?
- */
-axis2_bool_t AXIS2_CALL
-get_extension_url(
-    char url[],
-    char ret_url[]);
-
-/*
- * This function is called by the IIS server at the server 
- * initialization. So this is the ideal plcae for initializing 
- * axis2c.
- */
-BOOL WINAPI
-GetFilterVersion(
-    PHTTP_FILTER_VERSION pVer)
-{
-    DWORD type = 0, size = 0;
-    LONG lrc = 0;
-    char tmpbuf[INTERNET_MAX_URL_LENGTH];
-    HKEY hkey;
-    ULONG http_filter_revision = HTTP_FILTER_REVISION;
-    pVer->dwFilterVersion = pVer->dwServerFilterVersion;
-    if(pVer->dwFilterVersion > http_filter_revision)
-    {
-        pVer->dwFilterVersion = http_filter_revision;
-    }
-
-    /*
-     Receive notifictions when
-     1. Server preprocessed the headers.
-     2. Log
-     3. All the request coming in secure and none secure ports.
-     */
-    pVer->dwFlags = (SF_NOTIFY_ORDER_HIGH | SF_NOTIFY_PREPROC_HEADERS | SF_NOTIFY_SECURE_PORT
-        | SF_NOTIFY_NONSECURE_PORT | SF_NOTIFY_AUTH_COMPLETE);
-
-    /* Give a short discription about the module.*/
-    strcpy(pVer->lpszFilterDesc, "axis2c filter");
-    /* Get the axis2 location from the registry configuration */
-    lrc = RegOpenKeyEx(HKEY_LOCAL_MACHINE, REGISTRY_LOC, (DWORD)0, KEY_READ, &hkey);
-    if(ERROR_SUCCESS != lrc)
-    {
-        return FALSE;
-    }
-    size = INTERNET_MAX_URL_LENGTH;
-    lrc = RegQueryValueEx(hkey, AXIS2_IIS_AXIS2_LOC, (LPDWORD)0, &type, (LPBYTE)tmpbuf,
&size);
-    if((ERROR_SUCCESS == lrc) && (type == REG_SZ))
-    {
-        tmpbuf[size] = '\0';
-        axis2_loc = _strdup(tmpbuf);
-    }
-    RegCloseKey(hkey);
-    return TRUE;
-}
-
-/*
- When a notification happens this function is called by the IIS.
- */
-DWORD WINAPI
-HttpFilterProc(
-    PHTTP_FILTER_CONTEXT pfc,
-    DWORD notificationType,
-    LPVOID pvNotification)
-{
-    DWORD bufferLength = INTERNET_MAX_URL_LENGTH;
-    char url[INTERNET_MAX_URL_LENGTH];
-    char modified_url[INTERNET_MAX_URL_LENGTH];
-
-    if(notificationType == SF_NOTIFY_PREPROC_HEADERS)
-    {
-        pfc->GetServerVariable(pfc, "HTTP_URL", url, &bufferLength);
-        if(get_extension_url(url, modified_url))
-        {
-            ((PHTTP_FILTER_PREPROC_HEADERS)pvNotification)->SetHeader(pfc, "url", modified_url);
-            return SF_STATUS_REQ_HANDLED_NOTIFICATION;
-        }
-    }
-    return SF_STATUS_REQ_NEXT_NOTIFICATION;
-}
-
-axis2_bool_t AXIS2_CALL
-get_extension_url(
-    char url[],
-    char ret_url[])
-{
-    axis2_bool_t is_for_us = AXIS2_FALSE;
-    int i = 0;
-    /* Should contain "/axis2/"*/
-    ret_url[0] = '\0';
-    if(strlen(url) >= strlen(axis2_loc))
-    {
-        is_for_us = AXIS2_TRUE;
-        while(axis2_loc[i] != '\0')
-        {
-            if(axis2_loc[i] != (url)[i])
-            {
-                is_for_us = AXIS2_FALSE;
-                break;
-            }
-            i++;
-        }
-        if(url[i] != '/' && url[i] != '\0')
-        {
-            is_for_us = AXIS2_FALSE;
-        }
-    }
-    if(is_for_us)
-    {
-        strcpy(ret_url, redirect_word);
-        strcat(ret_url, &url[i]);
-    }
-    return is_for_us;
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+
+#include <windows.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <httpfilt.h>
+    
+#include <axis2_const.h>
+#include <axis2_defines.h>
+#include <axutil_env.h>
+#include <axutil_stream.h>
+
+#include "..\\axis2_iis_constants.h"
+
+#define REGISTRY_LOC			 "Software\\Apache Axis2c\\IIS ISAPI Redirector"
+#define AXIS2_IIS_AXIS2_LOC		 "axis2_location" 
+static char *axis2_loc = "/axis2";
+
+static axis2_char_t redirect_word[INTERNET_MAX_URL_LENGTH] = "/axis2/mod_axis2_IIS.dll\?";
+/*
+ * Search a given uri to find weather it matches a uri for the axis2
+ * The uri format for axis2 is of the form
+ * scheme://server:port/axis2/other_parts
+ * This function search  a give uri for the /axis2/. If a match
+ * is found it will replace the /axis2 part of the url with /axis2/mod_iis.dll?
+ */
+axis2_bool_t AXIS2_CALL
+get_extension_url(
+    char url[],
+    char ret_url[]);
+
+/*
+ * This function is called by the IIS server at the server 
+ * initialization. So this is the ideal plcae for initializing 
+ * axis2c.
+ */
+BOOL WINAPI
+GetFilterVersion(
+    PHTTP_FILTER_VERSION pVer)
+{
+    DWORD type = 0, size = 0;
+    LONG lrc = 0;
+    char tmpbuf[INTERNET_MAX_URL_LENGTH];
+    HKEY hkey;
+    ULONG http_filter_revision = HTTP_FILTER_REVISION;
+    pVer->dwFilterVersion = pVer->dwServerFilterVersion;
+    if(pVer->dwFilterVersion > http_filter_revision)
+    {
+        pVer->dwFilterVersion = http_filter_revision;
+    }
+
+    /*
+     Receive notifictions when
+     1. Server preprocessed the headers.
+     2. Log
+     3. All the request coming in secure and none secure ports.
+     */
+    pVer->dwFlags = (SF_NOTIFY_ORDER_HIGH | SF_NOTIFY_PREPROC_HEADERS | SF_NOTIFY_SECURE_PORT
+        | SF_NOTIFY_NONSECURE_PORT | SF_NOTIFY_AUTH_COMPLETE);
+
+    /* Give a short discription about the module.*/
+    strcpy(pVer->lpszFilterDesc, "axis2c filter");
+    /* Get the axis2 location from the registry configuration */
+    lrc = RegOpenKeyEx(HKEY_LOCAL_MACHINE, REGISTRY_LOC, (DWORD)0, KEY_READ, &hkey);
+    if(ERROR_SUCCESS != lrc)
+    {
+        return FALSE;
+    }
+    size = INTERNET_MAX_URL_LENGTH;
+    lrc = RegQueryValueEx(hkey, AXIS2_IIS_AXIS2_LOC, (LPDWORD)0, &type, (LPBYTE)tmpbuf,
&size);
+    if((ERROR_SUCCESS == lrc) && (type == REG_SZ))
+    {
+        tmpbuf[size] = '\0';
+        axis2_loc = _strdup(tmpbuf);
+    }
+    RegCloseKey(hkey);
+    return TRUE;
+}
+
+/*
+ When a notification happens this function is called by the IIS.
+ */
+DWORD WINAPI
+HttpFilterProc(
+    PHTTP_FILTER_CONTEXT pfc,
+    DWORD notificationType,
+    LPVOID pvNotification)
+{
+    DWORD bufferLength = INTERNET_MAX_URL_LENGTH;
+    char url[INTERNET_MAX_URL_LENGTH];
+    char modified_url[INTERNET_MAX_URL_LENGTH];
+
+    if(notificationType == SF_NOTIFY_PREPROC_HEADERS)
+    {
+        pfc->GetServerVariable(pfc, "HTTP_URL", url, &bufferLength);
+        if(get_extension_url(url, modified_url))
+        {
+            ((PHTTP_FILTER_PREPROC_HEADERS)pvNotification)->SetHeader(pfc, "url", modified_url);
+            return SF_STATUS_REQ_HANDLED_NOTIFICATION;
+        }
+    }
+    return SF_STATUS_REQ_NEXT_NOTIFICATION;
+}
+
+axis2_bool_t AXIS2_CALL
+get_extension_url(
+    char url[],
+    char ret_url[])
+{
+    axis2_bool_t is_for_us = AXIS2_FALSE;
+    int i = 0;
+    /* Should contain "/axis2/"*/
+    ret_url[0] = '\0';
+    if(strlen(url) >= strlen(axis2_loc))
+    {
+        is_for_us = AXIS2_TRUE;
+        while(axis2_loc[i] != '\0')
+        {
+            if(axis2_loc[i] != (url)[i])
+            {
+                is_for_us = AXIS2_FALSE;
+                break;
+            }
+            i++;
+        }
+        if(url[i] != '/' && url[i] != '\0')
+        {
+            is_for_us = AXIS2_FALSE;
+        }
+    }
+    if(is_for_us)
+    {
+        strcpy(ret_url, redirect_word);
+        strcat(ret_url, &url[i]);
+    }
+    return is_for_us;
+}



Mime
View raw message