#include <isc/print.h>
#include <isc/resource.h>
#include <isc/result.h>
+#include <isc/strerr.h>
#include <isc/string.h>
#include <named/globals.h>
#include <isc/netaddr.h>
#include <isc/print.h>
#include <isc/result.h>
+#include <isc/strerr.h>
#include <isc/string.h>
#include <isc/util.h>
#include <isc/serial.h>
#include <isc/stats.h>
#include <isc/stdtime.h>
+#include <isc/strerr.h>
#include <isc/string.h>
#include <isc/taskpool.h>
#include <isc/thread.h>
radix.h random.h ratelimiter.h refcount.h regex.h \
region.h resource.h result.h resultclass.h rwlock.h \
safe.h serial.h sha1.h sha2.h sockaddr.h socket.h \
- stats.h stdio.h stdlib.h string.h symtab.h \
+ stats.h stdio.h stdlib.h strerr.h string.h symtab.h \
task.h taskpool.h timer.h tm.h types.h util.h version.h \
xml.h
--- /dev/null
+/*
+ * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * See the COPYRIGHT file distributed with this work for additional
+ * information regarding copyright ownership.
+ */
+
+#pragma once
+
+/*! \file isc/strerr.h */
+
+#include <config.h>
+
+#include <string.h>
+
+#if _GNU_SOURCE
+#undef strerror_r
+#define strerror_r isc_string_strerror_r
+#endif
#define strlcat isc_string_strlcat
#endif
+int
+isc_string_strerror_r(int errnum, char *buf, size_t buflen);
+
ISC_LANG_ENDDECLS
#include <isc/condition.h>
#include <isc/msgs.h>
+#include <isc/strerr.h>
#include <isc/string.h>
#include <isc/time.h>
#include <isc/util.h>
#include <stdbool.h>
#include <stdio.h>
-#include <string.h>
#include <time.h>
#include <sys/time.h>
#include <errno.h>
#include <isc/mutex.h>
#include <isc/util.h>
#include <isc/print.h>
+#include <isc/strerr.h>
+#include <isc/string.h>
#include <isc/once.h>
#if ISC_MUTEX_PROFILE
#include <config.h> // IWYU pragma: keep
+#ifdef _GNU_SOURCE
+#undef _GNU_SOURCE
#include <string.h>
+#endif
#include "isc/string.h" // IWYU pragma: keep
return(dlen + (s - src)); /* count does not include NUL */
}
+
+int
+isc_string_strerror_r(int errnum, char *buf, size_t buflen) {
+ return (strerror_r(errnum, buf, buflen));
+}
#include <isc/mutex.h>
#include <isc/event.h>
#include <isc/platform.h>
+#include <isc/strerr.h>
#include <isc/string.h>
#include <isc/task.h>
#include <isc/time.h>
#include <config.h>
#include <stdbool.h>
-#include <string.h>
#include <isc/platform.h>
#include <isc/result.h>
+#include <isc/strerr.h>
+#include <isc/string.h>
#include <isc/util.h>
#include "errno2result.h"
#include <isc/net.h>
#include <isc/print.h>
#include <isc/result.h>
+#include <isc/strerr.h>
#include <isc/string.h>
#include <isc/types.h>
#include <isc/util.h>
#include <isc/net.h>
#include <isc/netdb.h>
#include <isc/once.h>
+#include <isc/strerr.h>
#include <isc/string.h>
#include <isc/util.h>
#include <fcntl.h>
#include <stddef.h>
#include <stdlib.h>
-#include <string.h>
#include <unistd.h>
#include <isc/buffer.h>
#include <isc/resource.h>
#include <isc/socket.h>
#include <isc/stats.h>
+#include <isc/strerr.h>
#include <isc/string.h>
#include <isc/task.h>
#include <isc/thread.h>
#include <isc/log.h>
#include <isc/platform.h>
#include <isc/print.h>
+#include <isc/strerr.h>
#include <isc/string.h>
#include <isc/time.h>
#include <isc/tm.h>
#include "errno2result.h"
#include <isc/result.h>
-#include <isc/strerror.h>
+#include <isc/string.h>
#include <isc/util.h>
/*
#include <isc/mem.h>
#include <isc/print.h>
#include <isc/result.h>
+#include <isc/strerr.h>
#include <isc/string.h>
#include <isc/strerror.h>
#include <isc/types.h>
isc_stdio_tell
isc_stdio_write
isc_stdtime_get
+isc_string_strerror_r
isc_string_strlcat
isc_string_strlcpy
isc_symtab_count
<ClInclude Include="..\include\isc\stdlib.h">
<Filter>Library Header Files</Filter>
</ClInclude>
+ <ClInclude Include="..\include\isc\strerr.h">
+ <Filter>Library Header Files</Filter>
+ </ClInclude>
<ClInclude Include="..\include\isc\string.h">
<Filter>Library Header Files</Filter>
</ClInclude>
<ClInclude Include="..\include\isc\stats.h" />
<ClInclude Include="..\include\isc\stdio.h" />
<ClInclude Include="..\include\isc\stdlib.h" />
+ <ClInclude Include="..\include\isc\strerr.h" />
<ClInclude Include="..\include\isc\string.h" />
<ClInclude Include="..\include\isc\symtab.h" />
<ClInclude Include="..\include\isc\task.h" />
./lib/isc/include/isc/stats.h C 2009,2012,2016,2018
./lib/isc/include/isc/stdatomic.h C 2018
./lib/isc/include/isc/stdio.h C 2000,2001,2004,2005,2006,2007,2013,2016,2018
+./lib/isc/include/isc/strerr.h C 2018
./lib/isc/include/isc/string.h C 2000,2001,2003,2004,2005,2006,2007,2014,2016,2018
./lib/isc/include/isc/symtab.h C 1996,1997,1998,1999,2000,2001,2004,2005,2006,2007,2009,2011,2012,2013,2016,2018
./lib/isc/include/isc/task.h C 1998,1999,2000,2001,2003,2004,2005,2006,2007,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018