aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2010-11-23 15:37:41 +0000
committerCorinna Vinschen <corinna@vinschen.de>2010-11-23 15:37:41 +0000
commit943c59e3e85d52d7924a91e112a518af4647d311 (patch)
tree52161a5c426ee44137b7075ef5ae643faf0c1c05
parent679e4c82f1fc5b69487f84c3f2ed3dcca6f796dd (diff)
downloadnewlib-943c59e3e85d52d7924a91e112a518af4647d311.zip
newlib-943c59e3e85d52d7924a91e112a518af4647d311.tar.gz
newlib-943c59e3e85d52d7924a91e112a518af4647d311.tar.bz2
* autoload.cc (SendARP): Remove.
* net.cc (get_flags): Set IFF_NOARP flag for PPP and SLIP devices. (get_xp_ifs): Unify IFF_BROADCAST setting. Drop calling SendARP to set IFF_NOARP flag.
-rw-r--r--winsup/cygwin/ChangeLog7
-rw-r--r--winsup/cygwin/autoload.cc1
-rw-r--r--winsup/cygwin/net.cc14
3 files changed, 12 insertions, 10 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 80a35ef..4986faa 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,12 @@
2010-11-23 Corinna Vinschen <corinna@vinschen.de>
+ * autoload.cc (SendARP): Remove.
+ * net.cc (get_flags): Set IFF_NOARP flag for PPP and SLIP devices.
+ (get_xp_ifs): Unify IFF_BROADCAST setting. Drop calling SendARP to
+ set IFF_NOARP flag.
+
+2010-11-23 Corinna Vinschen <corinna@vinschen.de>
+
* path.cc (symlink_info::check): Don't use FileNetworkOpenInformation
on Netapps. Relax condition for workaround. Always request size
information via FileStandardInformation info class in workaround.
diff --git a/winsup/cygwin/autoload.cc b/winsup/cygwin/autoload.cc
index bac40b4..1c64292 100644
--- a/winsup/cygwin/autoload.cc
+++ b/winsup/cygwin/autoload.cc
@@ -325,7 +325,6 @@ LoadDLLfunc (GetIpAddrTable, 12, iphlpapi)
LoadDLLfunc (GetIpForwardTable, 12, iphlpapi)
LoadDLLfunc (GetNetworkParams, 8, iphlpapi)
LoadDLLfunc (GetTcpTable, 12, iphlpapi)
-LoadDLLfunc (SendARP, 16, iphlpapi)
LoadDLLfuncEx (AttachConsole, 4, kernel32, 1)
LoadDLLfunc (FindFirstVolumeA, 8, kernel32)
diff --git a/winsup/cygwin/net.cc b/winsup/cygwin/net.cc
index 50118fe..aa56ad4 100644
--- a/winsup/cygwin/net.cc
+++ b/winsup/cygwin/net.cc
@@ -1691,8 +1691,9 @@ get_flags (PIP_ADAPTER_ADDRESSES pap)
unsigned int flags = IFF_UP;
if (pap->IfType == IF_TYPE_SOFTWARE_LOOPBACK)
flags |= IFF_LOOPBACK;
- else if (pap->IfType == IF_TYPE_PPP)
- flags |= IFF_POINTOPOINT;
+ else if (pap->IfType == IF_TYPE_PPP
+ || pap->IfType == IF_TYPE_SLIP)
+ flags |= IFF_POINTOPOINT | IFF_NOARP;
if (!(pap->Flags & IP_ADAPTER_NO_MULTICAST))
flags |= IFF_MULTICAST;
if (pap->OperStatus == IfOperStatusUp
@@ -1879,7 +1880,8 @@ get_xp_ifs (ULONG family)
ifp->ifa_ifa.ifa_name = ifp->ifa_name;
/* Flags */
ifp->ifa_ifa.ifa_flags = get_flags (pap);
- if (pap->IfType != IF_TYPE_PPP)
+ if (pap->IfType != IF_TYPE_PPP
+ && pap->IfType != IF_TYPE_SOFTWARE_LOOPBACK)
ifp->ifa_ifa.ifa_flags |= IFF_BROADCAST;
/* Address */
ifp->ifa_addr.ss_family = AF_INET;
@@ -1927,12 +1929,6 @@ get_xp_ifs (ULONG family)
&& pap->IfType != IF_TYPE_SOFTWARE_LOOPBACK
&& pap->IfType != IF_TYPE_PPP)
ifp->ifa_ifa.ifa_flags |= IFF_BROADCAST;
- if (sa->sa_family == AF_INET)
- {
- ULONG hwaddr[2], hwlen = 6;
- if (SendARP (sin->sin_addr.s_addr, 0, hwaddr, &hwlen))
- ifp->ifa_ifa.ifa_flags |= IFF_NOARP;
- }
/* Address */
memcpy (&ifp->ifa_addr, sa, sa_size);
ifp->ifa_ifa.ifa_addr = (struct sockaddr *) &ifp->ifa_addr;