[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