Chromium Code Reviews| 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 |