freebsd postfix python erro policyd-spf ip addres validação

0

Recentemente encontrei um problema no meu servidor de e-mail postfix freebsd com o pacote py27-postfix-policyd-spf-python-1.3.2_1

Meus maillogs estão cheios com as seguintes mensagens:

policyd-spf[16637]: ERROR: 127.0.0.0/8 in skip_addresses not IP network.  Message: '11.22.33.44' does not appear to be an IPv4 or IPv6 address. Did you pass in a bytes (str in Python 2) instead of a unicode object?. Aborting white list processing.

Mudar para o python 3 como sugerido por outras pessoas NÃO funcionou (nem alterando o shebang, nem iniciando diretamente via python3

    
por Daywalker 26.09.2017 / 08:30

1 resposta

0

A solução para meu problema foi (por enquanto) adicionar as seguintes linhas à função _cidrmatch in /usr/local/bin/policyd-spf

def _cidrmatch(ip, netwrk)
  netwrk = unicode(netwrk)
  ip = unicode(ip)
  try:
    address = ipaddress.ip_address(ip)

Isto é feito para que o módulo python ipaddr só tenha que lidar com uma string unicode (como solicitado pela mensagem de erro)

mudar para python3 como sugerido por outras postagens na web não funcionou para mim (talvez algumas dependências ausentes?)

Este post também me ajudou muito link

MAS MANTENHA EM MENTE: essa correção será GONE após o pacote receber uma atualização, portanto, isso é apenas planejado como uma observação útil para alguém com o mesmo problema como eu fiz!

Então, se alguém tiver uma solução real, avise-nos:)

    
por 26.09.2017 / 08:30