Jacek Caban : winhttp: Store security_flags in request_t instead of netconn_t.

Alexandre Julliard julliard at winehq.org
Thu Jul 13 14:41:34 CDT 2017


Module: wine
Branch: master
Commit: c06104c62ac5383f0b9220bc776e735bea3c43a5
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=c06104c62ac5383f0b9220bc776e735bea3c43a5

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Jul 13 13:00:26 2017 +0200

winhttp: Store security_flags in request_t instead of netconn_t.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Hans Leidekker <hans at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/winhttp/net.c             | 4 ++--
 dlls/winhttp/request.c         | 2 +-
 dlls/winhttp/session.c         | 4 ++--
 dlls/winhttp/winhttp_private.h | 4 ++--
 4 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/dlls/winhttp/net.c b/dlls/winhttp/net.c
index 1cabec0..8f8c425 100644
--- a/dlls/winhttp/net.c
+++ b/dlls/winhttp/net.c
@@ -410,7 +410,7 @@ BOOL netconn_connect( netconn_t *conn, const struct sockaddr *sockaddr, unsigned
     return ret;
 }
 
-BOOL netconn_secure_connect( netconn_t *conn, WCHAR *hostname )
+BOOL netconn_secure_connect( netconn_t *conn, WCHAR *hostname, DWORD security_flags )
 {
     SecBuffer out_buf = {0, SECBUFFER_TOKEN, NULL}, in_bufs[2] = {{0, SECBUFFER_TOKEN}, {0, SECBUFFER_EMPTY}};
     SecBufferDesc out_desc = {SECBUFFER_VERSION, 1, &out_buf}, in_desc = {SECBUFFER_VERSION, 2, in_bufs};
@@ -510,7 +510,7 @@ BOOL netconn_secure_connect( netconn_t *conn, WCHAR *hostname )
 
             status = QueryContextAttributesW(&ctx, SECPKG_ATTR_REMOTE_CERT_CONTEXT, (void*)&cert);
             if(status == SEC_E_OK) {
-                res = netconn_verify_cert(cert, hostname, conn->security_flags);
+                res = netconn_verify_cert(cert, hostname, security_flags);
                 CertFreeCertificateContext(cert);
                 if(res != ERROR_SUCCESS) {
                     WARN("cert verify failed: %u\n", res);
diff --git a/dlls/winhttp/request.c b/dlls/winhttp/request.c
index bcfc7b1..b0f83a7 100644
--- a/dlls/winhttp/request.c
+++ b/dlls/winhttp/request.c
@@ -1048,7 +1048,7 @@ static BOOL open_connection( request_t *request )
                 return FALSE;
             }
         }
-        if (!netconn_secure_connect( &request->netconn, connect->hostname ))
+        if (!netconn_secure_connect( &request->netconn, connect->hostname, request->security_flags ))
         {
             netconn_close( &request->netconn );
             heap_free( addressW );
diff --git a/dlls/winhttp/session.c b/dlls/winhttp/session.c
index 514a56d..46c98dc 100644
--- a/dlls/winhttp/session.c
+++ b/dlls/winhttp/session.c
@@ -721,7 +721,7 @@ static BOOL request_query_option( object_header_t *hdr, DWORD option, LPVOID buf
 
         flags = 0;
         if (hdr->flags & WINHTTP_FLAG_SECURE) flags |= SECURITY_FLAG_SECURE;
-        flags |= request->netconn.security_flags;
+        flags |= request->security_flags;
         bits = netconn_get_cipher_strength( &request->netconn );
         if (bits >= 128)
             flags |= SECURITY_FLAG_STRENGTH_STRONG;
@@ -951,7 +951,7 @@ static BOOL request_set_option( object_header_t *hdr, DWORD option, LPVOID buffe
             set_last_error( ERROR_INVALID_PARAMETER );
             return FALSE;
         }
-        request->netconn.security_flags = flags;
+        request->security_flags = flags;
         return TRUE;
     }
     case WINHTTP_OPTION_RESOLVE_TIMEOUT:
diff --git a/dlls/winhttp/winhttp_private.h b/dlls/winhttp/winhttp_private.h
index 46c2aaa..53a9a7a 100644
--- a/dlls/winhttp/winhttp_private.h
+++ b/dlls/winhttp/winhttp_private.h
@@ -139,7 +139,6 @@ typedef struct
     char *peek_msg;
     char *peek_msg_mem;
     size_t peek_len;
-    DWORD security_flags;
 } netconn_t;
 
 typedef struct
@@ -192,6 +191,7 @@ typedef struct
     void *optional;
     DWORD optional_len;
     netconn_t netconn;
+    DWORD security_flags;
     int resolve_timeout;
     int connect_timeout;
     int send_timeout;
@@ -290,7 +290,7 @@ void netconn_unload( void ) DECLSPEC_HIDDEN;
 ULONG netconn_query_data_available( netconn_t * ) DECLSPEC_HIDDEN;
 BOOL netconn_recv( netconn_t *, void *, size_t, int, int * ) DECLSPEC_HIDDEN;
 BOOL netconn_resolve( WCHAR *, INTERNET_PORT, struct sockaddr *, socklen_t *, int ) DECLSPEC_HIDDEN;
-BOOL netconn_secure_connect( netconn_t *, WCHAR * ) DECLSPEC_HIDDEN;
+BOOL netconn_secure_connect( netconn_t *, WCHAR *, DWORD ) DECLSPEC_HIDDEN;
 BOOL netconn_send( netconn_t *, const void *, size_t, int * ) DECLSPEC_HIDDEN;
 DWORD netconn_set_timeout( netconn_t *, BOOL, int ) DECLSPEC_HIDDEN;
 const void *netconn_get_certificate( netconn_t * ) DECLSPEC_HIDDEN;




More information about the wine-cvs mailing list