summaryrefslogtreecommitdiffstats
path: root/apps/http-proxy/src
diff options
context:
space:
mode:
authorMauro <you@example.com>2021-06-30 07:57:22 +0000
committerMauro Sardara <msardara@cisco.com>2021-07-06 16:16:04 +0000
commit08233d44a6cfde878d7e10bca38ae935ed1c8fd5 (patch)
tree7ecc534d55bdc7e8dd15ecab084720910bcdf4d9 /apps/http-proxy/src
parent147ba39bed26887f5eba84757e2463ab8e370a9a (diff)
[HICN-713] Transport Library Major Refactoring 2
Co-authored-by: Luca Muscariello <muscariello@ieee.org> Co-authored-by: Michele Papalini <micpapal@cisco.com> Co-authored-by: Olivier Roques <oroques+fdio@cisco.com> Co-authored-by: Giulio Grassi <gigrassi@cisco.com> Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: I5b2c667bad66feb45abdb5effe22ed0f6c85d1c2
Diffstat (limited to 'apps/http-proxy/src')
-rw-r--r--apps/http-proxy/src/forwarder_interface.cc4
-rw-r--r--apps/http-proxy/src/http_proxy.cc66
-rw-r--r--apps/http-proxy/src/http_session.cc55
-rw-r--r--apps/http-proxy/src/icn_receiver.cc24
4 files changed, 71 insertions, 78 deletions
diff --git a/apps/http-proxy/src/forwarder_interface.cc b/apps/http-proxy/src/forwarder_interface.cc
index 7d8235ac6..c2448de9a 100644
--- a/apps/http-proxy/src/forwarder_interface.cc
+++ b/apps/http-proxy/src/forwarder_interface.cc
@@ -119,7 +119,7 @@ void ForwarderInterface::internalRemoveConnectedUser(uint32_t route_id) {
for (unsigned i = 0; i < routes_to_remove.size(); i++) {
connids_to_remove.insert(routes_to_remove[i]->face_id);
if (hc_route_delete(sock_, routes_to_remove[i]) < 0) {
- TRANSPORT_LOGE("Error removing route from forwarder.");
+ TRANSPORT_LOG_ERROR << "Error removing route from forwarder.";
}
}
@@ -146,7 +146,7 @@ void ForwarderInterface::internalRemoveConnectedUser(uint32_t route_id) {
for (unsigned i = 0; i < conns_to_remove.size(); i++) {
if (hc_connection_delete(sock_, conns_to_remove[i]) < 0) {
- TRANSPORT_LOGE("Error removing connection from forwarder.");
+ TRANSPORT_LOG_ERROR << "Error removing connection from forwarder.";
}
}
diff --git a/apps/http-proxy/src/http_proxy.cc b/apps/http-proxy/src/http_proxy.cc
index 262fcb8e1..2040f7cfa 100644
--- a/apps/http-proxy/src/http_proxy.cc
+++ b/apps/http-proxy/src/http_proxy.cc
@@ -67,8 +67,8 @@ class HTTPClientConnectionCallback : interface::ConsumerSocket::ReadCallback {
std::string remote_address =
socket.remote_endpoint().address().to_string();
std::uint16_t remote_port = socket.remote_endpoint().port();
- TRANSPORT_LOGD("Client %s:%d disconnected.", remote_address.c_str(),
- remote_port);
+ TRANSPORT_LOG_INFO << "Client " << remote_address << ":"
+ << remote_port << "disconnected.";
} catch (std::system_error& e) {
// Do nothing
}
@@ -85,7 +85,7 @@ class HTTPClientConnectionCallback : interface::ConsumerSocket::ReadCallback {
private:
void consumeNextRequest() {
if (request_buffer_queue_.size() == 0) {
- TRANSPORT_LOGD("No additional requests to process.");
+ // No additional requests to process
return;
}
@@ -136,24 +136,24 @@ class HTTPClientConnectionCallback : interface::ConsumerSocket::ReadCallback {
current_size_ += size;
if (is_last) {
- TRANSPORT_LOGD("Request received: %s",
- std::string((const char*)tmp_buffer_.first->data(),
- tmp_buffer_.first->length())
- .c_str());
+ // TRANSPORT_LOGD("Request received: %s",
+ // std::string((const char*)tmp_buffer_.first->data(),
+ // tmp_buffer_.first->length())
+ // .c_str());
if (current_size_ < 1400) {
request_buffer_queue_.emplace_back(std::move(tmp_buffer_));
} else {
- TRANSPORT_LOGE("Ignoring client request due to size (%zu) > 1400.",
- current_size_);
+ TRANSPORT_LOG_ERROR << "Ignoring client request due to size ("
+ << current_size_ << ") > 1400.";
session_->close();
current_size_ = 0;
return;
}
if (!consumer_.isRunning()) {
- TRANSPORT_LOGD(
- "Consumer stopped, triggering consume from TCP session "
- "handler..");
+ TRANSPORT_LOG_INFO
+ << "Consumer stopped, triggering consume from TCP session "
+ "handler..";
consumeNextRequest();
}
@@ -187,12 +187,13 @@ class HTTPClientConnectionCallback : interface::ConsumerSocket::ReadCallback {
void readBufferAvailable(std::unique_ptr<utils::MemBuf>&& buffer) noexcept {
// Response received. Send it back to client
auto _buffer = buffer.release();
- TRANSPORT_LOGD("From hicn: %zu bytes.", _buffer->length());
+ // TRANSPORT_LOGD("From hicn: %zu bytes.", _buffer->length());
session_->send(_buffer, []() {});
}
void readError(const std::error_code ec) noexcept {
- TRANSPORT_LOGE("Error reading from hicn consumer socket. Closing session.");
+ TRANSPORT_LOG_ERROR
+ << "Error reading from hicn consumer socket. Closing session.";
session_->close();
}
@@ -209,15 +210,14 @@ class HTTPClientConnectionCallback : interface::ConsumerSocket::ReadCallback {
* Let's grant it!
*/
if (metadata->method == "OPTIONS") {
- session_->send(
- (const uint8_t*)HTTPMessageFastParser::http_cors,
- std::strlen(HTTPMessageFastParser::http_cors), [this]() {
- auto& socket = session_->socket_;
- TRANSPORT_LOGI(
- "Sent OPTIONS to client %s:%d",
- socket.remote_endpoint().address().to_string().c_str(),
- socket.remote_endpoint().port());
- });
+ session_->send((const uint8_t*)HTTPMessageFastParser::http_cors,
+ std::strlen(HTTPMessageFastParser::http_cors), [this]() {
+ auto& socket = session_->socket_;
+ TRANSPORT_LOG_INFO
+ << "Sent OPTIONS to client "
+ << socket.remote_endpoint().address() << ":"
+ << socket.remote_endpoint().port();
+ });
}
} else {
tcp_receiver_.parseHicnHeader(
@@ -230,14 +230,14 @@ class HTTPClientConnectionCallback : interface::ConsumerSocket::ReadCallback {
}
/* Route created. Send back a 200 OK to client */
- session_->send(
- (const uint8_t*)reply, std::strlen(reply), [this, result]() {
- auto& socket = session_->socket_;
- TRANSPORT_LOGI(
- "Sent %d response to client %s:%d", result,
- socket.remote_endpoint().address().to_string().c_str(),
- socket.remote_endpoint().port());
- });
+ session_->send((const uint8_t*)reply, std::strlen(reply),
+ [this, result]() {
+ auto& socket = session_->socket_;
+ TRANSPORT_LOG_INFO
+ << "Sent " << result << " response to client "
+ << socket.remote_endpoint().address() << ":"
+ << socket.remote_endpoint().port();
+ });
});
}
}
@@ -313,7 +313,6 @@ void TcpReceiver::onClientDisconnect(HTTPClientConnectionCallback* client) {
void TcpReceiver::onNewConnection(asio::ip::tcp::socket&& socket) {
if (http_clients_.size() == 0) {
// Create new HTTPClientConnectionCallback
- TRANSPORT_LOGD("Creating new HTTPClientConnectionCallback.");
http_clients_.emplace_back(
new HTTPClientConnectionCallback(*this, thread_));
}
@@ -332,7 +331,8 @@ void TcpReceiver::onNewConnection(asio::ip::tcp::socket&& socket) {
void HTTPProxy::setupSignalHandler() {
signals_.async_wait([this](const std::error_code& ec, int signal_number) {
if (!ec) {
- TRANSPORT_LOGI("Received signal %d. Stopping gracefully.", signal_number);
+ TRANSPORT_LOG_INFO << "Received signal " << signal_number
+ << ". Stopping gracefully.";
stop();
}
});
diff --git a/apps/http-proxy/src/http_session.cc b/apps/http-proxy/src/http_session.cc
index 6b91c12c3..84c814cbd 100644
--- a/apps/http-proxy/src/http_session.cc
+++ b/apps/http-proxy/src/http_session.cc
@@ -111,7 +111,6 @@ void HTTPSession::send(utils::MemBuf *buffer,
doWrite();
}
} else {
- TRANSPORT_LOGD("Tell the handle connect it has data to write");
data_available_ = true;
}
});
@@ -134,15 +133,11 @@ void HTTPSession::doWrite() {
asio::async_write(socket_, asio::buffer(buffer->data(), buffer->length()),
[this](std::error_code ec, std::size_t length) {
if (TRANSPORT_EXPECT_FALSE(!ec)) {
- TRANSPORT_LOGD("Content successfully sent! %zu",
- length);
write_msgs_.front().second();
write_msgs_.pop_front();
if (!write_msgs_.empty()) {
doWrite();
}
- } else {
- TRANSPORT_LOGD("Content NOT sent!");
}
});
} // namespace transport
@@ -274,7 +269,7 @@ void HTTPSession::doReadHeader() {
void HTTPSession::tryReconnection() {
if (on_connection_closed_callback_(socket_)) {
if (state_ == ConnectorState::CONNECTED) {
- TRANSPORT_LOGD("Connection lost. Trying to reconnect...\n");
+ TRANSPORT_LOG_ERROR << "Connection lost. Trying to reconnect...";
state_ = ConnectorState::CONNECTING;
is_reconnection_ = true;
io_service_.post([this]() {
@@ -290,35 +285,35 @@ void HTTPSession::tryReconnection() {
}
void HTTPSession::doConnect() {
- asio::async_connect(socket_, endpoint_iterator_,
- [this](std::error_code ec, tcp::resolver::iterator) {
- if (!ec) {
- timer_.cancel();
- state_ = ConnectorState::CONNECTED;
+ asio::async_connect(
+ socket_, endpoint_iterator_,
+ [this](std::error_code ec, tcp::resolver::iterator) {
+ if (!ec) {
+ timer_.cancel();
+ state_ = ConnectorState::CONNECTED;
- asio::ip::tcp::no_delay noDelayOption(true);
- socket_.set_option(noDelayOption);
+ asio::ip::tcp::no_delay noDelayOption(true);
+ socket_.set_option(noDelayOption);
- // on_reconnect_callback_();
+ // on_reconnect_callback_();
- doReadHeader();
+ doReadHeader();
- if (data_available_ && !write_msgs_.empty()) {
- data_available_ = false;
- doWrite();
- }
+ if (data_available_ && !write_msgs_.empty()) {
+ data_available_ = false;
+ doWrite();
+ }
- if (is_reconnection_) {
- is_reconnection_ = false;
- TRANSPORT_LOGD("Connection recovered!");
- }
+ if (is_reconnection_) {
+ is_reconnection_ = false;
+ TRANSPORT_LOG_INFO << "Connection recovered!";
+ }
- } else {
- TRANSPORT_LOGE("Impossible to reconnect: %s",
- ec.message().c_str());
- close();
- }
- });
+ } else {
+ TRANSPORT_LOG_ERROR << "Impossible to reconnect: " << ec.message();
+ close();
+ }
+ });
}
bool HTTPSession::checkConnected() {
@@ -335,7 +330,7 @@ void HTTPSession::handleDeadline(const std::error_code &ec) {
if (!ec) {
io_service_.post([this]() {
socket_.close();
- TRANSPORT_LOGE("Error connecting. Is the server running?\n");
+ TRANSPORT_LOG_ERROR << "Error connecting. Is the server running?";
io_service_.stop();
});
}
diff --git a/apps/http-proxy/src/icn_receiver.cc b/apps/http-proxy/src/icn_receiver.cc
index 23e5b5623..ea8ac7191 100644
--- a/apps/http-proxy/src/icn_receiver.cc
+++ b/apps/http-proxy/src/icn_receiver.cc
@@ -55,28 +55,28 @@ AsyncConsumerProducer::AsyncConsumerProducer(
interface::GeneralTransportOptions::OUTPUT_BUFFER_SIZE, cache_size_);
if (ret != SOCKET_OPTION_SET) {
- TRANSPORT_LOGD("Warning: output buffer size has not been set.");
+ TRANSPORT_LOG_WARNING << "Warning: output buffer size has not been set.";
}
ret = producer_socket_.setSocketOption(
interface::GeneralTransportOptions::MAKE_MANIFEST, manifest);
if (ret != SOCKET_OPTION_SET) {
- TRANSPORT_LOGD("Warning: impossible to enable signatures.");
+ TRANSPORT_LOG_WARNING << "Warning: impossible to enable signatures.";
}
ret = producer_socket_.setSocketOption(
interface::GeneralTransportOptions::DATA_PACKET_SIZE, mtu_);
if (ret != SOCKET_OPTION_SET) {
- TRANSPORT_LOGD("Warning: mtu has not been set.");
+ TRANSPORT_LOG_WARNING << "Warning: mtu has not been set.";
}
producer_socket_.registerPrefix(prefix_);
}
void AsyncConsumerProducer::start() {
- TRANSPORT_LOGD("Starting listening");
+ TRANSPORT_LOG_INFO << "Starting listening";
doReceive();
}
@@ -90,8 +90,8 @@ void AsyncConsumerProducer::run() {
void AsyncConsumerProducer::stop() {
io_service_.post([this]() {
- TRANSPORT_LOGI("Number of requests processed by plugin: %lu",
- (unsigned long)request_counter_);
+ TRANSPORT_LOG_INFO << "Number of requests processed by plugin: "
+ << request_counter_;
producer_socket_.stop();
connector_.close();
});
@@ -123,16 +123,14 @@ void AsyncConsumerProducer::manageIncomingInterest(
if (_it != _end) {
if (_it->second.second) {
- TRANSPORT_LOGD(
- "Content is in production, interests will be satisfied shortly.");
return;
}
if (seg >= _it->second.first) {
- TRANSPORT_LOGD(
- "Ignoring interest with name %s for a content object which does not "
- "exist. (Request: %u, max: %u)",
- name.toString().c_str(), (uint32_t)seg, (uint32_t)_it->second.first);
+ // TRANSPORT_LOGD(
+ // "Ignoring interest with name %s for a content object which does not "
+ // "exist. (Request: %u, max: %u)",
+ // name.toString().c_str(), (uint32_t)seg, (uint32_t)_it->second.first);
return;
}
}
@@ -170,7 +168,7 @@ void AsyncConsumerProducer::publishContent(const uint8_t* data,
options.getLifetime());
if (TRANSPORT_EXPECT_FALSE(ret != SOCKET_OPTION_SET)) {
- TRANSPORT_LOGD("Warning: content object lifetime has not been set.");
+ TRANSPORT_LOG_WARNING << "Warning: content object lifetime has not been set.";
}
const interface::Name& name = options.getName();