-// Copyright (C) 2016 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2016-2017 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
using namespace isc::process;
// Temporarily hardcoded configuration.
+/// @todo: remove once 5134 is merged.
namespace {
const IOAddress SERVER_ADDRESS("127.0.0.1");
try {
+ // Create response creator factory first. It will be used to generate
+ // response creators. Each response creator will be used to generate
+ // answer to specific request.
HttpResponseCreatorFactoryPtr rcf(new CtrlAgentResponseCreatorFactory());
+
+ // Create http listener. It will open up a TCP socket and be prepared
+ // to accept incoming connection.
HttpListener http_listener(*getIoService(), SERVER_ADDRESS,
SERVER_PORT, rcf, REQUEST_TIMEOUT);
+
+ // Instruct the http listener to actually open socket, install callback
+ // and start listening.
http_listener.start();
+ // Ok, seems we're good to go.
LOG_INFO(agent_logger, CTRL_AGENT_HTTP_SERVICE_STARTED)
.arg(SERVER_ADDRESS.toText()).arg(SERVER_PORT);
+ // Let's process incoming data or expiring timers in a loop until
+ // shutdown condition is detected.
while (!shouldShutdown()) {
getIoService()->run_one();
}
/// @param command_arguments Command arguments (empty).
///
/// @return Returns response with a single string "bar".
- ConstElementPtr fooCommandHandler(const std::string& command_name,
- const ConstElementPtr& command_arguments) {
+ ConstElementPtr fooCommandHandler(const std::string& /*command_name*/,
+ const ConstElementPtr& /*command_arguments*/) {
ElementPtr arguments = Element::createList();
arguments->add(Element::create("bar"));
return (createAnswer(CONTROL_RESULT_SUCCESS, arguments));
};
-// This test verifies that the created "empty" reuqest has valid type.
+// This test verifies that the created "empty" request has valid type.
TEST_F(CtrlAgentResponseCreatorTest, createNewHttpRequest) {
// The request must be of PostHttpRequestJson type.
PostHttpRequestJsonPtr request_json = boost::dynamic_pointer_cast<
"HTTP/1.0 408 Request Timeout");
}
-// Test that the server responsds with version 1.1 if request version is 1.1.
+// Test that the server responds with version 1.1 if request version is 1.1.
TEST_F(CtrlAgentResponseCreatorTest, createStockHttpResponseCorrectVersion) {
request_->context()->http_version_major_ = 1;
request_->context()->http_version_minor_ = 1;
/// @brief Stops current connection.
void stopThisConnection();
+ /// @brief returns remote address in textual form
std::string getRemoteEndpointAddressAsText() const;
/// @brief Timer used to detect Request Timeout.
-// Copyright (C) 2016 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2016-2017 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this