[PATCH 1/4] webservices: Use wide character string literals.

Hans Leidekker hans at codeweavers.com
Tue Mar 17 09:35:42 CDT 2020


Signed-off-by: Hans Leidekker <hans at codeweavers.com>
---
 dlls/webservices/channel.c  |  7 ++-----
 dlls/webservices/listener.c |  3 +--
 dlls/webservices/msg.c      | 25 +++++++---------------
 dlls/webservices/url.c      | 41 +++++++++++++++----------------------
 4 files changed, 27 insertions(+), 49 deletions(-)

diff --git a/dlls/webservices/channel.c b/dlls/webservices/channel.c
index 10c33dc07d..f2906c8673 100644
--- a/dlls/webservices/channel.c
+++ b/dlls/webservices/channel.c
@@ -910,8 +910,6 @@ error:
 
 static HRESULT connect_channel_http( struct channel *channel )
 {
-    static const WCHAR agentW[] =
-        {'M','S','-','W','e','b','S','e','r','v','i','c','e','s','/','1','.','0',0};
     HINTERNET ses = NULL, con = NULL;
     URL_COMPONENTS uc;
     HRESULT hr;
@@ -943,7 +941,7 @@ static HRESULT connect_channel_http( struct channel *channel )
         goto done;
     }
 
-    if (!(ses = WinHttpOpen( agentW, 0, NULL, NULL, 0 )))
+    if (!(ses = WinHttpOpen( L"MS-WebServices/1.0", 0, NULL, NULL, 0 )))
     {
         hr = HRESULT_FROM_WIN32( GetLastError() );
         goto done;
@@ -1267,8 +1265,7 @@ static HRESULT send_sized_envelope( struct channel *channel, BYTE *data, ULONG l
 
 static HRESULT open_http_request( struct channel *channel, HINTERNET *req )
 {
-    static const WCHAR postW[] = {'P','O','S','T',0};
-    if ((*req = WinHttpOpenRequest( channel->u.http.connect, postW, channel->u.http.path,
+    if ((*req = WinHttpOpenRequest( channel->u.http.connect, L"POST", channel->u.http.path,
                                     NULL, NULL, NULL, channel->u.http.flags ))) return S_OK;
     return HRESULT_FROM_WIN32( GetLastError() );
 }
diff --git a/dlls/webservices/listener.c b/dlls/webservices/listener.c
index 9b32369fd4..d41b64b974 100644
--- a/dlls/webservices/listener.c
+++ b/dlls/webservices/listener.c
@@ -286,7 +286,6 @@ void WINAPI WsFreeListener( WS_LISTENER *handle )
 
 HRESULT resolve_hostname( const WCHAR *host, USHORT port, struct sockaddr *addr, int *addr_len, int flags )
 {
-    static const WCHAR fmtW[] = {'%','u',0};
     WCHAR service[6];
     ADDRINFOW hints, *res, *info;
     HRESULT hr = WS_E_ADDRESS_NOT_AVAILABLE;
@@ -296,7 +295,7 @@ HRESULT resolve_hostname( const WCHAR *host, USHORT port, struct sockaddr *addr,
     hints.ai_family = AF_INET;
 
     *addr_len = 0;
-    swprintf( service, ARRAY_SIZE(service), fmtW, port );
+    swprintf( service, ARRAY_SIZE(service), L"%u", port );
     if (GetAddrInfoW( host, service, &hints, &res )) return HRESULT_FROM_WIN32( WSAGetLastError() );
 
     info = res;
diff --git a/dlls/webservices/msg.c b/dlls/webservices/msg.c
index 6922224a05..d955e173b4 100644
--- a/dlls/webservices/msg.c
+++ b/dlls/webservices/msg.c
@@ -1901,14 +1901,6 @@ static HRESULT insert_mapped_headers( struct msg *msg, HINTERNET req )
 
 HRESULT message_insert_http_headers( WS_MESSAGE *handle, HINTERNET req )
 {
-    static const WCHAR contenttypeW[] =
-        {'C','o','n','t','e','n','t','-','T','y','p','e',0};
-    static const WCHAR soapxmlW[] =
-        {'a','p','p','l','i','c','a','t','i','o','n','/','s','o','a','p','+','x','m','l',0};
-    static const WCHAR textxmlW[] =
-        {'t','e','x','t','/','x','m','l',0};
-    static const WCHAR charsetW[] =
-        {'c','h','a','r','s','e','t','=','u','t','f','-','8',0};
     struct msg *msg = (struct msg *)handle;
     HRESULT hr = E_OUTOFMEMORY;
     WCHAR *header = NULL, *buf;
@@ -1925,11 +1917,11 @@ HRESULT message_insert_http_headers( WS_MESSAGE *handle, HINTERNET req )
     switch (msg->version_env)
     {
     case WS_ENVELOPE_VERSION_SOAP_1_1:
-        header = build_http_header( contenttypeW, textxmlW, &len );
+        header = build_http_header( L"Content-Type", L"text/xml", &len );
         break;
 
     case WS_ENVELOPE_VERSION_SOAP_1_2:
-        header = build_http_header( contenttypeW, soapxmlW, &len );
+        header = build_http_header( L"Content-Type", L"application/soap+xml", &len );
         break;
 
     default:
@@ -1942,7 +1934,7 @@ HRESULT message_insert_http_headers( WS_MESSAGE *handle, HINTERNET req )
     heap_free( header );
 
     hr = E_OUTOFMEMORY;
-    if (!(header = build_http_header( contenttypeW, charsetW, &len ))) goto done;
+    if (!(header = build_http_header( L"Content-Type", L"charset=utf-8", &len ))) goto done;
     if ((hr = insert_http_header( req, header, len, WINHTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON )) != S_OK)
         goto done;
     heap_free( header );
@@ -1952,8 +1944,6 @@ HRESULT message_insert_http_headers( WS_MESSAGE *handle, HINTERNET req )
     {
     case WS_ENVELOPE_VERSION_SOAP_1_1:
     {
-        static const WCHAR soapactionW[] = {'S','O','A','P','A','c','t','i','o','n',0};
-
         if (!(len = MultiByteToWideChar( CP_UTF8, 0, (char *)msg->action->bytes, msg->action->length, NULL, 0 )))
             break;
 
@@ -1964,7 +1954,7 @@ HRESULT message_insert_http_headers( WS_MESSAGE *handle, HINTERNET req )
         buf[len + 1] = '"';
         buf[len + 2] = 0;
 
-        header = build_http_header( soapactionW, buf, &len );
+        header = build_http_header( L"SOAPAction", buf, &len );
         heap_free( buf );
         if (!header) goto done;
 
@@ -1973,21 +1963,20 @@ HRESULT message_insert_http_headers( WS_MESSAGE *handle, HINTERNET req )
     }
     case WS_ENVELOPE_VERSION_SOAP_1_2:
     {
-        static const WCHAR actionW[] = {'a','c','t','i','o','n','=','"'};
-        ULONG len_action = ARRAY_SIZE( actionW );
+        ULONG len_action = ARRAY_SIZE( L"action=\"" ) - 1;
 
         if (!(len = MultiByteToWideChar( CP_UTF8, 0, (char *)msg->action->bytes, msg->action->length, NULL, 0 )))
             break;
 
         hr = E_OUTOFMEMORY;
         if (!(buf = heap_alloc( (len + len_action + 2) * sizeof(WCHAR) ))) goto done;
-        memcpy( buf, actionW, len_action * sizeof(WCHAR) );
+        memcpy( buf, L"action=\"", len_action * sizeof(WCHAR) );
         MultiByteToWideChar( CP_UTF8, 0, (char *)msg->action->bytes, msg->action->length, buf + len_action, len );
         len += len_action;
         buf[len++] = '"';
         buf[len] = 0;
 
-        header = build_http_header( contenttypeW, buf, &len );
+        header = build_http_header( L"Content-Type", buf, &len );
         heap_free( buf );
         if (!header) goto done;
 
diff --git a/dlls/webservices/url.c b/dlls/webservices/url.c
index 6f2ce9d6c9..f2fbda83c1 100644
--- a/dlls/webservices/url.c
+++ b/dlls/webservices/url.c
@@ -31,27 +31,21 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(webservices);
 
-static const WCHAR http[] = {'h','t','t','p'};
-static const WCHAR https[] = {'h','t','t','p','s'};
-static const WCHAR nettcp[] = {'n','e','t','.','t','c','p'};
-static const WCHAR soapudp[] = {'s','o','a','p','.','u','d','p'};
-static const WCHAR netpipe[] = {'n','e','t','.','p','i','p','e'};
-
 static WS_URL_SCHEME_TYPE scheme_type( const WCHAR *str, ULONG len )
 {
-    if (len == ARRAY_SIZE( http ) && !wcsnicmp( str, http, ARRAY_SIZE( http )))
+    if (len == ARRAY_SIZE( L"http" ) - 1 && !wcsnicmp( str, L"http", ARRAY_SIZE( L"http" ) - 1 ))
         return WS_URL_HTTP_SCHEME_TYPE;
 
-    if (len == ARRAY_SIZE( https ) && !wcsnicmp( str, https, ARRAY_SIZE( https )))
+    if (len == ARRAY_SIZE( L"https" ) - 1 && !wcsnicmp( str, L"https", ARRAY_SIZE( L"https" ) - 1 ))
         return WS_URL_HTTPS_SCHEME_TYPE;
 
-    if (len == ARRAY_SIZE( nettcp ) && !wcsnicmp( str, nettcp, ARRAY_SIZE( nettcp )))
+    if (len == ARRAY_SIZE( L"net.tcp" ) - 1 && !wcsnicmp( str, L"net.tcp", ARRAY_SIZE( L"net.tcp" ) - 1 ))
         return WS_URL_NETTCP_SCHEME_TYPE;
 
-    if (len == ARRAY_SIZE( soapudp ) && !wcsnicmp( str, soapudp, ARRAY_SIZE( soapudp )))
+    if (len == ARRAY_SIZE( L"soap.udp" ) - 1 && !wcsnicmp( str, L"soap.udp", ARRAY_SIZE( L"soap.udp" ) - 1 ))
         return WS_URL_SOAPUDP_SCHEME_TYPE;
 
-    if (len == ARRAY_SIZE( netpipe ) && !wcsnicmp( str, netpipe, ARRAY_SIZE( netpipe )))
+    if (len == ARRAY_SIZE( L"net.pipe" ) - 1 && !wcsnicmp( str, L"net.pipe", ARRAY_SIZE( L"net.pipe" ) - 1 ))
         return WS_URL_NETPIPE_SCHEME_TYPE;
 
     return ~0u;
@@ -278,24 +272,24 @@ static const WCHAR *scheme_str( WS_URL_SCHEME_TYPE scheme, ULONG *len )
     switch (scheme)
     {
     case WS_URL_HTTP_SCHEME_TYPE:
-        *len = ARRAY_SIZE( http );
-        return http;
+        *len = ARRAY_SIZE( L"http" ) - 1;
+        return L"http";
 
     case WS_URL_HTTPS_SCHEME_TYPE:
-        *len = ARRAY_SIZE( https );
-        return https;
+        *len = ARRAY_SIZE( L"https" ) - 1;
+        return L"https";
 
     case WS_URL_NETTCP_SCHEME_TYPE:
-        *len = ARRAY_SIZE( nettcp );
-        return nettcp;
+        *len = ARRAY_SIZE( L"net.tcp" ) - 1;
+        return L"net.tcp";
 
     case WS_URL_SOAPUDP_SCHEME_TYPE:
-        *len = ARRAY_SIZE( soapudp );
-        return soapudp;
+        *len = ARRAY_SIZE( L"soap.udp" ) - 1;
+        return L"soap.udp";
 
     case WS_URL_NETPIPE_SCHEME_TYPE:
-        *len = ARRAY_SIZE( netpipe );
-        return netpipe;
+        *len = ARRAY_SIZE( L"net.pipe" ) - 1;
+        return L"net.pipe";
 
     default:
         ERR( "unhandled scheme %u\n", scheme );
@@ -364,7 +358,7 @@ static HRESULT url_encode_size( const WCHAR *str, ULONG len, const char *except,
 
 static ULONG url_encode_byte( unsigned char byte, const char *except, WCHAR *buf )
 {
-    static const WCHAR hex[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
+    static const WCHAR hex[] = L"0123456789ABCDEF";
     switch (escape_size( byte, except ))
     {
     case 3:
@@ -426,7 +420,6 @@ static HRESULT url_encode( const WCHAR *str, ULONG len, WCHAR *buf, const char *
 HRESULT WINAPI WsEncodeUrl( const WS_URL *base, ULONG flags, WS_HEAP *heap, WS_STRING *ret,
                             WS_ERROR *error )
 {
-    static const WCHAR fmtW[] = {':','%','u',0};
     ULONG len = 0, len_scheme, len_enc, ret_size = 0;
     const WS_HTTP_URL *url = (const WS_HTTP_URL *)base;
     const WCHAR *scheme;
@@ -504,7 +497,7 @@ HRESULT WINAPI WsEncodeUrl( const WS_URL *base, ULONG flags, WS_HEAP *heap, WS_S
     if (port)
     {
         WCHAR buf[7];
-        len = swprintf( buf, ARRAY_SIZE(buf), fmtW, port );
+        len = swprintf( buf, ARRAY_SIZE(buf), L":%u", port );
         memcpy( p, buf, len * sizeof(WCHAR) );
         p += len;
     }
-- 
2.20.1




More information about the wine-devel mailing list