Index: native_client_sdk/src/libraries/nacl_io/syscalls/gai_strerror.c |
diff --git a/native_client_sdk/src/libraries/nacl_io/syscalls/gai_strerror.c b/native_client_sdk/src/libraries/nacl_io/syscalls/gai_strerror.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6e138f1be4981ed5b556deb98b4e7521ca390e76 |
--- /dev/null |
+++ b/native_client_sdk/src/libraries/nacl_io/syscalls/gai_strerror.c |
@@ -0,0 +1,33 @@ |
+// Copyright 2013 The Chromium Authors. All rights reserved. |
binji
2014/01/29 19:18:52
2014
Sam Clegg
2014/01/29 22:06:13
Done.
|
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "nacl_io/ossocket.h" |
+ |
+#ifdef PROVIDES_SOCKET_API |
+ |
+#include <stdio.h> |
+ |
+#ifdef __GLIBC__ |
binji
2014/01/29 19:18:52
Isn't this already implemented in glibc?
Sam Clegg
2014/01/29 22:06:13
Done.
|
+const |
+#endif |
+char* gai_strerror(int errcode) { |
+ switch (errcode) { |
+ case EAI_BADFLAGS: return "Invalid value for `ai_flags' field."; |
+ case EAI_NONAME: return "NAME or SERVICE is unknown."; |
+ case EAI_AGAIN: return "Temporary failure in name resolution."; |
+ case EAI_FAIL: return "Non-recoverable failure in name res."; |
+ case EAI_FAMILY: return "`ai_family' not supported."; |
+ case EAI_SOCKTYPE: return "`ai_socktype' not supported."; |
+ case EAI_SERVICE: return "SERVICE not supported for `ai_socktype'."; |
+ case EAI_MEMORY: return "Memory allocation failure."; |
+ case EAI_SYSTEM: return "System error returned in `errno'."; |
+ case EAI_OVERFLOW: return "Argument buffer overflow."; |
+ } |
+ |
+ static char unknown_msg[128]; |
+ sprintf(unknown_msg, "Unknown error in getaddrinfo: %d.", errcode); |
+ return unknown_msg; |
+} |
+ |
+#endif // PROVIDES_SOCKET_API |