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 78645 2007-06-29 09:48:53Z johnnyw $")
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 <= 0x650)
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