summaryrefslogtreecommitdiffstats
path: root/net/http
diff options
context:
space:
mode:
authorarindam@chromium.org <arindam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-14 17:17:24 +0000
committerarindam@chromium.org <arindam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-14 17:17:24 +0000
commite47dfdaef4d1caea9ec18e6446d699c9115b9e93 (patch)
treebfc5d734c585c99d6fc5f1679cca8acdf1aa8eda /net/http
parent140af009d3d76623b106ee3e5e554d770af0e3c5 (diff)
downloadchromium_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.cc14
-rw-r--r--net/http/http_network_transaction_unittest.cc132
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"),