From ebe3633082ee472e2b8cb32ae76989f0dccf343f Mon Sep 17 00:00:00 2001
From: Asim Aslam <asim@aslam.me>
Date: Mon, 1 Jul 2019 22:59:11 +0100
Subject: [PATCH] move network initialiser code

---
 network/default.go | 43 +++++++++++++++++++++++++++++++++++++++++++
 network/network.go | 44 +-------------------------------------------
 2 files changed, 44 insertions(+), 43 deletions(-)

diff --git a/network/default.go b/network/default.go
index 8fe5362b..24f42206 100644
--- a/network/default.go
+++ b/network/default.go
@@ -14,6 +14,7 @@ import (
 	"github.com/micro/go-micro/codec/proto"
 	"github.com/micro/go-micro/config/options"
 	"github.com/micro/go-micro/network/proxy"
+	"github.com/micro/go-micro/network/proxy/mucp"
 	"github.com/micro/go-micro/network/resolver"
 	"github.com/micro/go-micro/network/router"
 	"github.com/micro/go-micro/registry"
@@ -683,3 +684,45 @@ func (s *socket) recv(m *Message, v interface{}) error {
 	// return unmarshalled
 	return s.codec.Unmarshal(m.Body, v.(gproto.Message))
 }
+
+// newNetwork returns a new network interface
+func newNetwork(opts ...options.Option) *network {
+	options := options.NewOptions(opts...)
+
+	// new network instance
+	net := &network{
+		id: DefaultId,
+	}
+
+	// get network id
+	id, ok := options.Values().Get("network.id")
+	if ok {
+		net.id = id.(string)
+	}
+
+	// get router
+	r, ok := options.Values().Get("network.router")
+	if ok {
+		net.router = r.(router.Router)
+	} else {
+		net.router = router.DefaultRouter
+	}
+
+	// get proxy
+	p, ok := options.Values().Get("network.proxy")
+	if ok {
+		net.proxy = p.(proxy.Proxy)
+	} else {
+		net.proxy = new(mucp.Proxy)
+	}
+
+	// get resolver
+	res, ok := options.Values().Get("network.resolver")
+	if ok {
+		net.resolver = res.(resolver.Resolver)
+	} else {
+		net.resolver = new(nreg.Resolver)
+	}
+
+	return net
+}
diff --git a/network/network.go b/network/network.go
index 6d619254..c8f998ea 100644
--- a/network/network.go
+++ b/network/network.go
@@ -3,11 +3,6 @@ package network
 
 import (
 	"github.com/micro/go-micro/config/options"
-	"github.com/micro/go-micro/network/proxy"
-	"github.com/micro/go-micro/network/proxy/mucp"
-	"github.com/micro/go-micro/network/resolver"
-	"github.com/micro/go-micro/network/resolver/registry"
-	"github.com/micro/go-micro/network/router"
 )
 
 // Network defines a network interface. The network is a single
@@ -67,42 +62,5 @@ var (
 
 // NewNetwork returns a new network interface
 func NewNetwork(opts ...options.Option) Network {
-	options := options.NewOptions(opts...)
-
-	// new network instance
-	net := &network{
-		id: DefaultId,
-	}
-
-	// get network id
-	id, ok := options.Values().Get("network.id")
-	if ok {
-		net.id = id.(string)
-	}
-
-	// get router
-	r, ok := options.Values().Get("network.router")
-	if ok {
-		net.router = r.(router.Router)
-	} else {
-		net.router = router.DefaultRouter
-	}
-
-	// get proxy
-	p, ok := options.Values().Get("network.proxy")
-	if ok {
-		net.proxy = p.(proxy.Proxy)
-	} else {
-		net.proxy = new(mucp.Proxy)
-	}
-
-	// get resolver
-	res, ok := options.Values().Get("network.resolver")
-	if ok {
-		net.resolver = res.(resolver.Resolver)
-	} else {
-		net.resolver = new(registry.Resolver)
-	}
-
-	return net
+	return newNetwork(opts...)
 }