diff --git a/cli.go b/cli.go index a3366bc..eb74f67 100644 --- a/cli.go +++ b/cli.go @@ -16,7 +16,7 @@ func main() { { Name: "serve", ShortName: "s", - Usage: "Start an http server for SU3 files", + Usage: "Start an http(s) reseed server", Flags: []cli.Flag{ cli.StringFlag{ Name: "addr", @@ -30,12 +30,10 @@ func main() { }, cli.StringFlag{ Name: "cert", - Value: "cert.pem", Usage: "Certificate for TLS", }, cli.StringFlag{ Name: "key", - Value: "key.pem", Usage: "Key for TLS certificate", }, cli.StringFlag{ diff --git a/reseeder.go b/reseeder.go index 64590f7..39755a7 100644 --- a/reseeder.go +++ b/reseeder.go @@ -73,14 +73,11 @@ func Run(config *Config) { s := r.PathPrefix("/netdb").Subrouter() s.HandleFunc("/", legacyReseeder.ListHandler) - s.HandleFunc("/i2pseeds.su3", su3Reseeder.Su3Handler) s.HandleFunc(`/routerInfo-{hash:[A-Za-z0-9+/\-=~]+}.dat`, legacyReseeder.RouterInfoHandler) - - // timeout - muxWithMiddlewares := http.TimeoutHandler(r, time.Second*5, "Timeout!") + s.HandleFunc("/i2pseeds.su3", su3Reseeder.Su3Handler) th := throttled.RateLimit(throttled.PerMin(config.RateLimit), &throttled.VaryBy{RemoteAddr: true}, store.NewMemStore(1000)) - muxWithMiddlewares = th.Throttle(muxWithMiddlewares) + muxWithMiddlewares := th.Throttle(r) if config.Proxy { muxWithMiddlewares = proxiedHandler(muxWithMiddlewares) @@ -92,16 +89,14 @@ func Run(config *Config) { listenAddress := fmt.Sprintf("%s:%s", config.Addr, config.Port) - // try to start tls server if config.Cert != "" && config.Key != "" { - log.Println("Starting TLS reseed server on " + listenAddress) + log.Println("Starting http reseed server on " + listenAddress) err := http.ListenAndServeTLS(listenAddress, config.Cert, config.Key, muxWithMiddlewares) if nil != err { log.Fatalln(err) } } else { - // fall back to regular http server - log.Println("Starting reseed server on " + listenAddress) + log.Println("Starting https reseed server on " + listenAddress) err := http.ListenAndServe(listenAddress, muxWithMiddlewares) if nil != err { log.Fatalln(err)