mirror of
https://github.com/webmin/webmin.git
synced 2026-02-03 14:13:29 +00:00
Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
825d54adc4 | ||
|
|
cbaff19725 | ||
|
|
ece2ff6a1e | ||
|
|
6b71562abf | ||
|
|
a73210adc9 | ||
|
|
c6d9d0338f | ||
|
|
5066534a40 | ||
|
|
84a417bd6e | ||
|
|
90c31af379 | ||
|
|
1453508592 | ||
|
|
35455f04e6 |
12
CHANGELOG.md
12
CHANGELOG.md
@@ -1,15 +1,21 @@
|
||||
## Changelog
|
||||
|
||||
#### 2.501 (September 10, 2025)
|
||||
* Add support for Raspberry Pi sensors #2539 #2517
|
||||
* Add Squid 7 support
|
||||
* Update the Authentic theme to the latest version with the following fixes:
|
||||
- Fix broken editor in "Bootup and Shutdown" module
|
||||
|
||||
#### 2.500 (September 4, 2025)
|
||||
* Add support for the Webmin webserver to work in both HTTP and HTTPS modes at the same time
|
||||
* Add distinct warning to the login page if the connection is not secure
|
||||
* Add support for timeouts in temporary rules in FirewallD module
|
||||
* Add support for timeouts in temporary rules in "FirewallD" module
|
||||
* Add support for the new Dovecot version 2.4
|
||||
* Add support for MariaDB version 12 #2522
|
||||
* Add support for IMAP through a local command for Usermin
|
||||
* Add latest SSLeay support for redirects to SSL work
|
||||
* Add improvements to "Bootup and Shutdown" module for _systemd_ systems
|
||||
* Add field for secondary server key in BIND module
|
||||
* Add field for secondary server key in "BIND DNS Server" module
|
||||
* Add reversible encryption helpers API
|
||||
* Add API to display relative dates
|
||||
* Add API to mask sensitive text, like displayed passwords, unless hovered over
|
||||
@@ -21,7 +27,7 @@
|
||||
* Change "Last Logins" on the dashboard to show usernames, relative dates, and all users from the past 3 days
|
||||
* Change to always enable HSTS by default
|
||||
* Fix MySQL/MariaDB to remove obsolete `set-variable` options that break modern config files #2497
|
||||
* Fix download link in table rows in MySQL/MariaDB module
|
||||
* Fix download link in table rows in "MySQL/MariaDB Database Server" module
|
||||
* Fix module not to fail on old MySQL 5.5
|
||||
* Update the Authentic theme to the latest version with various improvements and fixes:
|
||||
- Add support to automatically set the color palette based on OS or browser preferences
|
||||
|
||||
@@ -44,7 +44,7 @@ Webmin 可以两种方法安装:
|
||||
### 贡献者
|
||||
|
||||
* [Joe Cooper](https://github.com/swelljoe)
|
||||
* [Ilia Rostovtsev](https://github.com/iliajie)
|
||||
* [Ilia Rostovtsev](https://github.com/iliaross)
|
||||
* [Kay Marquardt](https://github.com/gnadelwartz)
|
||||
* [Nawawi Jamili](https://github.com/nawawi) + [其他无偿奉献的开发者](https://github.com/webmin/webmin/graphs/contributors)
|
||||
|
||||
|
||||
@@ -48,13 +48,13 @@ For detailed installation instructions check our guide on [webmin.com/download](
|
||||
* [Jamie Cameron](https://www.webmin.com/about.html) [](https://www.linkedin.com/in/jamiecameron2)
|
||||
|
||||
### Developers
|
||||
* [Ilia Rostovtsev](https://github.com/iliajie)
|
||||
* [Ilia Rostovtsev](https://github.com/iliaross)
|
||||
* [Joe Cooper](https://github.com/swelljoe)
|
||||
|
||||
### Contributors
|
||||
* [Kay Marquardt](https://github.com/gnadelwartz)
|
||||
* [Nawawi Jamili](https://github.com/nawawi)
|
||||
* [unknown10777](https://github.com/unknown10777) + [90 more..](https://github.com/webmin/webmin/graphs/contributors)
|
||||
* [unknown10777](https://github.com/unknown10777) + [90 more...](https://github.com/webmin/webmin/graphs/contributors)
|
||||
|
||||
## License
|
||||
|
||||
|
||||
@@ -116,4 +116,4 @@ Name of the user to disable two-factor authentication for.
|
||||
|
||||
Copyright 2018 Jamie Cameron <jcameron@webmin.com>
|
||||
Joe Cooper <joe@virtualmin.com>
|
||||
Ilia Rostovtsev <ilia@virtualmin.com>
|
||||
Ilia Ross <ilia@virtualmin.com>
|
||||
|
||||
@@ -260,5 +260,5 @@ Set new user password. Using this option may be unsecure.
|
||||
|
||||
Copyright 2018 Jamie Cameron <jcameron@webmin.com>
|
||||
Joe Cooper <joe@virtualmin.com>
|
||||
Ilia Rostovtsev <ilia@virtualmin.com>
|
||||
Ilia Ross <ilia@virtualmin.com>
|
||||
|
||||
|
||||
@@ -174,5 +174,5 @@ sub root
|
||||
|
||||
Copyright 2018 Jamie Cameron <jcameron@webmin.com>
|
||||
Joe Cooper <joe@virtualmin.com>
|
||||
Ilia Rostovtsev <ilia@virtualmin.com>
|
||||
Ilia Ross <ilia@virtualmin.com>
|
||||
|
||||
|
||||
@@ -457,5 +457,5 @@ Returns Webmin and other modules and themes versions installed (only those for w
|
||||
|
||||
Copyright 2018 Jamie Cameron <jcameron@webmin.com>
|
||||
Joe Cooper <joe@virtualmin.com>
|
||||
Ilia Rostovtsev <ilia@virtualmin.com>
|
||||
Ilia Ross <ilia@virtualmin.com>
|
||||
|
||||
|
||||
@@ -1135,6 +1135,10 @@ elsif ($type eq "CNAME") {
|
||||
print &ui_table_row($text{'value_CNAME1'},
|
||||
&ui_textbox("value0", $v[0], 30)." ($text{'edit_cnamemsg'})", 3);
|
||||
}
|
||||
elsif ($type eq "ALIAS") {
|
||||
print &ui_table_row($text{'value_ALIAS1'},
|
||||
&ui_textbox("value0", $v[0], 30)." ($text{'edit_cnamemsg'})", 3);
|
||||
}
|
||||
elsif ($type eq "MX") {
|
||||
print &ui_table_row($text{'value_MX2'},
|
||||
&ui_textbox("value1", $v[1], 30));
|
||||
@@ -3117,7 +3121,11 @@ $slave_error = $_[0];
|
||||
|
||||
sub get_forward_record_types
|
||||
{
|
||||
return ("A", "NS", "CNAME", "MX", "HINFO", "TXT", "SPF", "DMARC", "WKS", "RP", "PTR", "LOC", "SRV", "KEY", "TLSA", "SSHFP", "CAA", "NAPTR", "NSEC3PARAM", $config{'support_aaaa'} ? ( "AAAA" ) : ( ), @extra_forward);
|
||||
return ("A", "NS", "CNAME",
|
||||
$config{'allow_alias'} ? ( "ALIAS" ) : ( ),
|
||||
"MX", "HINFO", "TXT", "SPF", "DMARC", "WKS", "RP", "PTR", "LOC",
|
||||
"SRV", "KEY", "TLSA", "SSHFP", "CAA", "NAPTR", "NSEC3PARAM",
|
||||
$config{'support_aaaa'} ? ( "AAAA" ) : ( ), @extra_forward);
|
||||
}
|
||||
|
||||
sub get_reverse_record_types
|
||||
|
||||
@@ -52,3 +52,4 @@ stop_cmd=systemctl stop named
|
||||
restart_cmd=systemctl reload named
|
||||
chroot=
|
||||
auto_chroot=
|
||||
allow_alias=0
|
||||
|
||||
@@ -52,3 +52,4 @@ spf_record=0
|
||||
dnssec_info=1
|
||||
chroot=
|
||||
auto_chroot=
|
||||
allow_alias=0
|
||||
|
||||
@@ -52,3 +52,4 @@ stop_cmd=systemctl stop named
|
||||
restart_cmd=systemctl reload named
|
||||
chroot=
|
||||
auto_chroot=
|
||||
allow_alias=0
|
||||
|
||||
@@ -52,3 +52,4 @@ stop_cmd=systemctl stop named
|
||||
restart_cmd=systemctl reload named
|
||||
chroot=
|
||||
auto_chroot=
|
||||
allow_alias=0
|
||||
|
||||
@@ -52,3 +52,4 @@ stop_cmd=systemctl stop named
|
||||
restart_cmd=systemctl reload named
|
||||
chroot=
|
||||
auto_chroot=
|
||||
allow_alias=0
|
||||
|
||||
@@ -52,3 +52,4 @@ stop_cmd=systemctl stop named
|
||||
restart_cmd=systemctl reload named
|
||||
chroot=
|
||||
auto_chroot=
|
||||
allow_alias=0
|
||||
|
||||
@@ -50,3 +50,4 @@ tmpl_dnssec_dt=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -52,3 +52,4 @@ stop_cmd=systemctl stop named
|
||||
restart_cmd=systemctl reload named
|
||||
chroot=
|
||||
auto_chroot=
|
||||
allow_alias=0
|
||||
|
||||
@@ -52,3 +52,4 @@ stop_cmd=systemctl stop named
|
||||
restart_cmd=systemctl reload named
|
||||
chroot=
|
||||
auto_chroot=
|
||||
allow_alias=0
|
||||
|
||||
@@ -47,3 +47,4 @@ restart_cmd=service named restart
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -48,3 +48,4 @@ start_cmd=systemctl start bind9.service
|
||||
stop_cmd=systemctl stop bind9.service
|
||||
restart_cmd=systemctl reload bind9.service
|
||||
dnssec_period=21
|
||||
allow_alias=0
|
||||
|
||||
@@ -48,3 +48,4 @@ start_cmd=systemctl start named.service
|
||||
stop_cmd=systemctl stop named.service
|
||||
restart_cmd=systemctl reload named.service
|
||||
dnssec_period=21
|
||||
allow_alias=0
|
||||
|
||||
@@ -38,3 +38,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -40,3 +40,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -44,3 +44,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -40,3 +40,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -40,3 +40,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -48,3 +48,4 @@ start_cmd=systemctl start bind9.service
|
||||
stop_cmd=systemctl stop bind9.service
|
||||
restart_cmd=systemctl reload bind9.service
|
||||
dnssec_period=21
|
||||
allow_alias=0
|
||||
|
||||
@@ -48,3 +48,4 @@ start_cmd=systemctl start named.service
|
||||
stop_cmd=systemctl stop named.service
|
||||
restart_cmd=systemctl reload named.service
|
||||
dnssec_period=21
|
||||
allow_alias=0
|
||||
|
||||
@@ -40,3 +40,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -43,3 +43,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -44,3 +44,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -41,3 +41,4 @@ force_random=0
|
||||
spf_record=0
|
||||
pid_file=/var/run/named/pid
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -40,3 +40,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -40,3 +40,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -40,3 +40,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -41,3 +41,4 @@ force_random=0
|
||||
spf_record=0
|
||||
pid_file=/var/run/named/pid
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -41,3 +41,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -43,3 +43,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -40,3 +40,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -40,3 +40,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -40,3 +40,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -41,3 +41,4 @@ pid_file=/var/run/named/named.pid /private/var/run/named/named.pid
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -43,3 +43,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -43,3 +43,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -42,3 +42,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -40,3 +40,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -42,3 +42,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -48,3 +48,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -40,3 +40,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -41,3 +41,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -42,3 +42,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -40,3 +40,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -40,3 +40,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -45,3 +45,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -52,3 +52,4 @@ stop_cmd=systemctl stop named
|
||||
restart_cmd=systemctl reload named
|
||||
chroot=
|
||||
auto_chroot=
|
||||
allow_alias=0
|
||||
|
||||
@@ -52,3 +52,4 @@ spf_record=0
|
||||
dnssec_info=1
|
||||
chroot=
|
||||
auto_chroot=
|
||||
allow_alias=0
|
||||
|
||||
@@ -40,3 +40,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -41,3 +41,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -43,3 +43,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -41,3 +41,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -41,3 +41,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -40,3 +40,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -40,3 +40,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -45,3 +45,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -46,3 +46,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -48,3 +48,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -35,3 +35,4 @@ other_slaves=1
|
||||
updserial_man=1
|
||||
master_ttl=1
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -47,3 +47,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -47,3 +47,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -47,3 +47,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -40,3 +40,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -43,3 +43,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -41,3 +41,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -58,3 +58,4 @@ other_slaves=1
|
||||
force_random=0
|
||||
spf_record=0
|
||||
dnssec_info=1
|
||||
allow_alias=0
|
||||
|
||||
@@ -19,6 +19,7 @@ support_aaaa=Support DNS for IPv6 addresses,1,1-Yes,0-No
|
||||
allow_comments=Allow comments for records,1,1-Yes,0-No
|
||||
allow_wild=Allow wildcards?,1,1-Yes,0-No
|
||||
allow_underscore=Allow underscores in record names?,1,1-Yes,0-No
|
||||
allow_alias=Allow ALIAS records?,1,1-Yes,0-No
|
||||
short_names=Convert record names to canonical form?,1,0-Yes,1-No
|
||||
extra_forward=Extra record types for forward zones,0
|
||||
extra_reverse=Extra record types for reverse zones,0
|
||||
|
||||
@@ -398,6 +398,7 @@ type_A=Address
|
||||
type_AAAA=IPv6 Address
|
||||
type_NS=Name Server
|
||||
type_CNAME=Name Alias
|
||||
type_ALIAS=Address Alias
|
||||
type_MX=Mail Server
|
||||
type_HINFO=Host Information
|
||||
type_NSEC3PARAM=DNSSEC Parameters
|
||||
@@ -420,6 +421,7 @@ edit_A=Address
|
||||
edit_AAAA=IPv6 Address
|
||||
edit_NS=Name Server
|
||||
edit_CNAME=Name Alias
|
||||
edit_ALIAS=Address Alias
|
||||
edit_MX=Mail Server
|
||||
edit_HINFO=Host Information
|
||||
edit_TXT=Text
|
||||
@@ -442,6 +444,7 @@ recs_A=Address
|
||||
recs_AAAA=IPv6 Address
|
||||
recs_NS=Name Server
|
||||
recs_CNAME=Name Alias
|
||||
recs_ALIAS=Address Alias
|
||||
recs_MX=Mail Server
|
||||
recs_HINFO=Host Information
|
||||
recs_TXT=Text
|
||||
@@ -465,6 +468,7 @@ value_A1=Address
|
||||
value_AAAA1=IPv6 Address
|
||||
value_NS1=Name Server
|
||||
value_CNAME1=Real Name
|
||||
value_ALIAS1=Copy Address From
|
||||
value_MX1=Priority
|
||||
value_MX2=Mail Server
|
||||
value_HINFO1=Hardware
|
||||
|
||||
@@ -216,6 +216,13 @@ else {
|
||||
$vals .= ".";
|
||||
}
|
||||
}
|
||||
elsif ($in{'type'} eq "ALIAS") {
|
||||
&valname($vals) ||
|
||||
&error(&text('edit_ecname', $vals));
|
||||
if ($vals =~ /\.\Q$in{'origin'}\E$/) {
|
||||
$vals .= ".";
|
||||
}
|
||||
}
|
||||
elsif ($in{'type'} eq "MX") {
|
||||
&valname($in{'value1'}) ||
|
||||
&error(&text('edit_emx', $in{'value1'}));
|
||||
|
||||
@@ -501,6 +501,13 @@ my @fans;
|
||||
my @fans_all;
|
||||
my @cpu_thermisters;
|
||||
my $cpu_broadcoms;
|
||||
my @sensors;
|
||||
my $ceil = sub {
|
||||
my $x = shift;
|
||||
$x //= 0;
|
||||
my $i = int($x);
|
||||
return $i + ($x > $i);
|
||||
};
|
||||
if (&has_command("sensors")) {
|
||||
my ($cpu, $cpu_aux, $cpu_unnamed, $cpu_package, $cpu_broadcom, $cpu_amd);
|
||||
my $fh = "SENSORS";
|
||||
@@ -510,9 +517,10 @@ if (&has_command("sensors")) {
|
||||
&open_execute_command($fh, "sensors </dev/null 2>/dev/null", 1);
|
||||
|
||||
while (<$fh>) {
|
||||
|
||||
# Buffer output for later use
|
||||
push(@sensors, $_);
|
||||
# CPU full output must have either voltage or fan data
|
||||
my ($cpu_volt) = $_ =~ /(?|in[\d+]\s*:\s+([\+\-0-9\.]+)\s+V|cpu\s+core\s+voltage\s*:\s+([0-9\.]+)\s+V)/i;
|
||||
my ($cpu_volt) = $_ =~ /(?|in\d+\s*:\s+([\+\-0-9\.]+)\s+V|cpu\s+core\s+voltage\s*:\s+([0-9\.]+)\s+V)/i;
|
||||
# CPU fans should be always labeled as 'cpu fan' or 'cpu_fan' or 'cpufan'
|
||||
# and/or 'cpu fan 1', 'cpu_fan1', 'cpufan1', 'cpu_fan 2', 'cpu_fan2',
|
||||
# 'cpufan2' etc.
|
||||
@@ -535,7 +543,7 @@ if (&has_command("sensors")) {
|
||||
|
||||
# AMD CPU Thermisters #1714
|
||||
if ($cpu && /thermistor\s+[\d]+:\s+[+-]([\d]+)/i) {
|
||||
my $temp = int($1);
|
||||
my $temp = $ceil->($1);
|
||||
push(@cpu_thermisters,
|
||||
{ 'core' => scalar(@cpu_thermisters) + 1,
|
||||
'temp' => $temp
|
||||
@@ -552,13 +560,13 @@ if (&has_command("sensors")) {
|
||||
# Common CPU multi
|
||||
if (/Core\s+(\d+):\s+([\+\-][0-9\.]+)/) {
|
||||
|
||||
# Prioritise package core temperature
|
||||
# Prioritize package core temperature
|
||||
# data over motherboard but keep fans
|
||||
@cpu = (), $cpu_aux++
|
||||
if ($cpu_aux & 1 && grep { $_->{'core'} eq $1 } @cpu);
|
||||
push(@cpu,
|
||||
{ 'core' => $1,
|
||||
'temp' => int($2)
|
||||
'temp' => $ceil->($2)
|
||||
});
|
||||
}
|
||||
|
||||
@@ -566,7 +574,7 @@ if (&has_command("sensors")) {
|
||||
elsif (/CPU:\s+([\+\-][0-9\.]+)/) {
|
||||
push(@cpu,
|
||||
{ 'core' => 0,
|
||||
'temp' => int($1)
|
||||
'temp' => $ceil->($1)
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -588,7 +596,7 @@ if (&has_command("sensors")) {
|
||||
if (/temp(\d+):\s+([\+][0-9\.]+).*?[Cc]\s+.*?[=+].*?\)/) {
|
||||
push(@cpu,
|
||||
{ 'core' => (int($1) - 1),
|
||||
'temp' => int($2)
|
||||
'temp' => $ceil->($2)
|
||||
});
|
||||
}
|
||||
|
||||
@@ -597,7 +605,7 @@ if (&has_command("sensors")) {
|
||||
/(cpu\s+temperature)\s*:\s+([\+][0-9\.]+).*?[Cc]/i) {
|
||||
push(@cpu,
|
||||
{ 'core' => 0,
|
||||
'temp' => int($2)
|
||||
'temp' => $ceil->($2)
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -606,8 +614,8 @@ if (&has_command("sensors")) {
|
||||
elsif ($cpu_broadcom) {
|
||||
if (/temp(\d+):\s+([\+\-][0-9\.]+)/) {
|
||||
push(@cpu,
|
||||
{ 'core' => $1,
|
||||
'temp' => int($2)
|
||||
{ 'core' => int($1),
|
||||
'temp' => $ceil->($2)
|
||||
});
|
||||
$cpu_broadcoms++;
|
||||
}
|
||||
@@ -615,7 +623,7 @@ if (&has_command("sensors")) {
|
||||
$cpu_unnamed++;
|
||||
push(@cpu,
|
||||
{ 'core' => $cpu_unnamed,
|
||||
'temp' => int($2)
|
||||
'temp' => $ceil->($2)
|
||||
});
|
||||
$cpu_broadcoms++;
|
||||
}
|
||||
@@ -628,15 +636,15 @@ if (&has_command("sensors")) {
|
||||
if (/Tdie:\s+([\+\-][0-9\.]+)/) {
|
||||
push(@cpu,
|
||||
{ 'core' => 0,
|
||||
'temp' => int($1),
|
||||
'temp' => $ceil->($1),
|
||||
});
|
||||
}
|
||||
|
||||
# Like in #1481 #1484
|
||||
elsif (/temp(\d+):\s+([\+\-][0-9\.]+).*?[Cc]\s+.*?[=+].*?\)/) {
|
||||
push(@cpu,
|
||||
{ 'core' => (int($1) - 1),
|
||||
'temp' => int($2),
|
||||
{ 'core' => ($ceil->($1) - 1),
|
||||
'temp' => $ceil->($2),
|
||||
});
|
||||
}
|
||||
|
||||
@@ -644,7 +652,7 @@ if (&has_command("sensors")) {
|
||||
elsif (/Tctl:\s*([\+\-][0-9\.]+)/) {
|
||||
push(@cpu,
|
||||
{ 'core' => 0,
|
||||
'temp' => int($1),
|
||||
'temp' => $ceil->($1),
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -690,6 +698,58 @@ if (!@fans && @cpu && @fans_all &&
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Fall back logic for CPU temperature and fans spread over multiple
|
||||
# devices like Raspberry Pi #2517 and #2539
|
||||
if (@cpu || !@fans) {
|
||||
# - Look for least two ISA voltage rails anywhere
|
||||
# - See a CPU temp under cpu_thermal
|
||||
# - Optionally grab a fan RPM under pwmfan-isa-*
|
||||
my $can_fallback =
|
||||
(!@cpu && (grep { /^\s*cpu_thermal/i } @sensors)) ||
|
||||
(@cpu && !@fans && (grep { /^\s*pwmfan-isa-/i } @sensors));
|
||||
return (\@cpu, \@fans) if (!$can_fallback);
|
||||
my ($chip, $bus); # isa|pci|platform|virtual
|
||||
my $isa_volt;
|
||||
my ($cpu_temp, $fan_rpm);
|
||||
for (@sensors) {
|
||||
# Chip header
|
||||
if (/^([A-Za-z0-9_+\-]+)-(isa|pci|platform|virtual)-[\w:]+\s*$/) {
|
||||
$chip = lc $1;
|
||||
$bus = lc $2;
|
||||
next;
|
||||
}
|
||||
|
||||
# Count real voltage rails
|
||||
if (defined $bus && $bus eq 'isa' &&
|
||||
/\bin\d+\s*:\s*([+\-]?[0-9]+(?:\.[0-9]+)?)\s*V\b/i) {
|
||||
$isa_volt++;
|
||||
next;
|
||||
}
|
||||
|
||||
# CPU temperature
|
||||
if (defined $chip && $chip =~ /^cpu_thermal/i &&
|
||||
/\b(?:CPU(?:\s*Temp)?|temp\d+)\s*:\s*([+\-]?[0-9]+(?:\.[0-9]+)?)\s*°?C\b/i) {
|
||||
$cpu_temp //= $1;
|
||||
next;
|
||||
}
|
||||
|
||||
# Fan RPM
|
||||
if (defined $chip && $chip =~ /^pwmfan/i &&
|
||||
/\b(?:cpu[_ ]?fan(?:\s*\d+)?|fan\d+)\s*:\s*(\d+)\s*rpm\b/i) {
|
||||
my $rpm = $1 + 0;
|
||||
$fan_rpm = $rpm if (!$fan_rpm || $rpm > $fan_rpm);
|
||||
next;
|
||||
}
|
||||
}
|
||||
|
||||
# Update only what's missing
|
||||
push(@cpu, { 'core' => 1, 'temp' => $ceil->($cpu_temp) })
|
||||
if (!@cpu && defined $cpu_temp && $isa_volt >= 2);
|
||||
push(@fans, { 'fan' => 1, 'rpm' => $fan_rpm })
|
||||
if (!@fans && defined $fan_rpm);
|
||||
}
|
||||
|
||||
return (\@cpu, \@fans);
|
||||
}
|
||||
|
||||
|
||||
@@ -45,10 +45,10 @@ if ($ver =~ /version\s+(\S+)/i) {
|
||||
$ver = $1;
|
||||
}
|
||||
my $squid_version;
|
||||
if ($ver =~ /Version\s+([2-6]\.[0-9]+)/ ||
|
||||
if ($ver =~ /Version\s+([2-7]\.[0-9]+)/ ||
|
||||
$ver =~ /^(1\.1)\.\d+/ ||
|
||||
$ver =~ /^(1)\.NOVM/ ||
|
||||
$ver =~ /^([2-6]\.[0-9]+)/) {
|
||||
$ver =~ /^([2-7]\.[0-9]+)/) {
|
||||
# Save version number
|
||||
open(VERSION, ">$module_config_directory/version");
|
||||
print VERSION $1,"\n";
|
||||
|
||||
@@ -242,7 +242,8 @@ print ui_table_row($text{'ssl_privcert'},
|
||||
[ 0, $text{'ssl_below'} ] ])."<br>\n".
|
||||
ui_textarea("cert", undef, 7, 70)."<br>\n".
|
||||
"<b>$text{'ssl_upload'}</b>\n".
|
||||
ui_upload("certfile"));
|
||||
ui_upload("certfile", undef, undef,
|
||||
"onChange='form.cert_def.value = 0'"));
|
||||
|
||||
print ui_table_row($text{'ssl_privchain'},
|
||||
ui_radio("chain_def", 1,
|
||||
@@ -251,7 +252,8 @@ print ui_table_row($text{'ssl_privchain'},
|
||||
[ 0, $text{'ssl_below'} ] ])."<br>\n".
|
||||
ui_textarea("chain", undef, 7, 70)."<br>\n".
|
||||
"<b>$text{'ssl_upload'}</b>\n".
|
||||
ui_upload("chainfile"));
|
||||
ui_upload("chainfile", undef, undef,
|
||||
"onChange='form.chain_def.value = 0'"));
|
||||
|
||||
print ui_table_end();
|
||||
print ui_form_end([ [ "save", $text{'save'} ] ]);
|
||||
|
||||
Reference in New Issue
Block a user