Commit 918a4ce8 authored by rtenneti's avatar rtenneti Committed by Commit bot

QUIC - deleted unused QuicTestServer code per comments in

https://codereview.chromium.org/965943002/

R=rch@chromium.org

Review URL: https://codereview.chromium.org/971863002

Cr-Commit-Position: refs/heads/master@{#318843}
parent 91784b8a
...@@ -1761,8 +1761,6 @@ ...@@ -1761,8 +1761,6 @@
'tools/quic/test_tools/quic_server_peer.h', 'tools/quic/test_tools/quic_server_peer.h',
'tools/quic/test_tools/quic_test_client.cc', 'tools/quic/test_tools/quic_test_client.cc',
'tools/quic/test_tools/quic_test_client.h', 'tools/quic/test_tools/quic_test_client.h',
'tools/quic/test_tools/quic_test_server.cc',
'tools/quic/test_tools/quic_test_server.h',
'tools/quic/test_tools/quic_test_utils.cc', 'tools/quic/test_tools/quic_test_utils.cc',
'tools/quic/test_tools/quic_test_utils.h', 'tools/quic/test_tools/quic_test_utils.h',
'tools/quic/test_tools/server_thread.cc', 'tools/quic/test_tools/server_thread.cc',
......
// Copyright 2015 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/quic_test_server.h"
namespace net {
namespace tools {
namespace test {
class QuicTestDispatcher : public QuicDispatcher {
public:
QuicTestDispatcher(const QuicConfig& config,
const QuicCryptoServerConfig& crypto_config,
const QuicVersionVector& versions,
PacketWriterFactory* factory,
EpollServer* eps)
: QuicDispatcher(config, crypto_config, versions, factory, eps) {}
QuicSession* CreateQuicSession(QuicConnectionId id,
const IPEndPoint& server,
const IPEndPoint& client) override {
if (session_creator_ == nullptr) {
return QuicDispatcher::CreateQuicSession(id, server, client);
} else {
QuicConnection* connection = CreateQuicConnection(id, server, client);
QuicServerSession* session =
(session_creator_)(config(), connection, this);
session->InitializeSession(crypto_config());
return session;
}
}
void set_session_creator(
const QuicTestServer::SessionCreationFunction& function) {
session_creator_ = function;
}
private:
QuicTestServer::SessionCreationFunction session_creator_;
};
QuicDispatcher* QuicTestServer::CreateQuicDispatcher() {
return new QuicTestDispatcher(
config(), crypto_config(), supported_versions(),
new QuicDispatcher::DefaultPacketWriterFactory(), epoll_server());
}
void QuicTestServer::SetSessionCreator(
const SessionCreationFunction& function) {
static_cast<QuicTestDispatcher*>(dispatcher())->set_session_creator(function);
}
/////////////////////////// TEST SESSIONS ///////////////////////////////
ImmediateGoAwaySession::ImmediateGoAwaySession(
const QuicConfig& config,
QuicConnection* connection,
QuicServerSessionVisitor* visitor)
: QuicServerSession(config, connection, visitor) {
SendGoAway(QUIC_PEER_GOING_AWAY, "");
}
} // namespace test
} // namespace tools
} // namespace net
// Copyright 2015 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.
#ifndef NET_TOOLS_QUIC_TEST_TOOLS_QUIC_TEST_SERVER_H_
#define NET_TOOLS_QUIC_TEST_TOOLS_QUIC_TEST_SERVER_H_
#include "net/tools/quic/quic_dispatcher.h"
#include "net/tools/quic/quic_server.h"
#include "net/tools/quic/quic_server_session.h"
namespace net {
namespace tools {
namespace test {
// A test server which enables easy creation of custom QuicServerSessions
//
// Eventually this may be extended to allow custom QuicConnections etc.
class QuicTestServer : public QuicServer {
public:
typedef std::function<QuicServerSession*(const QuicConfig& config,
QuicConnection* connection,
QuicServerSessionVisitor* visitor)>
SessionCreationFunction;
// Create a custom dispatcher which creates custom sessions.
QuicDispatcher* CreateQuicDispatcher() override;
void SetSessionCreator(const SessionCreationFunction& function);
};
// Useful test sessions for the QuicTestServer.
// Test session which sends a GOAWAY immedaitely on creation, before crypto
// credentials have even been established.
class ImmediateGoAwaySession : public QuicServerSession {
public:
ImmediateGoAwaySession(const QuicConfig& config,
QuicConnection* connection,
QuicServerSessionVisitor* visitor);
};
} // namespace test
} // namespace tools
} // namespace net
#endif // NET_TOOLS_QUIC_TEST_TOOLS_QUIC_TEST_SERVER_H_
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment