The patch which was introduced in 2012.08.08 of live555 "solves" the compile time problem, but leads to wrong error numbers in the binary. The reason for this is because VS2010 does define those error constants in "errno.h" but the Windows socket API does not use them. The Windows socket API still returns WSAE error codes only. But the WSAE error codes do not match the error codes which are defined "errno.h".
There other ways to solve that problem. You may want to compile the library code with "-DNO_SSTREAM" which is the originator of the problem, because including of "<sstream>" in "groupsock" library also pulls in the problematic "errno.h" indirectly. You can undefine any already defined constants from "errno.h" like shown below. <<<NetCommon.h>>> ... ... ... #define closeSocket closesocket #ifdef EWOULDBLOCK #undef EWOULDBLOCK #endif #ifdef EINPROGRESS #undef EINPROGRESS #endif #ifdef EAGAIN #undef EAGAIN #endif #ifdef EINTR #undef EINTR #endif #define EWOULDBLOCK WSAEWOULDBLOCK #define EINPROGRESS WSAEWOULDBLOCK #define EAGAIN WSAEWOULDBLOCK #define EINTR WSAEINTR ... ... ... Personally I am using both solutions to be on the safe side. However, the proper solution would be to map WSAE error codes to "errno.h" error codes within "BasicUsageEnvironment::getErrno()" -- this would be the most portable and clean solution. But because not all of the WSAE error codes do have a respective "errno.h" error code, it would most likely again cause some quirks here and there throughout the source code in future. Therefore I am recommending to "undef" any existing error codes right before defining new ones in "NetCommon.h". _______________________________________________ live-devel mailing list [email protected] http://lists.live555.com/mailman/listinfo/live-devel
