From b9f9c2e42938b4706c831b26be635494fd8a299e Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Fri, 16 Dec 2016 23:15:21 +0700 Subject: [PATCH] save correct hostname in quic Client --- client.go | 19 ++++++------------- client_test.go | 7 +++++++ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/client.go b/client.go index d84d7402..5cd4b52b 100644 --- a/client.go +++ b/client.go @@ -5,7 +5,6 @@ import ( "errors" "math/rand" "net" - "net/url" "strings" "time" @@ -41,18 +40,7 @@ var ( ) // NewClient makes a new client -func NewClient(addr string, cryptoChangeCallback CryptoChangeCallback, versionNegotiateCallback VersionNegotiateCallback) (*Client, error) { - hostname, err := utils.HostnameFromAddr(addr) - if err != nil || len(hostname) == 0 { - return nil, errHostname - } - - p, err := url.Parse(addr) - if err != nil { - return nil, err - } - host := p.Host - +func NewClient(host string, cryptoChangeCallback CryptoChangeCallback, versionNegotiateCallback VersionNegotiateCallback) (*Client, error) { udpAddr, err := net.ResolveUDPAddr("udp", host) if err != nil { return nil, err @@ -67,6 +55,11 @@ func NewClient(addr string, cryptoChangeCallback CryptoChangeCallback, versionNe rand.Seed(time.Now().UTC().UnixNano()) connectionID := protocol.ConnectionID(rand.Int63()) + hostname, _, err := net.SplitHostPort(host) + if err != nil { + return nil, err + } + client := &Client{ addr: udpAddr, conn: conn, diff --git a/client_test.go b/client_test.go index 236c9f35..f350b333 100644 --- a/client_test.go +++ b/client_test.go @@ -41,6 +41,13 @@ var _ = Describe("Client", func() { Expect(err).NotTo(HaveOccurred()) } + It("sets the correct hostname for new clients", func() { + var err error + client, err = NewClient("quic.clemente.io:1337", nil, nil) + Expect(err).ToNot(HaveOccurred()) + Expect(client.hostname).To(Equal("quic.clemente.io")) + }) + It("errors on invalid public header", func() { err := client.handlePacket(nil) Expect(err.(*qerr.QuicError).ErrorCode).To(Equal(qerr.InvalidPacketHeader))