aboutsummaryrefslogtreecommitdiffstats
path: root/main.go
diff options
context:
space:
mode:
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))
}