diff options
| -rw-r--r-- | cmd/xedn/main.go | 25 | ||||
| -rw-r--r-- | flake.nix | 1 | ||||
| -rw-r--r-- | go.mod | 1 | ||||
| -rw-r--r-- | go.sum | 2 |
4 files changed, 17 insertions, 12 deletions
diff --git a/cmd/xedn/main.go b/cmd/xedn/main.go index c6d82b3..ca0f7ca 100644 --- a/cmd/xedn/main.go +++ b/cmd/xedn/main.go @@ -18,6 +18,7 @@ import ( "time" "github.com/golang/groupcache" + "github.com/rs/cors" "github.com/sebest/xff" "tailscale.com/tsnet" "tailscale.com/tsweb" @@ -36,7 +37,7 @@ var ( indexHTML []byte ) -const cacheSize = 128 * 1024 * 1024 // 128 mebibytes +const cacheSize = 386 * 1024 * 1024 // 386 mebibytes type CacheData struct { Headers http.Header @@ -67,7 +68,7 @@ var Group = groupcache.NewGroup("b2-bucket", cacheSize, groupcache.GetterFunc( // cache control headers resp.Header.Set("Cache-Control", "max-age:604800") - resp.Header.Set("Expires", time.Now().Add(604800 * time.Second).Format(http.TimeFormat)) + resp.Header.Set("Expires", time.Now().Add(604800*time.Second).Format(http.TimeFormat)) body, err := io.ReadAll(resp.Body) if err != nil { @@ -92,17 +93,17 @@ var Group = groupcache.NewGroup("b2-bucket", cacheSize, groupcache.GetterFunc( )) var ( - cacheGets = expvar.NewInt("cache_gets") - cacheHits = expvar.NewInt("cache_hits") + cacheGets = expvar.NewInt("cache_gets") + cacheHits = expvar.NewInt("cache_hits") cacheErrors = expvar.NewInt("cache_errors") - cacheLoads = expvar.NewInt("cache_loads") + cacheLoads = expvar.NewInt("cache_loads") etagMatches = expvar.NewInt("etag_matches") fileHits = expvar.NewMap("file_hits") referers = expvar.NewMap("referers") - etags map[string]string + etags map[string]string etagLock sync.RWMutex ) @@ -110,7 +111,7 @@ func init() { etags = map[string]string{} } -func refreshMetrics () { +func refreshMetrics() { t := time.NewTicker(10 * time.Second) defer t.Stop() @@ -128,11 +129,11 @@ func main() { go refreshMetrics() - go func () { + go func() { srv := &tsnet.Server{ Hostname: "xedn-" + os.Getenv("FLY_REGION"), - Logf: log.New(io.Discard, "", 0).Printf, - AuthKey: os.Getenv("TS_AUTHKEY"), + Logf: log.New(io.Discard, "", 0).Printf, + AuthKey: os.Getenv("TS_AUTHKEY"), } lis, err := srv.Listen("tcp", ":80") @@ -145,7 +146,7 @@ func main() { defer srv.Close() defer lis.Close() ln.FatalErr(opname.With(ctx, "metrics-tsnet"), http.Serve(lis, ex.HTTPLog(http.DefaultServeMux))) - } () + }() xffMW, err := xff.Default() if err != nil { @@ -204,5 +205,5 @@ func main() { }) ln.Log(context.Background(), ln.F{"addr": *addr}) - http.ListenAndServe(*addr, xffMW.Handler(ex.HTTPLog(mux))) + http.ListenAndServe(*addr, cors.Default().Handler(xffMW.Handler(ex.HTTPLog(mux)))) } @@ -179,6 +179,7 @@ pkg-config libaom + libavif ]; }; }); @@ -110,6 +110,7 @@ require ( github.com/olekukonko/tablewriter v0.0.5 // indirect github.com/rivo/uniseg v0.2.0 // indirect github.com/rogpeppe/go-internal v1.8.1-0.20211023094830-115ce09fd6b4 // indirect + github.com/rs/cors v1.8.2 // indirect github.com/sendgrid/rest v2.4.1+incompatible // indirect github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf // indirect github.com/tailscale/certstore v0.1.1-0.20220316223106-78d6e1c49d8d // indirect @@ -363,6 +363,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.1-0.20211023094830-115ce09fd6b4 h1:Ha8xCaq6ln1a+R91Km45Oq6lPXj2Mla6CRJYcuV2h1w= github.com/rogpeppe/go-internal v1.8.1-0.20211023094830-115ce09fd6b4/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= +github.com/rs/cors v1.8.2 h1:KCooALfAYGs415Cwu5ABvv9n9509fSiG5SQJn/AQo4U= +github.com/rs/cors v1.8.2/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/sebest/xff v0.0.0-20210106013422-671bd2870b3a h1:iLcLb5Fwwz7g/DLK89F+uQBDeAhHhwdzB5fSlVdhGcM= github.com/sebest/xff v0.0.0-20210106013422-671bd2870b3a/go.mod h1:wozgYq9WEBQBaIJe4YZ0qTSFAMxmcwBhQH0fO0R34Z0= github.com/sendgrid/rest v2.4.1+incompatible h1:HDib/5xzQREPq34lN3YMhQtMkdXxS/qLp5G3k9a5++4= |
