diff options
Diffstat (limited to 'libgemini.go')
| -rw-r--r-- | libgemini.go | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/libgemini.go b/libgemini.go index 56e1463..20fc137 100644 --- a/libgemini.go +++ b/libgemini.go | |||
| @@ -5,6 +5,7 @@ import ( | |||
| 5 | "crypto/tls" | 5 | "crypto/tls" |
| 6 | "errors" | 6 | "errors" |
| 7 | "io" | 7 | "io" |
| 8 | "mime" | ||
| 8 | "net/url" | 9 | "net/url" |
| 9 | "regexp" | 10 | "regexp" |
| 10 | "strconv" | 11 | "strconv" |
| @@ -134,13 +135,14 @@ func ParseGeminiHeader(line string) (header *GeminiHeader, err error) { | |||
| 134 | meta := matches[2] | 135 | meta := matches[2] |
| 135 | 136 | ||
| 136 | if int(status/10) == 2 { | 137 | if int(status/10) == 2 { |
| 137 | if meta == "" { | 138 | mediaType, params, err := mime.ParseMediaType(meta) |
| 138 | meta = DEFAULT_MIME + ";charset=" + DEFAULT_CHARSET | ||
| 139 | } | ||
| 140 | 139 | ||
| 141 | mimeType := MimeTypePattern.FindString(meta) | 140 | if err != nil { |
| 142 | if strings.HasPrefix(mimeType, "text/") && MimeCharsetPattern.FindString(meta) == "" { | 141 | meta = DEFAULT_MIME + ";charset=" + DEFAULT_CHARSET |
| 143 | meta += ";charset=" + DEFAULT_CHARSET | 142 | } else if strings.HasPrefix(mediaType, "text/") { |
| 143 | if _, ok := params["charset"]; !ok { | ||
| 144 | meta += ";charset=" + DEFAULT_CHARSET | ||
| 145 | } | ||
| 144 | } | 146 | } |
| 145 | } | 147 | } |
| 146 | 148 | ||
