Commit a0db7f6b authored by Martin Sustrik's avatar Martin Sustrik

POSIX error codes unsupported on win platform faked

parent e136d923
......@@ -24,6 +24,7 @@
extern "C" {
#endif
#include <errno.h>
#include <stddef.h>
// Microsoft Visual Studio uses non-standard way to export/import symbols.
......@@ -43,9 +44,18 @@ extern "C" {
// different OSes. The assumption is that error_t is at least 32-bit type.
#define ZMQ_HAUSNUMERO 156384712
#define EMTHREAD (ZMQ_HAUSNUMERO + 1)
#define EFSM (ZMQ_HAUSNUMERO + 2)
#define ENOCOMPATPROTO (ZMQ_HAUSNUMERO + 3)
// On Windows platform some of the standard POSIX errnos are not defined.
#ifndef ENOTSUP
#define ENOTSUP (ZMQ_HAUSNUMERO + 1)
#endif
#ifndef EPROTONOSUPPORT
#define EPROTONOSUPPORT (ZMQ_HAUSNUMERO + 2)
#endif
// Native 0MQ error codes.
#define EMTHREAD (ZMQ_HAUSNUMERO + 50)
#define EFSM (ZMQ_HAUSNUMERO + 51)
#define ENOCOMPATPROTO (ZMQ_HAUSNUMERO + 52)
// Resolves system errors and 0MQ errors to human-readable string.
ZMQ_EXPORT const char *zmq_strerror (int errnum);
......
......@@ -39,6 +39,12 @@
const char *zmq_strerror (int errnum_)
{
switch (errnum_) {
#if defined ZMQ_HAVE_WINDOWS
case ENOTSUP:
return "Not supported";
case EPROTONOSUPPORT:
return "Protocol not supported";
#endif
case EMTHREAD:
return "Number of preallocated application threads exceeded";
case EFSM:
......@@ -46,7 +52,14 @@ const char *zmq_strerror (int errnum_)
case ENOCOMPATPROTO:
return "The protocol is not compatible with the socket type";
default:
#if defined _MSC_VER
#pragma warning (push)
#pragma warning (disable:4996)
#endif
return strerror (errnum_);
#if defined _MSC_VER
#pragma warning (pop)
#endif
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment