| Index: net/tools/quic/test_tools/server_thread.cc
|
| diff --git a/net/tools/quic/test_tools/server_thread.cc b/net/tools/quic/test_tools/server_thread.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..97edcd3fb3c8aeaaade43e76331c4ca7eeb060ff
|
| --- /dev/null
|
| +++ b/net/tools/quic/test_tools/server_thread.cc
|
| @@ -0,0 +1,53 @@
|
| +// Copyright (c) 2013 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "net/tools/quic/test_tools/server_thread.h"
|
| +
|
| +namespace net {
|
| +namespace tools {
|
| +namespace test {
|
| +
|
| +ServerThread::ServerThread(IPEndPoint address,
|
| + const QuicConfig& config,
|
| + bool strike_register_no_startup_period)
|
| + : SimpleThread("server_thread"),
|
| + listening_(true, false),
|
| + quit_(true, false),
|
| + server_(config),
|
| + address_(address),
|
| + port_(0) {
|
| + if (strike_register_no_startup_period) {
|
| + server_.SetStrikeRegisterNoStartupPeriod();
|
| + }
|
| +}
|
| +
|
| +ServerThread::~ServerThread() {
|
| +}
|
| +
|
| +void ServerThread::Run() {
|
| + LOG(INFO) << "listening";
|
| + server_.Listen(address_);
|
| +
|
| + port_lock_.Acquire();
|
| + port_ = server_.port();
|
| + port_lock_.Release();
|
| +
|
| + listening_.Signal();
|
| + while (!quit_.IsSignaled()) {
|
| + server_.WaitForEvents();
|
| + }
|
| + LOG(INFO) << "shutdown";
|
| + server_.Shutdown();
|
| +}
|
| +
|
| +int ServerThread::GetPort() {
|
| + port_lock_.Acquire();
|
| + int rc = port_;
|
| + port_lock_.Release();
|
| + return rc;
|
| +}
|
| +
|
| +} // namespace test
|
| +} // namespace tools
|
| +} // namespace net
|
|
|