summaryrefslogtreecommitdiff
path: root/ACE/ace/OS_NS_netdb.inl
diff options
context:
space:
mode:
authorAdam Mitz <mitza@ociweb.com>2015-11-06 17:07:11 -0600
committerAdam Mitz <mitza@ociweb.com>2015-11-06 17:07:11 -0600
commitac5e1702c9f9bee9f1f7bfce8c1a6f3847ea6b4b (patch)
tree0e70d1f51c39e688a05a6cdc2af58408222e4a0d /ACE/ace/OS_NS_netdb.inl
parent5272b5b81f92c298cb998b5bb0b0dbca3e7f29fe (diff)
downloadATCD-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.inl79
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