greet() performs the necessary steps for http2 connection establishment on the server side.
()
| 48 | // greet() performs the necessary steps for http2 connection establishment on |
| 49 | // the server side. |
| 50 | func (ct *clientTester) greet() { |
| 51 | ct.wantClientPreface() |
| 52 | ct.wantSettingsFrame() |
| 53 | ct.writeSettingsFrame() |
| 54 | ct.writeSettingsAck() |
| 55 | |
| 56 | for { |
| 57 | f, err := ct.fr.ReadFrame() |
| 58 | if err != nil { |
| 59 | ct.t.Errorf("error reading frame from client side: %v", err) |
| 60 | } |
| 61 | switch f := f.(type) { |
| 62 | case *http2.SettingsFrame: |
| 63 | if f.IsAck() { // HTTP/2 handshake completed. |
| 64 | return |
| 65 | } |
| 66 | default: |
| 67 | ct.t.Errorf("during greet, unexpected frame type %T", f) |
| 68 | } |
| 69 | } |
| 70 | } |
| 71 | |
| 72 | func (ct *clientTester) wantClientPreface() { |
| 73 | preface := make([]byte, len(clientPreface)) |
no test coverage detected