From 722031140add9bf3d88f634bff99c53dde0967dc Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Fri, 7 Jul 2006 09:14:15 +0000 Subject: * Makefile.in (DLL_OFILES): Add inet_addr.o and inet_network.o. * autoload.cc (inet_addr): Drop definition. (inet_ntoa): Ditto. * net.cc: Forward declare cygwin_inet_aton and cygwin_inet_ntop. (cygwin_inet_ntoa): Call cygwin_inet_ntop instead of Winsock inet_ntoa. (cygwin_inet_addr): Remove here. (cygwin_inet_aton): Ditto. (cygwin_inet_network): Ditto. * libc/inet_addr.c: New file implementing cygwin_inet_aton and cygwin_inet_addr. * libc/inet_network.c: New file implementing cygwin_inet_network. --- winsup/cygwin/net.cc | 45 ++++----------------------------------------- 1 file changed, 4 insertions(+), 41 deletions(-) (limited to 'winsup/cygwin/net.cc') diff --git a/winsup/cygwin/net.cc b/winsup/cygwin/net.cc index 585653457..7db6c1abb 100644 --- a/winsup/cygwin/net.cc +++ b/winsup/cygwin/net.cc @@ -48,6 +48,8 @@ extern "C" int __stdcall rcmd (char **ahost, unsigned short inport, char *locuser, char *remuser, char *cmd, SOCKET * fd2p); int sscanf (const char *, const char *, ...); + int cygwin_inet_aton(const char *, struct in_addr *); + const char *cygwin_inet_ntop (int, const void *, char *, socklen_t); } /* End of "C" section */ static fhandler_socket * @@ -102,7 +104,8 @@ ntohs (unsigned short x) extern "C" char * cygwin_inet_ntoa (struct in_addr in) { - char *res = inet_ntoa (in); + char buf[20]; + const char *res = cygwin_inet_ntop (AF_INET, &in, buf, sizeof buf); if (_my_tls.locals.ntoa_buf) { @@ -114,46 +117,6 @@ cygwin_inet_ntoa (struct in_addr in) return _my_tls.locals.ntoa_buf; } -/* exported as inet_addr: BSD 4.3 */ -extern "C" unsigned long -cygwin_inet_addr (const char *cp) -{ - myfault efault; - if (efault.faulted (EFAULT)) - return INADDR_NONE; - unsigned long res = inet_addr (cp); - - return res; -} - -/* exported as inet_aton: BSD 4.3 - inet_aton is not exported by wsock32 and ws2_32, - so it has to be implemented here. */ -extern "C" int -cygwin_inet_aton (const char *cp, struct in_addr *inp) -{ - myfault efault; - if (efault.faulted (EFAULT)) - return 0; - - unsigned long res = inet_addr (cp); - - if (res == INADDR_NONE && strcmp (cp, "255.255.255.255")) - return 0; - if (inp) - inp->s_addr = res; - return 1; -} - -extern "C" unsigned int -cygwin_inet_network (const char *cp) -{ - myfault efault; - if (efault.faulted (EFAULT)) - return INADDR_NONE; - return ntohl (inet_addr (cp)); -} - /* inet_netof is in the standard BSD sockets library. It is useless for modern networks, since it assumes network values which are no longer meaningful, but some existing code calls it. */ -- cgit v1.2.3