RCS file: /usr/src/CVS/WebProxy/wp,v Working file: wp head: 1.8 branch: locks: strict access list: symbolic names: start: 1.1.1.1 gosha: 1.1.1 keyword substitution: kv total revisions: 9; selected revisions: 9 description: ---------------------------- revision 1.8 date: 2002/11/18 23:34:39; author: gosha; state: Exp; lines: +119 -42 Новая переменная POST_MAX - максимальное количество данных для приема от клиента Не корректно создавалось поле заголовка Host: Код почистил немного... ---------------------------- revision 1.7 date: 2002/05/05 18:35:45; author: gosha; state: Exp; lines: +230 -79 Новая переменная A_APPEND - ссылка на массив строк, которые надо дописать к заголовку ответа сервера. Разнести в названиях переменных переменные запроса клиента и переменные ответа сервера... Все что касается запроса юзера начинается с R_ ( Request ) Все что казается ответа сервера начинается с A_ ( Answer ) Режем заголовок 'Connection', чтоб сервер на котором лежит скрипт мог Keep-Alive... Все заголовки которые не желательны надо прописать в $self->{A_SKIP_HDR}, примерно так 'Connection|Server' Все заголовки которые надо передавать только документам с типом отличным от html/text надо писать здесь: $self->{A_SAFE_HDR}, примерно так: 'Accept-Ranges|Content-Length' Все заголовки которые надо сохранить по другим именем $self->{A_RNM_HDR} Прикрутил возможность заруливать все на прокси сервер Переменная USE_PROXY, формат: [proxy_user:proxy_pswd@]proxy_host[:proxy_port] ^^^^^^^^^^^^^^^^^^^^^^^^для аутентификации... В принципе можно использовать Аутентификацию ( только Basic ) Надо написать, что то типа USER:PSWD@host/path Только, есть одна не хорошая весчь при использовании такого синтаксися: Все ссылки в html документе будут иметь такойже (USER:PSWD@HOST/PATH) вид ( с паролем ) Поэтому если вздумать переходить на другой сайт, лучше передать новый запрос проксе, только уже без имени/пароля, чтоб не гонять его по сети за зря... Новые переменные для настройки: USE_PROXY - использовать прокси для запроса документов. CRLF - символы перевода строки USE_NPH - скрипт работает под NPH REP_URL_IN - тут лежит список 'слов' после которых в теге надо искать и заменять URL'и При использовании NPH можно пользоваться HTTP/1.1 протоколом, иначе только HTTP/1.0 Теперь ставится путный Referer в запросе. Ну и переписал [не]много кода... ---------------------------- revision 1.6 date: 2002/04/07 10:56:23; author: gosha; state: Exp; lines: +11 -10 Потроха подчистил... ---------------------------- revision 1.5 date: 2002/03/05 23:06:02; author: gosha; state: Exp; lines: +35 -25 Добавил Секцию APPEND Доступ можно теперь разрешать/ограничивать по IP ---------------------------- revision 1.4 date: 2002/03/02 23:42:06; author: gosha; state: Exp; lines: +26 -43 Переписал read_param - теперь почти нет 'левых' временных переменных Поменял немного регексп для разбора PATH_INFO Подумал, что редирект юзеров пришедших страницу, на другие, некорректин ( не пошли же они сразу туда на прямую...) поэтомуправила 'редиректа' отрабатываются теперь 'локально'. Т.е. в процессе обработки check_role клиенту не выдается 302 Moved, а его URL заменяется новым ( который раньше передавался в Location: ), и честно обрабатывается... За ненадобностью удалил процедуру redirect ---------------------------- revision 1.3 date: 2002/03/02 17:51:53; author: gosha; state: Exp; lines: +13 -13 Ну еще чуть чуть отполировал... ---------------------------- revision 1.2 date: 2002/03/02 15:13:12; author: gosha; state: Exp; lines: +31 -29 Заменил _HEADER на HEADER Синтаксис несколько подправил. ---------------------------- revision 1.1 date: 2002/03/01 21:16:31; author: gosha; state: Exp; branches: 1.1.1; Initial revision ---------------------------- revision 1.1.1.1 date: 2002/03/01 21:16:31; author: gosha; state: Exp; lines: +0 -0 Ну что то вроде проксика лежит на HTTP сервере и работая как CGI парсит запросы к себе..... =============================================================================