Skip to content

Commit 70a1a74

Browse files
authored
Revert "Revert "Replace global logger with local logger in tlscommon package …" (#352)
This reverts commit 9b57cb0.
1 parent 9b57cb0 commit 70a1a74

File tree

5 files changed

+58
-22
lines changed

5 files changed

+58
-22
lines changed

transport/client.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ type Config struct {
4848
Stats IOStatser
4949
}
5050

51-
func NewClient(c Config, network, host string, defaultPort int) (*Client, error) {
51+
func NewClient(c Config, network, host string, defaultPort int, logger *logp.Logger) (*Client, error) {
5252
// do some sanity checks regarding network and Config matching +
5353
// address being parseable
5454
switch network {
@@ -62,15 +62,15 @@ func NewClient(c Config, network, host string, defaultPort int) (*Client, error)
6262
return nil, fmt.Errorf("unsupported network type %v", network)
6363
}
6464

65-
dialer, err := MakeDialer(c)
65+
dialer, err := MakeDialer(c, logger)
6666
if err != nil {
6767
return nil, err
6868
}
6969

70-
return NewClientWithDialer(dialer, c, network, host, defaultPort)
70+
return NewClientWithDialer(dialer, c, network, host, defaultPort, logger)
7171
}
7272

73-
func NewClientWithDialer(d Dialer, c Config, network, host string, defaultPort int) (*Client, error) {
73+
func NewClientWithDialer(d Dialer, c Config, network, host string, defaultPort int, logger *logp.Logger) (*Client, error) {
7474
// check address being parseable
7575
host = fullAddress(host, defaultPort)
7676
_, _, err := net.SplitHostPort(host)
@@ -79,7 +79,7 @@ func NewClientWithDialer(d Dialer, c Config, network, host string, defaultPort i
7979
}
8080

8181
client := &Client{
82-
log: logp.NewLogger(logSelector),
82+
log: logger.Named(logSelector),
8383
dialer: d,
8484
network: network,
8585
host: host,
@@ -231,7 +231,7 @@ func (c *Client) Test(d testing.Driver) {
231231
} else {
232232
d.Run("TLS", func(d testing.Driver) {
233233
netDialer := NetDialer(c.config.Timeout)
234-
tlsDialer := TestTLSDialer(d, netDialer, c.config.TLS, c.config.Timeout)
234+
tlsDialer := TestTLSDialer(d, netDialer, c.config.TLS, c.config.Timeout, c.log)
235235
_, err := tlsDialer.DialContext(context.Background(), "tcp", c.host)
236236
d.Fatal("dial up", err)
237237
})

transport/httpcommon/httpcommon.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -185,8 +185,9 @@ func (settings *HTTPTransportSettings) Unpack(cfg *config.C) error {
185185
return err
186186
}
187187

188-
// TODO: use local logger here
189-
_, err := tlscommon.LoadTLSConfig(tmp.TLS, logp.NewLogger(""))
188+
// we use no-op logger here because we are only testing for errors
189+
// if any while loading ssl config
190+
_, err := tlscommon.LoadTLSConfig(tmp.TLS, logp.NewNopLogger())
190191
if err != nil {
191192
return err
192193
}
@@ -214,9 +215,8 @@ func (settings *HTTPTransportSettings) RoundTripper(opts ...TransportOption) (ht
214215
}
215216
}
216217

217-
logger := logp.NewLogger("")
218-
if log := extra.logger; log != nil {
219-
logger = log
218+
if extra.logger == nil {
219+
extra.logger = logp.NewLogger("")
220220
}
221221

222222
for _, opt := range opts {
@@ -229,12 +229,12 @@ func (settings *HTTPTransportSettings) RoundTripper(opts ...TransportOption) (ht
229229
dialer = transport.NetDialer(settings.Timeout)
230230
}
231231

232-
tls, err := tlscommon.LoadTLSConfig(settings.TLS, logger)
232+
tls, err := tlscommon.LoadTLSConfig(settings.TLS, extra.logger)
233233
if err != nil {
234234
return nil, err
235235
}
236236

237-
tlsDialer := transport.TLSDialer(dialer, tls, settings.Timeout)
237+
tlsDialer := transport.TLSDialer(dialer, tls, settings.Timeout, extra.logger)
238238
for _, opt := range opts {
239239
if dialOpt, ok := opt.(dialerModOption); ok {
240240
dialer = dialOpt.applyDialer(settings, dialer)

transport/tls.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,21 @@ import (
2626
"sync"
2727
"time"
2828

29+
"github.com/elastic/elastic-agent-libs/logp"
2930
"github.com/elastic/elastic-agent-libs/testing"
3031
"github.com/elastic/elastic-agent-libs/transport/tlscommon"
3132
)
3233

33-
func TLSDialer(forward Dialer, config *tlscommon.TLSConfig, timeout time.Duration) Dialer {
34-
return TestTLSDialer(testing.NullDriver, forward, config, timeout)
34+
func TLSDialer(forward Dialer, config *tlscommon.TLSConfig, timeout time.Duration, logger *logp.Logger) Dialer {
35+
return TestTLSDialer(testing.NullDriver, forward, config, timeout, logger)
3536
}
3637

3738
func TestTLSDialer(
3839
d testing.Driver,
3940
forward Dialer,
4041
config *tlscommon.TLSConfig,
4142
timeout time.Duration,
43+
logger *logp.Logger,
4244
) Dialer {
4345
var lastTLSConfig *tls.Config
4446
var lastNetwork string
@@ -63,7 +65,12 @@ func TestTLSDialer(
6365
tlsConfig = lastTLSConfig
6466
}
6567
if tlsConfig == nil {
66-
tlsConfig = config.BuildModuleClientConfig(host)
68+
// if tlsconfig is nil, set provided logger
69+
if config == nil {
70+
tlsConfig = config.BuildModuleClientConfig(host, tlscommon.WithLogger(logger))
71+
} else {
72+
tlsConfig = config.BuildModuleClientConfig(host)
73+
}
6774
lastNetwork = network
6875
lastAddress = address
6976
lastTLSConfig = tlsConfig

transport/tlscommon/tls_config.go

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,26 @@ var (
9494
ErrMissingPeerCertificate = errors.New("missing peer certificates")
9595
)
9696

97+
type tlsOptFunc func(t *TLSSettings)
98+
99+
func (t tlsOptFunc) apply(c *TLSSettings) {
100+
t(c)
101+
}
102+
103+
type TLSOption interface {
104+
apply(t *TLSSettings)
105+
}
106+
107+
type TLSSettings struct {
108+
logger *logp.Logger
109+
}
110+
111+
func WithLogger(logger *logp.Logger) TLSOption {
112+
return tlsOptFunc(func(t *TLSSettings) {
113+
t.logger = logger
114+
})
115+
}
116+
97117
// ToConfig generates a tls.Config object. Note, you must use BuildModuleClientConfig to generate a config with
98118
// ServerName set, use that method for servers with SNI.
99119
// By default VerifyConnection is set to client mode.
@@ -126,7 +146,16 @@ func (c *TLSConfig) ToConfig() *tls.Config {
126146
}
127147

128148
// BuildModuleClientConfig takes the TLSConfig and transform it into a `tls.Config`.
129-
func (c *TLSConfig) BuildModuleClientConfig(host string) *tls.Config {
149+
func (c *TLSConfig) BuildModuleClientConfig(host string, options ...TLSOption) *tls.Config {
150+
var settings TLSSettings
151+
for _, opt := range options {
152+
opt.apply(&settings)
153+
}
154+
155+
if settings.logger == nil {
156+
settings.logger = logp.NewLogger("")
157+
}
158+
130159
if c == nil {
131160
// use default TLS settings, if config is empty.
132161
return &tls.Config{
@@ -135,7 +164,7 @@ func (c *TLSConfig) BuildModuleClientConfig(host string) *tls.Config {
135164
VerifyConnection: makeVerifyConnection(&TLSConfig{
136165
Verification: VerifyFull,
137166
ServerName: host,
138-
}, logp.NewLogger("tls")),
167+
}, settings.logger.Named("tls")),
139168
}
140169
}
141170

transport/transport.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,17 +45,17 @@ func (d DialerFunc) DialContext(ctx context.Context, network, address string) (n
4545
}
4646

4747
func DialContext(ctx context.Context, c Config, network, address string) (net.Conn, error) {
48-
d, err := MakeDialer(c)
48+
d, err := MakeDialer(c, logp.NewLogger(""))
4949
if err != nil {
5050
return nil, err
5151
}
5252
return d.DialContext(ctx, network, address)
5353
}
5454

55-
func MakeDialer(c Config) (Dialer, error) {
55+
func MakeDialer(c Config, logger *logp.Logger) (Dialer, error) {
5656
var err error
5757
dialer := NetDialer(c.Timeout)
58-
dialer, err = ProxyDialer(logp.NewLogger(logSelector), c.Proxy, dialer)
58+
dialer, err = ProxyDialer(logger.Named(logSelector), c.Proxy, dialer)
5959
if err != nil {
6060
return nil, err
6161
}
@@ -64,7 +64,7 @@ func MakeDialer(c Config) (Dialer, error) {
6464
}
6565

6666
if c.TLS != nil {
67-
return TLSDialer(dialer, c.TLS, c.Timeout), nil
67+
return TLSDialer(dialer, c.TLS, c.Timeout, logger), nil
6868
}
6969
return dialer, nil
7070
}

0 commit comments

Comments
 (0)