Merge pull request #478 from ecsv/batadv-for-19.07
[feed/routing.git] / ndppd / patches / 0002-Fixes-strerror_r-GNU-XSI.patch
1 From 1f610129b475b417509b251e022ad46d2210ff50 Mon Sep 17 00:00:00 2001
2 From: Rafael Cossovan <navossoc@gmail.com>
3 Date: Tue, 3 Apr 2018 17:04:35 -0300
4 Subject: [PATCH 2/3] Fixes strerror_r GNU/XSI issue #40.
5 http://www.zverovich.net/2015/03/13/reliable-detection-of-strerror-variants.html
6
7 ---
8 src/logger.cc | 14 ++++++++++++-
9 src/logger.h | 3 +++
10 2 files changed, 15 insertions(+), 1 deletions(-)
11
12 diff --git a/src/logger.cc b/src/logger.cc
13 index 6ddbea9..6ccb2a0 100644
14 --- a/src/logger.cc
15 +++ b/src/logger.cc
16 @@ -84,6 +84,6 @@ std::string logger::err()
17 {
18 char buf[2048];
19 - return strerror_r(errno, buf, sizeof(buf));
20 + return strerror_r_wrapper(strerror_r(errno, buf, sizeof(buf)), buf);
21 }
22
23 logger logger::error()
24 @@ -221,4 +221,16 @@
25 return false;
26 }
27
28 +// XSI-compliant: int
29 +std::string logger::strerror_r_wrapper(int, char* s)
30 +{
31 + return s;
32 +}
33 +
34 +// GNU-specific: char *
35 +std::string logger::strerror_r_wrapper(char* s, char*)
36 +{
37 + return s;
38 +}
39 +
40 NDPPD_NS_END
41 diff --git a/src/logger.h b/src/logger.h
42 index 7d3d7db..0446595 100644
43 --- a/src/logger.h
44 +++ b/src/logger.h
45 @@ -91,6 +91,9 @@ class logger {
46
47 static int _max_pri;
48
49 + // helpers for strerror_r
50 + static std::string strerror_r_wrapper(int, char* s);
51 + static std::string strerror_r_wrapper(char* s, char*);
52
53 };
54
55