mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-28 10:51:44 +01:00 
			
		
		
		
	Fix cli registration of expired machines
Signed-off-by: Laurent Marchaud <laurent@marchaud.com>
This commit is contained in:
		
							parent
							
								
									19455399f4
								
							
						
					
					
						commit
						c6ea9b4b80
					
				
							
								
								
									
										7
									
								
								api.go
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								api.go
									
									
									
									
									
								
							| @ -346,6 +346,13 @@ func (h *Headscale) RegistrationHandler( | ||||
| 		// The machine has expired
 | ||||
| 		h.handleMachineExpired(writer, req, machineKey, registerRequest, *machine) | ||||
| 
 | ||||
| 		machine.Expiry = &time.Time{} | ||||
| 		h.registrationCache.Set( | ||||
| 			machineKeyStr, | ||||
| 			*machine, | ||||
| 			registerCacheExpiration, | ||||
| 		) | ||||
| 
 | ||||
| 		return | ||||
| 	} | ||||
| } | ||||
|  | ||||
							
								
								
									
										14
									
								
								machine.go
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								machine.go
									
									
									
									
									
								
							| @ -24,8 +24,9 @@ const ( | ||||
| 	ErrMachineNotFoundRegistrationCache = Error( | ||||
| 		"machine not found in registration cache", | ||||
| 	) | ||||
| 	ErrCouldNotConvertMachineInterface = Error("failed to convert machine interface") | ||||
| 	ErrHostnameTooLong                 = Error("Hostname too long") | ||||
| 	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 | ||||
| ) | ||||
| @ -789,6 +790,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 | ||||
| 
 | ||||
| @ -796,6 +802,10 @@ func (h *Headscale) RegisterMachineFromAuthCallback( | ||||
| 				registrationMachine, | ||||
| 			) | ||||
| 
 | ||||
| 			if err == nil { | ||||
| 				h.registrationCache.Delete(machineKeyStr) | ||||
| 			} | ||||
| 
 | ||||
| 			return machine, err | ||||
| 		} else { | ||||
| 			return nil, ErrCouldNotConvertMachineInterface | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user