fix: vendor backend default endpoint port

pull/268/head
zijiren233 2 years ago
parent 1b5a72d652
commit 11faef82cc

@ -7,7 +7,9 @@ import (
"errors" "errors"
"fmt" "fmt"
"maps" "maps"
"net"
"os" "os"
"strings"
"sync" "sync"
"sync/atomic" "sync/atomic"
"time" "time"
@ -485,11 +487,19 @@ func newVendorClients(conns map[string]*BackendConn) (*VendorClients, error) {
} }
func NewGrpcConn(ctx context.Context, conf *model.Backend) (*grpc.ClientConn, error) { func NewGrpcConn(ctx context.Context, conf *model.Backend) (*grpc.ClientConn, error) {
if conf.Endpoint == "" { if err := conf.Validate(); err != nil {
return nil, errors.New("new grpc client failed, endpoint is empty") return nil, err
} }
if conf.Consul.ServiceName != "" && conf.Etcd.ServiceName != "" { _, _, err := net.SplitHostPort(conf.Endpoint)
return nil, errors.New("new grpc client failed, consul and etcd can't be used at the same time") if err != nil {
if !strings.Contains(err.Error(), "missing port in address") {
return nil, err
}
if conf.TLS {
conf.Endpoint += ":443"
} else {
conf.Endpoint += ":80"
}
} }
middlewares := []middleware.Middleware{kcircuitbreaker.Client(kcircuitbreaker.WithCircuitBreaker(func() circuitbreaker.CircuitBreaker { middlewares := []middleware.Middleware{kcircuitbreaker.Client(kcircuitbreaker.WithCircuitBreaker(func() circuitbreaker.CircuitBreaker {
return sre.NewBreaker( return sre.NewBreaker(
@ -551,10 +561,7 @@ func NewGrpcConn(ctx context.Context, conf *model.Backend) (*grpc.ClientConn, er
log.Infof("new grpc client with endpoint: %s", conf.Endpoint) log.Infof("new grpc client with endpoint: %s", conf.Endpoint)
} }
var ( var con *grpc.ClientConn
con *grpc.ClientConn
err error
)
if conf.TLS { if conf.TLS {
var rootCAs *x509.CertPool var rootCAs *x509.CertPool
rootCAs, err = x509.SystemCertPool() rootCAs, err = x509.SystemCertPool()
@ -588,6 +595,17 @@ func NewHttpClientConn(ctx context.Context, conf *model.Backend) (*http.Client,
if err := conf.Validate(); err != nil { if err := conf.Validate(); err != nil {
return nil, err return nil, err
} }
_, _, err := net.SplitHostPort(conf.Endpoint)
if err != nil {
if !strings.Contains(err.Error(), "missing port in address") {
return nil, err
}
if conf.TLS {
conf.Endpoint += ":443"
} else {
conf.Endpoint += ":80"
}
}
middlewares := []middleware.Middleware{kcircuitbreaker.Client(kcircuitbreaker.WithCircuitBreaker(func() circuitbreaker.CircuitBreaker { middlewares := []middleware.Middleware{kcircuitbreaker.Client(kcircuitbreaker.WithCircuitBreaker(func() circuitbreaker.CircuitBreaker {
return sre.NewBreaker( return sre.NewBreaker(
sre.WithRequest(25), sre.WithRequest(25),

Loading…
Cancel
Save