modify all code for never logger interface
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
parent
7b3a7a9448
commit
8b7380876e
@ -1,6 +1,8 @@
|
|||||||
package resolver
|
package resolver
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
"github.com/unistack-org/micro/v3/registry"
|
"github.com/unistack-org/micro/v3/registry"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -8,6 +10,7 @@ import (
|
|||||||
type Options struct {
|
type Options struct {
|
||||||
Handler string
|
Handler string
|
||||||
ServicePrefix string
|
ServicePrefix string
|
||||||
|
Context context.Context
|
||||||
}
|
}
|
||||||
|
|
||||||
// Option func
|
// Option func
|
||||||
@ -29,7 +32,9 @@ func WithServicePrefix(p string) Option {
|
|||||||
|
|
||||||
// NewOptions returns new initialised options
|
// NewOptions returns new initialised options
|
||||||
func NewOptions(opts ...Option) Options {
|
func NewOptions(opts ...Option) Options {
|
||||||
options := Options{}
|
options := Options{
|
||||||
|
Context: context.Background(),
|
||||||
|
}
|
||||||
for _, o := range opts {
|
for _, o := range opts {
|
||||||
o(&options)
|
o(&options)
|
||||||
}
|
}
|
||||||
|
@ -55,7 +55,7 @@ func (r *Resolver) Domain(req *http.Request) string {
|
|||||||
domain, err := publicsuffix.EffectiveTLDPlusOne(host)
|
domain, err := publicsuffix.EffectiveTLDPlusOne(host)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if logger.V(logger.DebugLevel) {
|
if logger.V(logger.DebugLevel) {
|
||||||
logger.Debug("Unable to extract domain from %v", host)
|
logger.Debug(r.opts.Context, "Unable to extract domain from %v", host)
|
||||||
}
|
}
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
@ -7,13 +7,16 @@ import (
|
|||||||
"net"
|
"net"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
|
"github.com/unistack-org/micro/v3/api/server"
|
||||||
"github.com/unistack-org/micro/v3/api/server/acme"
|
"github.com/unistack-org/micro/v3/api/server/acme"
|
||||||
"github.com/unistack-org/micro/v3/logger"
|
"github.com/unistack-org/micro/v3/logger"
|
||||||
"golang.org/x/crypto/acme/autocert"
|
"golang.org/x/crypto/acme/autocert"
|
||||||
)
|
)
|
||||||
|
|
||||||
// autoCertACME is the ACME provider from golang.org/x/crypto/acme/autocert
|
// autoCertACME is the ACME provider from golang.org/x/crypto/acme/autocert
|
||||||
type autocertProvider struct{}
|
type autocertProvider struct {
|
||||||
|
opts server.Options
|
||||||
|
}
|
||||||
|
|
||||||
func (a *autocertProvider) Init(opts ...acme.Option) error {
|
func (a *autocertProvider) Init(opts ...acme.Option) error {
|
||||||
return nil
|
return nil
|
||||||
@ -36,7 +39,7 @@ func (a *autocertProvider) TLSConfig(hosts ...string) (*tls.Config, error) {
|
|||||||
dir := cacheDir()
|
dir := cacheDir()
|
||||||
if err := os.MkdirAll(dir, 0700); err != nil {
|
if err := os.MkdirAll(dir, 0700); err != nil {
|
||||||
if logger.V(logger.InfoLevel) {
|
if logger.V(logger.InfoLevel) {
|
||||||
logger.Info("warning: autocert not using a cache: %v", err)
|
logger.Info(a.opts.Context, "warning: autocert not using a cache: %v", err)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
m.Cache = autocert.DirCache(dir)
|
m.Cache = autocert.DirCache(dir)
|
||||||
|
@ -74,7 +74,7 @@ func (s *httpServer) Start() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if config.Logger.V(logger.InfoLevel) {
|
if config.Logger.V(logger.InfoLevel) {
|
||||||
config.Logger.Infof("HTTP API Listening on %s", l.Addr().String())
|
config.Logger.Infof(s.opts.Context, "HTTP API Listening on %s", l.Addr().String())
|
||||||
}
|
}
|
||||||
|
|
||||||
s.Lock()
|
s.Lock()
|
||||||
@ -85,7 +85,7 @@ func (s *httpServer) Start() error {
|
|||||||
if err := http.Serve(l, s.mux); err != nil {
|
if err := http.Serve(l, s.mux); err != nil {
|
||||||
// temporary fix
|
// temporary fix
|
||||||
if config.Logger.V(logger.ErrorLevel) {
|
if config.Logger.V(logger.ErrorLevel) {
|
||||||
config.Logger.Errorf("serve err: %v", err)
|
config.Logger.Errorf(s.opts.Context, "serve err: %v", err)
|
||||||
}
|
}
|
||||||
s.Stop()
|
s.Stop()
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package server
|
package server
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"crypto/tls"
|
"crypto/tls"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
@ -23,12 +24,14 @@ type Options struct {
|
|||||||
Resolver resolver.Resolver
|
Resolver resolver.Resolver
|
||||||
Wrappers []Wrapper
|
Wrappers []Wrapper
|
||||||
Logger logger.Logger
|
Logger logger.Logger
|
||||||
|
Context context.Context
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewOptions returns new Options
|
// NewOptions returns new Options
|
||||||
func NewOptions(opts ...Option) Options {
|
func NewOptions(opts ...Option) Options {
|
||||||
options := Options{
|
options := Options{
|
||||||
Logger: logger.DefaultLogger,
|
Logger: logger.DefaultLogger,
|
||||||
|
Context: context.Background(),
|
||||||
}
|
}
|
||||||
for _, o := range opts {
|
for _, o := range opts {
|
||||||
o(&options)
|
o(&options)
|
||||||
|
@ -113,11 +113,11 @@ func (t *tunSubscriber) run() {
|
|||||||
m := new(transport.Message)
|
m := new(transport.Message)
|
||||||
if err := c.Recv(m); err != nil {
|
if err := c.Recv(m); err != nil {
|
||||||
if logger.V(logger.ErrorLevel) {
|
if logger.V(logger.ErrorLevel) {
|
||||||
logger.Error(err.Error())
|
logger.Error(t.opts.Context, err.Error())
|
||||||
}
|
}
|
||||||
if err = c.Close(); err != nil {
|
if err = c.Close(); err != nil {
|
||||||
if logger.V(logger.ErrorLevel) {
|
if logger.V(logger.ErrorLevel) {
|
||||||
logger.Error(err.Error())
|
logger.Error(t.opts.Context, err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
continue
|
continue
|
||||||
|
@ -187,7 +187,7 @@ func (n *noopServer) Register() error {
|
|||||||
|
|
||||||
if !registered {
|
if !registered {
|
||||||
if config.Logger.V(logger.InfoLevel) {
|
if config.Logger.V(logger.InfoLevel) {
|
||||||
config.Logger.Infof("registry [%s] Registering node: %s", config.Registry.String(), service.Nodes[0].Id)
|
config.Logger.Infof(n.opts.Context, "registry [%s] Registering node: %s", config.Registry.String(), service.Nodes[0].Id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -220,7 +220,7 @@ func (n *noopServer) Register() error {
|
|||||||
opts = append(opts, broker.SubscribeContext(cx), broker.SubscribeAutoAck(sb.Options().AutoAck))
|
opts = append(opts, broker.SubscribeContext(cx), broker.SubscribeAutoAck(sb.Options().AutoAck))
|
||||||
|
|
||||||
if config.Logger.V(logger.InfoLevel) {
|
if config.Logger.V(logger.InfoLevel) {
|
||||||
config.Logger.Infof("subscribing to topic: %s", sb.Topic())
|
config.Logger.Infof(n.opts.Context, "subscribing to topic: %s", sb.Topic())
|
||||||
}
|
}
|
||||||
sub, err := config.Broker.Subscribe(cx, sb.Topic(), handler, opts...)
|
sub, err := config.Broker.Subscribe(cx, sb.Topic(), handler, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -250,7 +250,7 @@ func (n *noopServer) Deregister() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if config.Logger.V(logger.InfoLevel) {
|
if config.Logger.V(logger.InfoLevel) {
|
||||||
config.Logger.Infof("deregistering node: %s", service.Nodes[0].Id)
|
config.Logger.Infof(n.opts.Context, "deregistering node: %s", service.Nodes[0].Id)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := DefaultDeregisterFunc(service, config); err != nil {
|
if err := DefaultDeregisterFunc(service, config); err != nil {
|
||||||
@ -280,11 +280,11 @@ func (n *noopServer) Deregister() error {
|
|||||||
go func(s broker.Subscriber) {
|
go func(s broker.Subscriber) {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
if config.Logger.V(logger.InfoLevel) {
|
if config.Logger.V(logger.InfoLevel) {
|
||||||
config.Logger.Infof("unsubscribing from topic: %s", s.Topic())
|
config.Logger.Infof(n.opts.Context, "unsubscribing from topic: %s", s.Topic())
|
||||||
}
|
}
|
||||||
if err := s.Unsubscribe(cx); err != nil {
|
if err := s.Unsubscribe(cx); err != nil {
|
||||||
if config.Logger.V(logger.ErrorLevel) {
|
if config.Logger.V(logger.ErrorLevel) {
|
||||||
config.Logger.Errorf("unsubscribing from topic: %s err: %v", s.Topic(), err)
|
config.Logger.Errorf(n.opts.Context, "unsubscribing from topic: %s err: %v", s.Topic(), err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}(sub)
|
}(sub)
|
||||||
@ -307,7 +307,7 @@ func (n *noopServer) Start() error {
|
|||||||
n.RUnlock()
|
n.RUnlock()
|
||||||
|
|
||||||
if config.Logger.V(logger.InfoLevel) {
|
if config.Logger.V(logger.InfoLevel) {
|
||||||
config.Logger.Infof("server [noop] Listening on %s", config.Address)
|
config.Logger.Infof(n.opts.Context, "server [noop] Listening on %s", config.Address)
|
||||||
}
|
}
|
||||||
n.Lock()
|
n.Lock()
|
||||||
if len(config.Advertise) == 0 {
|
if len(config.Advertise) == 0 {
|
||||||
@ -320,26 +320,26 @@ func (n *noopServer) Start() error {
|
|||||||
// connect to the broker
|
// connect to the broker
|
||||||
if err := config.Broker.Connect(config.Context); err != nil {
|
if err := config.Broker.Connect(config.Context); err != nil {
|
||||||
if config.Logger.V(logger.ErrorLevel) {
|
if config.Logger.V(logger.ErrorLevel) {
|
||||||
config.Logger.Errorf("broker [%s] connect error: %v", config.Broker.String(), err)
|
config.Logger.Errorf(n.opts.Context, "broker [%s] connect error: %v", config.Broker.String(), err)
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if config.Logger.V(logger.InfoLevel) {
|
if config.Logger.V(logger.InfoLevel) {
|
||||||
config.Logger.Infof("broker [%s] Connected to %s", config.Broker.String(), config.Broker.Address())
|
config.Logger.Infof(n.opts.Context, "broker [%s] Connected to %s", config.Broker.String(), config.Broker.Address())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// use RegisterCheck func before register
|
// use RegisterCheck func before register
|
||||||
if err := config.RegisterCheck(config.Context); err != nil {
|
if err := config.RegisterCheck(config.Context); err != nil {
|
||||||
if config.Logger.V(logger.ErrorLevel) {
|
if config.Logger.V(logger.ErrorLevel) {
|
||||||
config.Logger.Errorf("server %s-%s register check error: %s", config.Name, config.Id, err)
|
config.Logger.Errorf(n.opts.Context, "server %s-%s register check error: %s", config.Name, config.Id, err)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// announce self to the world
|
// announce self to the world
|
||||||
if err := n.Register(); err != nil {
|
if err := n.Register(); err != nil {
|
||||||
if config.Logger.V(logger.ErrorLevel) {
|
if config.Logger.V(logger.ErrorLevel) {
|
||||||
config.Logger.Errorf("server register error: %v", err)
|
config.Logger.Errorf(n.opts.Context, "server register error: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -367,23 +367,23 @@ func (n *noopServer) Start() error {
|
|||||||
rerr := config.RegisterCheck(config.Context)
|
rerr := config.RegisterCheck(config.Context)
|
||||||
if rerr != nil && registered {
|
if rerr != nil && registered {
|
||||||
if config.Logger.V(logger.ErrorLevel) {
|
if config.Logger.V(logger.ErrorLevel) {
|
||||||
config.Logger.Errorf("server %s-%s register check error: %s, deregister it", config.Name, config.Id, rerr)
|
config.Logger.Errorf(n.opts.Context, "server %s-%s register check error: %s, deregister it", config.Name, config.Id, rerr)
|
||||||
}
|
}
|
||||||
// deregister self in case of error
|
// deregister self in case of error
|
||||||
if err := n.Deregister(); err != nil {
|
if err := n.Deregister(); err != nil {
|
||||||
if config.Logger.V(logger.ErrorLevel) {
|
if config.Logger.V(logger.ErrorLevel) {
|
||||||
config.Logger.Errorf("server %s-%s deregister error: %s", config.Name, config.Id, err)
|
config.Logger.Errorf(n.opts.Context, "server %s-%s deregister error: %s", config.Name, config.Id, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if rerr != nil && !registered {
|
} else if rerr != nil && !registered {
|
||||||
if config.Logger.V(logger.ErrorLevel) {
|
if config.Logger.V(logger.ErrorLevel) {
|
||||||
config.Logger.Errorf("server %s-%s register check error: %s", config.Name, config.Id, rerr)
|
config.Logger.Errorf(n.opts.Context, "server %s-%s register check error: %s", config.Name, config.Id, rerr)
|
||||||
}
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if err := n.Register(); err != nil {
|
if err := n.Register(); err != nil {
|
||||||
if config.Logger.V(logger.ErrorLevel) {
|
if config.Logger.V(logger.ErrorLevel) {
|
||||||
config.Logger.Errorf("server %s-%s register error: %s", config.Name, config.Id, err)
|
config.Logger.Errorf(n.opts.Context, "server %s-%s register error: %s", config.Name, config.Id, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// wait for exit
|
// wait for exit
|
||||||
@ -395,7 +395,7 @@ func (n *noopServer) Start() error {
|
|||||||
// deregister self
|
// deregister self
|
||||||
if err := n.Deregister(); err != nil {
|
if err := n.Deregister(); err != nil {
|
||||||
if config.Logger.V(logger.ErrorLevel) {
|
if config.Logger.V(logger.ErrorLevel) {
|
||||||
config.Logger.Errorf("server deregister error: ", err)
|
config.Logger.Errorf(n.opts.Context, "server deregister error: ", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -408,12 +408,12 @@ func (n *noopServer) Start() error {
|
|||||||
ch <- nil
|
ch <- nil
|
||||||
|
|
||||||
if config.Logger.V(logger.InfoLevel) {
|
if config.Logger.V(logger.InfoLevel) {
|
||||||
config.Logger.Infof("broker [%s] Disconnected from %s", config.Broker.String(), config.Broker.Address())
|
config.Logger.Infof(n.opts.Context, "broker [%s] Disconnected from %s", config.Broker.String(), config.Broker.Address())
|
||||||
}
|
}
|
||||||
// disconnect broker
|
// disconnect broker
|
||||||
if err := config.Broker.Disconnect(config.Context); err != nil {
|
if err := config.Broker.Disconnect(config.Context); err != nil {
|
||||||
if config.Logger.V(logger.ErrorLevel) {
|
if config.Logger.V(logger.ErrorLevel) {
|
||||||
config.Logger.Errorf("broker [%s] disconnect error: %v", config.Broker.String(), err)
|
config.Logger.Errorf(n.opts.Context, "broker [%s] disconnect error: %v", config.Broker.String(), err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
@ -191,8 +191,8 @@ func (n *noopServer) createSubHandler(sb *subscriber, opts Options) broker.Handl
|
|||||||
config := n.opts
|
config := n.opts
|
||||||
n.RUnlock()
|
n.RUnlock()
|
||||||
if config.Logger.V(logger.ErrorLevel) {
|
if config.Logger.V(logger.ErrorLevel) {
|
||||||
config.Logger.Error("panic recovered: ", r)
|
config.Logger.Error(n.opts.Context, "panic recovered: ", r)
|
||||||
config.Logger.Error(string(debug.Stack()))
|
config.Logger.Error(n.opts.Context, string(debug.Stack()))
|
||||||
}
|
}
|
||||||
err = errors.InternalServerError(n.opts.Name+".subscriber", "panic recovered: %v", r)
|
err = errors.InternalServerError(n.opts.Name+".subscriber", "panic recovered: %v", r)
|
||||||
}
|
}
|
||||||
|
@ -154,7 +154,7 @@ func (s *service) Start() error {
|
|||||||
s.RUnlock()
|
s.RUnlock()
|
||||||
|
|
||||||
if config.Logger.V(logger.InfoLevel) {
|
if config.Logger.V(logger.InfoLevel) {
|
||||||
config.Logger.Infof("starting [service] %s", s.Name())
|
config.Logger.Infof(s.opts.Context, "starting [service] %s", s.Name())
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, fn := range s.opts.BeforeStart {
|
for _, fn := range s.opts.BeforeStart {
|
||||||
@ -215,7 +215,7 @@ func (s *service) Stop() error {
|
|||||||
s.RUnlock()
|
s.RUnlock()
|
||||||
|
|
||||||
if config.Logger.V(logger.InfoLevel) {
|
if config.Logger.V(logger.InfoLevel) {
|
||||||
config.Logger.Infof("stoppping [service] %s", s.Name())
|
config.Logger.Infof(s.opts.Context, "stoppping [service] %s", s.Name())
|
||||||
}
|
}
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package auth
|
package auth
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
@ -26,7 +27,7 @@ func Verify(a auth.Auth) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if logger.V(logger.DebugLevel) {
|
if logger.V(logger.DebugLevel) {
|
||||||
logger.Debug("Auth [%v] Generated an auth account: %s", a.String())
|
logger.Debug(context.TODO(), "Auth [%v] Generated an auth account: %s", a.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
accID = acc.ID
|
accID = acc.ID
|
||||||
@ -68,7 +69,7 @@ func Verify(a auth.Auth) error {
|
|||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if logger.V(logger.WarnLevel) {
|
if logger.V(logger.WarnLevel) {
|
||||||
logger.Warn("[Auth] Error refreshing token: %v", err)
|
logger.Warn(context.TODO(), "[Auth] Error refreshing token: %v", err)
|
||||||
}
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
@ -219,7 +219,7 @@ func (r *Request) Do() *Response {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.Debug("[Kubernetes] %v %v", req.Method, req.URL.String())
|
logger.Debug(context.TODO(), "[Kubernetes] %v %v", req.Method, req.URL.String())
|
||||||
res, err := r.client.Do(req)
|
res, err := r.client.Do(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return &Response{
|
return &Response{
|
||||||
|
@ -3,6 +3,7 @@ package client
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"context"
|
||||||
"crypto/tls"
|
"crypto/tls"
|
||||||
"errors"
|
"errors"
|
||||||
"io"
|
"io"
|
||||||
@ -228,7 +229,7 @@ func (c *client) Watch(r *Resource, opts ...WatchOption) (Watcher, error) {
|
|||||||
// NewService returns default micro kubernetes service definition
|
// NewService returns default micro kubernetes service definition
|
||||||
func NewService(name, version, typ, namespace string) *Service {
|
func NewService(name, version, typ, namespace string) *Service {
|
||||||
if logger.V(logger.TraceLevel) {
|
if logger.V(logger.TraceLevel) {
|
||||||
logger.Trace("kubernetes default service: name: %s, version: %s", name, version)
|
logger.Trace(context.TODO(), "kubernetes default service: name: %s, version: %s", name, version)
|
||||||
}
|
}
|
||||||
|
|
||||||
Labels := map[string]string{
|
Labels := map[string]string{
|
||||||
@ -271,7 +272,7 @@ func NewService(name, version, typ, namespace string) *Service {
|
|||||||
// NewService returns default micro kubernetes deployment definition
|
// NewService returns default micro kubernetes deployment definition
|
||||||
func NewDeployment(name, version, typ, namespace string) *Deployment {
|
func NewDeployment(name, version, typ, namespace string) *Deployment {
|
||||||
if logger.V(logger.TraceLevel) {
|
if logger.V(logger.TraceLevel) {
|
||||||
logger.Trace("kubernetes default deployment: name: %s, version: %s", name, version)
|
logger.Trace(context.TODO(), "kubernetes default deployment: name: %s, version: %s", name, version)
|
||||||
}
|
}
|
||||||
|
|
||||||
Labels := map[string]string{
|
Labels := map[string]string{
|
||||||
@ -363,21 +364,21 @@ func NewClusterClient() *client {
|
|||||||
|
|
||||||
s, err := os.Stat(serviceAccountPath)
|
s, err := os.Stat(serviceAccountPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Fatal(err.Error())
|
logger.Fatal(context.TODO(), err.Error())
|
||||||
}
|
}
|
||||||
if s == nil || !s.IsDir() {
|
if s == nil || !s.IsDir() {
|
||||||
logger.Fatal("service account not found")
|
logger.Fatal(context.TODO(), "service account not found")
|
||||||
}
|
}
|
||||||
|
|
||||||
token, err := ioutil.ReadFile(path.Join(serviceAccountPath, "token"))
|
token, err := ioutil.ReadFile(path.Join(serviceAccountPath, "token"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Fatal(err.Error())
|
logger.Fatal(context.TODO(), err.Error())
|
||||||
}
|
}
|
||||||
t := string(token)
|
t := string(token)
|
||||||
|
|
||||||
crt, err := CertPoolFromFile(path.Join(serviceAccountPath, "ca.crt"))
|
crt, err := CertPoolFromFile(path.Join(serviceAccountPath, "ca.crt"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Fatal(err.Error())
|
logger.Fatal(context.TODO(), err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
c := &http.Client{
|
c := &http.Client{
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package mdns
|
package mdns
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"net"
|
"net"
|
||||||
@ -61,6 +62,8 @@ type Config struct {
|
|||||||
// LocalhostChecking if enabled asks the server to also send responses to 0.0.0.0 if the target IP
|
// LocalhostChecking if enabled asks the server to also send responses to 0.0.0.0 if the target IP
|
||||||
// is this host (as defined by GetMachineIP). Useful in case machine is on a VPN which blocks comms on non standard ports
|
// is this host (as defined by GetMachineIP). Useful in case machine is on a VPN which blocks comms on non standard ports
|
||||||
LocalhostChecking bool
|
LocalhostChecking bool
|
||||||
|
|
||||||
|
Context context.Context
|
||||||
}
|
}
|
||||||
|
|
||||||
// Server is an mDNS server used to listen for mDNS queries and respond if we
|
// Server is an mDNS server used to listen for mDNS queries and respond if we
|
||||||
@ -143,6 +146,10 @@ func NewServer(config *Config) (*Server, error) {
|
|||||||
outboundIP: ipFunc(),
|
outboundIP: ipFunc(),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if s.config.Context == nil {
|
||||||
|
s.config.Context = context.Background()
|
||||||
|
}
|
||||||
|
|
||||||
go s.recv(s.ipv4List)
|
go s.recv(s.ipv4List)
|
||||||
go s.recv(s.ipv6List)
|
go s.recv(s.ipv6List)
|
||||||
|
|
||||||
@ -196,7 +203,7 @@ func (s *Server) recv(c *net.UDPConn) {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if err := s.parsePacket(buf[:n], from); err != nil {
|
if err := s.parsePacket(buf[:n], from); err != nil {
|
||||||
logger.Error("[ERR] mdns: Failed to handle query: %v", err)
|
logger.Errorf(s.config.Context, "[ERR] mdns: Failed to handle query: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -205,7 +212,7 @@ func (s *Server) recv(c *net.UDPConn) {
|
|||||||
func (s *Server) parsePacket(packet []byte, from net.Addr) error {
|
func (s *Server) parsePacket(packet []byte, from net.Addr) error {
|
||||||
var msg dns.Msg
|
var msg dns.Msg
|
||||||
if err := msg.Unpack(packet); err != nil {
|
if err := msg.Unpack(packet); err != nil {
|
||||||
logger.Error("[ERR] mdns: Failed to unpack packet: %v", err)
|
logger.Errorf(s.config.Context, "[ERR] mdns: Failed to unpack packet: %v", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
// TODO: This is a bit of a hack
|
// TODO: This is a bit of a hack
|
||||||
@ -384,7 +391,7 @@ func (s *Server) probe() {
|
|||||||
|
|
||||||
for i := 0; i < 3; i++ {
|
for i := 0; i < 3; i++ {
|
||||||
if err := s.SendMulticast(q); err != nil {
|
if err := s.SendMulticast(q); err != nil {
|
||||||
logger.Error("[ERR] mdns: failed to send probe: %v", err)
|
logger.Errorf(s.config.Context, "[ERR] mdns: failed to send probe: %v", err)
|
||||||
}
|
}
|
||||||
time.Sleep(time.Duration(randomizer.Intn(250)) * time.Millisecond)
|
time.Sleep(time.Duration(randomizer.Intn(250)) * time.Millisecond)
|
||||||
}
|
}
|
||||||
@ -410,7 +417,7 @@ func (s *Server) probe() {
|
|||||||
timer := time.NewTimer(timeout)
|
timer := time.NewTimer(timeout)
|
||||||
for i := 0; i < 3; i++ {
|
for i := 0; i < 3; i++ {
|
||||||
if err := s.SendMulticast(resp); err != nil {
|
if err := s.SendMulticast(resp); err != nil {
|
||||||
logger.Error("[ERR] mdns: failed to send announcement:", err.Error())
|
logger.Errorf(s.config.Context, "[ERR] mdns: failed to send announcement: %v", err)
|
||||||
}
|
}
|
||||||
select {
|
select {
|
||||||
case <-timer.C:
|
case <-timer.C:
|
||||||
|
@ -3,6 +3,7 @@ package router
|
|||||||
// download from https://raw.githubusercontent.com/grpc-ecosystem/grpc-gateway/master/protoc-gen-grpc-gateway/httprule/parse.go
|
// download from https://raw.githubusercontent.com/grpc-ecosystem/grpc-gateway/master/protoc-gen-grpc-gateway/httprule/parse.go
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
@ -103,20 +104,20 @@ type parser struct {
|
|||||||
// topLevelSegments is the target of this parser.
|
// topLevelSegments is the target of this parser.
|
||||||
func (p *parser) topLevelSegments() ([]segment, error) {
|
func (p *parser) topLevelSegments() ([]segment, error) {
|
||||||
if logger.V(logger.TraceLevel) {
|
if logger.V(logger.TraceLevel) {
|
||||||
logger.Debug("Parsing %q", p.tokens)
|
logger.Debug(context.TODO(), "Parsing %q", p.tokens)
|
||||||
}
|
}
|
||||||
segs, err := p.segments()
|
segs, err := p.segments()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if logger.V(logger.TraceLevel) {
|
if logger.V(logger.TraceLevel) {
|
||||||
logger.Trace("accept segments: %q; %q", p.accepted, p.tokens)
|
logger.Trace(context.TODO(), "accept segments: %q; %q", p.accepted, p.tokens)
|
||||||
}
|
}
|
||||||
if _, err := p.accept(typeEOF); err != nil {
|
if _, err := p.accept(typeEOF); err != nil {
|
||||||
return nil, fmt.Errorf("unexpected token %q after segments %q", p.tokens[0], strings.Join(p.accepted, ""))
|
return nil, fmt.Errorf("unexpected token %q after segments %q", p.tokens[0], strings.Join(p.accepted, ""))
|
||||||
}
|
}
|
||||||
if logger.V(logger.TraceLevel) {
|
if logger.V(logger.TraceLevel) {
|
||||||
logger.Trace("accept eof: %q; %q", p.accepted, p.tokens)
|
logger.Trace(context.TODO(), "accept eof: %q; %q", p.accepted, p.tokens)
|
||||||
}
|
}
|
||||||
return segs, nil
|
return segs, nil
|
||||||
}
|
}
|
||||||
@ -128,7 +129,7 @@ func (p *parser) segments() ([]segment, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if logger.V(logger.TraceLevel) {
|
if logger.V(logger.TraceLevel) {
|
||||||
logger.Trace("accept segment: %q; %q", p.accepted, p.tokens)
|
logger.Trace(context.TODO(), "accept segment: %q; %q", p.accepted, p.tokens)
|
||||||
}
|
}
|
||||||
segs := []segment{s}
|
segs := []segment{s}
|
||||||
for {
|
for {
|
||||||
@ -141,7 +142,7 @@ func (p *parser) segments() ([]segment, error) {
|
|||||||
}
|
}
|
||||||
segs = append(segs, s)
|
segs = append(segs, s)
|
||||||
if logger.V(logger.TraceLevel) {
|
if logger.V(logger.TraceLevel) {
|
||||||
logger.Trace("accept segment: %q; %q", p.accepted, p.tokens)
|
logger.Trace(context.TODO(), "accept segment: %q; %q", p.accepted, p.tokens)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package router
|
|||||||
// download from https://raw.githubusercontent.com/grpc-ecosystem/grpc-gateway/master/protoc-gen-grpc-gateway/httprule/parse_test.go
|
// download from https://raw.githubusercontent.com/grpc-ecosystem/grpc-gateway/master/protoc-gen-grpc-gateway/httprule/parse_test.go
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"reflect"
|
"reflect"
|
||||||
@ -316,6 +317,6 @@ func TestParseSegmentsWithErrors(t *testing.T) {
|
|||||||
t.Errorf("parser{%q}.segments() succeeded; want InvalidTemplateError; accepted %#v", spec.tokens, segs)
|
t.Errorf("parser{%q}.segments() succeeded; want InvalidTemplateError; accepted %#v", spec.tokens, segs)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
logger.Info(err.Error())
|
logger.Info(context.TODO(), err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package router
|
|||||||
// download from https://raw.githubusercontent.com/grpc-ecosystem/grpc-gateway/master/runtime/pattern.go
|
// download from https://raw.githubusercontent.com/grpc-ecosystem/grpc-gateway/master/runtime/pattern.go
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
@ -63,7 +64,7 @@ func NewPattern(version int, ops []int, pool []string, verb string, opts ...Patt
|
|||||||
|
|
||||||
if version != 1 {
|
if version != 1 {
|
||||||
if logger.V(logger.DebugLevel) {
|
if logger.V(logger.DebugLevel) {
|
||||||
logger.Debug("unsupported version: %d", version)
|
logger.Debug(context.TODO(), "unsupported version: %d", version)
|
||||||
}
|
}
|
||||||
return Pattern{}, ErrInvalidPattern
|
return Pattern{}, ErrInvalidPattern
|
||||||
}
|
}
|
||||||
@ -71,7 +72,7 @@ func NewPattern(version int, ops []int, pool []string, verb string, opts ...Patt
|
|||||||
l := len(ops)
|
l := len(ops)
|
||||||
if l%2 != 0 {
|
if l%2 != 0 {
|
||||||
if logger.V(logger.DebugLevel) {
|
if logger.V(logger.DebugLevel) {
|
||||||
logger.Debug("odd number of ops codes: %d", l)
|
logger.Debug(context.TODO(), "odd number of ops codes: %d", l)
|
||||||
}
|
}
|
||||||
return Pattern{}, ErrInvalidPattern
|
return Pattern{}, ErrInvalidPattern
|
||||||
}
|
}
|
||||||
@ -96,7 +97,7 @@ func NewPattern(version int, ops []int, pool []string, verb string, opts ...Patt
|
|||||||
case OpPushM:
|
case OpPushM:
|
||||||
if pushMSeen {
|
if pushMSeen {
|
||||||
if logger.V(logger.TraceLevel) {
|
if logger.V(logger.TraceLevel) {
|
||||||
logger.Trace("pushM appears twice")
|
logger.Trace(context.TODO(), "pushM appears twice")
|
||||||
}
|
}
|
||||||
return Pattern{}, ErrInvalidPattern
|
return Pattern{}, ErrInvalidPattern
|
||||||
}
|
}
|
||||||
@ -105,7 +106,7 @@ func NewPattern(version int, ops []int, pool []string, verb string, opts ...Patt
|
|||||||
case OpLitPush:
|
case OpLitPush:
|
||||||
if op.operand < 0 || len(pool) <= op.operand {
|
if op.operand < 0 || len(pool) <= op.operand {
|
||||||
if logger.V(logger.TraceLevel) {
|
if logger.V(logger.TraceLevel) {
|
||||||
logger.Trace("negative literal index: %d", op.operand)
|
logger.Trace(context.TODO(), "negative literal index: %d", op.operand)
|
||||||
}
|
}
|
||||||
return Pattern{}, ErrInvalidPattern
|
return Pattern{}, ErrInvalidPattern
|
||||||
}
|
}
|
||||||
@ -116,14 +117,14 @@ func NewPattern(version int, ops []int, pool []string, verb string, opts ...Patt
|
|||||||
case OpConcatN:
|
case OpConcatN:
|
||||||
if op.operand <= 0 {
|
if op.operand <= 0 {
|
||||||
if logger.V(logger.TraceLevel) {
|
if logger.V(logger.TraceLevel) {
|
||||||
logger.Trace("negative concat size: %d", op.operand)
|
logger.Trace(context.TODO(), "negative concat size: %d", op.operand)
|
||||||
}
|
}
|
||||||
return Pattern{}, ErrInvalidPattern
|
return Pattern{}, ErrInvalidPattern
|
||||||
}
|
}
|
||||||
stack -= op.operand
|
stack -= op.operand
|
||||||
if stack < 0 {
|
if stack < 0 {
|
||||||
if logger.V(logger.TraceLevel) {
|
if logger.V(logger.TraceLevel) {
|
||||||
logger.Trace("stack underflow")
|
logger.Trace(context.TODO(), "stack underflow")
|
||||||
}
|
}
|
||||||
return Pattern{}, ErrInvalidPattern
|
return Pattern{}, ErrInvalidPattern
|
||||||
}
|
}
|
||||||
@ -131,7 +132,7 @@ func NewPattern(version int, ops []int, pool []string, verb string, opts ...Patt
|
|||||||
case OpCapture:
|
case OpCapture:
|
||||||
if op.operand < 0 || len(pool) <= op.operand {
|
if op.operand < 0 || len(pool) <= op.operand {
|
||||||
if logger.V(logger.TraceLevel) {
|
if logger.V(logger.TraceLevel) {
|
||||||
logger.Trace("variable name index out of bound: %d", op.operand)
|
logger.Trace(context.TODO(), "variable name index out of bound: %d", op.operand)
|
||||||
}
|
}
|
||||||
return Pattern{}, ErrInvalidPattern
|
return Pattern{}, ErrInvalidPattern
|
||||||
}
|
}
|
||||||
@ -141,13 +142,13 @@ func NewPattern(version int, ops []int, pool []string, verb string, opts ...Patt
|
|||||||
stack--
|
stack--
|
||||||
if stack < 0 {
|
if stack < 0 {
|
||||||
if logger.V(logger.DebugLevel) {
|
if logger.V(logger.DebugLevel) {
|
||||||
logger.Trace("stack underflow")
|
logger.Trace(context.TODO(), "stack underflow")
|
||||||
}
|
}
|
||||||
return Pattern{}, ErrInvalidPattern
|
return Pattern{}, ErrInvalidPattern
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
if logger.V(logger.DebugLevel) {
|
if logger.V(logger.DebugLevel) {
|
||||||
logger.Trace("invalid opcode: %d", op.code)
|
logger.Trace(context.TODO(), "invalid opcode: %d", op.code)
|
||||||
}
|
}
|
||||||
return Pattern{}, ErrInvalidPattern
|
return Pattern{}, ErrInvalidPattern
|
||||||
}
|
}
|
||||||
@ -172,7 +173,7 @@ func NewPattern(version int, ops []int, pool []string, verb string, opts ...Patt
|
|||||||
func MustPattern(p Pattern, err error) Pattern {
|
func MustPattern(p Pattern, err error) Pattern {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if logger.V(logger.FatalLevel) {
|
if logger.V(logger.FatalLevel) {
|
||||||
logger.Fatal("Pattern initialization failed: %v", err)
|
logger.Fatal(context.TODO(), "Pattern initialization failed: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return p
|
return p
|
||||||
|
Loading…
Reference in New Issue
Block a user