From 3368696b95fd418acfbfd9fd58ce1f5a8a17f064 Mon Sep 17 00:00:00 2001
From: Jason Wang <wangr1@ornl.gov>
Date: Wed, 20 Sep 2017 16:27:14 -0400
Subject: [PATCH] fixed a few error handling and solved the Windows build error

---
 source/adios2/ADIOSConfig.h.in                 |  3 ---
 source/adios2/CMakeLists.txt                   |  8 +++-----
 source/adios2/toolkit/transport/wan/WANZmq.cpp | 11 ++++++++++-
 3 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/source/adios2/ADIOSConfig.h.in b/source/adios2/ADIOSConfig.h.in
index 9a2570846..b993cbaa4 100644
--- a/source/adios2/ADIOSConfig.h.in
+++ b/source/adios2/ADIOSConfig.h.in
@@ -42,9 +42,6 @@
 /* CMake Option: ADIOS_USE_ZeroMQ=ON */
 #cmakedefine ADIOS2_HAVE_ZEROMQ
 
-/* CMake Option: ADIOS_USE_DataMan=ON */
-#cmakedefine ADIOS2_HAVE_DATAMAN
-
 /* CMake Option: ADIOS_USE_SysVShMem=ON */
 #cmakedefine ADIOS2_HAVE_SYSVSHMEM
 
diff --git a/source/adios2/CMakeLists.txt b/source/adios2/CMakeLists.txt
index 8115d1ead..7c7fde182 100644
--- a/source/adios2/CMakeLists.txt
+++ b/source/adios2/CMakeLists.txt
@@ -74,13 +74,11 @@ if(ADIOS2_HAVE_ZeroMQ)
   target_link_libraries(adios2 PRIVATE ZeroMQ::ZMQ)
 endif()
 
-if(ADIOS2_HAVE_DataMan)
-  target_sources(adios2 PRIVATE
+target_sources(adios2 PRIVATE
     engine/dataman/DataManReader.cpp
     engine/dataman/DataManWriter.cpp
-  )
-  target_link_libraries(adios2 PRIVATE NLohmannJson)
-endif()
+)
+target_link_libraries(adios2 PRIVATE NLohmannJson)
 
 
 if(ADIOS2_HAVE_BZip2)
diff --git a/source/adios2/toolkit/transport/wan/WANZmq.cpp b/source/adios2/toolkit/transport/wan/WANZmq.cpp
index 9b4d38fa5..9d9e36441 100644
--- a/source/adios2/toolkit/transport/wan/WANZmq.cpp
+++ b/source/adios2/toolkit/transport/wan/WANZmq.cpp
@@ -24,6 +24,10 @@ WANZmq::WANZmq(const std::string ipAddress, const std::string port,
   m_Port(port)
 {
     m_Context = zmq_ctx_new();
+    if (m_Context == nullptr || m_Context == NULL)
+    {
+        throw std::runtime_error("ERROR: Creating ZeroMQ context failed");
+    }
     if (m_DebugMode)
     {
         // TODO verify port is unsigned int
@@ -57,6 +61,11 @@ void WANZmq::Open(const std::string &name, const OpenMode openMode)
         m_Socket = zmq_socket(m_Context, ZMQ_REQ);
         const std::string fullIP("tcp://" + m_IPAddress + ":" + m_Port);
         int err = zmq_connect(m_Socket, fullIP.c_str());
+        if (err)
+        {
+            throw std::runtime_error("ERROR: zmq_connect() failed with " +
+                                     std::to_string(err));
+        }
 
         if (m_Profiler.IsActive)
         {
@@ -93,7 +102,7 @@ void WANZmq::Open(const std::string &name, const OpenMode openMode)
 
     if (m_DebugMode)
     {
-        if (m_Socket == NULL) // something goes wrong
+        if (m_Socket == nullptr || m_Socket == NULL) // something goes wrong
         {
             throw std::ios_base::failure(
                 "ERROR: couldn't open socket for address " + m_Name +
-- 
GitLab