diff options
author | Adam Mitz <mitza@ociweb.com> | 2015-11-06 17:07:11 -0600 |
---|---|---|
committer | Adam Mitz <mitza@ociweb.com> | 2015-11-06 17:07:11 -0600 |
commit | ac5e1702c9f9bee9f1f7bfce8c1a6f3847ea6b4b (patch) | |
tree | 0e70d1f51c39e688a05a6cdc2af58408222e4a0d /ACE/ace/OS_NS_netdb.inl | |
parent | 5272b5b81f92c298cb998b5bb0b0dbca3e7f29fe (diff) | |
download | ATCD-ac5e1702c9f9bee9f1f7bfce8c1a6f3847ea6b4b.tar.gz |
Merged branch ace-face-safety (FACE Safety Profile import from OCITAO).
Diffstat (limited to 'ACE/ace/OS_NS_netdb.inl')
-rw-r--r-- | ACE/ace/OS_NS_netdb.inl | 79 |
1 files changed, 77 insertions, 2 deletions
diff --git a/ACE/ace/OS_NS_netdb.inl b/ACE/ace/OS_NS_netdb.inl index a8426aee9c8..88bdbc861e3 100644 --- a/ACE/ace/OS_NS_netdb.inl +++ b/ACE/ace/OS_NS_netdb.inl @@ -96,7 +96,8 @@ ACE_OS::gethostbyaddr_r (const char *addr, ACE_UNUSED_ARG (type); ACE_UNUSED_ARG (result); ACE_UNUSED_ARG (buffer); - ACE_UNUSED_ARG (h_errnop); + if (h_errnop) + *h_errnop = ENOTSUP; ACE_NOTSUP_RETURN (0); # elif defined (ACE_HAS_REENTRANT_FUNCTIONS) @@ -272,7 +273,8 @@ ACE_OS::gethostbyname_r (const char *name, ACE_UNUSED_ARG (name); ACE_UNUSED_ARG (result); ACE_UNUSED_ARG (buffer); - ACE_UNUSED_ARG (h_errnop); + if (h_errnop) + *h_errnop = ENOTSUP; ACE_NOTSUP_RETURN (0); # elif defined (ACE_HAS_REENTRANT_FUNCTIONS) @@ -733,4 +735,77 @@ ACE_OS::getservbyname_r (const char *svc, #endif /* defined (ACE_HAS_REENTRANT_FUNCTIONS) */ } + +ACE_INLINE int +ACE_OS::getaddrinfo (const char *name, const char *service, + const addrinfo *hints, addrinfo **result) +{ + ACE_OS_TRACE ("ACE_OS::getaddrinfo"); +#ifdef ACE_LACKS_GETADDRINFO + ACE_UNUSED_ARG (service); + ACE_UNUSED_ARG (hints); + return ACE_OS::getaddrinfo_emulation (name, result); +#else + return ::getaddrinfo (name, service, hints, result); +#endif +} + +ACE_INLINE void +ACE_OS::freeaddrinfo (addrinfo *result) +{ + ACE_OS_TRACE ("ACE_OS::freeaddrinfo"); +#ifdef ACE_LACKS_GETADDRINFO + ACE_OS::freeaddrinfo_emulation (result); +#else + ::freeaddrinfo (result); +#endif +} + +ACE_INLINE const char * +ACE_OS::gai_strerror (int errcode) +{ + ACE_OS_TRACE ("ACE_OS::gai_strerror"); +#ifdef ACE_LACKS_GAI_STRERROR + switch (errcode) + { + case EAI_NONAME: + return "Name does not resolve to an address"; + case EAI_AGAIN: + return "Temporary failure, try again"; + case EAI_FAIL: + return "Name resolution failed"; + case EAI_FAMILY: + return "Address family not supported"; + case EAI_MEMORY: + return "Out of memory"; + case EAI_SYSTEM: + return "Other error, see errno"; + case EAI_OVERFLOW: + return "Buffer provided by caller was too small"; + default: + return "Unknown error"; + } +#else + return ::gai_strerror (errcode); +#endif +} + +ACE_INLINE int +ACE_OS::getnameinfo (const sockaddr *addr, ACE_SOCKET_LEN addr_len, + char *host, ACE_SOCKET_LEN host_len, + char *service, ACE_SOCKET_LEN service_len, + unsigned int flags) +{ + ACE_OS_TRACE ("ACE_OS::getnameinfo"); +#ifdef ACE_LACKS_GETNAMEINFO + ACE_UNUSED_ARG (service); + ACE_UNUSED_ARG (service_len); + ACE_UNUSED_ARG (flags); + return ACE_OS::getnameinfo_emulation (addr, addr_len, host, host_len); +#else + return ::getnameinfo (addr, addr_len, host, host_len, + service, service_len, flags); +#endif +} + ACE_END_VERSIONED_NAMESPACE_DECL |