Есть идеи или пожелания по редиректору?

Обсуждение программы редиректора
Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Сообщение Slava »

порпробуйте icap

aletretij
Сообщения: 2
Зарегистрирован: Ср июн 27, 2007 21:32

Сообщение aletretij »

Не совсем понял это по виндой работает?
Если не затруднит дате пожалуйста ссылку.

Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Сообщение Slava »

на счёт винды не знаю, поищите в гугле "squid icap"

Rus
Сообщения: 112
Зарегистрирован: Пт ноя 18, 2005 13:44

Re: Есть идеи или пожелания по редиректору?

Сообщение Rus »

Slava писал(а): Скоро буду новую версию редиректора писать, хотелось бы в нее с самого начала включить как можно больше востребованных возможностей, что бы потом не переделывать.
Скоро это когда? :D Хотя бы примерно ...
Slava писал(а): Если у Вас есть какие либо идеи или пожелания по редиректору, напишите пожалуйста сюда.
Вот какая очень нужная "хотелка" появилась.
в url <урл замены> добавить и еще одну специальную переменную
#RULE# - чтоб было легче cgi скрипту статистику анализировать, а то приходиться руками выяснять, какое именно правило сработало.

P.S. Если данную хотелку можно реализовать, не дожидаясь новой версии, было бы очень здорово.

Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Сообщение Slava »

Я бы с удовольствием, но каждый день высунув язык на работе и совсем нет свободного времени.

Патч:
В redirect.c, 19 строка, добавьте:
case 6: printf("%s",change_reason); break;

В new_url.c, строка 74, добавьте:
// #REASON#
if (*k=='#' && *(k+1)=='R' && *(k+2)=='E' && *(k+3)=='A' && *(k+4)=='S' && *(k+5)=='O' && *(k+6)=='N' && *(k+7)=='#')
{
memcpy(tmp,k1,k-k1);
tmp[k-k1]=0;
k+=9;
k1=k;
add_new_url(section,tmp,6);
}

Написано за пару минут на коленке, работает, но в живую не тестировалось

Rus
Сообщения: 112
Зарегистрирован: Пт ноя 18, 2005 13:44

Сообщение Rus »

Попробую

Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Сообщение Slava »

в redirect.c
в начале int i; заменить на int j,i;

case 6: printf("%s",change_reason); break;

заменить на

case 6: {
for (i=0;i<strlen(change_reason);i++)
if (change_reason<33) printf("%%%X",change_reason);
else printf("%c",change_reason);
}
break;

Rus
Сообщения: 112
Зарегистрирован: Пт ноя 18, 2005 13:44

Сообщение Rus »

Уже лучше
если это последний параметр - проблем нет
REASON = (urls rule: test.ru)
Но если за ним еще что-то передается то теряется символ & и получается:
REASON = (urls rule: test.ru)var
более точно:
var2=192.168.1.1&i=-&m=GET&sec=TEST&r=(urls%20rule:%20test.ru)var=http://www.test.ru

:D
Остался последний рывок - поставить на место символ &

Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Сообщение Slava »

замените в new_url.c

k+=9 на k+=8;


// #REASON#
if (*k=='#' && *(k+1)=='R' && *(k+2)=='E' && *(k+3)=='A' && *(k+4)=='S' && *(k+5)=='O' && *(k+6)=='N' && *(k+7)=='#')
{
memcpy(tmp,k1,k-k1);
tmp[k-k1]=0;
k+=8;
k1=k;
add_new_url(section,tmp,6);
}

Rus
Сообщения: 112
Зарегистрирован: Пт ноя 18, 2005 13:44

Сообщение Rus »

Работает.
можно выпускать очередную сборку
:D
P.S. Когда мой cgi скрипт пройдет проверку временем я его пришлю.

drurus
Сообщения: 18
Зарегистрирован: Пт май 28, 2004 14:52
Откуда: Krasnodar
Контактная информация:

Сообщение drurus »

По поводу "паузы" режика, без отключения его в конфе сквида:
кидаем сигнал для redirector-а, редиректор в /usr/local/rejik создает файл redirector.lock (либо файл создается вручную, либо другим способом)
При каждом обращении сквида к редиректору, определяется наличие этого файла, если его нет - режик работает, если есть - в паузе.
Полагаю чтобы небыло "затыков", во время паузы переданные сквидом урлы отправлять в /dev/null

И еще, я уже давно говорил об этом, и тут на форуме опять встретил: описаное в файле redirector.conf неверно! А именно "If you make changes in this file, you must reboot squid example: squid -k reconfigure". Самое простое и действенное решение заключается в killall redirector. Все! Сквид сам перезапустит редиректор. Затыков и тормозов за несколько лет использовая я не наблюдал :)
Проблема вот в чем, если сквид настроен с delay polls (что есть ограничение скорости), то при реконфигурации сквида все ограничения снимаются (!) для текущих соединений!

P.S. Слава, респект тебе и уважуха за этот проект!
P.P.S. А я использую связку squid+sacc+rejik

Rus
Сообщения: 112
Зарегистрирован: Пт ноя 18, 2005 13:44

Сообщение Rus »

Было бы неплохо чтоб в глобальных настройках было правило allow_pcre
Это так, не горит ...
:roll:

Trek
Сообщения: 9
Зарегистрирован: Ср окт 17, 2007 23:12

Сообщение Trek »

было бы неплохо так же посмотреть в сторону таких дистрибутивов как Дебиан/Убунту и сделать deb пакет

lt.Botary
Сообщения: 9
Зарегистрирован: Пт янв 11, 2008 17:05

Сообщение lt.Botary »

ЕСТЬ кто ЖИВОЙЙЙЙЙЙЙЙЙЙЙЙ????????

Rus
Сообщения: 112
Зарегистрирован: Пт ноя 18, 2005 13:44

Сообщение Rus »

А в чем проблема?

Ответить