summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/posix/check.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/posix/check.cpp')
-rw-r--r--cpp/src/qpid/posix/check.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/cpp/src/qpid/posix/check.cpp b/cpp/src/qpid/posix/check.cpp
index 2ef52f68b7..408679caa8 100644
--- a/cpp/src/qpid/posix/check.cpp
+++ b/cpp/src/qpid/posix/check.cpp
@@ -19,15 +19,21 @@
*
*/
-#include <qpid/QpidError.h>
+#include <cerrno>
#include "check.h"
namespace qpid {
namespace sys {
-std::string errnoToString() {
+std::string
+PosixError::getMessage(int errNo)
+{
char buf[512];
- return strerror_r(errno, buf, sizeof(buf));
+ return std::string(strerror_r(errNo, buf, sizeof(buf)));
}
+PosixError::PosixError(int errNo, const qpid::SrcLine& loc) throw()
+ : qpid::QpidError(INTERNAL_ERROR + errNo, getMessage(errNo), loc)
+{ }
+
}}