summaryrefslogtreecommitdiffstats
path: root/sbin/routed/rdisc.c
diff options
context:
space:
mode:
Diffstat (limited to 'sbin/routed/rdisc.c')
-rw-r--r--sbin/routed/rdisc.c30
1 files changed, 12 insertions, 18 deletions
diff --git a/sbin/routed/rdisc.c b/sbin/routed/rdisc.c
index 1e9f42d..bccb3d9 100644
--- a/sbin/routed/rdisc.c
+++ b/sbin/routed/rdisc.c
@@ -36,7 +36,7 @@ static char sccsid[] = "@(#)rdisc.c 8.1 (Berkeley) x/y/95";
#elif defined(__NetBSD__)
static char rcsid[] = "$NetBSD$";
#endif
-#ident "$Revision: 1.19 $"
+#ident "$Revision: 1.20 $"
#include "defs.h"
#include <netinet/in_systm.h>
@@ -916,10 +916,12 @@ void
read_d(void)
{
static struct msg_limit bad_asize, bad_len;
+#ifdef USE_PASSIFNAME
+ static struct msg_limit bad_name;
+#endif
struct sockaddr_in from;
int n, fromlen, cc, hlen;
struct {
-#undef USE_PASSIFNAME /* it is too bad it does not work on raw sockets */
#ifdef USE_PASSIFNAME
char ifname[IFNAMSIZ];
#endif
@@ -961,16 +963,10 @@ read_d(void)
#ifdef USE_PASSIFNAME
ifp = ifwithname(buf.ifname, 0);
- if (ifp == 0) {
- /* maybe it is a new interface */
- ifinit();
- ifp = ifwithname(buf.ifname, 0);
- if (ifp == 0) {
- msglim(&bad_name, from.sin_addr.s_addr,
- "impossible rdisc if_ name %.*s",
- IFNAMSIZ, buf.ifname);
- }
- }
+ if (ifp == 0)
+ msglim(&bad_name, from.sin_addr.s_addr,
+ "impossible rdisc if_ name %.*s",
+ IFNAMSIZ, buf.ifname);
#else
/* If we could tell the interface on which a packet from
* address 0 arrived, we could deal with such solicitations.
@@ -978,15 +974,13 @@ read_d(void)
ifp = ((from.sin_addr.s_addr == 0)
? 0 : iflookup(from.sin_addr.s_addr));
#endif
- ifp = ck_icmp("Recv",
- from.sin_addr.s_addr, ifp,
- buf.pkt.ip.ip_dst.s_addr,
- p, cc);
+ ifp = ck_icmp("Recv", from.sin_addr.s_addr, ifp,
+ buf.pkt.ip.ip_dst.s_addr, p, cc);
if (ifp == 0)
continue;
if (ifwithaddr(from.sin_addr.s_addr, 0, 0)) {
- trace_pkt(" discard our own Router Discovery"
- " message");
+ trace_pkt(" "
+ "discard our own Router Discovery message");
continue;
}
OpenPOWER on IntegriCloud