diff --git a/src/freedombone-installer b/src/freedombone-installer index 56249f794091c1c07e0a039289bbafd2b4ce3113..96f5969fd13498274c7987290871b8724a14692c 100755 --- a/src/freedombone-installer +++ b/src/freedombone-installer @@ -2234,6 +2234,47 @@ function update_enable_ssh { fi } +function update_email_blocklists { + FIREWALL_DOMAINS_OLD="$1" + FIREWALL_DOMAINS_NEW="${1}.new" + + # remove email blocks + for d in /home/*/ ; do + USERNAME=$(echo "$d" | awk -F '/' '{print $3}') + if [[ $(is_valid_user "$USERNAME") == "1" ]]; then + if [ -f "/home/$USERNAME/.procmailrc" ]; then + while read -r block_line; do + # email address + if [[ "$block_line" == *'@'* ]]; then + # does not exist in the new version + if ! grep -q "$block_line" "$FIREWALL_DOMAINS_NEW"; then + "${PROJECT_NAME}-unignore" -u "$USERNAME" -e "$block_line" + fi + fi + done < "$FIREWALL_DOMAINS_OLD" + fi + fi + done + + # add email blocks + for d in /home/*/ ; do + USERNAME=$(echo "$d" | awk -F '/' '{print $3}') + if [[ $(is_valid_user "$USERNAME") == "1" ]]; then + if [ -f "/home/$USERNAME/.procmailrc" ]; then + while read -r block_line; do + # email address + if [[ "$block_line" == *'@'* ]]; then + # does not exist in the old version + if ! grep -q "$block_line" "$FIREWALL_DOMAINS_OLD"; then + "${PROJECT_NAME}-ignore" -u "$USERNAME" -e "$block_line" + fi + fi + done < "$FIREWALL_DOMAINS_NEW" + fi + fi + done +} + function update_blocklist { if [ -f "$blocklist_file" ]; then @@ -2299,6 +2340,8 @@ function update_blocklist { fi done < "$blocklist_file" + update_email_blocklists "${FIREWALL_DOMAINS}" + mv "${FIREWALL_DOMAINS}" "${FIREWALL_DOMAINS}.backup" mv "${FIREWALL_DOMAINS}.new" "${FIREWALL_DOMAINS}" rm "$blocklist_file"