This does not use extended regular expressions in any way. While at it change
the way these matches are done: it's irrelevant if the entire expression is in
the file, if there is any rule for the given IP address then do not add the 
new
expression.

Signed-off-by: Rolf Eike Beer <e...@sf-mail.de>
---
 eclass/qmail.eclass | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/eclass/qmail.eclass b/eclass/qmail.eclass
index 9b2c5a8c7fb..ed53bca56fa 100644
--- a/eclass/qmail.eclass
+++ b/eclass/qmail.eclass
@@ -409,7 +409,7 @@ qmail_config_fast() {
 }
 
 qmail_tcprules_config() {
-       local localips ip tcpstring line proto f
+       local localips ip tcpstring proto f
 
        einfo "Accepting relaying by default from all ips configured on 
this machine."
 
@@ -425,10 +425,9 @@ qmail_tcprules_config() {
        tcpstring=':allow,RELAYCLIENT="",RBLSMTPD=""'
 
        for ip in ${localips}; do
-               line="${ip}${tcpstring}"
                for proto in smtp qmtp qmqp; do
                        f="${EROOT}${TCPRULES_DIR}/tcp.qmail-$
{proto}"
-                       egrep -qs "${line}" "${f}" || echo "${line}" 
>> "${f}"
+                       grep -qs "^${ip}:" "${f}" || echo "${ip}$
{tcpstring}" >> "${f}"
                done
        done
 }
-- 
2.35.3

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to