]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/socketengine.h
Merge insp20
[user/henk/code/inspircd.git] / include / socketengine.h
index fd199c324832dd7c9f3693c13ce76498d2121026..8e4c3dfc9e3dbf5dca98ae2a86b276b63c15502e 100644 (file)
@@ -488,6 +488,24 @@ public:
        /** Get data transfer statistics, kilobits per second in and out and total.
         */
        void GetStats(float &kbitpersec_in, float &kbitpersec_out, float &kbitpersec_total);
+
+       /** Should we ignore the error in errno?
+        * Checks EAGAIN and WSAEWOULDBLOCK
+        */
+       static bool IgnoreError();
 };
 
+inline bool SocketEngine::IgnoreError()
+{
+       if ((errno == EAGAIN) || (errno == EWOULDBLOCK))
+               return true;
+
+#ifdef _WIN32
+       if (WSAGetLastError() == WSAEWOULDBLOCK)
+               return true;
+#endif
+
+       return false;
+}
+
 SocketEngine* CreateSocketEngine();