]> Sergey Matveev's repositories - tofuproxy.git/blob - rounds/denyFonts.go
Raised copyright years
[tofuproxy.git] / rounds / denyFonts.go
1 /*
2 tofuproxy -- flexible HTTP/HTTPS proxy, TLS terminator, X.509 TOFU
3              manager, WARC/geminispace browser
4 Copyright (C) 2021-2022 Sergey Matveev <stargrave@stargrave.org>
5
6 This program is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, version 3 of the License.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 */
18
19 package rounds
20
21 import (
22         "fmt"
23         "net/http"
24
25         "go.stargrave.org/tofuproxy/fifos"
26 )
27
28 func RoundDenyFonts(
29         host string,
30         resp *http.Response,
31         w http.ResponseWriter,
32         req *http.Request,
33 ) (bool, error) {
34         switch resp.Header.Get("Content-Type") {
35         case "application/font-woff", "application/font-sfnt":
36                 // Those are deprecated types
37                 fallthrough
38         case "font/otf", "font/ttf", "font/woff", "font/woff2":
39                 http.NotFound(w, req)
40                 fifos.LogVarious <- fmt.Sprintf("%s %s\tdeny fonts", req.Method, req.URL)
41                 resp.Body.Close()
42                 return false, nil
43         }
44         return true, nil
45 }