[wsf-c-dev] svn commit r701 - wsf/php/src

svn at wso2.com svn at wso2.com
Sun Feb 4 21:00:23 PST 2007


Author: nandika
Date: Sun Feb  4 21:00:16 2007
New Revision: 701

Modified:
   wsf/php/src/util.c
   wsf/php/src/wsf.c
   wsf/php/src/wsf.h
   wsf/php/src/wsf_common.h
   wsf/php/src/wsf_util.h
Log:
typo fixed in wsf.c , wsf_util_set_headers function implemented, logging added

Modified: wsf/php/src/util.c
==============================================================================
--- wsf/php/src/util.c	(original)
+++ wsf/php/src/util.c	Sun Feb  4 21:00:16 2007
@@ -32,6 +32,80 @@
 #include <axiom_util.h>
 /*#include <sandesha2_client.h>*/
 
+static int current_ns_count = 0;
+
+static axiom_node_t* 
+wsf_util_construct_header_node(const axis2_env_t *env, 
+							   zval *header TSRMLS_DC)
+{
+	char *ns = NULL;
+	char *localname = NULL;
+	char prefix[6];
+	axiom_namespace_t *header_ns = NULL;
+	axiom_node_t *header_node = NULL;
+	axiom_element_t *header_ele = NULL;
+	axiom_namespace_t *soap_ns = NULL;
+	int must_understand = 0;
+	int role = 0;
+
+	zval **tmp = NULL;
+	if(zend_hash_find(Z_OBJPROP_P(header), "localname" , 
+		sizeof("localname") ,(void**)&tmp) == SUCCESS){
+			localname = Z_STRVAL_PP(tmp);
+	}else{
+		return NULL;
+	}
+	if(zend_hash_find(Z_OBJPROP_P(header), "namespace", sizeof("namespace"),
+		(void **)&tmp) == SUCCESS && Z_TYPE_PP(tmp) == IS_STRING){
+			ns = Z_STRVAL_PP(tmp);
+	}else{
+		return NULL;
+	}
+	
+	sprintf(prefix, "ns%d", current_ns_count++);
+	header_ns = axiom_namespace_create(env, ns, prefix);
+	header_ele = axiom_element_create(env, NULL , localname, header_ns, &header_node);
+	
+	if(zend_hash_find(Z_OBJPROP_P(header), "mustUnderstand", 
+		sizeof("mustUnderstand"), (void**)&tmp) == SUCCESS){
+		axiom_attribute_t *mu_attr = NULL;
+		axiom_namespace_t *env_ns = NULL;
+		if(Z_TYPE_PP(tmp) == ZEND_BOOL){
+			char must_val[2];
+			must_understand = Z_BVAL_PP(tmp);
+			sprintf(must_val,"%d", must_understand);
+			soap_ns = axiom_namespace_create(env, WSF_GLOBAL(soap_uri), "soapenv");
+			mu_attr = axiom_attribute_create(env, "mustUnderstand", must_val, soap_ns);
+			axiom_element_add_attribute(header_ele, env, mu_attr, header_node);
+		}		
+	}
+	if(zend_hash_find(Z_OBJPROP_P(header), "role", 
+		sizeof("role"), (void**)&tmp) == SUCCESS){
+			axiom_attribute_t *role_attr = NULL;
+			char *role_val = NULL;
+			if(Z_TYPE_PP(tmp) == IS_LONG){
+				if(Z_LVAL_PP(tmp) == WS_SOAP_ROLE_NEXT){
+					role_val = WS_SOAP_ROLE_NEXT_URI;
+				}else if(Z_LVAL_PP(tmp) == WS_SOAP_ROLE_NONE){
+					role_val = WS_SOAP_ROLE_NONE_URI;
+				}else if(Z_LVAL_PP(tmp) == WS_SOAP_ROLE_ULTIMATE_RECEIVER){
+					role_val = WS_SOAP_ROLE_ULTIMATE_RECEIVER_URI;
+				}		
+			}else if(Z_TYPE_PP(tmp) == IS_STRING){
+				role_val = Z_STRVAL_PP(tmp);
+			}
+			if(!soap_ns)
+				soap_ns = axiom_namespace_create(env, WSF_GLOBAL(soap_uri), "soapenv"); 
+			/** role is only valid for soap12, for soap11 use actor, TODO */
+			if(WSF_GLOBAL(soap_version) == AXIOM_SOAP12 && role_val){
+				role_attr = axiom_attribute_create(env, "role", 
+					role_val, soap_ns);
+				axiom_element_add_attribute(header_ele, env, role_attr, header_node);
+			}
+	}
+	return header_node;			
+}
+
 
 static xmlNodePtr wsf_get_xml_node(zval *node TSRMLS_DC)
 {
@@ -751,29 +825,33 @@
 	if(!svc_client || !msg)
 		return 0;
 	{
-		/*
-		zval **tmp;
-		if(zend_hash_find(Z_OBJPROP_P(msg), "headers", sizeof("headers"),
-			(void**)&tmp) == SUCCESS){
+		zval **tmp = NULL;
+		HashTable *ht = NULL;
+		ht = Z_OBJPROP_P(msg);
+		if(WSF_HASH_FIND(ht, "headers", tmp, SUCCESS)){
 			if(Z_TYPE_PP(tmp) == IS_ARRAY){
 				HashPosition pos;
 				HashTable *ht = Z_ARRVAL_PP(tmp);
 				zval *val = NULL;
 				zend_hash_internal_pointer_reset_ex(ht, &pos);
-			
 				while(zend_hash_get_current_data_ex(ht, (void**)&val , &pos) != FAILURE){
-					
-				
-				
-				
+					zval *header = val;
+					axiom_node_t *header_node = NULL;
+					header_node = wsf_util_construct_header_node(env, header TSRMLS_CC);
+					if(header_node)
+					{
+						AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] adding header block to svc_client");
+						AXIS2_SVC_CLIENT_ADD_HEADER(svc_client, env, header_node);					
+					}
 					zend_hash_move_forward_ex(ht, &pos);
 				}
-			}	
-		*/
+			}
+		}
 	}
 	return 1;
 }
 
+
 char* wsf_util_serialize_om(axis2_env_t *env, axiom_node_t *ret_node)
 {
 	axiom_xml_writer_t *writer = NULL;
@@ -811,7 +889,7 @@
 	int password_present = AXIS2_FALSE;
 	int timestamp_present = AXIS2_FALSE;
 	
-	AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf-log] wsf_util_set_security_options" );
+	AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] wsf_util_set_security_options" );
 	if(zval_msg){
 		if(zend_hash_find(Z_OBJPROP_P(zval_msg), "user", sizeof("user"), (void **)&msg_tmp) == SUCCESS && 
 				Z_TYPE_PP(msg_tmp) == IS_STRING){
@@ -827,11 +905,23 @@
 			Z_TYPE_PP(msg_tmp) == IS_STRING){
 			char *password = NULL;
 			axis2_property_t *property = NULL;
+			
 			property = axis2_property_create(env);
+			
 			password = Z_STRVAL_PP(msg_tmp);
-			AXIS2_PROPERTY_SET_VALUE(property,env, password);
-			AXIS2_OPTIONS_SET_PROPERTY(client_options,  env, "password", property);
+			
+			AXIS2_PROPERTY_SET_VALUE(property,
+									 env, 
+									 password);
+
+			AXIS2_OPTIONS_SET_PROPERTY(client_options,  
+										env, 
+										"password", 
+										property);
+			
 			password_present = AXIS2_TRUE;
+
+			AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] password present :- %s", password);
 		}
 		if(zend_hash_find(Z_OBJPROP_P(zval_msg), "digest", sizeof("digest"), (void **)&msg_tmp) == SUCCESS && 
 			Z_TYPE_PP(msg_tmp) == IS_BOOL){
@@ -842,10 +932,13 @@
 			if(use_digest){
 				password_type = "passwordDigest";
 				property = axis2_property_create(env);
+
 				AXIS2_PROPERTY_SET_VALUE(property, env, password_type);
+
 				AXIS2_OPTIONS_SET_PROPERTY(client_options, env, "passwordType" ,property);
+
+				AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] password type is digest");
 			}
-			
 		}
 		else if(password_present){
 			char *password_type = NULL;
@@ -854,6 +947,8 @@
 				property = axis2_property_create(env);
 				AXIS2_PROPERTY_SET_VALUE(property, env, password_type);
 				AXIS2_OPTIONS_SET_PROPERTY(client_options, env, "passwordType" ,property);
+
+				AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] passwordType :- passwordText");
 		}	
 		if(zend_hash_find(Z_OBJPROP_P(zval_msg), "timeToLive", sizeof("timeToLive"), 
 			(void **)&msg_tmp) == SUCCESS && Z_TYPE_PP(msg_tmp) == IS_STRING){
@@ -865,18 +960,30 @@
 				AXIS2_PROPERTY_SET_VALUE(property, env, get_time_to_live(timeto_live, env));
 				AXIS2_OPTIONS_SET_PROPERTY(client_options, env, "timeToLive" ,property);
 			}
+			AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] timeToLive :- %s", timeto_live);
+
 			timestamp_present = AXIS2_TRUE;
 		}
 		if(username_present && password_present){
+			
 			axis2_property_t *sec_prop = NULL;
 			axis2_property_t *outflow_prop = NULL;
 
 			sec_prop = axis2_property_create(env);
-			if(timestamp_present)
+			if(timestamp_present){
+				
 				AXIS2_PROPERTY_SET_VALUE(sec_prop, env, "UsernameToken Timestamp");        
+				
+				AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] seurity properties :- UsernameToken Timestamp");
+			}	
 			else {
+
 				AXIS2_PROPERTY_SET_VALUE(sec_prop, env, "UsernameToken");            
+
+				AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] seurity properties :- UsernameToken");
+
 			}	
+
 			outflow_prop = axis2_property_create_with_args(env, AXIS2_SCOPE_APPLICATION, 0,
 				NULL,"TRUE");
 			
@@ -980,91 +1087,163 @@
 	int addr_action_present = AXIS2_FALSE;
 	char *value = NULL;	
 	
+	AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] setting addressing options ");
+
 	if(zend_hash_find(Z_OBJPROP_P(zval_client), "useWSA", sizeof("useWSA"), 
         (void**)&tmp) == SUCCESS) {
-        if((Z_TYPE_PP(tmp) == IS_BOOL && Z_BVAL_PP(tmp) == 1) ||
-            Z_TYPE_PP(tmp) == IS_STRING){ 
-                if(Z_TYPE_PP(tmp) == IS_BOOL){
-            	    value = "1.0";
-            	} else if(Z_TYPE_PP(tmp) == IS_STRING){
-                	value = Z_STRVAL_PP(tmp);
-            	}
-			}				
+        if(Z_TYPE_PP(tmp) == IS_BOOL && Z_BVAL_PP(tmp) == 1){ 
+            	value = "1.0";
+
+				AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] useWSA true, version 1.0");
+
+       	} else if(Z_TYPE_PP(tmp) == IS_STRING){
+
+				value = Z_STRVAL_PP(tmp);
+
+				AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] useWSA is string, value is %s", value);
+        }
 	}else{
 		return AXIS2_FALSE;	
 	}
 	
     if(zval_msg){
+		
+		AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] ws_message is present setting options using ws_message options");
+
 		if(zend_hash_find(Z_OBJPROP_P(zval_msg), "action", sizeof("action"), 
 					(void**)&tmp) == SUCCESS) {
+
 				AXIS2_OPTIONS_SET_ACTION(client_options, env, Z_STRVAL_PP(tmp));
+				
 				addr_action_present = AXIS2_TRUE;   
+
+				AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
+					"[wsf_client] addressing action is %s", Z_STRVAL_PP(tmp));
+
 		}
 		if(zend_hash_find(Z_OBJPROP_P(zval_msg), "replyTo", sizeof("replyTo"), 
 					(void**)&tmp) == SUCCESS) {
+
 				axis2_endpoint_ref_t *replyto_epr = NULL;
 				char *replyto = Z_STRVAL_PP(tmp);
+
 				replyto_epr = axis2_endpoint_ref_create(env, replyto);
+				
 				AXIS2_OPTIONS_SET_REPLY_TO(client_options, env, replyto_epr);
+
+				AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
+					"[wsf_client] replyTo present :- %s", replyto);
 		}
 		if(zend_hash_find(Z_OBJPROP_P(zval_msg), "faultTo", sizeof("faultTo"), 
 					(void**)&tmp) == SUCCESS) {
+
 				axis2_endpoint_ref_t *faultto_epr = NULL;
 				char *faultto = Z_STRVAL_PP(tmp);
+
 				faultto_epr = axis2_endpoint_ref_create(env, faultto);
 				AXIS2_OPTIONS_SET_FAULT_TO(client_options, env, faultto_epr);
+
+				AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
+					"[wsf_client] faultTo present :- %s" , faultto);
 		}
 		if(zend_hash_find(Z_OBJPROP_P(zval_msg), "from", sizeof("from"), 
 			(void**)&tmp) == SUCCESS) {
+
 				axis2_endpoint_ref_t *from_epr = NULL;
 				char *from = Z_STRVAL_PP(tmp);
+				
 				from_epr = axis2_endpoint_ref_create(env, from);
 				AXIS2_OPTIONS_SET_REPLY_TO(client_options, env, from_epr);
+
+				AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
+					"[wsf_client] from  present :- %s", from);
 		}
+
 		if(addr_action_present == AXIS2_TRUE){
+
 				is_addressing_engaged = AXIS2_TRUE;
+		
 				AXIS2_SVC_CLIENT_ENGAGE_MODULE(svc_client, env, "addressing");
+				
+				AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] engage addressing ");
+				
 				if(strcmp(value,"submission") == 0){
+
 					axis2_property_t *property = NULL;
+					
 					property = axis2_property_create(env);
+					
 					AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+					
 					AXIS2_PROPERTY_SET_VALUE(property, env, 
 						AXIS2_STRDUP(AXIS2_WSA_NAMESPACE_SUBMISSION, env));
+
 					AXIS2_OPTIONS_SET_PROPERTY(client_options, env, AXIS2_WSA_VERSION, property);
-				}
+
+					AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] addressing version is submission");
+			}
 		}
 	}				
     else{
+			
+		AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI , "[wsf_client] setting options using ws_client options");
+
 			if(zend_hash_find(Z_OBJPROP_P(zval_client), "action", sizeof("action"), 
                 (void**)&tmp) == SUCCESS) {
-                AXIS2_OPTIONS_SET_ACTION(client_options, env, Z_STRVAL_PP(tmp));
+
+				AXIS2_OPTIONS_SET_ACTION(client_options, env, Z_STRVAL_PP(tmp));
                 addr_action_present = AXIS2_TRUE;   
+
+				AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] addressing action present :- %s", Z_STRVAL_PP(tmp));
+
             }
             if(zend_hash_find(Z_OBJPROP_P(zval_client), "replyTo", sizeof("replyTo"), 
                 (void**)&tmp) == SUCCESS) {
-                axis2_endpoint_ref_t *replyto_epr = NULL;
-                char *replyto = Z_STRVAL_PP(tmp);
-                replyto_epr = axis2_endpoint_ref_create(env, replyto);
-                AXIS2_OPTIONS_SET_REPLY_TO(client_options, env, replyto_epr);
+             
+				axis2_endpoint_ref_t *replyto_epr = NULL;
+                
+				char *replyto = Z_STRVAL_PP(tmp);
+                
+				replyto_epr = axis2_endpoint_ref_create(env, replyto);
+                
+				AXIS2_OPTIONS_SET_REPLY_TO(client_options, env, replyto_epr);
+
+				AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
+					"[wsf_client] replyTo present :- %s", replyto);
             }
-            if(zend_hash_find(Z_OBJPROP_P(zval_client), "faultTo", sizeof("faultTo"), 
+
+			if(zend_hash_find(Z_OBJPROP_P(zval_client), "faultTo", sizeof("faultTo"), 
                 (void**)&tmp) == SUCCESS) {
-                axis2_endpoint_ref_t *faultto_epr = NULL;
-                char *faultto = Z_STRVAL_PP(tmp);
-                faultto_epr = axis2_endpoint_ref_create(env, faultto);
-                AXIS2_OPTIONS_SET_FAULT_TO(client_options, env, faultto_epr);
+
+				axis2_endpoint_ref_t *faultto_epr = NULL;
+                
+				char *faultto = Z_STRVAL_PP(tmp);
+                
+				faultto_epr = axis2_endpoint_ref_create(env, faultto);
+                
+				AXIS2_OPTIONS_SET_FAULT_TO(client_options, env, faultto_epr);
+
+				AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] faultTo present %s", faultto);
+
             }
             if(zend_hash_find(Z_OBJPROP_P(zval_client), "from", sizeof("from"), 
                 (void**)&tmp) == SUCCESS) {
                 axis2_endpoint_ref_t *from_epr = NULL;
-                char *from = Z_STRVAL_PP(tmp);
+                
+				char *from = Z_STRVAL_PP(tmp);
+
                 from_epr = axis2_endpoint_ref_create(env, from);
                 AXIS2_OPTIONS_SET_REPLY_TO(client_options, env, from_epr);
+
+				AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] from present %s", from);
             }
             if(addr_action_present == AXIS2_TRUE){
 				is_addressing_engaged = AXIS2_TRUE;
 				
                 AXIS2_SVC_CLIENT_ENGAGE_MODULE(svc_client, env, "addressing");
+			
+				AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] engage addressing");
+
 				if(strcmp(value,"submission") == 0){
                     axis2_property_t *property = NULL;
                     property = axis2_property_create(env);
@@ -1072,6 +1251,8 @@
 				    AXIS2_PROPERTY_SET_VALUE(property, env, 
 					AXIS2_STRDUP(AXIS2_WSA_NAMESPACE_SUBMISSION, env));
 				    AXIS2_OPTIONS_SET_PROPERTY(client_options, env, AXIS2_WSA_VERSION, property);
+
+					AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] addressing versio is submission");
                 }
             }   
 		}    
@@ -1095,21 +1276,44 @@
         if(Z_TYPE_PP(tmp) == IS_STRING){
             char *value = NULL;
             value = Z_STRVAL_PP(tmp);
+
             if(value && strcmp(value,"1.2") == 0){
-                AXIS2_OPTIONS_SET_SOAP_VERSION(client_options, env, AXIOM_SOAP12);
+            
+				AXIS2_OPTIONS_SET_SOAP_VERSION(client_options, env, AXIOM_SOAP12);
+
+				AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] soap version SOAP12");
+
             }
             else if(value && strcmp(value,"1.1") == 0){
+
                 AXIS2_OPTIONS_SET_SOAP_VERSION(client_options, env, AXIOM_SOAP11);
-            }
+
+				AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] soap version SOAP11");
+
+				WSF_GLOBAL(soap_version) = AXIOM_SOAP11;
+
+				WSF_GLOBAL(soap_uri) = WS_SOAP_1_1_NAMESPACE_URI;
+			}
             else if(value && strcmp(value, "false") == 0) {
                 use_soap = 0;
+
+				AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] use soap value is false ");
             }
         }else if(Z_TYPE_PP(tmp) == IS_DOUBLE){
             double val = Z_DVAL_PP(tmp);
             if(val == 1.2){
+
                 AXIS2_OPTIONS_SET_SOAP_VERSION(client_options, env, AXIOM_SOAP12);
+
+				AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] use soap value is false ");
+
             }else if(val == 1.1){
                 AXIS2_OPTIONS_SET_SOAP_VERSION(client_options, env, AXIOM_SOAP11);
+
+				AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] soap version soap11");
+
+				WSF_GLOBAL(soap_version) = AXIOM_SOAP11;
+				WSF_GLOBAL(soap_uri) = WS_SOAP_1_1_NAMESPACE_URI;
             }
         }else if(Z_TYPE_PP(tmp) == IS_BOOL){
             int bval = Z_BVAL_PP(tmp);
@@ -1122,6 +1326,9 @@
     }else
     {
         use_soap = 0;
+
+		AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] soap version is soap12");
+
     }
     if(zend_hash_find(Z_OBJPROP_P(zval_client), "HTTPMethod", sizeof("HTTPMethod"), 
         (void **)&tmp) == SUCCESS){
@@ -1142,9 +1349,17 @@
         if(Z_TYPE_PP(tmp) == IS_BOOL){
             int val = Z_BVAL_PP(tmp);
             if(val == 0){
+
                 AXIS2_OPTIONS_SET_ENABLE_MTOM(client_options, env, AXIS2_FALSE);
+
+				AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] enable mtom false");
+
             }else{
+
                 AXIS2_OPTIONS_SET_ENABLE_MTOM(client_options, env, AXIS2_TRUE);
+
+				AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[wsf_client] enable mtom true");
+
             }
         }                
     }
@@ -1310,6 +1525,9 @@
         
 		status = wsf_util_set_options(this_ptr, param, env,
             client_options, svc_client, 0 TSRMLS_CC);
+		
+		wsf_util_set_headers(env, svc_client, param TSRMLS_CC);
+
         if(status == AXIS2_FAILURE){
             php_error_docref(NULL TSRMLS_CC, E_ERROR, "service endpoint uri is needed for invocation ");
         }
@@ -1349,20 +1567,22 @@
 		call_sandesha2_client_terminate = 1;
 	}
 
+
 	if(is_oneway)
 	{
 		int ret_val = 0;
 
+
 		ret_val = AXIS2_SVC_CLIENT_SEND_ROBUST(svc_client, env, payload);
+
+
 		if(ret_val == 1)
 		{
 			ZVAL_TRUE(return_value);
 		}else{
 			ZVAL_FALSE(return_value);
 		}
-		if(call_sandesha2_client_terminate && rm_seq_key){
-		/*	sandesha2_client_close_seq_with_svc_client_and_seq_key(env, svc_client, rm_seq_key);	*/
-		}
+
 	}else {
 		res_payload = AXIS2_SVC_CLIENT_SEND_RECEIVE(svc_client, env, payload);	
 		if (res_payload) {
@@ -1411,9 +1631,6 @@
 			zend_throw_exception_ex(zend_exception_get_default(TSRMLS_C), 1 TSRMLS_CC, 
 				"soap body is not found");
 		}
-		if(call_sandesha2_client_terminate && rm_seq_key){
-		/*	sandesha2_client_close_seq_with_svc_client_and_seq_key(env, svc_client, rm_seq_key);	 */
-		}
 	}
 	return 0;
 }
@@ -1737,4 +1954,3 @@
 	}
 	return algorithm;
 }
-

Modified: wsf/php/src/wsf.c
==============================================================================
--- wsf/php/src/wsf.c	(original)
+++ wsf/php/src/wsf.c	Sun Feb  4 21:00:16 2007
@@ -390,6 +390,7 @@
 	wsf_globals->enable_exception = 0;
 	wsf_globals->soap_version = AXIOM_SOAP12;
 	wsf_globals->passwd_location = NULL;
+	wsf_globals->soap_uri = WS_SOAP_1_2_NAMESPACE_URI;
 	
 }
 /* }}} */
@@ -691,7 +692,7 @@
 			}else if(Z_TYPE_PP(tmp) == IS_STRING){
 				add_property_stringl(object, "reliable", Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp), 1);
 			}else if(Z_TYPE_PP(tmp) == IS_LONG){
-				add_property_long(object, "reliable", Z_TYPE_PP(tmp));
+				add_property_long(object, "reliable", Z_LVAL_PP(tmp));
 			}
 		}
 
@@ -1863,7 +1864,7 @@
 	zend_bool must_understand = 0;
 
 	if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|zbz", 
-			&ns, &ns_len, &name, &name_len, &data, &must_understand, &role) == FAILURE) {
+			 &name, &name_len, &ns, &ns_len, &data, &must_understand, &role) == FAILURE) {
 			php_error_docref(NULL TSRMLS_CC, E_ERROR, "Invalid parameters");
 	}
 	if (ns_len == 0) {
@@ -1874,7 +1875,7 @@
 	}
 
 	add_property_stringl(this_ptr, "namespace", ns, ns_len, 1);
-	add_property_stringl(this_ptr, "name", name, name_len, 1);
+	add_property_stringl(this_ptr, "localname", name, name_len, 1);
 	if (data) {
 #ifndef ZEND_ENGINE_2
 		zval_add_ref(&data);
@@ -1882,16 +1883,14 @@
 		add_property_zval(this_ptr, "data", data);
 	}
 	add_property_bool(this_ptr, "mustUnderstand", must_understand);
-	if (role == NULL) {
-	} else if (Z_TYPE_P(role) == IS_LONG &&
+	
+	if (role && Z_TYPE_P(role) == IS_LONG &&
 		(Z_LVAL_P(role) == WS_SOAP_ROLE_NEXT ||
 		Z_LVAL_P(role) == WS_SOAP_ROLE_NONE ||
 		Z_LVAL_P(role) == WS_SOAP_ROLE_ULTIMATE_RECEIVER)) {
 			add_property_long(this_ptr, "role", Z_LVAL_P(role));
-	} else if (Z_TYPE_P(role) == IS_STRING && Z_STRLEN_P(role) > 0) {
+	} else if (role && Z_TYPE_P(role) == IS_STRING && Z_STRLEN_P(role) > 0) {
 		add_property_stringl(this_ptr, "role", Z_STRVAL_P(role), Z_STRLEN_P(role), 1);
-	} else {
-		php_error_docref(NULL TSRMLS_CC, E_ERROR, "Invalid parameters. Invalid role.");
 	}
 }
 

Modified: wsf/php/src/wsf.h
==============================================================================
--- wsf/php/src/wsf.h	(original)
+++ wsf/php/src/wsf.h	Sun Feb  4 21:00:16 2007
@@ -101,6 +101,7 @@
 	char *home;
 	long enable_exception;
 	char *log_path;
+	char *soap_uri;
 ZEND_END_MODULE_GLOBALS(wsf)
 
 ZEND_EXTERN_MODULE_GLOBALS(wsf)

Modified: wsf/php/src/wsf_common.h
==============================================================================
--- wsf/php/src/wsf_common.h	(original)
+++ wsf/php/src/wsf_common.h	Sun Feb  4 21:00:16 2007
@@ -71,7 +71,8 @@
 #define WS_SOAP_ROLE_NEXT_URI "http://www.w3.org/2003/05/soap-envelope/role/next"
 #define WS_SOAP_ROLE_ULTIMATE_RECEIVER_URI "http://www.w3.org/2003/05/soap-envelope/role/next"
 
-
+#define WS_SOAP_1_1_NAMESPACE_URI "http://schemas.xmlsoap.org/soap/envelope/"
+#define WS_SOAP_1_2_NAMESPACE_URI "http://www.w3.org/2003/05/soap-envelope"
 
 #define WS_LOCATION         "location"
 #define WS_USE              "use"

Modified: wsf/php/src/wsf_util.h
==============================================================================
--- wsf/php/src/wsf_util.h	(original)
+++ wsf/php/src/wsf_util.h	Sun Feb  4 21:00:16 2007
@@ -19,7 +19,6 @@
 
 #include <axis2_env.h>
 #include <axiom.h>
-#include <axis2_wsdl.h>
 #include <axis2_op_client.h>
 #include <axis2_svc_client.h>
 #include <axis2_options.h>




More information about the Wsf-c-dev mailing list