[wsf-c-dev] svn commit r404 - in wsf/c/wsclient: samples/data src
svn at wso2.com
svn at wso2.com
Fri Jan 12 00:42:08 PST 2007
Author: dinesh
Date: Fri Jan 12 00:41:48 2007
New Revision: 404
Modified:
wsf/c/wsclient/samples/data/mtom.xml
wsf/c/wsclient/src/wsclient_option.c
wsf/c/wsclient/src/wsclient_option.h
wsf/c/wsclient/src/wsclient_stub.c
wsf/c/wsclient/src/wsclient_util.c
wsf/c/wsclient/src/wsclient_util.h
Log:
send request over secure channel without editing axis2.xml and without having AXIS2_SSL_CA_FILE environment variable
Modified: wsf/c/wsclient/samples/data/mtom.xml
==============================================================================
--- wsf/c/wsclient/samples/data/mtom.xml (original)
+++ wsf/c/wsclient/samples/data/mtom.xml Fri Jan 12 00:41:48 2007
@@ -1,6 +1,6 @@
<ns1:mtomSample xmlns:ns1="http://ws.apache.org/axis2/c/samples/mtom">
<ns1:fileName>test.jpg</ns1:fileName>
<ns1:image>
- <xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include" href="resources/axis2.jpg"></xop:Include>
+ <xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include" href="r.sh"></xop:Include>
</ns1:image>
</ns1:mtomSample>
Modified: wsf/c/wsclient/src/wsclient_option.c
==============================================================================
--- wsf/c/wsclient/src/wsclient_option.c (original)
+++ wsf/c/wsclient/src/wsclient_option.c Fri Jan 12 00:41:48 2007
@@ -36,6 +36,7 @@
{"no-mtom", 0, no_argument},
{"xop-in", 0, optional_argument},
{"xop-out", 0, optional_argument},
+ {"server-cert", 0, required_argument},
};
Modified: wsf/c/wsclient/src/wsclient_option.h
==============================================================================
--- wsf/c/wsclient/src/wsclient_option.h (original)
+++ wsf/c/wsclient/src/wsclient_option.h Fri Jan 12 00:41:48 2007
@@ -50,6 +50,7 @@
NO_MTOM, /* {"no-mtom", 0, no_argument}, */
XOP_IN, /* {"xop-in", 0, optional_argument}, */
XOP_OUT, /* {"xop-out", 0, optional_argument}, */
+ SERVER_CERT, /* {"server-cert", 0, required_argument}*/
};
Modified: wsf/c/wsclient/src/wsclient_stub.c
==============================================================================
--- wsf/c/wsclient/src/wsclient_stub.c (original)
+++ wsf/c/wsclient/src/wsclient_stub.c Fri Jan 12 00:41:48 2007
@@ -69,6 +69,7 @@
static axis2_array_list_t *header_list;
static int is_output_http_headers = 0;
static axis2_char_t *output_filename;
+static axis2_char_t *server_cert;
extern wsclient_cmd_options_t cmd_options_data[];
extern int array_size;
@@ -85,7 +86,7 @@
axis2_endpoint_ref_t *fault_to = NULL;
axis2_endpoint_ref_t *in_reply_to = NULL;
axis2_relates_to_t *relates_to = NULL;
- axis2_property_t *property ;
+ axis2_property_t *dump_property ;
axis2_property_t *username;
axis2_property_t *password;
axis2_property_t *pw_type;
@@ -335,6 +336,20 @@
output_filename = (char *) wsclient_options->value;
}
break;
+ case SERVER_CERT:
+ {
+ axis2_property_t *server_cert_property;
+ server_cert = (char *)wsclient_options->value;
+ server_cert_property = axis2_property_create (env);
+ if (server_cert_property && server_cert)
+ {
+ AXIS2_PROPERTY_SET_VALUE(server_cert_property, env,
+ axis2_strdup (server_cert, env));
+ AXIS2_OPTIONS_SET_PROPERTY(options, env, AXIS2_SSL_SERVER_CERT,
+ server_cert_property);
+ }
+ }
+ break;
};
}
}
@@ -436,12 +451,11 @@
if (is_soap_dump)
{
- property = axis2_property_create (env);
- AXIS2_PROPERTY_SET_VALUE (property,
+ dump_property = axis2_property_create (env);
+ AXIS2_PROPERTY_SET_VALUE (dump_property,
env,
- AXIS2_VALUE_TRUE);
- AXIS2_OPTIONS_SET_PROPERTY (options, env,
- AXIS2_STRDUP ("dump", env), property);
+ AXIS2_STRDUP (AXIS2_VALUE_TRUE, env));
+ AXIS2_OPTIONS_SET_PROPERTY (options, env, "dump", dump_property);
}
if (is_username && is_password)
@@ -576,7 +590,13 @@
{
if (dest_uri)
printf ("Sending request to: %s \n", dest_uri);
+
+#ifdef AXIS2_SSL_ENABLED
+ if (strstr (dest_uri, "https"))
+ wsclient_set_https_transport_parameretes (env, svc_client);
+#endif
ret_node = AXIS2_SVC_CLIENT_SEND_RECEIVE(svc_client, env, payload);
+
if (is_soap_dump)
wsclient_soap_out (env, svc_client, 0);
}
Modified: wsf/c/wsclient/src/wsclient_util.c
==============================================================================
--- wsf/c/wsclient/src/wsclient_util.c (original)
+++ wsf/c/wsclient/src/wsclient_util.c Fri Jan 12 00:41:48 2007
@@ -517,3 +517,61 @@
}
return AXIS2_SUCCESS;
}
+
+axis2_status_t
+wsclient_set_https_transport_parameretes (const axis2_env_t *env,
+ axis2_svc_client_t *svc_client)
+{
+ axis2_conf_ctx_t *conf_ctx;
+ axis2_svc_ctx_t *svc_ctx;
+ axis2_conf_t *conf;
+ axis2_qname_t *qname;
+ axis2_transport_out_desc_t *transport_out;
+ axis2_transport_sender_t *transport_sender;
+ axis2_param_t *param;
+
+ if (svc_client)
+ svc_ctx = AXIS2_SVC_CLIENT_GET_SVC_CTX (svc_client, env);
+ else
+ return AXIS2_FAILURE;
+
+ if (svc_ctx)
+ conf_ctx = AXIS2_SVC_CTX_GET_CONF_CTX(svc_ctx, env);
+ else
+ return AXIS2_FAILURE;
+
+ if (conf_ctx)
+ conf = AXIS2_CONF_CTX_GET_CONF(conf_ctx, env);
+ else
+ return AXIS2_FAILURE;
+
+
+ qname = axis2_qname_create (env, "https", NULL, NULL);
+ if (qname)
+ transport_out = axis2_transport_out_desc_create_with_qname (env, qname);
+ else
+ return AXIS2_FAILURE;
+
+ transport_sender = (axis2_transport_sender_t *)axis2_http_transport_sender_create (env);
+
+ param = axis2_param_create (env, NULL, NULL);
+ if (param)
+ {
+ AXIS2_PARAM_SET_NAME(param, env, AXIS2_HTTP_PROTOCOL_VERSION);
+ AXIS2_PARAM_SET_VALUE(param, env, AXIS2_HTTP_HEADER_PROTOCOL_11);
+ AXIS2_PARAM_SET_LOCKED(param, env, AXIS2_FALSE);
+ }
+ else
+ return AXIS2_FAILURE;
+
+ if (transport_out && conf)
+ {
+ AXIS2_PARAM_CONTAINER_ADD_PARAM(transport_out->param_container, env, param);
+ AXIS2_TRANSPORT_OUT_DESC_SET_SENDER(transport_out, env, transport_sender);
+ AXIS2_CONF_ADD_TRANSPORT_OUT (conf, env, transport_out);
+ }
+ else
+ return AXIS2_FAILURE;
+
+ return AXIS2_SUCCESS;
+}
Modified: wsf/c/wsclient/src/wsclient_util.h
==============================================================================
--- wsf/c/wsclient/src/wsclient_util.h (original)
+++ wsf/c/wsclient/src/wsclient_util.h Fri Jan 12 00:41:48 2007
@@ -46,5 +46,8 @@
wsclient_output_http_headers (const axis2_env_t *env,
axis2_svc_client_t *svc_client,
axis2_char_t *file_name);
+axis2_status_t
+wsclient_set_https_transport_parameretes (const axis2_env_t *env,
+ axis2_svc_client_t *svc_client);
#endif /* WSCLIENT_UTIL_H */
More information about the Wsf-c-dev
mailing list