Browse Source

Merge pull request #505 from NickPak/master

Fix errors
Leonid Stryzhevskyi 2 years ago
parent
commit
5e9ae5796f

+ 1 - 1
src/oatpp/core/data/mapping/type/Primitive.hpp

@@ -69,7 +69,7 @@ public:
   String() {}
 
   explicit String(v_buff_size size)
-    : type::ObjectWrapper<std::string, __class::String>(std::make_shared<std::string>(size, 0))
+    : type::ObjectWrapper<std::string, __class::String>(std::make_shared<std::string>(size, '\0'))
   {}
 
   String(const char* data, v_buff_size size)

+ 5 - 2
src/oatpp/network/tcp/client/ConnectionProvider.cpp

@@ -289,8 +289,11 @@ oatpp::async::CoroutineStarterForResult<const provider::ResourceHandle<data::str
       }
       if(error == WSAEWOULDBLOCK || error == WSAEINPROGRESS) {
         return ioWait(m_clientHandle, oatpp::async::Action::IOEventType::IO_EVENT_WRITE);
-      } else if(error == WSAEINTR) {
+      } else if(error == WSAEINTR || error == WSAEALREADY) {
         return ioRepeat(m_clientHandle, oatpp::async::Action::IOEventType::IO_EVENT_WRITE);
+      } else if(error == WSAEINVAL) {
+         return AbstractCoroutine::error(new async::Error(
+                  "[oatpp::network::tcp::client::ConnectionProvider::doConnect()]: Error. The parameter m_clientHandle is a listening socket."));
       }
 
 #else
@@ -303,7 +306,7 @@ oatpp::async::CoroutineStarterForResult<const provider::ResourceHandle<data::str
       }
       if(errno == EALREADY || errno == EINPROGRESS) {
         return ioWait(m_clientHandle, oatpp::async::Action::IOEventType::IO_EVENT_WRITE);
-      } else if(errno == EINTR) {
+      } else if(errno == EINTR || errno == EALREADY) {
         return ioRepeat(m_clientHandle, oatpp::async::Action::IOEventType::IO_EVENT_WRITE);
       }