| OLD | NEW |
| (Empty) |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "nacl_io/ossocket.h" | |
| 6 | |
| 7 #ifdef PROVIDES_SOCKET_API | |
| 8 | |
| 9 #include <sstream> | |
| 10 #include <string> | |
| 11 #include "sdk_util/macros.h" | |
| 12 | |
| 13 EXTERN_C_BEGIN | |
| 14 | |
| 15 const char* hstrerror(int err) { | |
| 16 // These error message texts are taken straight from the man page | |
| 17 const char* host_not_found_msg = | |
| 18 "The specified host is unknown."; | |
| 19 const char* no_address_msg = | |
| 20 "The requested name is valid but does not have an IP address."; | |
| 21 const char* no_recovery_msg = | |
| 22 "A nonrecoverable name server error occurred."; | |
| 23 const char* try_again_msg = | |
| 24 "A temporary error occurred on an authoritative name server. " | |
| 25 "Try again later."; | |
| 26 const char* internal_msg = | |
| 27 "Internal error in gethostbyname."; | |
| 28 const char* unknown_msg_base = | |
| 29 "Unknown error in gethostbyname: "; | |
| 30 | |
| 31 switch (err) { | |
| 32 case HOST_NOT_FOUND: | |
| 33 return host_not_found_msg; | |
| 34 case NO_ADDRESS: | |
| 35 return no_address_msg; | |
| 36 case NO_RECOVERY: | |
| 37 return no_recovery_msg; | |
| 38 case TRY_AGAIN: | |
| 39 return try_again_msg; | |
| 40 case NETDB_INTERNAL: | |
| 41 return internal_msg; | |
| 42 default: | |
| 43 std::stringstream msg; | |
| 44 msg << unknown_msg_base << err << "."; | |
| 45 | |
| 46 static std::string unknown_msg; | |
| 47 unknown_msg.assign(msg.str()); | |
| 48 return unknown_msg.c_str(); | |
| 49 } | |
| 50 } | |
| 51 | |
| 52 EXTERN_C_END | |
| 53 | |
| 54 #endif // PROVIDES_SOCKET_API | |
| OLD | NEW |