summaryrefslogtreecommitdiffstats
path: root/net/http
diff options
context:
space:
mode:
authorwtc@google.com <wtc@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-21 17:54:28 +0000
committerwtc@google.com <wtc@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-21 17:54:28 +0000
commit2cd713f04f510f1454a757e870fc61fdd276a826 (patch)
tree4a9aed0083cec66fd16398fcc3709c69ea0bed2d /net/http
parente21fa4ac1597dbbf00d566c4bbeb76e547a7d301 (diff)
downloadchromium_src-2cd713f04f510f1454a757e870fc61fdd276a826.zip
chromium_src-2cd713f04f510f1454a757e870fc61fdd276a826.tar.gz
chromium_src-2cd713f04f510f1454a757e870fc61fdd276a826.tar.bz2
We don't support SSL renegotiation yet. Add the
ERR_SSL_RENEGOTIATION_REQUESTED error code for when we received a renegotiation request from a server. Support the completion of an SSL handshake after we write something. (This happens in a session resumption handshake.) Use the SSL configuration settings to turn on or turn off various versions of the SSL protocol and server certificate revocation checking. Report all the errors of a certificate and whether revocation checking was done in in the server_cert_status_ bitmask. Create a new scoped_cert_chain_context.h header for the ScopedCertChainContext class that used to be in x509_certificate_win.cc, and use it to fix a leak of chain_context on error paths in SSLClientSocketWin::VerifyServerCert. R=rvargas BUG=3002,3003,3004 Review URL: http://codereview.chromium.org/7505 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3664 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/http')
-rw-r--r--net/http/http_network_session.h12
-rw-r--r--net/http/http_network_transaction.cc5
2 files changed, 14 insertions, 3 deletions
diff --git a/net/http/http_network_session.h b/net/http/http_network_session.h
index 82acf5d..e808554 100644
--- a/net/http/http_network_session.h
+++ b/net/http/http_network_session.h
@@ -8,6 +8,7 @@
#include "base/ref_counted.h"
#include "net/base/auth_cache.h"
#include "net/base/client_socket_pool.h"
+#include "net/base/ssl_config_service.h"
#include "net/proxy/proxy_service.h"
namespace net {
@@ -19,8 +20,8 @@ class HttpNetworkSession : public base::RefCounted<HttpNetworkSession> {
enum {
MAX_SOCKETS_PER_GROUP = 6
};
-
- HttpNetworkSession(ProxyResolver* proxy_resolver)
+
+ explicit HttpNetworkSession(ProxyResolver* proxy_resolver)
: connection_pool_(new ClientSocketPool(MAX_SOCKETS_PER_GROUP)),
proxy_resolver_(proxy_resolver),
proxy_service_(proxy_resolver) {
@@ -29,12 +30,19 @@ class HttpNetworkSession : public base::RefCounted<HttpNetworkSession> {
AuthCache* auth_cache() { return &auth_cache_; }
ClientSocketPool* connection_pool() { return connection_pool_; }
ProxyService* proxy_service() { return &proxy_service_; }
+#if defined(OS_WIN)
+ SSLConfigService* ssl_config_service() { return &ssl_config_service_; }
+#endif
private:
AuthCache auth_cache_;
scoped_refptr<ClientSocketPool> connection_pool_;
scoped_ptr<ProxyResolver> proxy_resolver_;
ProxyService proxy_service_;
+#if defined(OS_WIN)
+ // TODO(port): Port the SSLConfigService class to Linux and Mac OS X.
+ SSLConfigService ssl_config_service_;
+#endif
};
} // namespace net
diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc
index 9d74c87..033d0d9 100644
--- a/net/http/http_network_transaction.cc
+++ b/net/http/http_network_transaction.cc
@@ -56,7 +56,10 @@ HttpNetworkTransaction::HttpNetworkTransaction(HttpNetworkSession* session,
read_buf_(NULL),
read_buf_len_(0),
next_state_(STATE_NONE) {
- // TODO(wtc): Initialize ssl_config_with SSL settings (bug 3003).
+#if defined(OS_WIN)
+ // TODO(port): Port the SSLConfigService class to Linux and Mac OS X.
+ session->ssl_config_service()->GetSSLConfig(&ssl_config_);
+#endif
}
void HttpNetworkTransaction::Destroy() {