mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-31 08:01:34 +01:00 
			
		
		
		
	Check all errors for db.Save
This commit is contained in:
		
							parent
							
								
									405de9e0f8
								
							
						
					
					
						commit
						52cc3bc8eb
					
				| @ -57,7 +57,10 @@ func (h *Headscale) CreateAPIKey( | ||||
| 		Hash:       hash, | ||||
| 		Expiration: expiration, | ||||
| 	} | ||||
| 	h.db.Save(&key) | ||||
| 
 | ||||
| 	if err := h.db.Save(&key).Error; err != nil { | ||||
| 		return "", nil, fmt.Errorf("failed to save API key to database: %w", err) | ||||
| 	} | ||||
| 
 | ||||
| 	return keyStr, &key, nil | ||||
| } | ||||
|  | ||||
							
								
								
									
										32
									
								
								machine.go
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								machine.go
									
									
									
									
									
								
							| @ -367,23 +367,30 @@ func (h *Headscale) SetTags(machine *Machine, tags []string) error { | ||||
| 		return err | ||||
| 	} | ||||
| 	h.setLastStateChangeToNow(machine.Namespace.Name) | ||||
| 	h.db.Save(machine) | ||||
| 
 | ||||
| 	if err := h.db.Save(machine).Error; err != nil { | ||||
| 		return fmt.Errorf("failed to update tags for machine in the database: %w", err) | ||||
| 	} | ||||
| 
 | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| // ExpireMachine takes a Machine struct and sets the expire field to now. | ||||
| func (h *Headscale) ExpireMachine(machine *Machine) { | ||||
| func (h *Headscale) ExpireMachine(machine *Machine) error { | ||||
| 	now := time.Now() | ||||
| 	machine.Expiry = &now | ||||
| 
 | ||||
| 	h.setLastStateChangeToNow(machine.Namespace.Name) | ||||
| 
 | ||||
| 	h.db.Save(machine) | ||||
| 	if err := h.db.Save(machine).Error; err != nil { | ||||
| 		return fmt.Errorf("failed to expire machine in the database: %w", err) | ||||
| 	} | ||||
| 
 | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| // RefreshMachine takes a Machine struct and sets the expire field to now. | ||||
| func (h *Headscale) RefreshMachine(machine *Machine, expiry time.Time) { | ||||
| // RefreshMachine takes a Machine struct and sets the expire field. | ||||
| func (h *Headscale) RefreshMachine(machine *Machine, expiry time.Time) error { | ||||
| 	now := time.Now() | ||||
| 
 | ||||
| 	machine.LastSuccessfulUpdate = &now | ||||
| @ -391,7 +398,11 @@ func (h *Headscale) RefreshMachine(machine *Machine, expiry time.Time) { | ||||
| 
 | ||||
| 	h.setLastStateChangeToNow(machine.Namespace.Name) | ||||
| 
 | ||||
| 	h.db.Save(machine) | ||||
| 	if err := h.db.Save(machine).Error; err != nil { | ||||
| 		return fmt.Errorf("failed to refresh machine (update expiration) in the database: %w", err) | ||||
| 	} | ||||
| 
 | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| // DeleteMachine softs deletes a Machine from the database. | ||||
| @ -761,7 +772,9 @@ func (h *Headscale) RegisterMachine(machine Machine, | ||||
| 
 | ||||
| 	machine.IPAddresses = ips | ||||
| 
 | ||||
| 	h.db.Save(&machine) | ||||
| 	if err := h.db.Save(machine).Error; err != nil { | ||||
| 		return nil, fmt.Errorf("failed register(save) machine in the database: %w", err) | ||||
| 	} | ||||
| 
 | ||||
| 	log.Trace(). | ||||
| 		Caller(). | ||||
| @ -821,7 +834,10 @@ func (h *Headscale) EnableRoutes(machine *Machine, routeStrs ...string) error { | ||||
| 	} | ||||
| 
 | ||||
| 	machine.EnabledRoutes = newRoutes | ||||
| 	h.db.Save(&machine) | ||||
| 
 | ||||
| 	if err := h.db.Save(machine).Error; err != nil { | ||||
| 		return fmt.Errorf("failed enable routes for machine in the database: %w", err) | ||||
| 	} | ||||
| 
 | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| @ -4,6 +4,7 @@ import ( | ||||
| 	"crypto/rand" | ||||
| 	"encoding/hex" | ||||
| 	"errors" | ||||
| 	"fmt" | ||||
| 	"strconv" | ||||
| 	"time" | ||||
| 
 | ||||
| @ -60,7 +61,10 @@ func (h *Headscale) CreatePreAuthKey( | ||||
| 		CreatedAt:   &now, | ||||
| 		Expiration:  expiration, | ||||
| 	} | ||||
| 	h.db.Save(&key) | ||||
| 
 | ||||
| 	if err := h.db.Save(&key).Error; err != nil { | ||||
| 		return nil, fmt.Errorf("failed to create key in the database: %w", err) | ||||
| 	} | ||||
| 
 | ||||
| 	return &key, nil | ||||
| } | ||||
| @ -114,9 +118,13 @@ func (h *Headscale) ExpirePreAuthKey(k *PreAuthKey) error { | ||||
| } | ||||
| 
 | ||||
| // UsePreAuthKey marks a PreAuthKey as used. | ||||
| func (h *Headscale) UsePreAuthKey(k *PreAuthKey) { | ||||
| func (h *Headscale) UsePreAuthKey(k *PreAuthKey) error { | ||||
| 	k.Used = true | ||||
| 	h.db.Save(k) | ||||
| 	if err := h.db.Save(k).Error; err != nil { | ||||
| 		return fmt.Errorf("failed to update key used status in the database: %w", err) | ||||
| 	} | ||||
| 
 | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| // checkKeyValidity does the heavy lifting for validation of the PreAuthKey coming from a node | ||||
|  | ||||
| @ -1,6 +1,8 @@ | ||||
| package headscale | ||||
| 
 | ||||
| import ( | ||||
| 	"fmt" | ||||
| 
 | ||||
| 	"inet.af/netaddr" | ||||
| ) | ||||
| 
 | ||||
| @ -108,7 +110,10 @@ func (h *Headscale) EnableNodeRoute( | ||||
| 	} | ||||
| 
 | ||||
| 	machine.EnabledRoutes = enabledRoutes | ||||
| 	h.db.Save(&machine) | ||||
| 
 | ||||
| 	if err := h.db.Save(&machine).Error; err != nil { | ||||
| 		return fmt.Errorf("failed to update node routes in the database: %w", err) | ||||
| 	} | ||||
| 
 | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user