/usr/share/zoneinfo/zone.tab has the valid list of time zones. Signed-off-by: Oguz Bektas <o.bek...@proxmox.com> ---
v1->v2: * don't use array for verifying format src/PVE/JSONSchema.pm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/PVE/JSONSchema.pm b/src/PVE/JSONSchema.pm index 84fb694..15a498c 100644 --- a/src/PVE/JSONSchema.pm +++ b/src/PVE/JSONSchema.pm @@ -482,6 +482,25 @@ sub pve_verify_dns_name { return $name; } +register_format('timezone', \&pve_verify_timezone); +sub pve_verify_timezone { + my ($timezone, $noerr) = @_; + + my $zonetab = "/usr/share/zoneinfo/zone.tab"; + return $timezone if $timezone eq 'UTC'; + open(my $fh, "<", $zonetab); + while(my $line = <$fh>) { + next if $line =~ /^#/; + chomp $line; + return $timezone if $timezone eq (split /\t/, $line)[2]; # found + } + close $fh; + + return undef if $noerr; + die "invalid time zone '$timezone'\n"; + +} + # network interface name register_format('pve-iface', \&pve_verify_iface); sub pve_verify_iface { -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel