diff options
author | Christian Pointner <equinox@anytun.org> | 2009-01-15 16:28:12 +0000 |
---|---|---|
committer | Christian Pointner <equinox@anytun.org> | 2009-01-15 16:28:12 +0000 |
commit | 1c5626cd8a3dd28d7d09e01d6d3b95f49f10e421 (patch) | |
tree | e251b16e72d99ea7696d222c24fb13fd13812890 /src/log.cpp | |
parent | improved 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.cpp | 22 |
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(); |