summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2000-11-25 10:23:55 +0000
committerCorinna Vinschen <corinna@vinschen.de>2000-11-25 10:23:55 +0000
commit0bec01198bd55dc9b2ef574372852693c2e44da7 (patch)
treee22f544a576ea77207f0df0126950d65327a4a9c
parenta76857b27226f6015c9795df8cc8c120fe214cf5 (diff)
downloadcygnal-0bec01198bd55dc9b2ef574372852693c2e44da7.tar.gz
cygnal-0bec01198bd55dc9b2ef574372852693c2e44da7.tar.bz2
cygnal-0bec01198bd55dc9b2ef574372852693c2e44da7.zip
* net.cc (cygwin_inet_aton): New function.
* cygwin.din: Export cygwin_inet_aton as inet_aton.
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/cygwin.din1
-rw-r--r--winsup/cygwin/net.cc18
3 files changed, 22 insertions, 2 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 492051982..d5a32980c 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+Sat Nov 25 11:07:00 2000 Corinna Vinschen <corinna@vinschen.de>
+
+ * net.cc (cygwin_inet_aton): New function.
+ * cygwin.din: Export cygwin_inet_aton as inet_aton.
+
Sat Nov 25 01:57:42 2000 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
* path.cc (mount_info::read_cygdrive_info_from_registry): Read system
diff --git a/winsup/cygwin/cygwin.din b/winsup/cygwin/cygwin.din
index 2399c8bf3..cde180e5c 100644
--- a/winsup/cygwin/cygwin.din
+++ b/winsup/cygwin/cygwin.din
@@ -949,6 +949,7 @@ _select = cygwin_select
send = cygwin_send
socket = cygwin_socket
setsockopt = cygwin_setsockopt
+inet_aton = cygwin_inet_aton
inet_ntoa = cygwin_inet_ntoa
recvfrom = cygwin_recvfrom
sendto = cygwin_sendto
diff --git a/winsup/cygwin/net.cc b/winsup/cygwin/net.cc
index 663fd166c..cf5a98dec 100644
--- a/winsup/cygwin/net.cc
+++ b/winsup/cygwin/net.cc
@@ -106,7 +106,7 @@ dump_protoent (struct protoent *p)
debug_printf ("protoent %s %x %x", p->p_name, p->p_aliases, p->p_proto);
}
-/* exported as inet_ntoa: standards? */
+/* exported as inet_ntoa: BSD 4.3 */
extern "C" char *
cygwin_inet_ntoa (struct in_addr in)
{
@@ -114,7 +114,7 @@ cygwin_inet_ntoa (struct in_addr in)
return res;
}
-/* exported as inet_addr: standards? */
+/* exported as inet_addr: BSD 4.3 */
extern "C" unsigned long
cygwin_inet_addr (const char *cp)
{
@@ -122,6 +122,20 @@ cygwin_inet_addr (const char *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)
+{
+ unsigned long res = inet_addr (cp);
+ if (res == INADDR_NONE && strcmp (cp, "255.255.255.255"))
+ return -1;
+ if (inp)
+ inp->s_addr = res;
+ return 0;
+}
+
/* undocumented in wsock32.dll */
extern "C" unsigned int WINAPI inet_network (const char *);