File tree Expand file tree Collapse file tree 3 files changed +34
-3
lines changed Expand file tree Collapse file tree 3 files changed +34
-3
lines changed Original file line number Diff line number Diff line change
1
+ package main
2
+
3
+ import (
4
+ "net/http"
5
+
6
+ "github.com/codegangsta/negroni"
7
+ "github.com/gorilla/mux"
8
+ "github.com/sebest/xff"
9
+ )
10
+
11
+ func main () {
12
+ handler := http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
13
+ w .Write ([]byte ("hello from " + r .RemoteAddr + "\n " ))
14
+ })
15
+
16
+ mux := mux .NewRouter ()
17
+ mux .Handle ("/" , handler )
18
+
19
+ n := negroni .Classic ()
20
+ n .Use (negroni .HandlerFunc (xff .XFF ))
21
+ n .UseHandler (mux )
22
+ n .Run (":3000" )
23
+ }
Original file line number Diff line number Diff line change @@ -11,5 +11,5 @@ func main() {
11
11
w .Write ([]byte ("hello from " + r .RemoteAddr + "\n " ))
12
12
})
13
13
14
- http .ListenAndServe (":8080 " , xff .Handler (handler ))
14
+ http .ListenAndServe (":3000 " , xff .Handler (handler ))
15
15
}
Original file line number Diff line number Diff line change @@ -65,5 +65,13 @@ func Handler(h http.Handler) http.Handler {
65
65
})
66
66
}
67
67
68
- // XFF equals Handler for backward compatibility.
69
- var XFF = Handler
68
+ // HandlerFunc is a Martini compatible handler
69
+ func HandlerFunc (w http.ResponseWriter , r * http.Request ) {
70
+ r .RemoteAddr = GetRemoteAddr (r )
71
+ }
72
+
73
+ // XFF is a Negroni compatible interface
74
+ func XFF (w http.ResponseWriter , r * http.Request , next http.HandlerFunc ) {
75
+ r .RemoteAddr = GetRemoteAddr (r )
76
+ next (w , r )
77
+ }
You can’t perform that action at this time.
0 commit comments