OLD | NEW |
1 /* Copyright 2014 The Chromium Authors. All rights reserved. | 1 /* Copyright 2014 The Chromium Authors. All rights reserved. |
2 * Use of this source code is governed by a BSD-style license that can be | 2 * Use of this source code is governed by a BSD-style license that can be |
3 * found in the LICENSE file. */ | 3 * found in the LICENSE file. */ |
4 | 4 |
5 #include "nacl_io/ossocket.h" | 5 #include "nacl_io/ossocket.h" |
6 | 6 |
7 #ifdef PROVIDES_SOCKET_API | 7 #ifdef PROVIDES_SOCKET_API |
8 | 8 |
9 #include <stdio.h> | 9 #include <stdio.h> |
10 | 10 |
11 #ifndef __GLIBC__ | 11 #if !defined(__GLIBC__) |
| 12 #if defined(__BIONIC__) |
| 13 const |
| 14 #endif |
12 char* gai_strerror(int errcode) { | 15 char* gai_strerror(int errcode) { |
13 switch (errcode) { | 16 switch (errcode) { |
14 case EAI_BADFLAGS: return "Invalid value for `ai_flags' field."; | 17 case EAI_BADFLAGS: return "Invalid value for `ai_flags' field."; |
15 case EAI_NONAME: return "NAME or SERVICE is unknown."; | 18 case EAI_NONAME: return "NAME or SERVICE is unknown."; |
16 case EAI_AGAIN: return "Temporary failure in name resolution."; | 19 case EAI_AGAIN: return "Temporary failure in name resolution."; |
17 case EAI_FAIL: return "Non-recoverable failure in name res."; | 20 case EAI_FAIL: return "Non-recoverable failure in name res."; |
18 case EAI_FAMILY: return "`ai_family' not supported."; | 21 case EAI_FAMILY: return "`ai_family' not supported."; |
19 case EAI_SOCKTYPE: return "`ai_socktype' not supported."; | 22 case EAI_SOCKTYPE: return "`ai_socktype' not supported."; |
20 case EAI_SERVICE: return "SERVICE not supported for `ai_socktype'."; | 23 case EAI_SERVICE: return "SERVICE not supported for `ai_socktype'."; |
21 case EAI_MEMORY: return "Memory allocation failure."; | 24 case EAI_MEMORY: return "Memory allocation failure."; |
22 case EAI_SYSTEM: return "System error returned in `errno'."; | 25 case EAI_SYSTEM: return "System error returned in `errno'."; |
23 case EAI_OVERFLOW: return "Argument buffer overflow."; | 26 case EAI_OVERFLOW: return "Argument buffer overflow."; |
24 } | 27 } |
25 | 28 |
26 static char unknown_msg[128]; | 29 static char unknown_msg[128]; |
27 sprintf(unknown_msg, "Unknown error in getaddrinfo: %d.", errcode); | 30 sprintf(unknown_msg, "Unknown error in getaddrinfo: %d.", errcode); |
28 return unknown_msg; | 31 return unknown_msg; |
29 } | 32 } |
30 #endif | 33 #endif |
31 | 34 |
32 #endif // PROVIDES_SOCKET_API | 35 #endif // PROVIDES_SOCKET_API |
OLD | NEW |