summaryrefslogtreecommitdiff
path: root/src/log.cpp
diff options
context:
space:
mode:
authorChristian Pointner <equinox@anytun.org>2009-01-15 16:28:12 +0000
committerChristian Pointner <equinox@anytun.org>2009-01-15 16:28:12 +0000
commit1c5626cd8a3dd28d7d09e01d6d3b95f49f10e421 (patch)
treee251b16e72d99ea7696d222c24fb13fd13812890 /src/log.cpp
parentimproved Makefile (clean now for -j *) (diff)
log class can now easily use errno and gpg_err
Diffstat (limited to 'src/log.cpp')
-rw-r--r--src/log.cpp22
1 files changed, 22 insertions, 0 deletions
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 <http://www.gnu.org/licenses/>.
*/
+#define _XOPEN_SOURCE 600
+
#include <iostream>
#include <string>
@@ -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();