summaryrefslogtreecommitdiffstats
path: root/cpukit/libnetworking/netinet/ip_icmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/libnetworking/netinet/ip_icmp.c')
-rw-r--r--cpukit/libnetworking/netinet/ip_icmp.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/cpukit/libnetworking/netinet/ip_icmp.c b/cpukit/libnetworking/netinet/ip_icmp.c
index 564a785b04..7cd2668aa9 100644
--- a/cpukit/libnetworking/netinet/ip_icmp.c
+++ b/cpukit/libnetworking/netinet/ip_icmp.c
@@ -88,6 +88,10 @@ static int icmpbmcastecho = 1;
SYSCTL_INT(_net_inet_icmp, OID_AUTO, bmcastecho, CTLFLAG_RW, &icmpbmcastecho,
0, "");
+static int icmpallecho = 1;
+SYSCTL_INT(_net_inet_icmp, OID_AUTO, allecho, CTLFLAG_RW, &icmpallecho,
+ 0, "");
+
/* #define ICMPPRINTFS 1 */
#ifdef ICMPPRINTFS
int icmpprintfs = 0;
@@ -399,9 +403,10 @@ icmp_input(m, off)
break;
case ICMP_ECHO:
- if (!icmpbmcastecho
- && (m->m_flags & (M_MCAST | M_BCAST)) != 0
- && IN_MULTICAST(ntohl(ip->ip_dst.s_addr))) {
+ if (!icmpallecho
+ || (!icmpbmcastecho
+ && (m->m_flags & (M_MCAST | M_BCAST)) != 0
+ && IN_MULTICAST(ntohl(ip->ip_dst.s_addr)))) {
icmpstat.icps_bmcastecho++;
break;
}