[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