| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome_frame/test/test_server.h" | 5 #include "chrome_frame/test/test_server.h" |
| 6 | 6 |
| 7 #include <windows.h> | 7 #include <windows.h> |
| 8 #include <objbase.h> | 8 #include <objbase.h> |
| 9 #include <urlmon.h> | 9 #include <urlmon.h> |
| 10 | 10 |
| (...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 251 // extremely inefficient, but in one line and not that common... :) | 251 // extremely inefficient, but in one line and not that common... :) |
| 252 connections_.erase(std::find(connections_.begin(), connections_.end(), c)); | 252 connections_.erase(std::find(connections_.begin(), connections_.end(), c)); |
| 253 delete c; | 253 delete c; |
| 254 } | 254 } |
| 255 } | 255 } |
| 256 | 256 |
| 257 HTTPTestServer::HTTPTestServer(int port, const std::wstring& address, | 257 HTTPTestServer::HTTPTestServer(int port, const std::wstring& address, |
| 258 base::FilePath root_dir) | 258 base::FilePath root_dir) |
| 259 : port_(port), address_(address), root_dir_(root_dir) { | 259 : port_(port), address_(address), root_dir_(root_dir) { |
| 260 net::EnsureWinsockInit(); | 260 net::EnsureWinsockInit(); |
| 261 server_ = | 261 server_ = net::TCPListenSocket::CreateAndListen( |
| 262 net::TCPListenSocket::CreateAndListen(WideToUTF8(address), port, this); | 262 base::WideToUTF8(address), port, this); |
| 263 } | 263 } |
| 264 | 264 |
| 265 HTTPTestServer::~HTTPTestServer() { | 265 HTTPTestServer::~HTTPTestServer() { |
| 266 } | 266 } |
| 267 | 267 |
| 268 std::list<scoped_refptr<ConfigurableConnection>>::iterator | 268 std::list<scoped_refptr<ConfigurableConnection>>::iterator |
| 269 HTTPTestServer::FindConnection(const net::StreamListenSocket* socket) { | 269 HTTPTestServer::FindConnection(const net::StreamListenSocket* socket) { |
| 270 ConnectionList::iterator it; | 270 ConnectionList::iterator it; |
| 271 // Scan through the list searching for the desired socket. Along the way, | 271 // Scan through the list searching for the desired socket. Along the way, |
| 272 // erase any connections for which the corresponding socket has already been | 272 // erase any connections for which the corresponding socket has already been |
| (...skipping 29 matching lines...) Expand all Loading... |
| 302 const char* data, | 302 const char* data, |
| 303 int len) { | 303 int len) { |
| 304 scoped_refptr<ConfigurableConnection> connection = | 304 scoped_refptr<ConfigurableConnection> connection = |
| 305 ConnectionFromSocket(socket); | 305 ConnectionFromSocket(socket); |
| 306 if (connection) { | 306 if (connection) { |
| 307 std::string str(data, len); | 307 std::string str(data, len); |
| 308 connection->r_.OnDataReceived(str); | 308 connection->r_.OnDataReceived(str); |
| 309 if (connection->r_.AllContentReceived()) { | 309 if (connection->r_.AllContentReceived()) { |
| 310 VLOG(1) << __FUNCTION__ << ": " << connection->r_.method() << " " | 310 VLOG(1) << __FUNCTION__ << ": " << connection->r_.method() << " " |
| 311 << connection->r_.path(); | 311 << connection->r_.path(); |
| 312 std::wstring path = UTF8ToWide(connection->r_.path()); | 312 std::wstring path = base::UTF8ToWide(connection->r_.path()); |
| 313 if (LowerCaseEqualsASCII(connection->r_.method(), "post")) | 313 if (LowerCaseEqualsASCII(connection->r_.method(), "post")) |
| 314 this->Post(connection, path, connection->r_); | 314 this->Post(connection, path, connection->r_); |
| 315 else | 315 else |
| 316 this->Get(connection, path, connection->r_); | 316 this->Get(connection, path, connection->r_); |
| 317 } | 317 } |
| 318 } | 318 } |
| 319 } | 319 } |
| 320 | 320 |
| 321 void HTTPTestServer::DidClose(net::StreamListenSocket* socket) { | 321 void HTTPTestServer::DidClose(net::StreamListenSocket* socket) { |
| 322 ConnectionList::iterator it = FindConnection(socket); | 322 ConnectionList::iterator it = FindConnection(socket); |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 413 data_.append(content_length_header); | 413 data_.append(content_length_header); |
| 414 data_.append("\r\n"); | 414 data_.append("\r\n"); |
| 415 } | 415 } |
| 416 | 416 |
| 417 base::MessageLoop::current()->PostDelayedTask( | 417 base::MessageLoop::current()->PostDelayedTask( |
| 418 FROM_HERE, base::Bind(&ConfigurableConnection::SendChunk, this), | 418 FROM_HERE, base::Bind(&ConfigurableConnection::SendChunk, this), |
| 419 base::TimeDelta::FromMilliseconds(options.timeout_)); | 419 base::TimeDelta::FromMilliseconds(options.timeout_)); |
| 420 } | 420 } |
| 421 | 421 |
| 422 } // namespace test_server | 422 } // namespace test_server |
| OLD | NEW |