package server import ( "net/http/httptest" "testing" ) func TestClientIPTrustedProxy(t *testing.T) { s := &Server{} r := httptest.NewRequest("GET", "/", nil) r.RemoteAddr = "127.0.0.1:1234" r.Header.Set("X-Forwarded-For", "6.6.6.6, 1.2.3.4") if got := s.clientIP(r); got != "1.2.3.4" { t.Fatalf("loopback proxy: got %s", got) } r.RemoteAddr = "9.9.9.9:1" if got := s.clientIP(r); got != "9.9.9.9" { t.Fatalf("untrusted peer: got %s", got) } n, _ := ParseCIDRs([]string{"10.0.1.0/24"}) s.TrustedProxies = n r.RemoteAddr = "10.0.1.6:1" if got := s.clientIP(r); got != "1.2.3.4" { t.Fatalf("cidr proxy: got %s", got) } }