use own fork

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
2021-02-20 14:41:43 +03:00
parent 8f78a764c1
commit e958d61dbc
12 changed files with 262 additions and 13 deletions

30
mdns.go
View File

@@ -2,24 +2,22 @@
package mdns
import (
"context"
"fmt"
"net"
"strconv"
"time"
"github.com/micro/go-micro/v3/router"
"github.com/micro/go-micro/v3/util/mdns"
mdns "github.com/unistack-org/micro-register-mdns/v3/util"
"github.com/unistack-org/micro/v3/router"
)
// NewRouter returns an initialized dns router
func NewRouter(opts ...router.Option) router.Router {
options := router.DefaultOptions()
options := router.NewOptions(opts...)
for _, o := range opts {
o(&options)
}
if len(options.Network) == 0 {
options.Network = "micro"
}
return &mdnsRouter{options}
}
@@ -42,21 +40,23 @@ func (m *mdnsRouter) Table() router.Table {
return nil
}
func (m *mdnsRouter) Lookup(service string, opts ...router.LookupOption) ([]router.Route, error) {
options := router.NewLookup(opts...)
func (m *mdnsRouter) Lookup(opts ...router.QueryOption) ([]router.Route, error) {
options := router.NewQuery(opts...)
// check to see if we have the port provided in the service, e.g. go-micro-srv-foo:8000
srv, port, err := net.SplitHostPort(service)
service, port, err := net.SplitHostPort(options.Service)
if err != nil {
srv = service
service = options.Service
}
// query for the host
entries := make(chan *mdns.ServiceEntry)
p := mdns.DefaultParams(srv)
p.Timeout = time.Millisecond * 100
p := mdns.DefaultParams(service)
//p.Timeout = time.Millisecond * 100
p.Entries = entries
ctx, cancel := context.WithTimeout(m.options.Context, time.Millisecond*100)
defer cancel()
// check if we're using our own network
if len(options.Network) > 0 {
@@ -64,7 +64,7 @@ func (m *mdnsRouter) Lookup(service string, opts ...router.LookupOption) ([]rout
}
// do the query
if err := mdns.Query(p); err != nil {
if err := mdns.Query(ctx, p); err != nil {
return nil, err
}
@@ -112,6 +112,10 @@ func (m *mdnsRouter) Close() error {
return nil
}
func (m *mdnsRouter) Name() string {
return m.options.Name
}
func (m *mdnsRouter) String() string {
return "mdns"
}