[2/4] webservices: Set default channel envelope and addressing versions.

Hans Leidekker hans at codeweavers.com
Thu Jul 20 08:01:54 CDT 2017


Signed-off-by: Hans Leidekker <hans at codeweavers.com>
---
 dlls/webservices/channel.c       |  6 ++++++
 dlls/webservices/tests/channel.c | 26 ++++++++++++++++++++++++++
 2 files changed, 32 insertions(+)

diff --git a/dlls/webservices/channel.c b/dlls/webservices/channel.c
index 6326d60..5abd394 100644
--- a/dlls/webservices/channel.c
+++ b/dlls/webservices/channel.c
@@ -193,12 +193,18 @@ static HRESULT create_channel( WS_CHANNEL_TYPE type, WS_CHANNEL_BINDING binding,
 {
     struct channel *channel;
     ULONG i, msg_size = 65536;
+    WS_ENVELOPE_VERSION env_version = WS_ENVELOPE_VERSION_SOAP_1_2;
+    WS_ADDRESSING_VERSION addr_version = WS_ADDRESSING_VERSION_1_0;
     HRESULT hr;
 
     if (!(channel = alloc_channel())) return E_OUTOFMEMORY;
 
     prop_set( channel->prop, channel->prop_count, WS_CHANNEL_PROPERTY_MAX_BUFFERED_MESSAGE_SIZE,
               &msg_size, sizeof(msg_size) );
+    prop_set( channel->prop, channel->prop_count, WS_CHANNEL_PROPERTY_ENVELOPE_VERSION,
+              &env_version, sizeof(env_version) );
+    prop_set( channel->prop, channel->prop_count, WS_CHANNEL_PROPERTY_ADDRESSING_VERSION,
+              &addr_version, sizeof(addr_version) );
 
     channel->type    = type;
     channel->binding = binding;
diff --git a/dlls/webservices/tests/channel.c b/dlls/webservices/tests/channel.c
index ceefad9..86df4f7 100644
--- a/dlls/webservices/tests/channel.c
+++ b/dlls/webservices/tests/channel.c
@@ -28,6 +28,8 @@ static void test_WsCreateChannel(void)
     WS_CHANNEL_STATE state;
     WS_CHANNEL_PROPERTY prop;
     WS_ENCODING encoding;
+    WS_ENVELOPE_VERSION env_version;
+    WS_ADDRESSING_VERSION addr_version;
     ULONG size;
 
     hr = WsCreateChannel( WS_CHANNEL_TYPE_REQUEST, WS_HTTP_CHANNEL_BINDING, NULL, 0, NULL, NULL, NULL );
@@ -48,6 +50,18 @@ static void test_WsCreateChannel(void)
     ok( hr == S_OK, "got %08x\n", hr );
     ok( encoding == WS_ENCODING_XML_UTF8, "got %u\n", encoding );
 
+    env_version = 0xdeadbeef;
+    hr = WsGetChannelProperty( channel, WS_CHANNEL_PROPERTY_ENVELOPE_VERSION, &env_version, sizeof(env_version),
+                               NULL );
+    ok( hr == S_OK, "got %08x\n", hr );
+    ok( env_version == WS_ENVELOPE_VERSION_SOAP_1_2, "got %u\n", env_version );
+
+    addr_version = 0xdeadbeef;
+    hr = WsGetChannelProperty( channel, WS_CHANNEL_PROPERTY_ADDRESSING_VERSION, &addr_version, sizeof(addr_version),
+                               NULL );
+    ok( hr == S_OK, "got %08x\n", hr );
+    ok( addr_version == WS_ADDRESSING_VERSION_1_0, "got %u\n", addr_version );
+
     /* read-only property */
     state = 0xdeadbeef;
     hr = WsGetChannelProperty( channel, WS_CHANNEL_PROPERTY_STATE, &state, sizeof(state), NULL );
@@ -81,6 +95,18 @@ static void test_WsCreateChannel(void)
     hr = WsGetChannelProperty( channel, WS_CHANNEL_PROPERTY_ENCODING, &encoding, sizeof(encoding), NULL );
     ok( hr == S_OK, "got %08x\n", hr );
     ok( encoding == WS_ENCODING_XML_BINARY_SESSION_1, "got %u\n", encoding );
+
+    env_version = 0xdeadbeef;
+    hr = WsGetChannelProperty( channel, WS_CHANNEL_PROPERTY_ENVELOPE_VERSION, &env_version, sizeof(env_version),
+                               NULL );
+    ok( hr == S_OK, "got %08x\n", hr );
+    ok( env_version == WS_ENVELOPE_VERSION_SOAP_1_2, "got %u\n", env_version );
+
+    addr_version = 0xdeadbeef;
+    hr = WsGetChannelProperty( channel, WS_CHANNEL_PROPERTY_ADDRESSING_VERSION, &addr_version, sizeof(addr_version),
+                               NULL );
+    ok( hr == S_OK, "got %08x\n", hr );
+    ok( addr_version == WS_ADDRESSING_VERSION_1_0, "got %u\n", addr_version );
     WsFreeChannel( channel );
 }
 
-- 
2.1.4




More information about the wine-patches mailing list