From baaa6c3ce8bfb9e8b60fee0b1d3149a94b4425c6 Mon Sep 17 00:00:00 2001 From: Horst Schirmeier Date: Wed, 6 Dec 2017 10:31:47 +0100 Subject: [PATCH] JobClient/Server fixes - Retain original CLIENT_RETRY_COUNT semantics after Boost::Asio switch - JobClient is C++11 now, too - Message reception copy/paste error fixes Change-Id: I19c474b2a79cd2ac8657e8d58d6170202d096fb0 --- src/core/cpn/JobServer.cc | 2 +- src/core/efw/CMakeLists.txt | 2 ++ src/core/efw/JobClient.cc | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/core/cpn/JobServer.cc b/src/core/cpn/JobServer.cc index 02807070..a521de5b 100644 --- a/src/core/cpn/JobServer.cc +++ b/src/core/cpn/JobServer.cc @@ -92,7 +92,7 @@ static bool rcvMsg(tcp::socket &socket, google::protobuf::Message &msg, std::vector buf(msg_size); len = async_read(socket, buffer(buf), yield[ec]); - if (ec || len != sizeof(size)) { + if (ec || len != msg_size) { std::cerr << ec.message() << std::endl; std::cerr << "Read " << len << " instead of " << msg_size << " bytes from socket" << std::endl; diff --git a/src/core/efw/CMakeLists.txt b/src/core/efw/CMakeLists.txt index b13748e4..149887dc 100644 --- a/src/core/efw/CMakeLists.txt +++ b/src/core/efw/CMakeLists.txt @@ -8,6 +8,8 @@ set(SRCS DatabaseExperiment.cc ) +set_source_files_properties(JobClient.cc PROPERTIES COMPILE_FLAGS -std=c++11) + add_library(fail-efw ${SRCS}) add_dependencies(fail-efw fail-protoc) target_link_libraries(fail-efw fail-comm) diff --git a/src/core/efw/JobClient.cc b/src/core/efw/JobClient.cc index d411ab7d..f3b48e12 100644 --- a/src/core/efw/JobClient.cc +++ b/src/core/efw/JobClient.cc @@ -53,7 +53,7 @@ bool JobClient::connectToServer() // random engine for backoff. std::mt19937_64 engine(time(NULL)); - for (int retries = CLIENT_RETRY_COUNT; retries > 0; --retries) { + for (int tries = CLIENT_RETRY_COUNT + 1; tries > 0; --tries) { for (ip::tcp::resolver::iterator end, addrs = resolver.resolve(query); addrs != end; ++addrs) { @@ -147,7 +147,7 @@ bool rcvMsg(Socket &s, google::protobuf::Message &msg) const auto msglen = ntohl(size); std::vector buf(msglen); len = boost::asio::read(s, buffer(buf), ec); - if (ec || len != sizeof(size)) { + if (ec || len != msglen) { std::cerr << ec.message() << std::endl; std::cerr << "Read " << len << " instead of " << msglen << " bytes from socket" << std::endl;