gateway: fix the dns discovery method

strip the scheme from the endpoints to have a clean hostname for TCP proxy

Fixes #7452
This commit is contained in:
Boris Dudelsack 2017-03-08 19:00:11 +01:00
parent 320768b2e9
commit 0d48fc5511

View File

@ -17,6 +17,7 @@ package etcdmain
import (
"fmt"
"net"
"net/url"
"os"
"time"
@ -77,6 +78,20 @@ func newGatewayStartCommand() *cobra.Command {
return &cmd
}
func stripSchema(eps []string) []string {
var endpoints []string
for _, ep := range eps {
if u, err := url.Parse(ep); err == nil && u.Host != "" {
ep = u.Host
}
endpoints = append(endpoints, ep)
}
return endpoints
}
func startGateway(cmd *cobra.Command, args []string) {
endpoints := gatewayEndpoints
if gatewayDNSCluster != "" {
@ -101,6 +116,9 @@ func startGateway(cmd *cobra.Command, args []string) {
}
}
// Strip the schema from the endpoints because we start just a TCP proxy
endpoints = stripSchema(endpoints)
if len(endpoints) == 0 {
plog.Fatalf("no endpoints found")
}