various: pass logger.Logf through to more places
Updates #7537 Signed-off-by: Andrew Dunham <andrew@du.nham.ca> Change-Id: Id89acab70ea678c8c7ff0f44792d54c7223337c6
This commit is contained in:
parent
958c89470b
commit
83fa17d26c
|
@ -212,6 +212,7 @@ func NewDirect(opts Options) (*Direct, error) {
|
|||
Forward: dnscache.Get().Forward, // use default cache's forwarder
|
||||
UseLastGood: true,
|
||||
LookupIPFallback: dnsfallback.Lookup,
|
||||
Logf: opts.Logf,
|
||||
}
|
||||
tr := http.DefaultTransport.(*http.Transport).Clone()
|
||||
tr.Proxy = tshttpproxy.ProxyFromEnvironment
|
||||
|
|
|
@ -388,12 +388,14 @@ func (a *Dialer) tryURLUpgrade(ctx context.Context, u *url.URL, addr netip.Addr,
|
|||
dns = &dnscache.Resolver{
|
||||
SingleHostStaticResult: []netip.Addr{addr},
|
||||
SingleHost: u.Hostname(),
|
||||
Logf: a.Logf, // not a.logf method; we want to propagate nil-ness
|
||||
}
|
||||
} else {
|
||||
dns = &dnscache.Resolver{
|
||||
Forward: dnscache.Get().Forward,
|
||||
LookupIPFallback: dnsfallback.Lookup,
|
||||
UseLastGood: true,
|
||||
Logf: a.Logf, // not a.logf method; we want to propagate nil-ness
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -384,6 +384,7 @@ func (f *forwarder) getKnownDoHClientForProvider(urlBase string) (c *http.Client
|
|||
dialer := dnscache.Dialer(nsDialer.DialContext, &dnscache.Resolver{
|
||||
SingleHost: dohURL.Hostname(),
|
||||
SingleHostStaticResult: allIPs,
|
||||
Logf: f.logf,
|
||||
})
|
||||
c = &http.Client{
|
||||
Transport: &http.Transport{
|
||||
|
|
|
@ -250,10 +250,13 @@ func SetCachePath(path string) {
|
|||
// logfunc stores the logging function to use for this package.
|
||||
var logfunc syncs.AtomicValue[logger.Logf]
|
||||
|
||||
// SetLogger sets the logging function that this package will use. The default
|
||||
// logger if this function is not called is 'log.Printf'.
|
||||
func SetLogger(log logger.Logf) {
|
||||
logfunc.Store(log)
|
||||
// SetLogger sets the logging function that this package will use, and returns
|
||||
// the old value (which may be nil).
|
||||
//
|
||||
// If this function is never called, or if this function is called with a nil
|
||||
// value, 'log.Printf' will be used to print logs.
|
||||
func SetLogger(log logger.Logf) (old logger.Logf) {
|
||||
return logfunc.Swap(log)
|
||||
}
|
||||
|
||||
func logf(format string, args ...any) {
|
||||
|
|
|
@ -40,6 +40,7 @@ import (
|
|||
"tailscale.com/logpolicy"
|
||||
"tailscale.com/logtail"
|
||||
"tailscale.com/logtail/filch"
|
||||
"tailscale.com/net/dnsfallback"
|
||||
"tailscale.com/net/memnet"
|
||||
"tailscale.com/net/proxymux"
|
||||
"tailscale.com/net/socks5"
|
||||
|
@ -619,6 +620,25 @@ func (s *Server) logf(format string, a ...interface{}) {
|
|||
log.Printf(format, a...)
|
||||
}
|
||||
|
||||
// ReplaceGlobalLoggers will replace any Tailscale-specific package-global
|
||||
// loggers with this Server's logger. It returns a function that, when called,
|
||||
// will undo any changes made.
|
||||
//
|
||||
// Note that calling this function from multiple Servers will result in the
|
||||
// last call taking all logs; logs are not duplicated.
|
||||
func (s *Server) ReplaceGlobalLoggers() (undo func()) {
|
||||
var undos []func()
|
||||
|
||||
oldDnsFallback := dnsfallback.SetLogger(s.logf)
|
||||
undos = append(undos, func() { dnsfallback.SetLogger(oldDnsFallback) })
|
||||
|
||||
return func() {
|
||||
for _, fn := range undos {
|
||||
fn()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// printAuthURLLoop loops once every few seconds while the server is still running and
|
||||
// is in NeedsLogin state, printing out the auth URL.
|
||||
func (s *Server) printAuthURLLoop() {
|
||||
|
|
Loading…
Reference in New Issue