@@ -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