File tree Expand file tree Collapse file tree 2 files changed +27
-7
lines changed
Expand file tree Collapse file tree 2 files changed +27
-7
lines changed Original file line number Diff line number Diff line change @@ -6,8 +6,14 @@ import (
66)
77
88type Config struct {
9- Dialer HandlerDialer
10- Auth auth.Auth
11- Logger * clog.CondLogger
9+ // Dialer optionally specifies dialer to use for creating
10+ // connections originating from proxy.
11+ Dialer HandlerDialer
12+ // Auth specifies request validator used to verify users
13+ // and return their username
14+ Auth auth.Auth
15+ // Logger specifies optional custom logger
16+ Logger * clog.CondLogger
17+ // UserIPHints specifies whether allow IP hints set by user or not
1218 UserIPHints bool
1319}
Original file line number Diff line number Diff line change @@ -3,6 +3,8 @@ package handler
33import (
44 "context"
55 "fmt"
6+ "io"
7+ "log"
68 "net"
79 "net/http"
810 "strings"
@@ -30,14 +32,26 @@ type ProxyHandler struct {
3032}
3133
3234func NewProxyHandler (config * Config ) * ProxyHandler {
35+ d := config .Dialer
36+ if d == nil {
37+ d = dialer .NewBoundDialer (nil , "" )
38+ }
3339 httptransport := & http.Transport {
34- DialContext : config . Dialer .DialContext ,
40+ DialContext : d .DialContext ,
3541 DisableKeepAlives : true ,
3642 }
43+ a := config .Auth
44+ if a == nil {
45+ a = auth.NoAuth {}
46+ }
47+ l := config .Logger
48+ if l == nil {
49+ l = clog .NewCondLogger (log .New (io .Discard , "" , 0 ), 0 )
50+ }
3751 return & ProxyHandler {
38- auth : config . Auth ,
39- logger : config . Logger ,
40- dialer : config . Dialer ,
52+ auth : a ,
53+ logger : l ,
54+ dialer : d ,
4155 httptransport : httptransport ,
4256 outbound : make (map [string ]string ),
4357 userIPHints : config .UserIPHints ,
You can’t perform that action at this time.
0 commit comments