diff options
author | Renato Botelho <renato@netgate.com> | 2015-10-13 16:38:23 -0300 |
---|---|---|
committer | Renato Botelho <renato@netgate.com> | 2015-10-13 16:38:36 -0300 |
commit | fc3bec296c676d1bf5a618b62b18f96580d1235b (patch) | |
tree | c8419a7882f8816be27f2504fe2d4178126597a2 /src/etc | |
parent | 98a58bee7554780be1986b1b27402e5e2e64697c (diff) | |
download | pfsense-fc3bec296c676d1bf5a618b62b18f96580d1235b.zip pfsense-fc3bec296c676d1bf5a618b62b18f96580d1235b.tar.gz |
Make sure timezones listed on first level directory is also grabbed by system_get_timezone_list(). It fixes #5303
Diffstat (limited to 'src/etc')
-rw-r--r-- | src/etc/inc/system.inc | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/etc/inc/system.inc b/src/etc/inc/system.inc index 1a8f9dd..4218262 100644 --- a/src/etc/inc/system.inc +++ b/src/etc/inc/system.inc @@ -1501,13 +1501,26 @@ EOD; function system_get_timezone_list() { global $g; - $file_list = glob("/usr/share/zoneinfo/*/*"); + $file_list = array_merge( + glob("/usr/share/zoneinfo/[A-Z]*"), + glob("/usr/share/zoneinfo/*/*") + ); if (empty($file_list)) { $file_list[] = $g['default_timezone']; + } else { + /* Remove directories from list */ + $file_list = array_filter($file_list, function($v) { + return !is_dir($v); + }); } - return str_replace('/usr/share/zoneinfo/', '', $file_list); + /* Remove directory prefix */ + $file_list = str_replace('/usr/share/zoneinfo/', '', $file_list); + + sort($file_list); + + return $file_list; } function system_timezone_configure() { |