]> Dogcows Code - chaz/yoink/blobdiff - src/stlplus/portability/ip_sockets.cpp
import stlplus 3.7
[chaz/yoink] / src / stlplus / portability / ip_sockets.cpp
index 6dc1fada2bb40ccb29e5b4baa9a7da6d6f96b169..d5d40dedec7b470c49387c1182c81b591e20f615 100644 (file)
@@ -2,7 +2,7 @@
 \r
 // Author:    Andy Rushton\r
 // Copyright: (c) Southampton University 1999-2004\r
-//            (c) Andy Rushton           2004-2009\r
+//            (c) Andy Rushton           2004 onwards\r
 // License:   BSD License, see ../docs/license.html\r
 \r
 // Contains all the platform-specific socket handling used by the TCP and UDP classes\r
 #define IOCTL ioctlsocket\r
 #define CLOSE closesocket\r
 #define SHUT_RDWR SD_BOTH\r
+#define SOCKLEN_T int\r
+#define SEND_FLAGS 0\r
+#if _MSC_VER < 1600 // not defined before Visual Studio 10\r
 #define EINPROGRESS WSAEINPROGRESS\r
 #define EWOULDBLOCK WSAEWOULDBLOCK\r
 #define ECONNRESET WSAECONNRESET\r
-#define SOCKLEN_T int\r
+#endif\r
 #else\r
 // Generic Unix includes\r
 // fix for older versions of Darwin?\r
@@ -47,6 +50,7 @@
 #define IOCTL ::ioctl\r
 #define CLOSE ::close\r
 #define SOCKLEN_T socklen_t\r
+#define SEND_FLAGS MSG_NOSIGNAL\r
 #ifdef SOLARIS\r
 // Sun put some definitions in a different place\r
 #include <sys/filio.h>\r
@@ -495,7 +499,7 @@ namespace stlplus
       {\r
         if (!initialised()) return false;\r
         // send the data - this will never block but may not send all the data\r
-        int bytes = ::send(m_socket, data.c_str(), data.size(), 0);\r
+        int bytes = ::send(m_socket, data.c_str(), data.size(), SEND_FLAGS);\r
         if (bytes == SOCKET_ERROR)\r
         {\r
           set_error(ERRNO);\r
@@ -514,13 +518,13 @@ namespace stlplus
         int bytes = 0;\r
         if (!address)\r
         {\r
-          bytes = ::send(m_socket, data.c_str(), data.size(), 0);\r
+          bytes = ::send(m_socket, data.c_str(), data.size(), SEND_FLAGS);\r
         }\r
         else\r
         {\r
           sockaddr saddress;\r
           convert_address(address, port, saddress);\r
-          bytes = ::sendto(m_socket, data.c_str(), data.size(), 0, &saddress, sizeof(saddress));\r
+          bytes = ::sendto(m_socket, data.c_str(), data.size(), SEND_FLAGS, &saddress, sizeof(saddress));\r
         }\r
         if (bytes == SOCKET_ERROR)\r
         {\r
This page took 0.018859 seconds and 4 git commands to generate.