00001
00002
00003
00004 #include "ace/OS_NS_arpa_inet.h"
00005
00006 ACE_RCSID(ace, OS_NS_arpa_inet, "$Id: OS_NS_arpa_inet.cpp 80826 2008-03-04 14:51:23Z wotte $")
00007
00008 #if !defined (ACE_HAS_INLINED_OSCALLS)
00009 # include "ace/OS_NS_arpa_inet.inl"
00010 #endif
00011
00012 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00013
00014 int
00015 ACE_OS::inet_aton (const char *host_name, struct in_addr *addr)
00016 {
00017 #if defined (ACE_LACKS_INET_ATON)
00018 # if defined (ACE_WIN32)
00019
00020
00021
00022
00023 if (host_name == 0 || host_name[0] == '\0')
00024 host_name = " ";
00025 # endif
00026 unsigned long ip_addr = ACE_OS::inet_addr (host_name);
00027
00028 if (ip_addr == INADDR_NONE
00029
00030 && ACE_OS::strcmp (host_name, "255.255.255.255") != 0)
00031 return 0;
00032 else if (addr == 0)
00033 return 0;
00034 else
00035 {
00036 addr->s_addr = ip_addr;
00037 return 1;
00038 }
00039 #elif defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x660)
00040
00041
00042 ::errnoSet(0);
00043 int result = ERROR;
00044 ACE_OSCALL (::inet_aton (const_cast <char*>(host_name), addr), int, ERROR, result);
00045 return (result == ERROR) ? 0 : 1;
00046 #else
00047
00048
00049 ACE_OSCALL_RETURN (::inet_aton (host_name, addr), int, 0);
00050 #endif
00051 }
00052
00053 ACE_END_VERSIONED_NAMESPACE_DECL