From 1c5626cd8a3dd28d7d09e01d6d3b95f49f10e421 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Thu, 15 Jan 2009 16:28:12 +0000 Subject: log class can now easily use errno and gpg_err --- src/log.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/log.cpp') diff --git a/src/log.cpp b/src/log.cpp index 272fc53..3fb569c 100644 --- a/src/log.cpp +++ b/src/log.cpp @@ -29,6 +29,8 @@ * along with anytun. If not, see . */ +#define _XOPEN_SOURCE 600 + #include #include @@ -40,6 +42,26 @@ Log* Log::inst = NULL; Mutex Log::instMutex; Log& cLog = Log::instance(); +#ifndef NOCRYPT +#ifndef USE_SSL_CRYPTO +std::ostream& operator<<(std::ostream& stream, LogGpgError const& value) +{ + char buf[STERROR_TEXT_MAX]; + buf[0] = 0; + gpg_strerror_r(value.err_, buf, STERROR_TEXT_MAX); + return stream << buf; +} +#endif +#endif +std::ostream& operator<<(std::ostream& stream, LogErrno const& value) +{ + char buf[STERROR_TEXT_MAX]; + buf[0] = 0; +// TODO: fix to use XSI Compliant strerror_r + char* tmp = strerror_r(value.err_, buf, STERROR_TEXT_MAX); + return stream << tmp; +} + LogStringBuilder::LogStringBuilder(LogStringBuilder const& src) : log(src.log), prio(src.prio) { stream << src.stream.str(); -- cgit v1.2.3