Skip to content

Commit ec1e351

Browse files
committed
handler: config defaults
1 parent 7c978f7 commit ec1e351

File tree

2 files changed

+27
-7
lines changed

2 files changed

+27
-7
lines changed

handler/config.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,14 @@ import (
66
)
77

88
type 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
}

handler/handler.go

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package handler
33
import (
44
"context"
55
"fmt"
6+
"io"
7+
"log"
68
"net"
79
"net/http"
810
"strings"
@@ -30,14 +32,26 @@ type ProxyHandler struct {
3032
}
3133

3234
func 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,

0 commit comments

Comments
 (0)