| 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 "net/test/embedded_test_server/embedded_test_server.h" | 5 #include "net/test/embedded_test_server/embedded_test_server.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
| 9 #include "base/files/file_util.h" | 9 #include "base/files/file_util.h" |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 88 StreamListenSocket::Delegate* delegate) | 88 StreamListenSocket::Delegate* delegate) |
| 89 : TCPListenSocket(socket_descriptor, delegate) { | 89 : TCPListenSocket(socket_descriptor, delegate) { |
| 90 DCHECK(thread_checker_.CalledOnValidThread()); | 90 DCHECK(thread_checker_.CalledOnValidThread()); |
| 91 } | 91 } |
| 92 | 92 |
| 93 void HttpListenSocket::Listen() { | 93 void HttpListenSocket::Listen() { |
| 94 DCHECK(thread_checker_.CalledOnValidThread()); | 94 DCHECK(thread_checker_.CalledOnValidThread()); |
| 95 TCPListenSocket::Listen(); | 95 TCPListenSocket::Listen(); |
| 96 } | 96 } |
| 97 | 97 |
| 98 void HttpListenSocket::ListenOnIOThread() { |
| 99 DCHECK(thread_checker_.CalledOnValidThread()); |
| 100 #if !defined(OS_POSIX) |
| 101 // This method may be called after the IO thread is changed, thus we need to |
| 102 // call |WatchSocket| again to make sure it listens on the current IO thread. |
| 103 // Only needed for non POSIX platforms, since on POSIX platforms |
| 104 // StreamListenSocket::Listen already calls WatchSocket inside the function. |
| 105 WatchSocket(WAITING_ACCEPT); |
| 106 #endif |
| 107 Listen(); |
| 108 } |
| 109 |
| 98 HttpListenSocket::~HttpListenSocket() { | 110 HttpListenSocket::~HttpListenSocket() { |
| 99 DCHECK(thread_checker_.CalledOnValidThread()); | 111 DCHECK(thread_checker_.CalledOnValidThread()); |
| 100 } | 112 } |
| 101 | 113 |
| 102 void HttpListenSocket::DetachFromThread() { | 114 void HttpListenSocket::DetachFromThread() { |
| 103 thread_checker_.DetachFromThread(); | 115 thread_checker_.DetachFromThread(); |
| 104 } | 116 } |
| 105 | 117 |
| 106 EmbeddedTestServer::EmbeddedTestServer() | 118 EmbeddedTestServer::EmbeddedTestServer() |
| 107 : port_(-1), | 119 : port_(-1), |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 if (result == OK) { | 203 if (result == OK) { |
| 192 base_url_ = GURL(std::string("http://") + address.ToString()); | 204 base_url_ = GURL(std::string("http://") + address.ToString()); |
| 193 } else { | 205 } else { |
| 194 LOG(ERROR) << "GetLocalAddress failed: " << ErrorToString(result); | 206 LOG(ERROR) << "GetLocalAddress failed: " << ErrorToString(result); |
| 195 } | 207 } |
| 196 } | 208 } |
| 197 | 209 |
| 198 void EmbeddedTestServer::ListenOnIOThread() { | 210 void EmbeddedTestServer::ListenOnIOThread() { |
| 199 DCHECK(io_thread_->message_loop_proxy()->BelongsToCurrentThread()); | 211 DCHECK(io_thread_->message_loop_proxy()->BelongsToCurrentThread()); |
| 200 DCHECK(Started()); | 212 DCHECK(Started()); |
| 201 listen_socket_->Listen(); | 213 listen_socket_->ListenOnIOThread(); |
| 202 } | 214 } |
| 203 | 215 |
| 204 void EmbeddedTestServer::ShutdownOnIOThread() { | 216 void EmbeddedTestServer::ShutdownOnIOThread() { |
| 205 DCHECK(io_thread_->message_loop_proxy()->BelongsToCurrentThread()); | 217 DCHECK(io_thread_->message_loop_proxy()->BelongsToCurrentThread()); |
| 206 | 218 |
| 207 listen_socket_.reset(); | 219 listen_socket_.reset(); |
| 208 STLDeleteContainerPairSecondPointers(connections_.begin(), | 220 STLDeleteContainerPairSecondPointers(connections_.begin(), |
| 209 connections_.end()); | 221 connections_.end()); |
| 210 connections_.clear(); | 222 connections_.clear(); |
| 211 } | 223 } |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 327 FROM_HERE, closure, run_loop.QuitClosure())) { | 339 FROM_HERE, closure, run_loop.QuitClosure())) { |
| 328 return false; | 340 return false; |
| 329 } | 341 } |
| 330 run_loop.Run(); | 342 run_loop.Run(); |
| 331 | 343 |
| 332 return true; | 344 return true; |
| 333 } | 345 } |
| 334 | 346 |
| 335 } // namespace test_server | 347 } // namespace test_server |
| 336 } // namespace net | 348 } // namespace net |
| OLD | NEW |