[fix] case insensitive http-equiv refresh redirect handling - fixes #5

git-svn-id: file:///srv/svn/repo/yukari/trunk@14 f3bd38d9-da89-464d-a02a-eb04e43141b5
This commit is contained in:
asciimoo 2016-10-27 14:47:30 +00:00
parent fba852d154
commit 5584b71ac7

View File

@ -474,10 +474,11 @@ func sanitizeMetaAttrs(rc *RequestConfig, out io.Writer, attrs [][][]byte) {
}
}
if bytes.Equal(http_equiv, []byte("refresh")) && bytes.Index(content, []byte(";url=")) != -1 {
parts := bytes.SplitN(content, []byte(";url="), 2)
if uri, err := proxifyURI(rc, string(parts[1])); err == nil {
fmt.Fprintf(out, ` http-equiv="refresh" content="%s;%s"`, parts[0], uri)
urlIndex := bytes.Index(bytes.ToLower(content), []byte("url="))
if bytes.Equal(http_equiv, []byte("refresh")) && urlIndex != -1 {
contentUrl := content[urlIndex+4:]
if uri, err := proxifyURI(rc, string(contentUrl)); err == nil {
fmt.Fprintf(out, ` http-equiv="refresh" content="%surl=%s"`, content[:urlIndex], uri)
}
} else {
sanitizeAttrs(rc, out, attrs)