freebsd postfix python policyd-spf ошибка проверки ip-адреса

freebsd postfix python policyd-spf ошибка проверки ip-адреса

Недавно я столкнулся с проблемой на моем почтовом сервере freebsd postfix с пакетомpy27-postfix-policyd-spf-python-1.3.2_1

Мои почтовые журналы были заполнены следующими сообщениями:

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.

Переключение на Python 3, как предлагали другие люди, НЕ сработало (ни изменение shebang, ни запуск его через Python3 напрямую)

решение1

Решение моей проблемы (на данный момент) состояло в том, чтобы добавить следующие строки в _cidrmatchфункцию/usr/local/bin/policyd-spf

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

Это сделано для того, чтобы модулю Python ipaddr приходилось иметь дело только со строками Unicode (как того требует сообщение об ошибке).

Переход на python3, предложенный в других сообщениях в Интернете, мне не помог (возможно, не хватает каких-то зависимостей?)

Этот пост мне тоже очень помог https://stackoverflow.com/questions/30389019/valueerror-10-0-0-0-24-не-кажется-IPv4-или-IPv6-сеть

НО ИМЕЙТЕ В ВИДУ: это исправление будетУШЕЛпосле того, как пакет получает обновление, так что это простозадумано как полезная заметкакому-то, кто столкнулся с той же проблемой, что и я!

Так что если у кого-то есть реальное решение, дайте нам знать :)

Связанный контент