bgp: Reorg cleanup to align process and bgp instance init/destroy

Signed-off-by: Lou Berger <lberger@labn.net>
diff --git a/bgpd/bgp_main.c b/bgpd/bgp_main.c
index 591a6f9..11c73ce 100644
--- a/bgpd/bgp_main.c
+++ b/bgpd/bgp_main.c
@@ -227,7 +227,6 @@
   struct listnode *node, *nnode;
   int *socket;
   struct interface *ifp;
-  extern struct zclient *zclient;
   extern struct zclient *zlookup;
 
   /* it only makes sense for this to be called on a clean exit */
@@ -314,8 +313,9 @@
   vrf_terminate ();
   cmd_terminate ();
   vty_terminate ();
-  if (zclient)
-    zclient_free (zclient);
+  bgp_address_destroy();
+  bgp_scan_destroy();
+  bgp_zebra_destroy();
   if (zlookup)
     zclient_free (zlookup);
   if (bgp_nexthop_buf)
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c
index e70d337..3caeeff 100644
--- a/bgpd/bgpd.c
+++ b/bgpd/bgpd.c
@@ -2229,11 +2229,6 @@
    */
   bgp_process_queues_drain_immediate();
 
-  bgp_zebra_destroy();
-  bgp_scan_destroy();
-  bgp_address_destroy();
-  
-
   /* Remove visibility via the master list - there may however still be
    * routes to be processed still referencing the struct bgp.
    */