Module: wine Branch: master Commit: 59a0ab54cb18d4f21e2c6407fc6e9eb859f52f41 URL: http://source.winehq.org/git/wine.git/?a=commit;h=59a0ab54cb18d4f21e2c6407fc...
Author: Jacek Caban jacek@codeweavers.com Date: Fri May 25 16:34:43 2012 +0200
wininet: Store security flags in server_t.
---
dlls/wininet/http.c | 4 ++-- dlls/wininet/internet.h | 2 ++ dlls/wininet/netconnection.c | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c index d8b3d1c..1392fb8 100644 --- a/dlls/wininet/http.c +++ b/dlls/wininet/http.c @@ -266,6 +266,7 @@ static server_t *get_server(const WCHAR *name, INTERNET_PORT port) server->addr_len = 0; server->ref = 1; server->port = port; + server->security_flags = 0; list_init(&server->conn_pool); server->name = heap_strdupW(name); if(server->name) { @@ -1997,10 +1998,9 @@ static DWORD HTTPREQ_QueryOption(object_header_t *hdr, DWORD option, void *buffe return ERROR_INSUFFICIENT_BUFFER;
*size = sizeof(DWORD); - flags = 0; + flags = req->netconn ? req->netconn->security_flags : req->security_flags | req->server->security_flags; if (req->hdr.dwFlags & INTERNET_FLAG_SECURE) flags |= SECURITY_FLAG_SECURE; - flags |= req->security_flags; if(req->netconn) { int bits = NETCON_GetCipherStrength(req->netconn); if (bits >= 128) diff --git a/dlls/wininet/internet.h b/dlls/wininet/internet.h index 38d6275..bf11e6d 100644 --- a/dlls/wininet/internet.h +++ b/dlls/wininet/internet.h @@ -63,6 +63,8 @@ typedef struct { LONG ref; DWORD64 keep_until;
+ DWORD security_flags; + struct list entry; struct list conn_pool; } server_t; diff --git a/dlls/wininet/netconnection.c b/dlls/wininet/netconnection.c index 4d3e13f..f799dbd 100644 --- a/dlls/wininet/netconnection.c +++ b/dlls/wininet/netconnection.c @@ -511,7 +511,7 @@ DWORD create_netconn(BOOL useSSL, server_t *server, DWORD security_flags, DWORD
netconn->useSSL = useSSL; netconn->socketFD = -1; - netconn->security_flags = security_flags; + netconn->security_flags = security_flags | server->security_flags; list_init(&netconn->pool_entry);
assert(server->addr_len); @@ -729,6 +729,7 @@ DWORD NETCON_secure_connect(netconn_t *connection) }
connection->ssl_s = ssl_s; + connection->server->security_flags = connection->security_flags; return ERROR_SUCCESS;
fail: