First attempt to implement default network interface
This commit is contained in:
@@ -3,6 +3,10 @@ package network
|
||||
import (
|
||||
"github.com/micro/go-micro/network/resolver"
|
||||
"github.com/micro/go-micro/network/resolver/dns"
|
||||
"github.com/micro/go-micro/proxy"
|
||||
"github.com/micro/go-micro/proxy/mucp"
|
||||
"github.com/micro/go-micro/router"
|
||||
"github.com/micro/go-micro/tunnel"
|
||||
)
|
||||
|
||||
type Option func(*Options)
|
||||
@@ -13,6 +17,12 @@ type Options struct {
|
||||
Name string
|
||||
// Address to bind to
|
||||
Address string
|
||||
// Tunnel is network tunnel
|
||||
Tunnel tunnel.Tunnel
|
||||
// Router is network router
|
||||
Router router.Router
|
||||
// Proxy is network proxy
|
||||
Proxy proxy.Proxy
|
||||
// Resolver is network resolver
|
||||
Resolver resolver.Resolver
|
||||
}
|
||||
@@ -31,6 +41,27 @@ func Address(a string) Option {
|
||||
}
|
||||
}
|
||||
|
||||
// Tunnel sets the network tunnel
|
||||
func Tunnel(t tunnel.Tunnel) Option {
|
||||
return func(o *Options) {
|
||||
o.Tunnel = t
|
||||
}
|
||||
}
|
||||
|
||||
// Router sets the network router
|
||||
func Router(r router.Router) Option {
|
||||
return func(o *Options) {
|
||||
o.Router = r
|
||||
}
|
||||
}
|
||||
|
||||
// Proxy sets the network proxy
|
||||
func Proxy(p proxy.Proxy) Option {
|
||||
return func(o *Options) {
|
||||
o.Proxy = p
|
||||
}
|
||||
}
|
||||
|
||||
// Resolver is the network resolver
|
||||
func Resolver(r resolver.Resolver) Option {
|
||||
return func(o *Options) {
|
||||
@@ -43,6 +74,9 @@ func DefaultOptions() Options {
|
||||
return Options{
|
||||
Name: DefaultName,
|
||||
Address: DefaultAddress,
|
||||
Tunnel: tunnel.NewTunnel(),
|
||||
Router: router.DefaultRouter,
|
||||
Proxy: mucp.NewProxy(),
|
||||
Resolver: &dns.Resolver{},
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user