From 79ebd747d246f0aa3e78affc61d5dca02f5c6eb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 30 Jan 2023 16:19:25 +0100 Subject: [PATCH] use string literals; update copyright year --- .../WebTunnelAgent/src/WebTunnelAgent.cpp | 8 +-- .../WebTunnelClient/src/WebTunnelClient.cpp | 4 +- WebTunnel/WebTunnelRDP/src/WebTunnelRDP.cpp | 4 +- WebTunnel/WebTunnelSCP/src/WebTunnelSCP.cpp | 4 +- WebTunnel/WebTunnelSFTP/src/WebTunnelSFTP.cpp | 4 +- WebTunnel/WebTunnelSSH/src/WebTunnelSSH.cpp | 4 +- WebTunnel/WebTunnelVNC/src/WebTunnelVNC.cpp | 4 +- WebTunnel/src/LocalPortForwarder.cpp | 47 ++++++++------- WebTunnel/src/RemotePortForwarder.cpp | 57 ++++++++++--------- WebTunnel/src/SocketDispatcher.cpp | 13 +++-- 10 files changed, 79 insertions(+), 70 deletions(-) diff --git a/WebTunnel/WebTunnelAgent/src/WebTunnelAgent.cpp b/WebTunnel/WebTunnelAgent/src/WebTunnelAgent.cpp index 38be196b..0ebf328c 100644 --- a/WebTunnel/WebTunnelAgent/src/WebTunnelAgent.cpp +++ b/WebTunnel/WebTunnelAgent/src/WebTunnelAgent.cpp @@ -1,7 +1,7 @@ // // WebTunnelAgent.cpp // -// Copyright (c) 2013-2022, Applied Informatics Software Engineering GmbH. +// Copyright (c) 2013-2023, Applied Informatics Software Engineering GmbH. // All rights reserved. // // SPDX-License-Identifier: BSL-1.0 @@ -231,7 +231,7 @@ class WebTunnelAgent: public Poco::Util::ServerApplication helpFormatter.setUsage("OPTIONS"s); helpFormatter.setHeader("\n" "macchina.io REMOTE Device Agent.\n" - "Copyright (c) 2013-2022 by Applied Informatics Software Engineering GmbH.\n" + "Copyright (c) 2013-2023 by Applied Informatics Software Engineering GmbH.\n" "All rights reserved.\n\n" "This application is used to forward local TCP ports to remote\n" "clients via the macchina.io REMOTE.\n\n" @@ -570,7 +570,7 @@ class WebTunnelAgent: public Poco::Util::ServerApplication if (!_stopped.tryWait(1)) { Poco::Clock::ClockDiff retryDelay(static_cast(_retryDelay)*1000); - retryDelay += _random.next(250*_retryDelay); + retryDelay += _random.next(500*_retryDelay); Poco::Clock nextClock; nextClock += retryDelay; logger().information(Poco::format("Will reconnect in %.2f seconds."s, retryDelay/1000000.0)); @@ -964,7 +964,7 @@ class WebTunnelAgent: public Poco::Util::ServerApplication const std::string WebTunnelAgent::SEC_WEBSOCKET_PROTOCOL("Sec-WebSocket-Protocol"); const std::string WebTunnelAgent::WEBTUNNEL_PROTOCOL("com.appinf.webtunnel.server/1.0"); -const std::string WebTunnelAgent::WEBTUNNEL_AGENT("WebTunnelAgent/1.14.1"); +const std::string WebTunnelAgent::WEBTUNNEL_AGENT("WebTunnelAgent/1.15.0"); POCO_SERVER_MAIN(WebTunnelAgent) diff --git a/WebTunnel/WebTunnelClient/src/WebTunnelClient.cpp b/WebTunnel/WebTunnelClient/src/WebTunnelClient.cpp index ba35c92d..39b33113 100644 --- a/WebTunnel/WebTunnelClient/src/WebTunnelClient.cpp +++ b/WebTunnel/WebTunnelClient/src/WebTunnelClient.cpp @@ -1,7 +1,7 @@ // // WebTunnelClient.cpp // -// Copyright (c) 2013-2022, Applied Informatics Software Engineering GmbH. +// Copyright (c) 2013-2023, Applied Informatics Software Engineering GmbH. // All rights reserved. // // SPDX-License-Identifier: BSL-1.0 @@ -256,7 +256,7 @@ class WebTunnelClient: public Poco::Util::ServerApplication helpFormatter.setUsage("OPTIONS "s); helpFormatter.setHeader("\n" "macchina.io REMOTE Client.\n" - "Copyright (c) 2013-2022 by Applied Informatics Software Engineering GmbH.\n" + "Copyright (c) 2013-2023 by Applied Informatics Software Engineering GmbH.\n" "All rights reserved.\n\n" "This application is used to forward a remote TCP port to the local\n" "host via the macchina.io REMOTE server.\n\n" diff --git a/WebTunnel/WebTunnelRDP/src/WebTunnelRDP.cpp b/WebTunnel/WebTunnelRDP/src/WebTunnelRDP.cpp index e0f4cf8d..32c763a1 100644 --- a/WebTunnel/WebTunnelRDP/src/WebTunnelRDP.cpp +++ b/WebTunnel/WebTunnelRDP/src/WebTunnelRDP.cpp @@ -1,7 +1,7 @@ // // WebTunnelRDP.cpp // -// Copyright (c) 2015-2022, Applied Informatics Software Engineering GmbH. +// Copyright (c) 2015-2023, Applied Informatics Software Engineering GmbH. // All rights reserved. // // SPDX-License-Identifier: BSL-1.0 @@ -214,7 +214,7 @@ class WebTunnelRDP: public Poco::Util::Application helpFormatter.setUsage("OPTIONS [-- RDP-OPTIONS]"s); helpFormatter.setHeader("\n" "macchina.io REMOTE RDP Client.\n" - "Copyright (c) 2019-2022 by Applied Informatics Software Engineering GmbH.\n" + "Copyright (c) 2019-2023 by Applied Informatics Software Engineering GmbH.\n" "All rights reserved.\n\n" "This application is used to launch a Remote Desktop connection to a remote\n" "host via the macchina.io REMOTE server.\n\n" diff --git a/WebTunnel/WebTunnelSCP/src/WebTunnelSCP.cpp b/WebTunnel/WebTunnelSCP/src/WebTunnelSCP.cpp index 997df241..ddb20f06 100644 --- a/WebTunnel/WebTunnelSCP/src/WebTunnelSCP.cpp +++ b/WebTunnel/WebTunnelSCP/src/WebTunnelSCP.cpp @@ -1,7 +1,7 @@ // // WebTunnelSCP.cpp // -// Copyright (c) 2014-2022, Applied Informatics Software Engineering GmbH. +// Copyright (c) 2014-2023, Applied Informatics Software Engineering GmbH. // All rights reserved. // // SPDX-License-Identifier: BSL-1.0 @@ -214,7 +214,7 @@ class WebTunnelSCP: public Poco::Util::Application helpFormatter.setUsage("OPTIONS [-- SCP-OPTIONS] "s); helpFormatter.setHeader("\n" "macchina.io REMOTE SCP Client.\n" - "Copyright (c) 2021-2022 by Applied Informatics Software Engineering GmbH.\n" + "Copyright (c) 2021-2023 by Applied Informatics Software Engineering GmbH.\n" "All rights reserved.\n\n" "This application is used to launch a SCP (Secure/SSH File Copy)\n" "connection to a remote host via the macchina.io REMOTE server.\n\n" diff --git a/WebTunnel/WebTunnelSFTP/src/WebTunnelSFTP.cpp b/WebTunnel/WebTunnelSFTP/src/WebTunnelSFTP.cpp index 9546d5ef..3d6ca4a3 100644 --- a/WebTunnel/WebTunnelSFTP/src/WebTunnelSFTP.cpp +++ b/WebTunnel/WebTunnelSFTP/src/WebTunnelSFTP.cpp @@ -1,7 +1,7 @@ // // WebTunnelSFTP.cpp // -// Copyright (c) 2014-2022, Applied Informatics Software Engineering GmbH. +// Copyright (c) 2014-2023, Applied Informatics Software Engineering GmbH. // All rights reserved. // // SPDX-License-Identifier: BSL-1.0 @@ -226,7 +226,7 @@ class WebTunnelSFTP: public Poco::Util::Application helpFormatter.setUsage("OPTIONS [-- SFTP-OPTIONS]"s); helpFormatter.setHeader("\n" "macchina.io REMOTE SFTP Client.\n" - "Copyright (c) 2021-2022 by Applied Informatics Software Engineering GmbH.\n" + "Copyright (c) 2021-2023 by Applied Informatics Software Engineering GmbH.\n" "All rights reserved.\n\n" "This application is used to launch a SFTP (Secure/SSH File Transfer Protocol)\n" "connection to a remote host via the macchina.io REMOTE server.\n\n" diff --git a/WebTunnel/WebTunnelSSH/src/WebTunnelSSH.cpp b/WebTunnel/WebTunnelSSH/src/WebTunnelSSH.cpp index 7da9e5f0..ef14b04b 100644 --- a/WebTunnel/WebTunnelSSH/src/WebTunnelSSH.cpp +++ b/WebTunnel/WebTunnelSSH/src/WebTunnelSSH.cpp @@ -1,7 +1,7 @@ // // WebTunnelSSH.cpp // -// Copyright (c) 2014-2022, Applied Informatics Software Engineering GmbH. +// Copyright (c) 2014-2023, Applied Informatics Software Engineering GmbH. // All rights reserved. // // SPDX-License-Identifier: BSL-1.0 @@ -253,7 +253,7 @@ class WebTunnelSSH: public Poco::Util::Application helpFormatter.setUsage("OPTIONS [-- SSH-OPTIONS]"s); helpFormatter.setHeader("\n" "macchina.io REMOTE SSH Client.\n" - "Copyright (c) 2014-2022 by Applied Informatics Software Engineering GmbH.\n" + "Copyright (c) 2014-2023 by Applied Informatics Software Engineering GmbH.\n" "All rights reserved.\n\n" "This application is used to launch a SSH connection to a remote\n" "host via the macchina.io REMOTE server.\n\n" diff --git a/WebTunnel/WebTunnelVNC/src/WebTunnelVNC.cpp b/WebTunnel/WebTunnelVNC/src/WebTunnelVNC.cpp index 2e8b3565..1c595e55 100644 --- a/WebTunnel/WebTunnelVNC/src/WebTunnelVNC.cpp +++ b/WebTunnel/WebTunnelVNC/src/WebTunnelVNC.cpp @@ -1,7 +1,7 @@ // // WebTunnelVNC.cpp // -// Copyright (c) 2015-2022, Applied Informatics Software Engineering GmbH. +// Copyright (c) 2015-2023, Applied Informatics Software Engineering GmbH. // All rights reserved. // // SPDX-License-Identifier: BSL-1.0 @@ -195,7 +195,7 @@ class WebTunnelVNC: public Poco::Util::Application helpFormatter.setUsage("OPTIONS [-- VNC-OPTIONS]"s); helpFormatter.setHeader("\n" "macchina.io REMOTE VNC Client.\n" - "Copyright (c) 2015-2022 by Applied Informatics Software Engineering GmbH.\n" + "Copyright (c) 2015-2023 by Applied Informatics Software Engineering GmbH.\n" "All rights reserved.\n\n" "This application is used to launch a VNC connection to a remote\n" "host via the macchina.io REMOTE server.\n\n" diff --git a/WebTunnel/src/LocalPortForwarder.cpp b/WebTunnel/src/LocalPortForwarder.cpp index b4360bb3..54db3ad3 100644 --- a/WebTunnel/src/LocalPortForwarder.cpp +++ b/WebTunnel/src/LocalPortForwarder.cpp @@ -28,6 +28,9 @@ #include "Poco/Buffer.h" +using namespace std::string_literals; + + namespace Poco { namespace WebTunnel { @@ -164,7 +167,7 @@ class BasicSocketForwarder: public SocketDispatcher::SocketHandler } catch (Poco::Exception& exc) { - logger.warning("Error shutting down WebSocket: %s", exc.displayText()); + logger.warning("Error shutting down WebSocket: %s"s, exc.displayText()); } } @@ -186,7 +189,7 @@ class StreamSocketToWebSocketForwarder: public BasicSocketForwarder StreamSocketToWebSocketForwarder(Poco::SharedPtr pDispatcher, Poco::SharedPtr pWebSocket): BasicSocketForwarder(pDispatcher), _pWebSocket(pWebSocket), - _logger(Poco::Logger::get("WebTunnel.StreamSocketToWebSocketForwarder")) + _logger(Poco::Logger::get("WebTunnel.StreamSocketToWebSocketForwarder"s)) { } @@ -199,14 +202,14 @@ class StreamSocketToWebSocketForwarder: public BasicSocketForwarder } catch (Poco::Net::ConnectionResetException& exc) { - _logger.debug("Exception while receiving data from local socket: " + exc.displayText()); + _logger.debug("Exception while receiving data from local socket: %s"s, exc.displayText()); shutdown(*_pWebSocket, Poco::Net::WebSocket::WS_UNEXPECTED_CONDITION, _logger); cleanupDispatcher(socket, *_pWebSocket); return false; } catch (Poco::Exception& exc) { - _logger.error("Exception while receiving data from local socket: " + exc.displayText()); + _logger.error("Exception while receiving data from local socket: %s"s, exc.displayText()); shutdown(*_pWebSocket, Poco::Net::WebSocket::WS_UNEXPECTED_CONDITION, _logger); cleanupDispatcher(socket, *_pWebSocket); return false; @@ -220,13 +223,13 @@ class StreamSocketToWebSocketForwarder: public BasicSocketForwarder } catch (Poco::Exception& exc) { - _logger.error("Exception while sending data: " + exc.displayText()); + _logger.error("Exception while sending data: %s"s, exc.displayText()); cleanupDispatcher(socket, *_pWebSocket); } } else { - _logger.debug("Closing connection"); + _logger.debug("Closing connection"s); shutdown(*_pWebSocket, Poco::Net::WebSocket::WS_NORMAL_CLOSE, _logger); cleanupDispatcher(socket, *_pWebSocket); } @@ -263,7 +266,7 @@ class WebSocketToStreamSocketForwarder: public BasicSocketForwarder BasicSocketForwarder(pDispatcher), _streamSocket(streamSocket), _timeoutCount(0), - _logger(Poco::Logger::get("WebTunnel.WebSocketToStreamSocketForwarder")) + _logger(Poco::Logger::get("WebTunnel.WebSocketToStreamSocketForwarder"s)) { } @@ -278,19 +281,19 @@ class WebSocketToStreamSocketForwarder: public BasicSocketForwarder } catch (Poco::Net::ConnectionResetException& exc) { - _logger.debug("Exception while receiving data from remote socket: " + exc.displayText()); + _logger.debug("Exception while receiving data from remote socket: %s"s, exc.displayText()); cleanupDispatcher(socket, _streamSocket); return false; } catch (Poco::Exception& exc) { - _logger.error("Exception while receiving data from remote socket: " + exc.displayText()); + _logger.error("Exception while receiving data from remote socket: %s"s, exc.displayText()); cleanupDispatcher(socket, _streamSocket); return false; } if ((flags & Poco::Net::WebSocket::FRAME_OP_BITMASK) == Poco::Net::WebSocket::FRAME_OP_PONG) { - _logger.debug("PONG received"); + _logger.debug("PONG received"s); _timeoutCount = 0; return false; } @@ -303,7 +306,7 @@ class WebSocketToStreamSocketForwarder: public BasicSocketForwarder } catch (Poco::Exception& exc) { - _logger.error("Exception while sending data: " + exc.displayText()); + _logger.error("Exception while sending data: %s"s, exc.displayText()); cleanupDispatcher(socket, _streamSocket); shutdown(webSocket, Poco::Net::WebSocket::WS_UNEXPECTED_CONDITION, _logger); return false; @@ -311,13 +314,13 @@ class WebSocketToStreamSocketForwarder: public BasicSocketForwarder } else if (n <= 0 || (flags & Poco::Net::WebSocket::FRAME_OP_BITMASK) == Poco::Net::WebSocket::FRAME_OP_CLOSE) { - _logger.debug("Shutting down WebSocket"); + _logger.debug("Shutting down WebSocket"s); cleanupDispatcher(socket, _streamSocket); _streamSocket.shutdown(); } else { - _logger.debug("Ignoring unsupported frame type"); + _logger.debug("Ignoring unsupported frame type"s); } return false; } @@ -329,13 +332,13 @@ class WebSocketToStreamSocketForwarder: public BasicSocketForwarder void timeout(SocketDispatcher& dispatcher, Poco::Net::StreamSocket& socket) { - _logger.debug("Timeout reading from WebSocket"); + _logger.debug("Timeout reading from WebSocket"s); if (_timeoutCount == 0) { _timeoutCount = 1; try { - _logger.debug("Sending PING"); + _logger.debug("Sending PING"s); Poco::Net::WebSocket webSocket(socket); webSocket.sendFrame(0, 0, Poco::Net::WebSocket::FRAME_FLAG_FIN | Poco::Net::WebSocket::FRAME_OP_PING); } @@ -368,7 +371,7 @@ const std::string LocalPortForwarder::WEBTUNNEL_PROTOCOL("com.appinf.webtunnel.c LocalPortForwarder::LocalPortForwarder(Poco::UInt16 localPort, Poco::UInt16 remotePort, const Poco::URI& remoteURI, WebSocketFactory::Ptr pWebSocketFactory): - _localAddr("localhost", localPort), + _localAddr("localhost"s, localPort), _remotePort(remotePort), _remoteURI(remoteURI), _localTimeout(0), @@ -376,7 +379,7 @@ LocalPortForwarder::LocalPortForwarder(Poco::UInt16 localPort, Poco::UInt16 remo _pWebSocketFactory(pWebSocketFactory), _serverSocket(_localAddr), _tcpServer(new LocalPortForwarderConnectionFactory(*this), _serverSocket), - _logger(Poco::Logger::get("WebTunnel.LocalPortForwarder")) + _logger(Poco::Logger::get("WebTunnel.LocalPortForwarder"s)) { _localAddr = _serverSocket.address(); _tcpServer.start(); @@ -394,7 +397,7 @@ LocalPortForwarder::LocalPortForwarder(const Poco::Net::SocketAddress& localAddr _serverSocket(_localAddr), _tcpServer(new LocalPortForwarderConnectionFactory(*this), _serverSocket, pServerParams), _pDispatcher(new SocketDispatcher(16)), - _logger(Poco::Logger::get("WebTunnel.LocalPortForwarder")) + _logger(Poco::Logger::get("WebTunnel.LocalPortForwarder"s)) { _localAddr = _serverSocket.address(); _tcpServer.start(); @@ -432,7 +435,7 @@ void LocalPortForwarder::forward(Poco::Net::StreamSocket& socket) { if (_logger.debug()) { - _logger.debug("Local connection accepted, creating forwarding connection to %s, remote port %hu", _remoteURI.toString(), _remotePort); + _logger.debug("Local connection accepted, creating forwarding connection to %s, remote port %hu."s, _remoteURI.toString(), _remotePort); } try { @@ -443,9 +446,9 @@ void LocalPortForwarder::forward(Poco::Net::StreamSocket& socket) request.set(X_WEBTUNNEL_REMOTEPORT, Poco::NumberFormatter::format(_remotePort)); Poco::Net::HTTPResponse response; Poco::SharedPtr pWebSocket = _pWebSocketFactory->createWebSocket(_remoteURI, request, response); - if (response.get(SEC_WEBSOCKET_PROTOCOL, "") != WEBTUNNEL_PROTOCOL) + if (response.get(SEC_WEBSOCKET_PROTOCOL, ""s) != WEBTUNNEL_PROTOCOL) { - _logger.error("The remote host does not support the WebTunnel protocol."); + _logger.error("The remote host does not support the WebTunnel protocol."s); pWebSocket->shutdown(Poco::Net::WebSocket::WS_PROTOCOL_ERROR); pWebSocket->close(); socket.close(); @@ -460,7 +463,7 @@ void LocalPortForwarder::forward(Poco::Net::StreamSocket& socket) } catch (Poco::Exception& exc) { - _logger.error("Failed to open forwarding connection: %s", exc.displayText()); + _logger.error("Failed to open forwarding connection: %s"s, exc.displayText()); socket.close(); } } diff --git a/WebTunnel/src/RemotePortForwarder.cpp b/WebTunnel/src/RemotePortForwarder.cpp index 269b2373..9f994845 100644 --- a/WebTunnel/src/RemotePortForwarder.cpp +++ b/WebTunnel/src/RemotePortForwarder.cpp @@ -22,6 +22,9 @@ #include +using namespace std::string_literals; + + namespace Poco { namespace WebTunnel { @@ -65,7 +68,7 @@ RemotePortForwarder::RemotePortForwarder(SocketDispatcher& dispatcher, Poco::Sha _localTimeout(7200, 0), _remoteTimeout(remoteTimeout), _timeoutCount(0), - _logger(Poco::Logger::get("WebTunnel.RemotePortForwarder")) + _logger(Poco::Logger::get("WebTunnel.RemotePortForwarder"s)) { _dispatcher.addSocket(*pWebSocket, new TunnelDemultiplexer(*this), remoteTimeout); } @@ -135,7 +138,7 @@ bool RemotePortForwarder::multiplex(SocketDispatcher& dispatcher, Poco::Net::Str { if (_logger.debug()) { - _logger.debug("Actively closing channel %hu", channel); + _logger.debug("Actively closing channel %hu."s, channel); } removeChannel(channel); n = 0; @@ -154,7 +157,7 @@ bool RemotePortForwarder::multiplex(SocketDispatcher& dispatcher, Poco::Net::Str } else { - _logger.error("Error reading from locally forwarded socket for channel %hu: %s", channel, exc.displayText()); + _logger.error("Error reading from locally forwarded socket for channel %hu: %s"s, channel, exc.displayText()); hn = Protocol::writeHeader(buffer.begin(), buffer.size(), Protocol::WT_OP_ERROR, 0, channel, Protocol::WT_ERR_SOCKET); } expectMore = false; @@ -166,7 +169,7 @@ bool RemotePortForwarder::multiplex(SocketDispatcher& dispatcher, Poco::Net::Str } catch (Poco::Exception& exc) { - _logger.error("Error sending WebSocket frame for channel %hu: %s", channel, exc.displayText()); + _logger.error("Error sending WebSocket frame for channel %hu: %s"s, channel, exc.displayText()); closeWebSocket(RPF_CLOSE_ERROR, false); expectMore = false; } @@ -176,7 +179,7 @@ bool RemotePortForwarder::multiplex(SocketDispatcher& dispatcher, Poco::Net::Str void RemotePortForwarder::multiplexError(SocketDispatcher& dispatcher, Poco::Net::StreamSocket& socket, Poco::UInt16 channel, Poco::Buffer& buffer) { - _logger.error("Error reading from local socket for channel %hu", channel); + _logger.error("Error reading from local socket for channel %hu"s, channel); removeChannel(channel); std::size_t hn = Protocol::writeHeader(buffer.begin(), buffer.size(), Protocol::WT_OP_ERROR, 0, channel, Protocol::WT_ERR_SOCKET); try @@ -186,7 +189,7 @@ void RemotePortForwarder::multiplexError(SocketDispatcher& dispatcher, Poco::Net } catch (Poco::Exception& exc) { - _logger.error("Error sending WebSocket error frame for channel %hu: %s", channel, exc.displayText()); + _logger.error("Error sending WebSocket error frame for channel %hu: %s"s, channel, exc.displayText()); closeWebSocket(RPF_CLOSE_ERROR, false); } } @@ -194,7 +197,7 @@ void RemotePortForwarder::multiplexError(SocketDispatcher& dispatcher, Poco::Net void RemotePortForwarder::multiplexTimeout(SocketDispatcher& dispatcher, Poco::Net::StreamSocket& socket, Poco::UInt16 channel, Poco::Buffer& buffer) { - _logger.error("Timeout reading from local socket for channel %hu", channel); + _logger.error("Timeout reading from local socket for channel %hu"s, channel); removeChannel(channel); std::size_t hn = Protocol::writeHeader(buffer.begin(), buffer.size(), Protocol::WT_OP_ERROR, 0, channel, Protocol::WT_ERR_TIMEOUT); try @@ -204,7 +207,7 @@ void RemotePortForwarder::multiplexTimeout(SocketDispatcher& dispatcher, Poco::N } catch (Poco::Exception& exc) { - _logger.error("Error sending WebSocket error frame for channel %hu: %s", channel, exc.displayText()); + _logger.error("Error sending WebSocket error frame for channel %hu: %s"s, channel, exc.displayText()); closeWebSocket(RPF_CLOSE_ERROR, false); } } @@ -220,13 +223,13 @@ bool RemotePortForwarder::demultiplex(SocketDispatcher& dispatcher, Poco::Net::S } catch (Poco::Exception& exc) { - _logger.error("Error receiving WebSocket frame: %s", exc.displayText()); + _logger.error("Error receiving WebSocket frame: %s"s, exc.displayText()); closeWebSocket(RPF_CLOSE_ERROR, false); return false; } if ((wsFlags & Poco::Net::WebSocket::FRAME_OP_BITMASK) == Poco::Net::WebSocket::FRAME_OP_PONG) { - _logger.debug("PONG received"); + _logger.debug("PONG received"s); _timeoutCount = 0; return false; } @@ -248,31 +251,31 @@ bool RemotePortForwarder::demultiplex(SocketDispatcher& dispatcher, Poco::Net::S case Protocol::WT_OP_CLOSE: if (_logger.debug()) { - _logger.debug("Passively closing channel %hu", channel); + _logger.debug("Passively closing channel %hu."s, channel); } removeChannel(channel); return false; case Protocol::WT_OP_ERROR: - _logger.error("Status %hu reported by peer. Closing channel %hu", portOrErrorCode, channel); + _logger.error("Status %hu reported by peer. Closing channel %hu."s, portOrErrorCode, channel); removeChannel(channel); return false; default: - _logger.error("Invalid WebSocket frame received (bad opcode: %hu)", static_cast(opcode)); + _logger.error("Invalid WebSocket frame received (bad opcode: %hu)."s, static_cast(opcode)); sendResponse(channel, Protocol::WT_OP_ERROR, Protocol::WT_ERR_PROTOCOL); return false; } } else if (n <= 0 || (wsFlags & Poco::Net::WebSocket::FRAME_OP_BITMASK) == Poco::Net::WebSocket::FRAME_OP_CLOSE) { - _logger.debug("Closing WebSocket"); + _logger.debug("Closing WebSocket."s); closeWebSocket(RPF_CLOSE_GRACEFUL, false); return false; } else { - _logger.debug("Ignoring unsupported frame opcode"); + _logger.debug("Ignoring unsupported frame opcode."s); return false; } } @@ -280,20 +283,20 @@ bool RemotePortForwarder::demultiplex(SocketDispatcher& dispatcher, Poco::Net::S void RemotePortForwarder::demultiplexError(SocketDispatcher& dispatcher, Poco::Net::StreamSocket& socket, Poco::Buffer& buffer) { - _logger.error("Error reading from WebSocket"); + _logger.error("Error reading from WebSocket."s); closeWebSocket(RPF_CLOSE_ERROR, false); } void RemotePortForwarder::demultiplexTimeout(SocketDispatcher& dispatcher, Poco::Net::StreamSocket& socket, Poco::Buffer& buffer) { - _logger.debug("Timeout reading from WebSocket"); + _logger.debug("Timeout reading from WebSocket."s); if (_timeoutCount == 0) { _timeoutCount = 1; try { - _logger.debug("Sending PING"); + _logger.debug("Sending PING."s); Poco::FastMutex::ScopedLock lock(_webSocketMutex); _pWebSocket->sendFrame(0, 0, Poco::Net::WebSocket::FRAME_FLAG_FIN | Poco::Net::WebSocket::FRAME_OP_PING); } @@ -330,7 +333,7 @@ bool RemotePortForwarder::forwardData(const char* buffer, int size, Poco::UInt16 } else { - _logger.warning("Forwarding request for invalid channel: %hu", channel); + _logger.warning("Forwarding request for invalid channel: %hu."s, channel); lock.unlock(); sendResponse(channel, Protocol::WT_OP_ERROR, Protocol::WT_ERR_BAD_CHANNEL); } @@ -342,7 +345,7 @@ bool RemotePortForwarder::openChannel(Poco::UInt16 channel, Poco::UInt16 port) { if (_ports.find(port) == _ports.end()) { - _logger.warning("Open channel request for invalid port: %hu (channel %hu)", port, channel); + _logger.warning("Open channel request for invalid port: %hu (channel %hu).0"s, port, channel); sendResponse(channel, Protocol::WT_OP_OPEN_FAULT, Protocol::WT_ERR_NOT_FORWARDED); return false; @@ -354,7 +357,7 @@ bool RemotePortForwarder::openChannel(Poco::UInt16 channel, Poco::UInt16 port) { if (_logger.debug()) { - _logger.debug("Opening channel %hu to port %hu", channel, port); + _logger.debug("Opening channel %hu to port %hu."s, channel, port); } try { @@ -372,7 +375,7 @@ bool RemotePortForwarder::openChannel(Poco::UInt16 channel, Poco::UInt16 port) } catch (Poco::Exception& exc) { - _logger.error("Failed to send open confirmation for channel %hu to port %hu: %s", channel, port, exc.displayText()); + _logger.error("Failed to send open confirmation for channel %hu to port %hu: %s"s, channel, port, exc.displayText()); return false; } @@ -382,21 +385,21 @@ bool RemotePortForwarder::openChannel(Poco::UInt16 channel, Poco::UInt16 port) catch (Poco::Net::ConnectionRefusedException& exc) { lock.unlock(); - _logger.error("Failed to open channel %hu to port %hu: %s", channel, port, exc.displayText()); + _logger.error("Failed to open channel %hu to port %hu: %s"s, channel, port, exc.displayText()); sendResponse(channel, Protocol::WT_OP_OPEN_FAULT, Protocol::WT_ERR_CONN_REFUSED); return false; } catch (Poco::TimeoutException& exc) { lock.unlock(); - _logger.error("Failed to open channel %hu to port %hu: %s", channel, port, exc.displayText()); + _logger.error("Failed to open channel %hu to port %hu: %s"s, channel, port, exc.displayText()); sendResponse(channel, Protocol::WT_OP_OPEN_FAULT, Protocol::WT_ERR_TIMEOUT); return false; } catch (Poco::Exception& exc) { lock.unlock(); - _logger.error("Failed to open channel %hu to port %hu: %s", channel, port, exc.displayText()); + _logger.error("Failed to open channel %hu to port %hu: %s"s, channel, port, exc.displayText()); sendResponse(channel, Protocol::WT_OP_OPEN_FAULT, Protocol::WT_ERR_SOCKET); return false; } @@ -404,7 +407,7 @@ bool RemotePortForwarder::openChannel(Poco::UInt16 channel, Poco::UInt16 port) } else { - _logger.warning("Open request for existing channel %hu to port %hu.", channel, port); + _logger.warning("Open request for existing channel %hu to port %hu."s, channel, port); lock.unlock(); sendResponse(channel, Protocol::WT_OP_OPEN_FAULT, Protocol::WT_ERR_CHANNEL_IN_USE); return false; @@ -449,7 +452,7 @@ void RemotePortForwarder::closeWebSocket(CloseReason reason, bool active) if (_logger.debug()) { - _logger.debug("Closing WebSocket, reason: %d, active: %b", static_cast(reason), active); + _logger.debug("Closing WebSocket, reason: %d, active: %b"s, static_cast(reason), active); } try { diff --git a/WebTunnel/src/SocketDispatcher.cpp b/WebTunnel/src/SocketDispatcher.cpp index 372c9b9d..b4eddbcc 100644 --- a/WebTunnel/src/SocketDispatcher.cpp +++ b/WebTunnel/src/SocketDispatcher.cpp @@ -19,6 +19,9 @@ #include "Poco/Event.h" +using namespace std::string_literals; + + namespace Poco { namespace WebTunnel { @@ -253,7 +256,7 @@ SocketDispatcher::SocketDispatcher(int threadCount, Poco::Timespan timeout, int _mainRunnable(*this, &SocketDispatcher::runMain), _workerRunnable(*this, &SocketDispatcher::runWorker), _stopped(false), - _logger(Poco::Logger::get("WebTunnel.SocketDispatcher")) + _logger(Poco::Logger::get("WebTunnel.SocketDispatcher"s)) { for (int i = 0; i < threadCount; i++) { @@ -409,16 +412,16 @@ void SocketDispatcher::runMain() { if (exc.code() == POCO_ENOTCONN) { - _logger.debug("A socket is no longer connected."); + _logger.debug("A socket is no longer connected."s); } else { - _logger.error("Network exception in socket dispatcher: " + exc.displayText()); + _logger.error("Network exception in socket dispatcher: %s"s, exc.displayText()); } } catch (Poco::Exception& exc) { - _logger.error("Exception in socket dispatcher: " + exc.displayText()); + _logger.error("Exception in socket dispatcher: %s"s, exc.displayText()); } } } @@ -442,7 +445,7 @@ void SocketDispatcher::runWorker() } catch (Poco::Exception& exc) { - _logger.error("Exception in worker thread: " + exc.displayText()); + _logger.error("Exception in worker thread: %s"s, exc.displayText()); } } }