2021-09-17 04:44:35 +00:00
package validator
import (
"fmt"
"github.com/authelia/authelia/v4/internal/configuration/schema"
)
// ValidateNTP validates and update NTP configuration.
2022-02-28 03:15:01 +00:00
func ValidateNTP ( config * schema . Configuration , validator * schema . StructValidator ) {
2023-05-07 06:39:17 +00:00
if config . NTP . Address == nil {
2022-02-28 03:15:01 +00:00
config . NTP . Address = schema . DefaultNTPConfiguration . Address
2021-09-17 04:44:35 +00:00
}
2023-05-07 06:39:17 +00:00
if ! config . NTP . Address . IsUDP ( ) {
validator . Push ( fmt . Errorf ( errFmtNTPAddressScheme , config . NTP . Address . String ( ) , fmt . Errorf ( "scheme must be one of 'udp', 'udp4', or 'udp6' but is configured as '%s'" , config . NTP . Address . Scheme ( ) ) ) )
}
2022-02-28 03:15:01 +00:00
if config . NTP . Version == 0 {
config . NTP . Version = schema . DefaultNTPConfiguration . Version
} else if config . NTP . Version < 3 || config . NTP . Version > 4 {
validator . Push ( fmt . Errorf ( errFmtNTPVersion , config . NTP . Version ) )
2021-09-17 04:44:35 +00:00
}
2022-03-03 11:20:43 +00:00
if config . NTP . MaximumDesync <= 0 {
2022-02-28 03:15:01 +00:00
config . NTP . MaximumDesync = schema . DefaultNTPConfiguration . MaximumDesync
2021-09-17 04:44:35 +00:00
}
}