diff options
-rw-r--r-- | src/err.cpp | 41 | ||||
-rw-r--r-- | src/err.hpp | 9 | ||||
-rw-r--r-- | src/zmq.cpp | 38 |
3 files changed, 48 insertions, 40 deletions
diff --git a/src/err.cpp b/src/err.cpp index 17a9689..a44b7e0 100644 --- a/src/err.cpp +++ b/src/err.cpp @@ -22,6 +22,47 @@ #include "err.hpp" #include "platform.hpp" +const char *zmq::errno_to_string (int errno_) +{ + switch (errno_) { +#if defined ZMQ_HAVE_WINDOWS + case ENOTSUP: + return "Not supported"; + case EPROTONOSUPPORT: + return "Protocol not supported"; + case ENOBUFS: + return "No buffer space available"; + case ENETDOWN: + return "Network is down"; + case EADDRINUSE: + return "Address in use"; + case EADDRNOTAVAIL: + return "Address not available"; + case ECONNREFUSED: + return "Connection refused"; + case EINPROGRESS: + return "Operation in progress"; +#endif + case EFSM: + return "Operation cannot be accomplished in current state"; + case ENOCOMPATPROTO: + return "The protocol is not compatible with the socket type"; + case ETERM: + return "Context was terminated"; + case EMTHREAD: + return "No thread available"; + default: +#if defined _MSC_VER +#pragma warning (push) +#pragma warning (disable:4996) +#endif + return strerror (errno_); +#if defined _MSC_VER +#pragma warning (pop) +#endif + } +} + #ifdef ZMQ_HAVE_WINDOWS const char *zmq::wsa_error() diff --git a/src/err.hpp b/src/err.hpp index 2b76569..a31eb9b 100644 --- a/src/err.hpp +++ b/src/err.hpp @@ -35,15 +35,18 @@ #include <netdb.h> #endif +namespace zmq +{ + const char *errno_to_string (int errno_); +} + #ifdef ZMQ_HAVE_WINDOWS namespace zmq { - const char *wsa_error (); void win_error (char *buffer_, size_t buffer_size_); - void wsa_error_to_errno (); - + void wsa_error_to_errno (); } // Provides convenient way to check WSA-style errors on Windows. diff --git a/src/zmq.cpp b/src/zmq.cpp index 7101f34..5fcf078 100644 --- a/src/zmq.cpp +++ b/src/zmq.cpp @@ -63,43 +63,7 @@ void zmq_version (int *major_, int *minor_, int *patch_) const char *zmq_strerror (int errnum_) { - switch (errnum_) { -#if defined ZMQ_HAVE_WINDOWS - case ENOTSUP: - return "Not supported"; - case EPROTONOSUPPORT: - return "Protocol not supported"; - case ENOBUFS: - return "No buffer space available"; - case ENETDOWN: - return "Network is down"; - case EADDRINUSE: - return "Address in use"; - case EADDRNOTAVAIL: - return "Address not available"; - case ECONNREFUSED: - return "Connection refused"; - case EINPROGRESS: - return "Operation in progress"; -#endif - case EFSM: - return "Operation cannot be accomplished in current state"; - case ENOCOMPATPROTO: - return "The protocol is not compatible with the socket type"; - case ETERM: - return "Context was terminated"; - case EMTHREAD: - return "No thread available"; - default: -#if defined _MSC_VER -#pragma warning (push) -#pragma warning (disable:4996) -#endif - return strerror (errnum_); -#if defined _MSC_VER -#pragma warning (pop) -#endif - } + return zmq::errno_to_string (errnum_); } int zmq_msg_init (zmq_msg_t *msg_) |