From 4c938e9f17b2c161a38648cb46f35558c9dab980 Mon Sep 17 00:00:00 2001 From: Jan Kaluza Date: Thu, 7 Jan 2016 12:35:53 +0100 Subject: [PATCH] WebSocketClient: Handle DNS errors --- libtransport/WebSocketClient.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/libtransport/WebSocketClient.cpp b/libtransport/WebSocketClient.cpp index 4d99e5e5..f21abe27 100644 --- a/libtransport/WebSocketClient.cpp +++ b/libtransport/WebSocketClient.cpp @@ -221,7 +221,19 @@ void WebSocketClient::handleDisconnected(const boost::optionalstart(); } -void WebSocketClient::handleDNSResult(const std::vector &addrs, boost::optional) { +void WebSocketClient::handleDNSResult(const std::vector &addrs, boost::optional error) { + if (error) { + LOG4CXX_ERROR(logger, "DNS resolving error. Will try again in 1 second."); + m_reconnectTimer->start(); + return; + } + + if (addrs.empty()) { + LOG4CXX_ERROR(logger, "DNS name cannot be resolved. Will try again in 1 second."); + m_reconnectTimer->start(); + return; + } + m_conn = m_tlsConnectionFactory->createConnection(); m_conn->onDataRead.connect(boost::bind(&WebSocketClient::handleDataRead, this, _1)); m_conn->onConnectFinished.connect(boost::bind(&WebSocketClient::handleConnected, this, _1));