]> Cypherpunks repositories - gostls13.git/commitdiff
net/http: Detect MIME type of v5 RAR archives
authorbakape <bakape@gmail.com>
Mon, 18 Mar 2019 19:53:41 +0000 (19:53 +0000)
committerBrad Fitzpatrick <bradfitz@golang.org>
Mon, 18 Mar 2019 20:32:57 +0000 (20:32 +0000)
Change-Id: Id9dedc861523e2dafe0e67f70862973124fa07b3
GitHub-Last-Rev: b662561f1980dff9861dd8a738c75a03baa72681
GitHub-Pull-Request: golang/go#30909
Reviewed-on: https://go-review.googlesource.com/c/go/+/168039
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/net/http/sniff.go
src/net/http/sniff_test.go

index f03f723542ef304d57cde02655cfa5945df7e1f8..114a88ccba2c2d6b3c1234d8903694d1d932c3f8 100644 (file)
@@ -185,7 +185,8 @@ var sniffSignatures = []sniffSig{
        // Archive types
        &exactSig{[]byte("\x1F\x8B\x08"), "application/x-gzip"},
        &exactSig{[]byte("PK\x03\x04"), "application/zip"},
-       &exactSig{[]byte("Rar \x1A\x07\x00"), "application/x-rar-compressed"},
+       &exactSig{[]byte("Rar \x1A\x07\x00"), "application/x-rar-compressed"},     // RAR v1.5-v4.0
+       &exactSig{[]byte("Rar \x1A\x07\x01\x00"), "application/x-rar-compressed"}, // RAR v5+
 
        &exactSig{[]byte("\x00\x61\x73\x6D"), "application/wasm"},
 
index b752f2338210b3e3e063e89fe3ac615702a7e6b7..08ae79c28501396129022c458a0bec5831411713 100644 (file)
@@ -72,6 +72,10 @@ var sniffTests = []struct {
        {"woff sample  I", []byte("\x77\x4f\x46\x46\x00\x01\x00\x00\x00\x00\x30\x54\x00\x0d\x00\x00"), "font/woff"},
        {"woff2 sample", []byte("\x77\x4f\x46\x32\x00\x01\x00\x00\x00"), "font/woff2"},
        {"wasm sample", []byte("\x00\x61\x73\x6d\x01\x00"), "application/wasm"},
+
+       // Archive types
+       {"RAR v1.5-v4.0", []byte("Rar \x1A\x07\x00"), "application/x-rar-compressed"},
+       {"RAR v5+", []byte("Rar \x1A\x07\x01\x00"), "application/x-rar-compressed"},
 }
 
 func TestDetectContentType(t *testing.T) {