On linux, connect can return EAGAIN in certain circumstances. Remap to another
error so that it doesn't look like a non-blocking operation.
diff --git a/asio/include/asio/detail/impl/socket_ops.ipp b/asio/include/asio/detail/impl/socket_ops.ipp
index ebb8842..709530f 100644
--- a/asio/include/asio/detail/impl/socket_ops.ipp
+++ b/asio/include/asio/detail/impl/socket_ops.ipp
@@ -464,6 +464,10 @@
         &msghdr::msg_namelen, s, addr, addrlen), ec);
   if (result == 0)
     ec = asio::error_code();
+#if defined(__linux__)
+  else if (ec == asio::error::try_again)
+    ec = asio::error::no_buffer_space;
+#endif // defined(__linux__)
   return result;
 }