mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-11-04 01:51:04 +01:00 
			
		
		
		
	Integrate expiration fixes (#754) in TS2021 branch
This commit is contained in:
		
						commit
						e20e818a42
					
				@ -3,6 +3,7 @@
 | 
			
		||||
## 0.17.0 (2022-XX-XX)
 | 
			
		||||
 | 
			
		||||
- Add ability to connect to PostgreSQL over TLS/SSL [#745](https://github.com/juanfont/headscale/pull/745)
 | 
			
		||||
- Fix CLI registration of expired machines [#754](https://github.com/juanfont/headscale/pull/754)
 | 
			
		||||
 | 
			
		||||
## 0.16.3 (2022-08-17)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										10
									
								
								machine.go
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								machine.go
									
									
									
									
									
								
							@ -26,6 +26,7 @@ const (
 | 
			
		||||
	)
 | 
			
		||||
	ErrCouldNotConvertMachineInterface = Error("failed to convert machine interface")
 | 
			
		||||
	ErrHostnameTooLong                 = Error("Hostname too long")
 | 
			
		||||
	ErrDifferentRegisteredNamespace    = Error("machine was previously registered with a different namespace")
 | 
			
		||||
	MachineGivenNameHashLength         = 8
 | 
			
		||||
	MachineGivenNameTrimSize           = 2
 | 
			
		||||
)
 | 
			
		||||
@ -805,6 +806,11 @@ func (h *Headscale) RegisterMachineFromAuthCallback(
 | 
			
		||||
				)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// Registration of expired machine with different namespace
 | 
			
		||||
			if registrationMachine.ID != 0 && registrationMachine.NamespaceID != namespace.ID {
 | 
			
		||||
				return nil, ErrDifferentRegisteredNamespace
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			registrationMachine.NamespaceID = namespace.ID
 | 
			
		||||
			registrationMachine.RegisterMethod = registrationMethod
 | 
			
		||||
 | 
			
		||||
@ -812,6 +818,10 @@ func (h *Headscale) RegisterMachineFromAuthCallback(
 | 
			
		||||
				registrationMachine,
 | 
			
		||||
			)
 | 
			
		||||
 | 
			
		||||
			if err == nil {
 | 
			
		||||
				h.registrationCache.Delete(nodeKeyStr)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			return machine, err
 | 
			
		||||
		} else {
 | 
			
		||||
			return nil, ErrCouldNotConvertMachineInterface
 | 
			
		||||
 | 
			
		||||
@ -238,6 +238,13 @@ func (h *Headscale) handleRegisterCommon(
 | 
			
		||||
		// The machine has expired
 | 
			
		||||
		h.handleMachineExpiredCommon(writer, req, registerRequest, *machine, machineKey)
 | 
			
		||||
 | 
			
		||||
		machine.Expiry = &time.Time{}
 | 
			
		||||
		h.registrationCache.Set(
 | 
			
		||||
			NodePublicKeyStripPrefix(registerRequest.NodeKey),
 | 
			
		||||
			*machine,
 | 
			
		||||
			registerCacheExpiration,
 | 
			
		||||
		)
 | 
			
		||||
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user