Commit e99677b9 authored by voutasaurus's avatar voutasaurus Committed by Brad Fitzpatrick

http2/h2i: strip port from server name in client hello

The existing implementation passes hostname:port to the ServerName
field of the client's TLS config. This is passed to the server
incorrectly as the ServerName in the client hello. This change adds a
function to strip the port from the host when passing it to the TLS
config.

Change-Id: I03714ffc7f21d87c375f8f07392ef02bbe76da66
Reviewed-on: https://go-review.googlesource.com/34728
Run-TryBot: Matt Layher <mdlayher@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
parent 9e26e06f
...@@ -88,6 +88,14 @@ func withPort(host string) string { ...@@ -88,6 +88,14 @@ func withPort(host string) string {
return host return host
} }
// withoutPort strips the port from addr if present.
func withoutPort(addr string) string {
if h, _, err := net.SplitHostPort(addr); err == nil {
return h
}
return addr
}
// h2i is the app's state. // h2i is the app's state.
type h2i struct { type h2i struct {
host string host string
...@@ -134,7 +142,7 @@ func main() { ...@@ -134,7 +142,7 @@ func main() {
func (app *h2i) Main() error { func (app *h2i) Main() error {
cfg := &tls.Config{ cfg := &tls.Config{
ServerName: app.host, ServerName: withoutPort(app.host),
NextProtos: strings.Split(*flagNextProto, ","), NextProtos: strings.Split(*flagNextProto, ","),
InsecureSkipVerify: *flagInsecure, InsecureSkipVerify: *flagInsecure,
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment