4 Commits

Author SHA1 Message Date
13f95ee895 Allow real IP from loopback AND private
Some checks reported errors
continuous-integration/drone/push Build was killed
continuous-integration/drone/tag Build is passing
2022-03-30 22:58:15 -04:00
99c0137034 Fix redirect handler (again) to use notfound
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2022-03-30 22:16:50 -04:00
64551704a3 Use proper methods and fix redirect handler
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2022-03-30 22:08:51 -04:00
d2d8e6ecad I'm an idiot who forgot to flag.Parse()
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2022-03-30 21:44:58 -04:00
2 changed files with 12 additions and 7 deletions

15
main.go
View File

@ -50,6 +50,8 @@ var (
)
func main() {
flag.Parse()
viper.SetDefault("bind", ":8080")
viper.SetConfigName("dlrouter") // name of config file (without extension)
@ -112,12 +114,13 @@ func main() {
r.Use(RealIPMiddleware)
r.Use(logger.Logger("router", log.StandardLogger()))
r.HandleFunc("/status", statusHandler)
r.HandleFunc("/mirrors", mirrorsHandler)
r.HandleFunc("/reload", reloadHandler)
r.HandleFunc("/dl_map", dlMapHandler)
r.Handle("/metrics", promhttp.Handler())
r.HandleFunc("/", redirectHandler)
r.Get("/status", statusHandler)
r.Get("/mirrors", mirrorsHandler)
r.Post("/reload", reloadHandler)
r.Get("/dl_map", dlMapHandler)
r.Get("/metrics", promhttp.Handler().ServeHTTP)
r.NotFound(redirectHandler)
go http.ListenAndServe(viper.GetString("bind"), r)

View File

@ -29,7 +29,9 @@ func RealIPMiddleware(f http.Handler) http.Handler {
return
}
if !net.ParseIP(host).IsPrivate() {
netIP := net.ParseIP(host)
if !netIP.IsLoopback() && !netIP.IsPrivate() {
f.ServeHTTP(w, r)
return
}