Compare commits

..

12 Commits

Author SHA1 Message Date
Ilia Ross
8957333dca Fix not to quotemeta hardcoded flag #2159 2025-10-05 01:17:28 +03:00
Ilia Ross
1caf80bbc1 Update changelog 2025-10-04 17:15:46 +03:00
Ilia Ross
18c12c7f8b Fix to correctly fetch "PPTP VPN Client" version as --help returns different output
https://github.com/webmin/webmin/issues/2567
2025-10-04 12:35:26 +03:00
Ilia Ross
78a3ab924d Fix to display error message correctly in PPTP VPN Client 2025-10-04 12:29:03 +03:00
Ilia Ross
652f2db774 Fix tooltips 2025-10-04 12:17:28 +03:00
Jamie Cameron
8b58d7cce3 Merge branch 'master' of github.com:webmin/webmin 2025-10-03 20:04:19 -07:00
Jamie Cameron
52f87286a4 Add tooltips for white and black lists 2025-10-03 19:43:46 -07:00
Ilia Ross
28c7939636 Fix to check if helper command is running as root 2025-10-04 01:12:05 +03:00
Ilia Ross
face8319f2 Fix to safely kill only targeted scripts 2025-10-04 00:45:21 +03:00
Jamie Cameron
7a651027bf New version bump 2025-10-02 20:15:30 -07:00
Jamie Cameron
bbf317803a Merge pull request #2565 from webmin/dev/check-https-redirect-later
Fix to redirect to HTTPS when we get the host from the browser URL
2025-10-02 19:25:35 -07:00
Ilia Ross
1091434ff4 Add more days to view log since #2564 2025-10-02 16:24:41 +03:00
14 changed files with 65 additions and 14 deletions

View File

@@ -1,20 +1,22 @@
## Changelog
#### 2.520 (October 2, 2025)
#### 2.520 (October 4, 2025)
* Fix to make sure the mail URL uses a well-known host name [security]
* Fix support for other Raspberry Pi sensors #2545
* Fix support for other Raspberry Pi sensors [#2545](https://github.com/webmin/webmin/issues/2545)
* Fix the printing of the bottom button row in the form column table
* Fix to recommend Perl `Sys::Syslog` module #2557
* Fix to recommend Perl `Sys::Syslog` module [#2557](https://github.com/webmin/webmin/issues/2557)
* Fix to avoid using short hostname in HTTPS redirects when an FQDN is available
* Fix to use _/proc_ sampler instead of `vmstat` for the same output with much lower overhead
* Fix to query specific fields in FreeBSD memory stats collection, cutting CPU use by 80%
* Fix to kill Webmin subprocesses during RC stop on FreeBSD and other systems
* Fix to correctly fetch command version in `PPTP VPN Client` module [#2567](https://github.com/webmin/webmin/issues/2567)
* Add a complete overhaul of `var_dump` subroutine, which is now fully portable
* Update the Authentic theme to the latest version with various fixes:
- Fix the text color when reading email in the Read User Mail module [webmin#2555](https://github.com/webmin/webmin/issues/2555)
- Fix to ensure the selected color palette is correctly stored when changed manually [webmin#2552](https://github.com/webmin/webmin/issues/2552)
- Fix a bug when the Webmin version label was missing when copying to clipboard system information from the dashboard
- Fix DNS query spike from network stats collection on FreeBSD [webmin#2556](https://github.com/webmin/webmin/issues/2556)
- Fix to display the appropriate icon for proxy mode on new Bunny DNS
- Fix spinner color in toast messages for dark palette
- Fix other bugs and add various small improvements

View File

@@ -9,6 +9,13 @@ use Getopt::Long qw(:config permute pass_through);
use Term::ANSIColor qw(:constants);
use Pod::Usage;
# Check if root
if ($> != 0) {
die BRIGHT_RED, "Error: ", RESET, BRIGHT_YELLOW,"webmin", RESET,
" command must be run as root\n";
exit 1;
}
my $a0 = $ARGV[0];
sub main {

View File

@@ -50,7 +50,7 @@ if ($action ne '-b' && $action ne '-k') {
$types .= " ".join(' ', @extra) ;
}
}
my $args = quotemeta($action)." ".$types." ".quotemeta($recursive);
my $args = quotemeta($action)." ".$types." ".$recursive;
$args =~ s/\s+/ /g;
$args = &trim($args);
foreach my $file (@files) {

View File

@@ -21,6 +21,7 @@ journal_since0=Latest available
journal_since1=Real-time follow
journal_since2=Current boot
journal_since2-1=Last boot
journal_since30=30 days ago
journal_since3=7 days ago
journal_since4=24 hours ago
journal_since5=8 hours ago

View File

@@ -36,6 +36,7 @@ return [
{ "--follow" => $text{'journal_since1'} },
{ "--boot" => $text{'journal_since2'} },
{ "--boot -1" => $text{'journal_since2-1'} },
{ "--since '30 days ago'" => $text{'journal_since30'} },
{ "--since '7 days ago'" => $text{'journal_since3'} },
{ "--since '24 hours ago'" => $text{'journal_since4'} },
{ "--since '8 hours ago'" => $text{'journal_since5'} },

View File

@@ -22,7 +22,7 @@ if (!&has_command($config{'pptp'})) {
}
elsif (!$vers) {
# The PPP daemon is not installed
print "<p>",&text('index_epppd', "<tt>pppd</tt>"),"<p>\n";
print "<p>",&text('index_eppp', "<tt>pppd</tt>"),"<p>\n";
}
else {
# Show icons

View File

@@ -258,7 +258,7 @@ return 0;
# get_pppd_version(&out)
sub get_pppd_version
{
local $out = `pppd --help 2>&1`;
local $out = `pppd --version 2>&1`;
${$_[0]} = $out;
return $out =~ /version\s+(\S+)/i ? $1 : undef;
}

View File

@@ -616,11 +616,17 @@ else {
print STOP "else\n";
print STOP " echo Stopping Webmin server in $wadir\n";
print STOP "fi\n";
print STOP "pids=\`ps axww -o pid= -o command= | awk -v wd=\"$wadir/\" '\$0 ~ wd && \$0 !~ /miniserv\\.pl/ {print \$1}'\`\n";
print STOP "targets=\"stats.pl shellserver.pl\"\n";
print STOP "collect_pids() {\n";
print STOP " for s in \$targets; do\n";
print STOP " ps axww | grep \"$wadir/\" | grep \"/\$s\" | grep -v grep\n";
print STOP " done | awk '{print \$1}' | sort -u\n";
print STOP "}\n";
print STOP "pids=\$(collect_pids)\n";
print STOP "[ -n \"\$pids\" ] && kill \$pids 2>/dev/null || true\n";
print STOP "if [ \"\$1\" = \"--kill\" ]; then\n";
print STOP " sleep 1\n";
print STOP " pids=\`ps axww -o pid= -o command= | awk -v wd=\"$wadir/\" '\$0 ~ wd && \$0 !~ /miniserv\\.pl/ {print \$1}'\`\n";
print STOP " pids=\$(collect_pids)\n";
print STOP " [ -n \"\$pids\" ] && kill -KILL \$pids 2>/dev/null || true\n";
print STOP "fi\n";
print STOP "pidfile=\`grep \"^pidfile=\" $config_directory/miniserv.conf | sed -e 's/pidfile=//g'\`\n";

View File

@@ -695,11 +695,17 @@ echo " echo Force stopping Webmin server in $wadir" >>$config_dir/.stop-init
echo "else" >>$config_dir/.stop-init
echo " echo Stopping Webmin server in $wadir" >>$config_dir/.stop-init
echo "fi" >>$config_dir/.stop-init
echo "pids=\`ps axww -o pid= -o command= | awk -v wd=\"$wadir/\" '\$0 ~ wd && \$0 !~ /miniserv\\.pl/ {print \$1}'\`" >>$config_dir/.stop-init
echo "targets=\"stats.pl shellserver.pl\"" >>$config_dir/.stop-init
echo "collect_pids() {" >>$config_dir/.stop-init
echo " for s in \$targets; do" >>$config_dir/.stop-init
echo " ps axww | grep \"$wadir/\" | grep \"/\$s\" | grep -v grep" >>$config_dir/.stop-init
echo " done | awk '{print \$1}' | sort -u" >>$config_dir/.stop-init
echo "}" >>$config_dir/.stop-init
echo "pids=\$(collect_pids)" >>$config_dir/.stop-init
echo "[ -n \"\$pids\" ] && kill \$pids 2>/dev/null || true" >>$config_dir/.stop-init
echo "if [ \"\$1\" = \"--kill\" ]; then" >>$config_dir/.stop-init
echo " sleep 1" >>$config_dir/.stop-init
echo " pids=\`ps axww -o pid= -o command= | awk -v wd=\"$wadir/\" '\$0 ~ wd && \$0 !~ /miniserv\\.pl/ {print \$1}'\`" >>$config_dir/.stop-init
echo " pids=\$(collect_pids)" >>$config_dir/.stop-init
echo " [ -n \"\$pids\" ] && kill -KILL \$pids 2>/dev/null || true" >>$config_dir/.stop-init
echo "fi" >>$config_dir/.stop-init
echo "pidfile=\`grep \"^pidfile=\" $config_dir/miniserv.conf | sed -e 's/pidfile=//g'\`" >>$config_dir/.stop-init

View File

@@ -28,13 +28,13 @@ print &ui_table_start(undef, undef, 2);
# Addresses to always whitelist
@from = &find("whitelist_from", $conf);
print &ui_table_row($text{'white_from'},
print &ui_table_row(&hlink($text{'white_from'}, 'white_from'),
&edit_textbox("whitelist_from",
[ map { @{$_->{'words'}} } @from ], 60, 10));
# Exceptions to whitelist
@un = &find("unwhitelist_from", $conf);
print &ui_table_row($text{'white_unfrom'},
print &ui_table_row(&hlink($text{'white_unfrom'}, 'white_unfrom'),
&edit_textbox("unwhitelist_from",
[ map { @{$_->{'words'}} } @un ], 60, 5));
@@ -54,7 +54,7 @@ if ($config{'show_global'}) {
# Whitelist by received header
@rcvd = &find("whitelist_from_rcvd", $conf);
print &ui_table_row($text{'white_rcvd2'},
print &ui_table_row(&hlink($text{'white_rcvd2'}, 'white_rcvd2'),
&edit_table("whitelist_from_rcvd",
[ $text{'white_addr'}, $text{'white_rcvdhost'} ],
[ map { $_->{'words'} } @rcvd ], [ 40, 30 ], undef, 3));

13
spam/help/white_from.html Normal file
View File

@@ -0,0 +1,13 @@
<header>Senders to never classify as spam</header>
The <tt>whitelist_from</tt> option is used to whitelist sender addresses which
send mail that is often tagged (incorrectly) as spam. <p>
Use of this setting is not recommended, since it blindly trusts the message,
which is routinely and easily forged by spammers and phish senders. <p>
The recommended solution is to instead use whitelist_auth or other authenticated
whitelisting methods, or <tt>whitelist_from_rcvd</tt>. <p>
<footer>

View File

@@ -0,0 +1,8 @@
<header>Sender to never classify as spam</header>
The <tt>whitelist_from_rcvd</tt> option is used to supplement the allowed
sender addresses with a check against the received headers. The first parameter
is the address to whitelist, and the second is a string to match the relay's
rDNS. <p>
<footer>

View File

@@ -0,0 +1,7 @@
<header>Exceptions for senders to never classify as spam</header>
The <tt>unwhitelist_from</tt> option is used to override a sender to never
classify as spam, for example to be more specific or to block an address that is
allowed globally. <p>
<footer>

View File

@@ -1 +1 @@
2.510
2.520