Revert "bgpd: Make socket init separate, so unit tests work again."

This reverts commit 7621f336e2f346edee43227f0b1ef93fe769720b. See bug #727
diff --git a/bgpd/bgp_main.c b/bgpd/bgp_main.c
index 5abc875..0f1d482 100644
--- a/bgpd/bgp_main.c
+++ b/bgpd/bgp_main.c
@@ -441,12 +441,6 @@
   if(dryrun)
     return(0);
   
-  if (bgp_socket_init ())
-    {
-      zlog_err ("BGP socket creation failed");
-      return 1;
-    }
-  
   /* Turn into daemon if daemon_mode is set. */
   if (daemon_mode && daemon (0, 0) < 0)
     {
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c
index 31ce5a1..bdc4e28 100644
--- a/bgpd/bgpd.c
+++ b/bgpd/bgpd.c
@@ -2063,6 +2063,13 @@
   bgp_router_id_set(bgp, &router_id_zebra);
   *bgp_val = bgp;
 
+  /* Create BGP server socket, if first instance.  */
+  if (list_isempty(bm->bgp))
+    {
+      if (bgp_socket (bm->port, bm->address) < 0)
+	return BGP_ERR_INVALID_VALUE;
+    }
+
   listnode_add (bm->bgp, bgp);
 
   return 0;
@@ -5342,15 +5349,6 @@
 }
 
 
-int
-bgp_socket_init (void)
-{
-  /* Create BGP server socket */
-  if (bgp_socket (bm->port, bm->address) < 0)
-    return BGP_ERR_INVALID_VALUE;
-  return 0;
-}
-
 void
 bgp_init (void)
 {
diff --git a/bgpd/bgpd.h b/bgpd/bgpd.h
index 03a998b..bb30716 100644
--- a/bgpd/bgpd.h
+++ b/bgpd/bgpd.h
@@ -846,7 +846,6 @@
 extern void bgp_master_init (void);
 
 extern void bgp_init (void);
-extern int bgp_socket_init (void);
 extern void bgp_route_map_init (void);
 
 extern int bgp_option_set (int);