Server IP : 195.201.23.43 / Your IP : 18.219.179.32 Web Server : Apache System : Linux webserver2.vercom.be 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64 User : kdecoratie ( 1041) PHP Version : 7.1.33-63+ubuntu20.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/share/webmin/time/ |
Upload File : |
# Functions for getting and setting the timezone on Linux use strict; use warnings; no warnings 'redefine'; no warnings 'uninitialized'; our $timezones_file = "/usr/share/zoneinfo/zone.tab"; our $currentzone_link = "/etc/localtime"; our $currentzone_file = "/etc/timezone"; our $timezones_dir = "/usr/share/zoneinfo"; our $sysclock_file = "/etc/sysconfig/clock"; # list_timezones() sub list_timezones { my @rv; my %done; my $fh = "ZONE"; &open_readfile($fh, $timezones_file) || return ( ); while(<$fh>) { s/\r|\n//g; s/^\s*#.*$//; if (/^(\S+)\s+(\S+)\s+(\S+)\s+(\S.*)/) { push(@rv, [ $3, $4 ]); $done{$3}++; } elsif (/^(\S+)\s+(\S+)\s+(\S+)/) { push(@rv, [ $3, undef ]); $done{$3}++; } } close($fh); push(@rv, [ "GMT", "GMT" ]) if (!$done{'GMT'}); push(@rv, [ "UTC", "UTC" ]) if (!$done{'UTC'}); return sort { $a->[0] cmp $b->[0] } @rv; } # get_current_timezone() sub get_current_timezone { my $lnk = readlink(&translate_filename($currentzone_link)); if ($lnk) { # Easy - it a link $lnk =~ s/^\.\.//; $lnk =~ s/$timezones_dir\///; return $lnk; } else { # Need to compare with all timezone files! return &find_same_zone($currentzone_link); } } # set_current_timezone(zone) sub set_current_timezone { my ($zone) = @_; &lock_file($currentzone_link); unlink(&translate_filename($currentzone_link)); symlink(&translate_filename("$timezones_dir/$zone"), &translate_filename($currentzone_link)); &unlock_file($currentzone_link); if (-r $currentzone_file) { # This file is used on Debian systems my $fh = "FILE"; &open_lock_tempfile($fh, ">$currentzone_file"); &print_tempfile($fh, $zone,"\n"); &close_tempfile($fh); } my %clock; if (&read_env_file($sysclock_file, \%clock)) { $clock{'ZONE'} = $zone; &lock_file($sysclock_file); &write_env_file($sysclock_file, \%clock); &unlock_file($sysclock_file); } } sub os_has_timezones { return -r $timezones_file; } sub timezone_files { my @rv = ( $currentzone_link ); push(@rv, $currentzone_file) if (-r $currentzone_file); push(@rv, $sysclock_file) if (-r $sysclock_file); return @rv; } 1;Private