From 3c6bdb0a6d3812b413f16552766c6950186856e5 Mon Sep 17 00:00:00 2001 From: leonamp Date: Tue, 17 Nov 2015 12:36:02 -0200 Subject: [PATCH] =?UTF-8?q?Atializa=C3=A7=C3=A3o=20do=20script=20cliente?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Esta alteração é uma preparação para aceitar tickets com URL, que será a nova funcionalidade da próxima versão SPFBL-1.1.0. O SPFBL passará a enviar o ticket com a URL que aponta para o hostname definido no arquivo de configuração. Se o hostname for definido e o serviço HTTP for iniciado, todos os tickets serão enviados com a URL. Isso facilitará a criação de novas ferramentas de denuncia feita diretamente pelo destinatário. --- client/spfbl.sh | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/client/spfbl.sh b/client/spfbl.sh index 2ae7ee5a..86552a6f 100644 --- a/client/spfbl.sh +++ b/client/spfbl.sh @@ -1367,7 +1367,7 @@ case $1 in elif [[ $2 =~ ^[a-zA-Z0-9/+=]{44,512}$ ]]; then # O parâmentro é um ticket SPFBL. ticket=$2 - elif [ -f "$1" ]; then + elif [ -f "$2" ]; then # O parâmetro é um arquivo. file=$2 @@ -1376,8 +1376,14 @@ case $1 in ticket=$(grep -Pom 1 "^Received-SPFBL: (PASS|SOFTFAIL|NEUTRAL|NONE) \K([0-9a-zA-Z\+/=]+)$" $file) if [ $? -gt 0 ]; then - echo "Nenhum ticket SPFBL foi encontrado na mensagem." - exit 2 + + # Extrai o ticket incorporado no arquivo. + url=$(grep -Pom 1 "^Received-SPFBL: (PASS|SOFTFAIL|NEUTRAL|NONE) \K(http://.+/spam/[0-9a-zA-Z\+/=]+)$" $file) + + if [ $? -gt 0 ]; then + echo "Nenhum ticket SPFBL foi encontrado na mensagem." + exit 2 + fi fi else echo "O arquivo não existe." @@ -1453,13 +1459,11 @@ case $1 in else if [[ $2 =~ ^http://.+/spam/[a-zA-Z0-9/+=]{44,512}$ ]]; then # O parâmentro é uma URL de denúncia SPFBL. - spamURL=/spam/ - hamURL=/ham/ - url=${2/$spamURL/$hamURL} + url=$2 elif [[ $2 =~ ^[a-zA-Z0-9/+]{44,512}$ ]]; then # O parâmentro é um ticket SPFBL. ticket=$2 - elif [ -f "$1" ]; then + elif [ -f "$2" ]; then # O parâmetro é um arquivo. file=$2 @@ -1468,8 +1472,14 @@ case $1 in ticket=$(grep -Pom 1 "^Received-SPFBL: (PASS|SOFTFAIL|NEUTRAL|NONE) \K([0-9a-zA-Z\+/=]+)$" $file) if [ $? -gt 0 ]; then - echo "Nenhum ticket SPFBL foi encontrado na mensagem." - exit 2 + + # Extrai o ticket incorporado no arquivo. + url=$(grep -Pom 1 "^Received-SPFBL: (PASS|SOFTFAIL|NEUTRAL|NONE) \K(http://.+/spam/[0-9a-zA-Z\+/=]+)$" $file) + + if [ $? -gt 0 ]; then + echo "Nenhum ticket SPFBL foi encontrado na mensagem." + exit 2 + fi fi else echo "O arquivo não existe." @@ -1504,6 +1514,9 @@ case $1 in fi else # Registra reclamação SPFBL via HTTP. + spamURL=/spam/ + hamURL=/ham/ + url=${url/$spamURL/$hamURL} resposta=$(curl -s -m 3 $url) if [[ $? == "28" ]]; then echo "A revogação SPFBL não foi enviada por timeout."