First attempt to implement default network interface

This commit is contained in:
Milos Gajdos
2019-08-20 21:12:21 +01:00
parent 30dd3f54f0
commit fcec6e8eae
3 changed files with 331 additions and 3 deletions

View File

@@ -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{},
}
}