summaryrefslogtreecommitdiffstats
path: root/src/etc/inc/system.inc
diff options
context:
space:
mode:
authorRenato Botelho <renato@netgate.com>2015-10-13 16:38:23 -0300
committerRenato Botelho <renato@netgate.com>2015-10-13 16:38:36 -0300
commitfc3bec296c676d1bf5a618b62b18f96580d1235b (patch)
treec8419a7882f8816be27f2504fe2d4178126597a2 /src/etc/inc/system.inc
parent98a58bee7554780be1986b1b27402e5e2e64697c (diff)
downloadpfsense-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/inc/system.inc')
-rw-r--r--src/etc/inc/system.inc17
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() {
OpenPOWER on IntegriCloud