diff --git a/CMakeLists.txt b/CMakeLists.txt index 2b0f6b92aebab4de40975588bd5e6ca205f9b62b..1b50451da30c3567cd5cc7fd8c12e076dcc4f70e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -90,7 +90,7 @@ if (USE_CPPCHECK) find_program(CPPCHECK_FOUND cppcheck) if (CPPCHECK_FOUND) message(STATUS "Found cppcheck: will perform source checks") - set(CMAKE_CXX_CPPCHECK "cppcheck" "-D__align__(A)" "--enable=warning,performance,style" "--inline-suppr" "--std=c++14" "--suppress=*:*catch.hpp" "--suppress=*:*elas*" "--suppress=*:*json.hpp" "--quiet") + set(CMAKE_CXX_CPPCHECK "cppcheck" "-D__align__(A)" "--enable=warning,performance,style" "--inline-suppr" "--std=c++17" "--suppress=*:*loguru.*" "--suppress=*:*catch.hpp" "--suppress=*:*elas*" "--suppress=*:*json.hpp" "--quiet") endif() endif() diff --git a/src/peer.hpp b/src/peer.hpp index e26c1def70c511f958671c15f7d1f2de5820ec81..ab8e2c66d0624858537adf23421e6ef6c0c2fdf1 100644 --- a/src/peer.hpp +++ b/src/peer.hpp @@ -49,7 +49,7 @@ struct virtual_caller { template <typename T> struct caller : virtual_caller { explicit caller(std::function<void(const T&)> &f) : f_(f) {}; - void operator()(msgpack::object &o) { T r = o.as<T>(); f_(r); }; + void operator()(msgpack::object &o) override { T r = o.as<T>(); f_(r); }; std::function<void(const T&)> f_; }; diff --git a/src/protocol/tcp.cpp b/src/protocol/tcp.cpp index f8ffdeec79f7df4b6bdd1695340b6d3bb540e680..e912bf729201f3474753008c81ae0659bdbd7fe3 100644 --- a/src/protocol/tcp.cpp +++ b/src/protocol/tcp.cpp @@ -21,7 +21,7 @@ Connection_TCP::Connection_TCP() : SocketConnection(create_tcp_socket(), {}) { } -bool Connection_TCP::connect(std::string hostname, int port, int timeout) { +bool Connection_TCP::connect(const std::string &hostname, int port, int timeout) { if (!resolve_inet_address(hostname, port, addr_)) { throw FTL_Error("could not resolve hostname: " + hostname); } diff --git a/src/protocol/tcp.hpp b/src/protocol/tcp.hpp index 694862e01c6014daf5a34e2a937829493f679d6d..5e0fc56b4672dcb84a1b02d1bf536f5345fcdd79 100644 --- a/src/protocol/tcp.hpp +++ b/src/protocol/tcp.hpp @@ -38,7 +38,7 @@ public: Connection_TCP(); ftl::URI::scheme_t scheme() const override { return ftl::URI::SCHEME_TCP; } - bool connect(std::string hostname, int port, int timeout=0); + bool connect(const std::string &hostname, int port, int timeout=0); void connect(const ftl::URI& uri, int timeout=0) override; }; diff --git a/src/protocol/websocket.cpp b/src/protocol/websocket.cpp index 9955e809f8017a54135e591a9842b35a3823a223..282c471a81eaebdfc9304c1d86b8a286e69886a9 100644 --- a/src/protocol/websocket.cpp +++ b/src/protocol/websocket.cpp @@ -268,7 +268,6 @@ bool WebSocketBase<SocketT>::prepare_next(char* data, size_t data_len, size_t& o wsheader_type header; if (!ws_parse(data, data_len, header)) { throw FTL_Error("corrupted WS header"); - return false; } if ((header.N + header.header_size) > data_len) { diff --git a/src/protocol/websocket.hpp b/src/protocol/websocket.hpp index 0ea13b78d1f3d2447413c28b3f726c95b725f262..8e73be1667d4b2996c5fa952294ed06dd629dbab 100644 --- a/src/protocol/websocket.hpp +++ b/src/protocol/websocket.hpp @@ -17,7 +17,7 @@ class WebSocketBase : public SocketT { public: WebSocketBase(); ftl::URI::scheme_t scheme() const override; - void connect(const ftl::URI& uri, int timeout=0); + void connect(const ftl::URI& uri, int timeout=0) override; bool prepare_next(char* buffer, size_t len, size_t &offset) override; diff --git a/src/socket/socket_linux.cpp b/src/socket/socket_linux.cpp index d51824aa9be45128d3a053cf527c2aea327d3f1e..f8ae4f3b13b71b7bc636366d98d987977db4f5fd 100644 --- a/src/socket/socket_linux.cpp +++ b/src/socket/socket_linux.cpp @@ -39,7 +39,7 @@ bool ftl::net::internal::resolve_inet_address(const std::string &hostname, int p // Socket Socket::Socket(int domain, int type, int protocol) : - status_(STATUS::UNCONNECTED), fd_(-1), family_(domain) { + status_(STATUS::UNCONNECTED), fd_(-1), family_(domain), err_(0) { int retval = socket(domain, type, protocol); diff --git a/src/socket/socket_windows.cpp b/src/socket/socket_windows.cpp index 39bfb1fdde272e08748d9b7312f35b65ffec0cb4..f113b057a02ea9559348b1d59d96ff616a545cfd 100644 --- a/src/socket/socket_windows.cpp +++ b/src/socket/socket_windows.cpp @@ -107,6 +107,7 @@ int Socket::listen(int backlog) { ::closesocket(fd_); status_ = STATUS::CLOSED; fd_ = INVALID_SOCKET; + return retval; } } @@ -185,6 +186,9 @@ std::string Socket::get_error_string() { wchar_t* s = NULL; FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, err_, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPWSTR)&s, 0, NULL); + if (!s) { + return "Unknown"; + } std::wstring ws(s); std::string msg(ws.begin(), ws.end()); LocalFree(s); diff --git a/src/universe.cpp b/src/universe.cpp index bdaac2db4d8ca177bf0dbc9c046a9e68e312e426..f21d47dc540cd775277ea0d458699fc171ba660b 100644 --- a/src/universe.cpp +++ b/src/universe.cpp @@ -320,9 +320,9 @@ void Universe::_cleanupPeers() { auto ix = peer_ids_.find(p->id()); if (ix != peer_ids_.end()) peer_ids_.erase(ix); - for (auto i=peer_by_uri_.begin(); i != peer_by_uri_.end(); ++i) { - if (peers_[i->second] == p) { - peer_by_uri_.erase(i); + for (auto j=peer_by_uri_.begin(); j != peer_by_uri_.end(); ++j) { + if (peers_[j->second] == p) { + peer_by_uri_.erase(j); break; } }