wininet: Store security flags in server_t.
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 @@ 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 @@ 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 @@ 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 @@ 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 @@ } connection->ssl_s = ssl_s; + connection->server->security_flags = connection->security_flags; return ERROR_SUCCESS; fail: