diff options
Diffstat (limited to '')
-rw-r--r-- | main.go (renamed from icanhazallips.go) | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/icanhazallips.go b/main.go index 684fea8..140c912 100644 --- a/icanhazallips.go +++ b/main.go @@ -2,7 +2,6 @@ package main import ( - "crypto/tls" "errors" "log" "net" @@ -11,6 +10,8 @@ import ( "strconv" "strings" "time" + + "github.com/pires/go-proxyproto" ) const ( @@ -35,6 +36,8 @@ func getDefaultOptions() map[string]float64 { } func getIP(request *http.Request) (string, error) { + log.Println("X-Forwarded-For:", request.Header.Get("X-Forwarded-For")) + log.Println("X-Real-IP:", request.Header.Get("X-Real-IP")) ips := request.Header.Get("X-Forwarded-For") splitIps := strings.Split(ips, ",") @@ -42,6 +45,7 @@ func getIP(request *http.Request) (string, error) { if len(splitIps) > 0 { netIP := net.ParseIP(splitIps[len(splitIps)-1]) + log.Println("one:", netIP.String()) if netIP != nil { return netIP.String(), nil } @@ -58,6 +62,7 @@ func getIP(request *http.Request) (string, error) { return "127.0.0.1", nil } + log.Println("two:", ip) return ip, nil } @@ -156,12 +161,6 @@ func main() { log.Fatal(errBadConfig) } - tlsConfig := &tls.Config{ - MinVersion: tls.VersionTLS13, - CurvePreferences: []tls.CurveID{tls.CurveP521, tls.CurveP384, tls.CurveP256}, - PreferServerCipherSuites: true, - } - server := http.Server{ Addr: config.Addr, ReadHeaderTimeout: time.Duration(config.ReadHeaderTimeout) * time.Second, @@ -171,8 +170,18 @@ func main() { TLSNextProto: nil, ErrorLog: nil, Handler: nil, - TLSConfig: tlsConfig, } - log.Fatal(server.ListenAndServeTLS("/certs/server.cert", "/certs/server.key")) + ln, err := net.Listen("tcp", config.Addr) + if err != nil { + log.Fatal(err) + } + + proxyListener := &proxyproto.Listener{ + Listener: ln, + ReadHeaderTimeout: time.Duration(config.ReadHeaderTimeout) * time.Second, + } + defer proxyListener.Close() + + log.Fatal(server.Serve(proxyListener)) } |