Skip to content

Commit 5198823

Browse files
committed
Fix brotli support
1 parent a4425e1 commit 5198823

File tree

1 file changed

+43
-49
lines changed

1 file changed

+43
-49
lines changed

main.go

Lines changed: 43 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -171,67 +171,61 @@ func setContentType(r *http.Request, resp *http.Response) {
171171
mime := ""
172172

173173
// If the request already has an extension, fetch the mime via extension
174-
if ext != "" {
175-
resp.Header.Set("Content-Type", serverSettings.ExtMimeTypes[ext[1:]])
176-
mime = serverSettings.ExtMimeTypes[ext[1:]]
177-
if mime != "" && len(ext) > 1 {
178-
resp.Header.Set("Content-Type", mime)
179-
e := ext[1:]
180-
// If pre-compressed set encoding type
181-
for _, element := range serverSettings.ExtGzippeddTypes {
182-
if element == e {
183-
resp.Header.Set("Content-Encoding", "gzip")
184-
break // String found, no need to continue iterating
185-
}
174+
if ext != "" && len(ext) > 1 {
175+
e := ext[1:]
176+
mime = serverSettings.ExtMimeTypes[e]
177+
178+
// Check if gzipped
179+
for _, element := range serverSettings.ExtGzippeddTypes {
180+
if element == e {
181+
resp.Header.Set("Content-Encoding", "gzip")
182+
break // String found, no need to continue iterating
186183
}
184+
}
187185

188-
for _, element := range serverSettings.ExtBrotliTypes {
189-
if element == e {
190-
resp.Header.Set("Content-Encoding", "br")
191-
// Try and use the previous ending for content type, if exists
192-
prevExt := filepath.Ext(strings.TrimSuffix(strings.ToLower(fname), "."+e))
193-
if prevExt != "" {
194-
prevMime := serverSettings.ExtMimeTypes[prevExt[1:]]
195-
if prevMime != "" {
196-
resp.Header.Set("Content-Type", prevMime)
197-
mime = prevMime
198-
}
186+
// Check if brotli compressed
187+
for _, element := range serverSettings.ExtBrotliTypes {
188+
if element == e {
189+
resp.Header.Set("Content-Encoding", "br")
190+
// Try and use the previous ending for content type, if exists
191+
prevExt := filepath.Ext(strings.TrimSuffix(strings.ToLower(fname), "."+e))
192+
if prevExt != "" {
193+
prevMime := serverSettings.ExtMimeTypes[prevExt[1:]]
194+
if prevMime != "" {
195+
mime = prevMime
199196
}
200-
break;
201197
}
198+
break
202199
}
203200
}
204201
}
205202

206-
// If the response has an extension, try and fetch the mime for that via extension
207-
if mime == "" && rext != "" {
208-
resp.Header.Set("Content-Type", serverSettings.ExtMimeTypes[rext[1:]])
209-
mime = serverSettings.ExtMimeTypes[rext[1:]]
210-
if mime != "" && len(rext) > 1 {
211-
resp.Header.Set("Content-Type", mime)
212-
e := rext[1:]
213-
// If pre-compressed set encoding type
214-
for _, element := range serverSettings.ExtGzippeddTypes {
215-
if element == e {
216-
resp.Header.Set("Content-Encoding", "gzip")
217-
break // String found, no need to continue iterating
218-
}
203+
// Sometimes we're given the filename via a header instead, check that too
204+
if mime == "" && rext != "" && len(rext) > 1 {
205+
e := rext[1:]
206+
mime = serverSettings.ExtMimeTypes[e]
207+
208+
// Check if gzipped
209+
for _, element := range serverSettings.ExtGzippeddTypes {
210+
if element == e {
211+
resp.Header.Set("Content-Encoding", "gzip")
212+
break // String found, no need to continue iterating
219213
}
214+
}
220215

221-
for _, element := range serverSettings.ExtBrotliTypes {
222-
if element == e {
223-
resp.Header.Set("Content-Encoding", "br")
224-
// Try and use the previous ending for content type, if exists
225-
prevExt := filepath.Ext(strings.TrimSuffix(strings.ToLower(fnameHeader), "."+e))
226-
if prevExt != "" {
227-
prevMime := serverSettings.ExtMimeTypes[prevExt[1:]]
228-
if prevMime != "" {
229-
resp.Header.Set("Content-Type", prevMime)
230-
mime = prevMime
231-
}
216+
// Check if brotli compressed
217+
for _, element := range serverSettings.ExtBrotliTypes {
218+
if element == e {
219+
resp.Header.Set("Content-Encoding", "br")
220+
// Try and use the previous ending for content type, if exists
221+
prevExt := filepath.Ext(strings.TrimSuffix(strings.ToLower(fnameHeader), "."+e))
222+
if prevExt != "" {
223+
prevMime := serverSettings.ExtMimeTypes[prevExt[1:]]
224+
if prevMime != "" {
225+
mime = prevMime
232226
}
233-
break;
234227
}
228+
break
235229
}
236230
}
237231
}

0 commit comments

Comments
 (0)