From d74e7e66c5886f01d2f782a461adbc5959a46a17 Mon Sep 17 00:00:00 2001 From: Ilia Ross Date: Wed, 19 Mar 2025 13:31:37 +0200 Subject: [PATCH] Fix to simplify regex check --- dovecot/edit_net.cgi | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/dovecot/edit_net.cgi b/dovecot/edit_net.cgi index 3c6b0726f..06e7bf8dc 100755 --- a/dovecot/edit_net.cgi +++ b/dovecot/edit_net.cgi @@ -32,24 +32,19 @@ print &ui_table_row($text{'net_ssl_disable'}, [ @opts, [ "", &getdef($sslopt, \@opts) ] ])); -@listens = &find("imap_listen", $conf, 2) ? +my @listens = &find("imap_listen", $conf, 2) ? ("imap_listen", "pop3_listen", "imaps_listen", "pop3s_listen") : ("listen"); +my $mode; foreach $l (@listens) { - $listen = &find_value($l, $conf); - $mode = !$listen ? 0 : + my $v = &find_value($l, $conf); + $mode = !$v ? 0 : # All interfaces, put in any order, e.g. "[::], *" or "*, ::" - $listen =~ /^ - (?!(\*,\s*\*) # Disallow *, * - | (\[::\],\s*::) # Disallow [::], :: - | (::,\s*\[::\])) # Disallow ::, [::] - (\*|::|\[::\]),\s* # Match *, ::, or [::] - (\*|::|\[::\])$ # Followed by another *, ::, or [::] - /x ? 1 : + $v =~ /^\*,\s*(::|\[::\])$/ || $v =~ /^(::|\[::\]),\s*\*$/ ? 1 : # IPv6 only, e.g. "[::]" or "::" - $listen eq '::' || $listen eq '[::]' ? 4 : + $v eq '::' || $v eq '[::]' ? 4 : # IPv4 only, e.g. "*" - $listen eq "*" ? 2 : 3, + $v eq "*" ? 2 : 3, print &ui_table_row($text{'net_'.$l}, &ui_radio($l."_mode", $mode, [ [ 0, $text{'net_listen0'} ], @@ -57,7 +52,7 @@ foreach $l (@listens) { [ 2, $text{'net_listen2'} ], [ 4, $text{'net_listen4'} ], [ 3, $text{'net_listen3'} ] ])."\n". - &ui_textbox($l, $mode == 3 ? $listen : "", 40), 3); + &ui_textbox($l, $mode == 3 ? $v : "", 40), 3); } print &ui_table_end();