--- /dev/null
+# Description
+
+Test http2 deflate decompression
+
+# PCAP
+
+The pcap comes from running dummy HTTP2 server with `go run server.go`
+and client `curl -H 'Accept-Encoding: deflate' --http2 127.0.0.1:8080/`
--- /dev/null
+package main
+
+import (
+ "compress/flate"
+ "fmt"
+ "golang.org/x/net/http2"
+ "golang.org/x/net/http2/h2c"
+ "net/http"
+)
+
+func main() {
+ h2s := &http2.Server{}
+
+ handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ h := w.Header()
+ h["content-encoding"] = []string{"deflate"}
+ fw, err := flate.NewWriter(w, 1)
+ if err != nil {
+ fmt.Fprintf(w, "FAIL %s, %v, http: %v", err, r.URL.Path, r.TLS == nil)
+ }
+ fmt.Fprintf(fw, "Hello, %v, http: %v", r.URL.Path, r.TLS == nil)
+ fw.Flush()
+ })
+
+ server := &http.Server{
+ Addr: "0.0.0.0:8080",
+ Handler: h2c.NewHandler(handler, h2s),
+ }
+
+ fmt.Printf("Listening [0.0.0.0:8080]...\n")
+ err := server.ListenAndServe()
+ fmt.Printf("lol %s", err)
+}
--- /dev/null
+requires:
+ features:
+ - HAVE_LIBJANSSON
+ min-version: 6.0.0
+
+# disables checksum verification
+args:
+ - -k none --set app-layer.protocols.http2.enabled=true
+
+checks:
+
+ # Check that there is one file event with decompressed length.
+ - filter:
+ count: 1
+ match:
+ event_type: fileinfo
+ http2.length: 30
+ fileinfo.size: 20
+ - filter:
+ count: 0
+ match:
+ event_type: anomaly