瀏覽代碼

postfix: broken mynetworks parameter default value

Fixed an issue with the default parameter value.

1. By default, the init script set ip address instead of network address in the parameter value (i.e. 192.168.1.1/24 instead of 192.168.1.0/24)
2. Dynamic address were not caught by the init script

As a result, if the mynetworks parameter was left default, Postfix would have rejected the mails with the following message in the logs:

Sat Dec  6 23:26:45 2014 mail.info postfix/smtpd[22806]: NOQUEUE: reject: RCPT from unknown[104.167.106.30]: 451 4.3.0 <ds_gitcommit@shulyaka.org.ru>: Temporary lookup failure; from=<delivery@mx.sailthru.com> to=<ds_gitcommit@shulyaka.org.ru> proto=ESMTP helo=<mx-indiegogo-b.sailthru.com>
Sat Dec  6 23:26:45 2014 mail.warn postfix/smtpd[22806]: warning: non-null host address bits in "127.0.0.1/8", perhaps you should use "127.0.0.0/8" instead

This commit fixes that behavior for the new installations.

Signed-off-by: Denis Shulyaka <Shulyaka@gmail.com>
Denis Shulyaka 10 年之前
父節點
當前提交
9adfea21f9
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1
    1
      mail/postfix/files/postfix.init

+ 1
- 1
mail/postfix/files/postfix.init 查看文件

@@ -16,7 +16,7 @@ upgrade() {
16 16
 
17 17
 		echo "myhostname = $(uci get system.@system[0].hostname)" >> "$config_directory"/main.cf.default
18 18
 		echo "mydomain = $(uci get system.@system[0].hostname|sed -e "s/[^\.]*\.\(.*\)/\1/")" >> "$config_directory"/main.cf.default
19
-		for net in $(uci show network|grep ipaddr|sed -e "s/network\.\([^\.]*\).*/\1/"); do eval "$(ipcalc.sh $(uci get network.$net.ipaddr) $(uci get network.$net.netmask))"; echo "$IP/$PREFIX"; done | xargs echo "mynetworks =" >> "$config_directory"/main.cf.default
19
+		ifconfig | grep "inet addr" | sed -e "s/.*inet addr:\([0-9.]*\).*Mask:/\1 /" | while read IP NETMASK; do eval "$(ipcalc.sh $IP $NETMASK)"; echo "$NETWORK/$PREFIX"; done | xargs echo "mynetworks =" >> "$config_directory"/main.cf.default
20 20
 
21 21
 		grep -qc "^sendmail_path" "$config_directory"/main.cf >/dev/null || postconf -e "$(grep "^sendmail_path =" "$config_directory"/main.cf.default)"
22 22
 		grep -qc "^newaliases_path" "$config_directory"/main.cf >/dev/null || postconf -e "$(grep "^newaliases_path =" "$config_directory"/main.cf.default)"