diff --git a/.travis.yml b/.travis.yml index d43e278..4bc48e0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,6 @@ language: go go: - - 1.5 - 1.6 - 1.7 - 1.8 diff --git a/matchers.go b/matchers.go index 485ede8..cfc24c7 100644 --- a/matchers.go +++ b/matchers.go @@ -123,11 +123,23 @@ func HTTP2MatchHeaderFieldSendSettings(name, value string) MatchWriter { func hasHTTP2Preface(r io.Reader) bool { var b [len(http2.ClientPreface)]byte - if _, err := io.ReadFull(r, b[:]); err != nil { - return false - } + last := 0 - return string(b[:]) == http2.ClientPreface + for { + n, err := r.Read(b[last:]) + if err != nil { + return false + } + + last += n + eq := string(b[:last]) == http2.ClientPreface[:last] + if last == len(http2.ClientPreface) { + return eq + } + if !eq { + return false + } + } } func matchHTTP1Field(r io.Reader, name, value string) (matched bool) {