Внешний перенаправитель в стиле Squid для polipo не работает - PullRequest
0 голосов
/ 25 марта 2011

Я пытаюсь написать простой редиректор в стиле squid для http-прокси-сервера polipo, как указано в документации .

Вот код:

#!/usr/bin/python

# based on
# http://gofedora.com/how-to-write-custom-redirector-rewritor-plugin-squid-python/

import sys

def modify_url(line):
    l = line.split(" ")
    old_url = l[0]
    new_url = "\n"
    if "experts-exchange" in old_url:
        new_url = "http://127.0.0.1/" + new_url
    return new_url

while True:
    line = sys.stdin.readline().strip()
    new_url = modify_url(line)
    sys.stdout.write(new_url)
    sys.stdout.flush()

При запуске polipo с этим перенаправителем и попытке доступа к http://www.experts -exchange.com / я получаю следующую ошибку:

500 Couldn't test for forbidden URL: Redirector error

На самом деле, я получаю ту же ошибку при попытке получить доступ к любому URL, что заставляет меня думать, что это проблема с моим кодом перенаправителя.

Вывод в журнал polipo не дает больше подсказок, все, что я вижу, это:

Redirector returned incomplete reply.

Что я делаю не так?

Редактировать: я исправил modify_url () для возврата значения, потому что это не так. Я все еще получаю ту же ошибку.

1 Ответ

1 голос
/ 25 марта 2011

На этом сайте (gofedora) упоминается, что вам нужно вернуть либо пустую строку, либо измененный URL-адрес в modify_url, чтобы он работал.Также вы увидите ошибку, если вы запустите это вручную.Ваше решение состоит в том, чтобы вернуть new_url в конце modify_url.

Обратите внимание, что вам также нужно использовать chmod + x, чтобы разрешить прокси-серверу запускать скрипт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...