mirror of
				https://github.com/tailscale/tailscale.git
				synced 2025-10-31 03:49:52 +00:00 
			
		
		
		
	net/dns, cmd/tailscaled: plumb system health tracker into dns cleanup (#12969)
fixes tailscale#12968 The dns manager cleanup func was getting passed a nil health tracker, which will panic. Fixed to pass it the system health tracker. Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
This commit is contained in:
		| @@ -394,7 +394,7 @@ func run() (err error) { | |||||||
| 	// Always clean up, even if we're going to run the server. This covers cases | 	// Always clean up, even if we're going to run the server. This covers cases | ||||||
| 	// such as when a system was rebooted without shutting down, or tailscaled | 	// such as when a system was rebooted without shutting down, or tailscaled | ||||||
| 	// crashed, and would for example restore system DNS configuration. | 	// crashed, and would for example restore system DNS configuration. | ||||||
| 	dns.CleanUp(logf, netMon, args.tunname) | 	dns.CleanUp(logf, netMon, sys.HealthTracker(), args.tunname) | ||||||
| 	router.CleanUp(logf, netMon, args.tunname) | 	router.CleanUp(logf, netMon, args.tunname) | ||||||
| 	// If the cleanUp flag was passed, then exit. | 	// If the cleanUp flag was passed, then exit. | ||||||
| 	if args.cleanUp { | 	if args.cleanUp { | ||||||
|   | |||||||
| @@ -538,7 +538,9 @@ func (m *Manager) FlushCaches() error { | |||||||
| // CleanUp restores the system DNS configuration to its original state | // CleanUp restores the system DNS configuration to its original state | ||||||
| // in case the Tailscale daemon terminated without closing the router. | // in case the Tailscale daemon terminated without closing the router. | ||||||
| // No other state needs to be instantiated before this runs. | // No other state needs to be instantiated before this runs. | ||||||
| func CleanUp(logf logger.Logf, netMon *netmon.Monitor, interfaceName string) { | // | ||||||
|  | // health must not be nil | ||||||
|  | func CleanUp(logf logger.Logf, netMon *netmon.Monitor, health *health.Tracker, interfaceName string) { | ||||||
| 	oscfg, err := NewOSConfigurator(logf, nil, nil, interfaceName) | 	oscfg, err := NewOSConfigurator(logf, nil, nil, interfaceName) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		logf("creating dns cleanup: %v", err) | 		logf("creating dns cleanup: %v", err) | ||||||
| @@ -546,7 +548,7 @@ func CleanUp(logf logger.Logf, netMon *netmon.Monitor, interfaceName string) { | |||||||
| 	} | 	} | ||||||
| 	d := &tsdial.Dialer{Logf: logf} | 	d := &tsdial.Dialer{Logf: logf} | ||||||
| 	d.SetNetMon(netMon) | 	d.SetNetMon(netMon) | ||||||
| 	dns := NewManager(logf, oscfg, nil, d, nil, nil, runtime.GOOS) | 	dns := NewManager(logf, oscfg, health, d, nil, nil, runtime.GOOS) | ||||||
| 	if err := dns.Down(); err != nil { | 	if err := dns.Down(); err != nil { | ||||||
| 		logf("dns down: %v", err) | 		logf("dns down: %v", err) | ||||||
| 	} | 	} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Jonathan Nobels
					Jonathan Nobels