aboutsummaryrefslogtreecommitdiffstats
path: root/internal/web/server.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/web/server.go')
-rw-r--r--internal/web/server.go7
1 files changed, 6 insertions, 1 deletions
diff --git a/internal/web/server.go b/internal/web/server.go
index f005b76..12440de 100644
--- a/internal/web/server.go
+++ b/internal/web/server.go
@@ -25,10 +25,15 @@ type Server struct {
tpl *templates
root http.Handler
blog http.Handler
+ // Anonymous endpoints worth abusing get a token bucket each (ratelimit.go).
+ loginLimit *limiter // per client address and per username: 10 guesses, then 10 a minute
}
+// logf is log.Printf, a variable so tests can silence it.
+var logf = log.Printf
+
func NewServer(cfg *config.Config, st *store.Store) *Server {
- s := &Server{cfg: cfg, st: st, tpl: newTemplates(cfg.Dev)}
+ s := &Server{cfg: cfg, st: st, tpl: newTemplates(cfg.Dev), loginLimit: newLimiter(10, 10)}
s.root = s.rootRoutes()
s.blog = s.subdomainRoutes()
return s