diff options
author | arindam@chromium.org <arindam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-14 17:17:24 +0000 |
---|---|---|
committer | arindam@chromium.org <arindam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-14 17:17:24 +0000 |
commit | e47dfdaef4d1caea9ec18e6446d699c9115b9e93 (patch) | |
tree | bfc5d734c585c99d6fc5f1679cca8acdf1aa8eda /net/http | |
parent | 140af009d3d76623b106ee3e5e554d770af0e3c5 (diff) | |
download | chromium_src-e47dfdaef4d1caea9ec18e6446d699c9115b9e93.zip chromium_src-e47dfdaef4d1caea9ec18e6446d699c9115b9e93.tar.gz chromium_src-e47dfdaef4d1caea9ec18e6446d699c9115b9e93.tar.bz2 |
Reverting 20626.
TBR=eroman
Review URL: http://codereview.chromium.org/155505
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20628 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/http')
-rw-r--r-- | net/http/http_network_transaction.cc | 14 | ||||
-rw-r--r-- | net/http/http_network_transaction_unittest.cc | 132 |
2 files changed, 9 insertions, 137 deletions
diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc index f705541..ca3547c 100644 --- a/net/http/http_network_transaction.cc +++ b/net/http/http_network_transaction.cc @@ -26,7 +26,6 @@ #include "net/http/http_response_headers.h" #include "net/http/http_util.h" #include "net/socket/client_socket_factory.h" -#include "net/socket/socks5_client_socket.h" #include "net/socket/socks_client_socket.h" #include "net/socket/ssl_client_socket.h" @@ -337,7 +336,7 @@ int HttpNetworkTransaction::Read(IOBuffer* buf, int buf_len, CompletionCallback* callback) { DCHECK(response_.headers); DCHECK(buf); - DCHECK_LT(0, buf_len); + DCHECK(buf_len > 0); if (!connection_.is_initialized()) return 0; // connection_ has been reset. Treat like EOF. @@ -350,7 +349,7 @@ int HttpNetworkTransaction::Read(IOBuffer* buf, int buf_len, // network attacker can already control HTTP sessions. // We reach this case when the user cancels a 407 proxy auth prompt. // See http://crbug.com/8473 - DCHECK_EQ(407, response_.headers->response_code()); + DCHECK(response_.headers->response_code() == 407); LogBlockedTunnelResponse(response_.headers->response_code()); return ERR_TUNNEL_CONNECTION_FAILED; } @@ -546,10 +545,10 @@ int HttpNetworkTransaction::DoResolveProxy() { int HttpNetworkTransaction::DoResolveProxyComplete(int result) { next_state_ = STATE_INIT_CONNECTION; - // Remove unsupported proxies from the list. + // Remove unsupported proxies (like SOCKS5) from the list. proxy_info_.RemoveProxiesWithoutScheme( ProxyServer::SCHEME_DIRECT | ProxyServer::SCHEME_HTTP | - ProxyServer::SCHEME_SOCKS4 | ProxyServer::SCHEME_SOCKS5); + ProxyServer::SCHEME_SOCKS4); pac_request_ = NULL; @@ -663,10 +662,7 @@ int HttpNetworkTransaction::DoSOCKSConnect() { request_->url.EffectiveIntPort()); req_info.set_referrer(request_->referrer); - if (proxy_info_.proxy_server().scheme() == ProxyServer::SCHEME_SOCKS5) - s = new SOCKS5ClientSocket(s, req_info, session_->host_resolver()); - else - s = new SOCKSClientSocket(s, req_info, session_->host_resolver()); + s = new SOCKSClientSocket(s, req_info, session_->host_resolver()); connection_.set_socket(s); return connection_.socket()->Connect(&io_callback_); } diff --git a/net/http/http_network_transaction_unittest.cc b/net/http/http_network_transaction_unittest.cc index 74764a5..bcb22a9 100644 --- a/net/http/http_network_transaction_unittest.cc +++ b/net/http/http_network_transaction_unittest.cc @@ -3065,14 +3065,14 @@ TEST_F(HttpNetworkTransactionTest, SOCKS4_HTTP_GET) { char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; MockWrite data_writes[] = { - MockWrite(true, write_buffer, arraysize(write_buffer)), + MockWrite(true, write_buffer, 9), MockWrite("GET / HTTP/1.1\r\n" "Host: www.google.com\r\n" "Connection: keep-alive\r\n\r\n") }; MockRead data_reads[] = { - MockWrite(true, read_buffer, arraysize(read_buffer)), + MockWrite(true, read_buffer, 8), MockRead("HTTP/1.0 200 OK\r\n"), MockRead("Content-Type: text/html; charset=iso-8859-1\r\n\r\n"), MockRead("Payload"), @@ -3118,138 +3118,14 @@ TEST_F(HttpNetworkTransactionTest, SOCKS4_SSL_GET) { unsigned char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; MockWrite data_writes[] = { - MockWrite(true, reinterpret_cast<char*>(write_buffer), - arraysize(write_buffer)), + MockWrite(true, reinterpret_cast<char*>(write_buffer), 9), MockWrite("GET / HTTP/1.1\r\n" "Host: www.google.com\r\n" "Connection: keep-alive\r\n\r\n") }; MockRead data_reads[] = { - MockWrite(true, reinterpret_cast<char*>(read_buffer), - arraysize(read_buffer)), - MockRead("HTTP/1.0 200 OK\r\n"), - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n\r\n"), - MockRead("Payload"), - MockRead(false, OK) - }; - - StaticMockSocket data(data_reads, data_writes); - session_deps.socket_factory.AddMockSocket(&data); - - MockSSLSocket ssl(true, OK); - session_deps.socket_factory.AddMockSSLSocket(&ssl); - - TestCompletionCallback callback; - - int rv = trans->Start(&request, &callback); - EXPECT_EQ(ERR_IO_PENDING, rv); - - rv = callback.WaitForResult(); - EXPECT_EQ(OK, rv); - - const HttpResponseInfo* response = trans->GetResponseInfo(); - EXPECT_FALSE(response == NULL); - - std::string response_text; - rv = ReadTransaction(trans.get(), &response_text); - EXPECT_EQ(OK, rv); - EXPECT_EQ("Payload", response_text); -} - -TEST_F(HttpNetworkTransactionTest, SOCKS5_HTTP_GET) { - SessionDependencies session_deps; - session_deps.proxy_service.reset(CreateFixedProxyService( - "socks5://myproxy:1080")); - - scoped_ptr<HttpTransaction> trans( - new HttpNetworkTransaction( - CreateSession(&session_deps), - &session_deps.socket_factory)); - - HttpRequestInfo request; - request.method = "GET"; - request.url = GURL("http://www.google.com/"); - request.load_flags = 0; - - const char kSOCKS5GreetRequest[] = { 0x05, 0x01, 0x00 }; - const char kSOCKS5GreetResponse[] = { 0x05, 0x00 }; - const char kSOCKS5OkRequest[] = - { 0x05, 0x01, 0x00, 0x01, 127, 0, 0, 1, 0x00, 0x50 }; - const char kSOCKS5OkResponse[] = - { 0x05, 0x00, 0x00, 0x01, 127, 0, 0, 1, 0x00, 0x50 }; - - MockWrite data_writes[] = { - MockWrite(true, kSOCKS5GreetRequest, arraysize(kSOCKS5GreetRequest)), - MockWrite(true, kSOCKS5OkRequest, arraysize(kSOCKS5OkRequest)), - MockWrite("GET / HTTP/1.1\r\n" - "Host: www.google.com\r\n" - "Connection: keep-alive\r\n\r\n") - }; - - MockRead data_reads[] = { - MockWrite(true, kSOCKS5GreetResponse, arraysize(kSOCKS5GreetResponse)), - MockWrite(true, kSOCKS5OkResponse, arraysize(kSOCKS5OkResponse)), - MockRead("HTTP/1.0 200 OK\r\n"), - MockRead("Content-Type: text/html; charset=iso-8859-1\r\n\r\n"), - MockRead("Payload"), - MockRead(false, OK) - }; - - StaticMockSocket data(data_reads, data_writes); - session_deps.socket_factory.AddMockSocket(&data); - - TestCompletionCallback callback; - - int rv = trans->Start(&request, &callback); - EXPECT_EQ(ERR_IO_PENDING, rv); - - rv = callback.WaitForResult(); - EXPECT_EQ(OK, rv); - - const HttpResponseInfo* response = trans->GetResponseInfo(); - EXPECT_FALSE(response == NULL); - - std::string response_text; - rv = ReadTransaction(trans.get(), &response_text); - EXPECT_EQ(OK, rv); - EXPECT_EQ("Payload", response_text); -} - -TEST_F(HttpNetworkTransactionTest, SOCKS5_SSL_GET) { - SessionDependencies session_deps; - session_deps.proxy_service.reset(CreateFixedProxyService( - "socks5://myproxy:1080")); - - scoped_ptr<HttpTransaction> trans( - new HttpNetworkTransaction( - CreateSession(&session_deps), - &session_deps.socket_factory)); - - HttpRequestInfo request; - request.method = "GET"; - request.url = GURL("https://www.google.com/"); - request.load_flags = 0; - - const char kSOCKS5GreetRequest[] = { 0x05, 0x01, 0x00 }; - const char kSOCKS5GreetResponse[] = { 0x05, 0x00 }; - const unsigned char kSOCKS5OkRequest[] = - { 0x05, 0x01, 0x00, 0x01, 127, 0, 0, 1, 0x01, 0xBB }; - const char kSOCKS5OkResponse[] = - { 0x05, 0x00, 0x00, 0x01, 0, 0, 0, 0, 0x00, 0x00 }; - - MockWrite data_writes[] = { - MockWrite(true, kSOCKS5GreetRequest, arraysize(kSOCKS5GreetRequest)), - MockWrite(true, reinterpret_cast<const char*>(kSOCKS5OkRequest), - arraysize(kSOCKS5OkRequest)), - MockWrite("GET / HTTP/1.1\r\n" - "Host: www.google.com\r\n" - "Connection: keep-alive\r\n\r\n") - }; - - MockRead data_reads[] = { - MockWrite(true, kSOCKS5GreetResponse, arraysize(kSOCKS5GreetResponse)), - MockWrite(true, kSOCKS5OkResponse, arraysize(kSOCKS5OkResponse)), + MockWrite(true, reinterpret_cast<char*>(read_buffer), 8), MockRead("HTTP/1.0 200 OK\r\n"), MockRead("Content-Type: text/html; charset=iso-8859-1\r\n\r\n"), MockRead("Payload"), |