Add support for header holding IP address

This commit is contained in:
Audrius Butkevicius 2015-11-03 21:23:35 +00:00
parent 8b3f5fda07
commit 925f60d9c3

View File

@ -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":