You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by if...@apache.org on 2020/12/29 03:36:18 UTC
[rocketmq-client-cpp] 01/29: Catch exception when resolve domain
failed
This is an automated email from the ASF dual-hosted git repository.
ifplusor pushed a commit to branch re_dev
in repository https://gitbox.apache.org/repos/asf/rocketmq-client-cpp.git
commit 3636d60d6a034b551d74a83da1a6e030033819f1
Author: James Yin <yw...@hotmail.com>
AuthorDate: Fri May 22 12:07:13 2020 +0800
Catch exception when resolve domain failed
---
src/transport/EventLoop.cpp | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/src/transport/EventLoop.cpp b/src/transport/EventLoop.cpp
index b1ccde7..62e535c 100644
--- a/src/transport/EventLoop.cpp
+++ b/src/transport/EventLoop.cpp
@@ -30,7 +30,7 @@ EventLoop* EventLoop::GetDefaultEventLoop() {
EventLoop::EventLoop(const struct event_config* config, bool run_immediately)
: m_eventBase(nullptr), m_loopThread("EventLoop"), _is_running(false) {
- // tell libevent support multi-threads
+// tell libevent support multi-threads
#ifdef WIN32
evthread_use_windows_threads();
#else
@@ -206,9 +206,14 @@ int BufferEvent::connect(const std::string& addr) {
return -1;
}
- auto* sa = string2SocketAddress(addr);
- m_peerAddrPort = socketAddress2String(sa); // resolve domain
- return bufferevent_socket_connect(m_bufferEvent, sa, sockaddr_size(sa));
+ try {
+ auto* sa = string2SocketAddress(addr); // resolve domain
+ m_peerAddrPort = socketAddress2String(sa);
+ return bufferevent_socket_connect(m_bufferEvent, sa, sockaddr_size(sa));
+ } catch (const std::exception& e) {
+ LOG_ERROR_NEW("can not connect to {}, {}", addr, e.what());
+ return -1;
+ }
}
void BufferEvent::close() {