[zebra 14631] Generic PtP and RFC3021 interface addressing support
diff --git a/ripd/rip_interface.c b/ripd/rip_interface.c
index bdfca57..9432717 100644
--- a/ripd/rip_interface.c
+++ b/ripd/rip_interface.c
@@ -391,106 +391,6 @@
 						
   return count;
 }
-						
-						
-						
-
-/* Does this address belongs to me ? */
-int
-if_check_address (struct in_addr addr)
-{
-  listnode node;
-
-  for (node = listhead (iflist); node; nextnode (node))
-    {
-      listnode cnode;
-      struct interface *ifp;
-
-      ifp = getdata (node);
-
-      for (cnode = listhead (ifp->connected); cnode; nextnode (cnode))
-	{
-	  struct connected *connected;
-	  struct prefix_ipv4 *p;
-
-	  connected = getdata (cnode);
-	  p = (struct prefix_ipv4 *) connected->address;
-
-	  if (p->family != AF_INET)
-	    continue;
-
-	  if (IPV4_ADDR_CMP (&p->prefix, &addr) == 0)
-	    return 1;
-	}
-    }
-  return 0;
-}
-
-/* is this address from a valid neighbor? (RFC2453 - Sec. 3.9.2) */
-int
-if_valid_neighbor (struct in_addr addr)
-{
-  listnode node;
-  struct connected *connected = NULL;
-  struct prefix_ipv4 *p;
-
-  for (node = listhead (iflist); node; nextnode (node))
-    {
-      listnode cnode;
-      struct interface *ifp;
-
-      ifp = getdata (node);
-
-      for (cnode = listhead (ifp->connected); cnode; nextnode (cnode))
-	{
-	  struct prefix *pxn = NULL; /* Prefix of the neighbor */
-	  struct prefix *pxc = NULL; /* Prefix of the connected network */
-
-	  connected = getdata (cnode);
-
-	  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 && IPV4_ADDR_SAME (&p->prefix, &addr))
-		    return 1;
-		}
-	    }
-	  else
-	    {
-	      p = (struct prefix_ipv4 *) connected->address;
-
-	      if (p->family != AF_INET)
-		continue;
-
-	      pxn = prefix_new();
-	      pxn->family = AF_INET;
-	      pxn->prefixlen = 32;
-	      pxn->u.prefix4 = addr;
-	      
-	      pxc = prefix_new();
-	      prefix_copy(pxc, (struct prefix *) p);
-	      apply_mask(pxc);
-	  
-	      if (prefix_match (pxc, pxn)) 
-		{
-		  prefix_free (pxn);
-		  prefix_free (pxc);
-		  return 1;
-		}
-	      prefix_free(pxc);
-	      prefix_free(pxn);
-	    }
-	}
-    }
-  return 0;
-}
 
 /* Inteface link down message processing. */
 int
diff --git a/ripd/ripd.c b/ripd/ripd.c
index c63bf10..62ebd47 100644
--- a/ripd/ripd.c
+++ b/ripd/ripd.c
@@ -976,7 +976,7 @@
   /* 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)) 
+  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));
@@ -1535,7 +1535,7 @@
     }
 
   /* Check is this packet comming from myself? */
-  if (if_check_address (from.sin_addr)) 
+  if (if_lookup_exact_address (from.sin_addr)) 
     {
       if (IS_RIP_DEBUG_PACKET)
 	zlog_warn ("ignore packet comes from myself");
diff --git a/ripd/ripd.h b/ripd/ripd.h
index 2545db0..17301c3 100644
--- a/ripd/ripd.h
+++ b/ripd/ripd.h
@@ -359,8 +359,6 @@
 void rip_zclient_start ();
 void rip_zclient_reset ();
 void rip_offset_init ();
-int if_check_address (struct in_addr addr);
-int if_valid_neighbor (struct in_addr addr);
 
 int rip_request_send (struct sockaddr_in *, struct interface *, u_char);
 int rip_neighbor_lookup (struct sockaddr_in *);