summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ripd/ChangeLog9
-rw-r--r--ripd/rip_interface.c53
-rw-r--r--ripd/ripd.c4
-rw-r--r--ripd/ripd.h1
4 files changed, 11 insertions, 56 deletions
diff --git a/ripd/ChangeLog b/ripd/ChangeLog
index e9f7e07c..a3c0e24b 100644
--- a/ripd/ChangeLog
+++ b/ripd/ChangeLog
@@ -1,3 +1,12 @@
+2005-10-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+ * ripd.c: (rip_response_process) Instead of calling
+ rip_interface.c:if_valid_neighbor(), call the equivalent
+ library function if_lookup_address().
+ * rip_interface.c: (if_valid_neighbor) Remove function, since it is
+ essentially equivalent to the if_lookup_address() library function.
+ * ripd.h: (if_valid_neighbor) Remove function declaration.
+
2005-10-28 Paul Jakma <paul.jakma@sun.com>
* Makefile.am: Add rip_interface.h, or else it doesn't get
diff --git a/ripd/rip_interface.c b/ripd/rip_interface.c
index 17b25ff8..0bc5a311 100644
--- a/ripd/rip_interface.c
+++ b/ripd/rip_interface.c
@@ -388,59 +388,6 @@ if_check_address (struct in_addr addr)
return 0;
}
-/* is this address from a valid neighbor? (RFC2453 - Sec. 3.9.2) */
-int
-if_valid_neighbor (struct in_addr addr)
-{
- struct listnode *node;
- struct connected *connected = NULL;
- struct interface *ifp;
- struct prefix_ipv4 *p;
- struct prefix_ipv4 pa;
-
- pa.family = AF_INET;
- pa.prefix = addr;
- pa.prefixlen = IPV4_MAX_PREFIXLEN;
-
- for (ALL_LIST_ELEMENTS_RO (iflist, node, ifp))
- {
- struct listnode *cnode;
-
- for (ALL_LIST_ELEMENTS_RO (ifp->connected, cnode, connected))
- {
- if (if_is_pointopoint (ifp))
- {
- p = (struct prefix_ipv4 *) connected->address;
-
- if (p && p->family == AF_INET)
- {
- if (IPV4_ADDR_SAME (&p->prefix, &addr))
- return 1;
-
- p = (struct prefix_ipv4 *) connected->destination;
- if (p)
- {
- if (IPV4_ADDR_SAME (&p->prefix, &addr))
- return 1;
- }
- else
- {
- if (prefix_match(connected->address,(struct prefix *)&pa))
- return 1;
- }
- }
- }
- else
- {
- if ((connected->address->family == AF_INET) &&
- prefix_match(connected->address,(struct prefix *)&pa))
- return 1;
- }
- }
- }
- return 0;
-}
-
/* Inteface link down message processing. */
int
rip_interface_down (int command, struct zclient *zclient, zebra_size_t length)
diff --git a/ripd/ripd.c b/ripd/ripd.c
index 2e2b2849..ec7bd199 100644
--- a/ripd/ripd.c
+++ b/ripd/ripd.c
@@ -1131,8 +1131,8 @@ rip_response_process (struct rip_packet *packet, int size,
/* The datagram's IPv4 source address should be checked to see
whether the datagram is from a valid neighbor; the source of the
- datagram must be on a directly connected network */
- if (! if_valid_neighbor (from->sin_addr))
+ datagram must be on a directly connected network (RFC2453 - Sec. 3.9.2) */
+ if (if_lookup_address(from->sin_addr) == NULL)
{
zlog_info ("This datagram doesn't came from a valid neighbor: %s",
inet_ntoa (from->sin_addr));
diff --git a/ripd/ripd.h b/ripd/ripd.h
index cc4aef67..4d0c04e2 100644
--- a/ripd/ripd.h
+++ b/ripd/ripd.h
@@ -391,7 +391,6 @@ extern void rip_zclient_start (void);
extern void rip_zclient_reset (void);
extern void rip_offset_init (void);
extern int if_check_address (struct in_addr addr);
-extern int if_valid_neighbor (struct in_addr addr);
extern int rip_request_send (struct sockaddr_in *, struct interface *, u_char,
struct connected *);