Browse Source

Add support for header holding IP address

Audrius Butkevicius 10 years ago
parent
commit
925f60d9c3
1 changed files with 5 additions and 0 deletions
  1. 5 0
      cmd/strelaypoolsrv/main.go

+ 5 - 0
cmd/strelaypoolsrv/main.go

@@ -67,6 +67,7 @@ var (
 	getLimit       time.Duration
 	postLimit      time.Duration
 	permRelaysFile string
+	ipHeader string
 
 	getMut      sync.RWMutex = sync.NewRWMutex()
 	getLRUCache *lru.Cache
@@ -94,6 +95,7 @@ func main() {
 	flag.IntVar(&postLimitAvg, "post-limit-avg", 2, "Allowed average post request rate, per minute")
 	flag.Int64Var(&postLimitBurst, "post-limit-burst", postLimitBurst, "Allowed burst post requests")
 	flag.StringVar(&permRelaysFile, "perm-relays", "", "Path to list of permanent relays")
+	flag.StringVar(&ipHeader, "ip-header", "", "Name of header which holds clients ip:port. Only meaningful when running behind a reverse proxy.")
 
 	flag.Parse()
 
@@ -236,6 +238,9 @@ func mimeTypeForFile(file string) string {
 }
 
 func handleRequest(w http.ResponseWriter, r *http.Request) {
+	if ipHeader != "" {
+		r.RemoteAddr = r.Header.Get(ipHeader)
+	}
 	w.Header().Set("Access-Control-Allow-Origin", "*")
 	switch r.Method {
 	case "GET":