quagga: Avoid duplicate connected address adding to the list

commit 27ba970b9("quagga/ripd: Fix two bugs after received SIGHUP signal")
introduces an regression: ifp->connected list is cleaned up when ripd is
restarting, however, for interface addresses which are not specified in
ripd configuration file, they are never to be added into ifp->connected
again, this will lead to some abnormal behavior for route advertising.

Instead of cleaning up the ifp->connected list to avoid duplicated
connected address being added into this list, we can check this
condition during interface address adding process and return early
when an identical address has already been added.

Upstream-Status: Pending

Signed-off-by: Hu Yadi <Yadi.hu@windriver.com>
Signed-off-by: Xufeng Zhang <xufeng.zhang@windriver.com>
Signed-off-by: Joe MacDonald <joe@deserted.net>
---
--- a/lib/if.c
+++ b/lib/if.c
@@ -738,6 +738,16 @@ connected_add_by_prefix (struct interfac
                          struct prefix *destination)
 {
   struct connected *ifc;
+  struct listnode *cnode;
+  struct connected *c;
+  int ret = 0;
+
+  for (ALL_LIST_ELEMENTS_RO (ifp->connected, cnode, c))
+    {
+      ret = connected_same_prefix (p, (c->address));
+      if(ret == 1)
+        return NULL;
+    }
 
   /* Allocate new connected address. */
   ifc = connected_new ();
--- a/ripd/rip_interface.c
+++ b/ripd/rip_interface.c
@@ -516,13 +516,6 @@ rip_interface_clean (void)
 	  thread_cancel (ri->t_wakeup);
 	  ri->t_wakeup = NULL;
 	}
-
-      for (conn_node = listhead (ifp->connected); conn_node; conn_node = next)
-        {
-          ifc = listgetdata (conn_node);
-          next = conn_node->next;
-          listnode_delete (ifp->connected, ifc);
-        }
     }
 }
 
