From b9ec8c36cda84e0cce58c9952c43ac4e99a09a4d Mon Sep 17 00:00:00 2001 From: Glauber Costa <glommer@cloudius-systems.com> Date: Mon, 26 May 2014 16:35:52 +0400 Subject: [PATCH] libc: implement gai_strerror Code from musl. Signed-off-by: Glauber Costa <glommer@cloudius-systems.com> Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com> --- libc/build.mk | 1 + libc/network/gai_strerror.cc | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 libc/network/gai_strerror.cc diff --git a/libc/build.mk b/libc/build.mk index 361ee3aca..f06577ffa 100644 --- a/libc/build.mk +++ b/libc/build.mk @@ -377,6 +377,7 @@ libc += network/inet_pton.o libc += network/inet_ntop.o libc += network/proto.o libc += network/if_indextoname.o +libc += network/gai_strerror.o libc += prng/rand.o libc += prng/random.o diff --git a/libc/network/gai_strerror.cc b/libc/network/gai_strerror.cc new file mode 100644 index 000000000..0bf3e3797 --- /dev/null +++ b/libc/network/gai_strerror.cc @@ -0,0 +1,23 @@ +#include <netdb.h> + +static const char msgs[] = + "Invalid flags\0" + "Name does not resolve\0" + "Try again\0" + "Non-recoverable error\0" + "Unknown error\0" + "Unrecognized address family or invalid length\0" + "Unrecognized socket type\0" + "Unrecognized service\0" + "Unknown error\0" + "Out of memory\0" + "System error\0" + "Overflow\0" + "\0Unknown error"; + +const char *gai_strerror(int ecode) +{ + const char *s; + for (s=msgs, ecode++; ecode && *s; ecode++, s++) for (; *s; s++); + return *s ? s : s+1; +} -- GitLab