CVS logs for:
Working file: SC.pm
head: 1.16
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 16; selected revisions: 16
description:
date: 2004/09/24 08:20:06; author: gosha; state: Exp; lines: +42 -34Поборолся с ворнингами. Теперь вроде поменьше стали ругаться
при установленной $^W
date: 2004/03/27 12:27:17; author: gosha; state: Exp; lines: +29 -20Бага с залочкой и проверкой существования кешированных данных
состояния сокс серверов.
Определяли по наличию файла .sc.conf.db в более других версиях перла
вместо .db пользуется .dir и .pag.
Сейчас лочится конфигурационный файл.
Процедура restore_cfg_data теперь вызывается незавимсимо от того есть
файл с кештрованными данными или нет.
Имя dbm файла для хранения кешированных данных состояния сокс серверов
теперь ${конфигурационный файл}-cache. Связано с тем что опять же на
некоторых перлах при создании dbm файла вообще ни каких расширений не
добавляется - отсюда потеря конфига.
date: 2003/12/14 09:39:55; author: gosha; state: Exp; lines: +85 -93При ошибки открытии лог файла - данные об этой ошибке пропадали...
Добавил возможность ведения лога черес syslog. В связи с эти пришлось
добавить процедуру debug - пишет лог в секцию debug сислога,
без DEBUG'а все пишется с приоритетом warning
Вернул все варнинги назад - т.е. теперь об ошибках
ругаемся не только при включенном $^W
date: 2002/11/22 21:16:08; author: gosha; state: Exp; lines: +104 -86Таймауты сделал на select'е вместо Alarm'а
date: 2002/09/02 21:01:19; author: gosha; state: Exp; lines: +5 -8Ну вобщем то ничего такого глобального, просто перенес
инициализацию __peer_addr и __peer_port в create_chain
для совместимости с версией модуля 1.10
date: 2002/09/02 17:02:53; author: gosha; state: Exp; lines: +932 -344Не корректно строилась цепь с использованием протокола v4...
В кеш ( .db ) теперь скидываются _все_ параметры сокс сервера...
Поменял флаги для DEBUG, теперь:
DEBUG - уровень отладки ( 0x00 | 0x01 | 0x02 | 0x04 | 0x08 )
0x00 - выключить
0x01 - минимальный уровень ( connect и error'ы )
0x02 - выводить все ответы от sokcs серверов
0x04 - выводить все, что пишем socks'ам
0x08 - расширенная информация об ошибках
Все что писалось раньше в log_error ( кроме случаев с DEBUG )
теперь выводится только при включенном $^W
Поправил путаницу с расчетом таймаутов CHECK_DELAY
Добавил параметр LOOP_CONNECTION - проверка серверов на
возможность коннектов. Появилось в свете багов с
socks 4 которых много левых... Вобщем при включении
данной опции после коннекта к данному серверу
прежде чем строить цепь дальше второй раз коннектимся
к этому же серверу но через существующую цепь... т.е.
my ->1 ->2 ->3
->1 ->2 ->3
короче проверяем а сокс ли там в принципе..., путем коннекта
к самому себе... Это в большей степени относится к socks v4
Заменил процедуру bad_proxy на mark_proxy
Теперь принимает два аргумента, первый так же
как и раньше ID socks сервера в конфиге,
второй аргумент - код возврата, если он равен
SOCKS_OKAY то очищаем все неудачные попытки, иначе
увеличиваем на единицу...
Не очищался счетчик неудачных попыток при восстановлении
связи...
Текстовые сообщения о socks ошибках теперь хранятся в
константе SOCKS_MSG
Добавил процедуру sh - возвратить $self->{sock_h}
Добавил процедуру close - закрыть соединение
Конфигурационные параметры передающиеся в new и configure
могут быть в любом регистре.
При записи данных в порт теперь ловится SIGPIPE
create_chain больше не принимает в качестве последнего
аргумента ссылку на хеш...
Написал процедуру socks_param
Возвращает параметры сеанса работы последнего socks сервера
Возможные параметры : listen_addr, listen_port, proxy_id, etc...
при отсутствии $param возвращает ссылку на хеш со всеми
имеющимися параметрами...
Поменял явное использование хеша с ключами CFG_ на
использование configure
В конструктор добавил новый параметр AUTO_SAVE -
автоматически сохранять данные в .db файле
По умолчанию 0, Эта фича работает в connect и bind,
Появился параметр RESTORE_TYPE
при 0 - не удалять данные из .db файла если в новом конфиге они
для данного хоста отсутствуют
1 - удалять.
Раньше было всегда 0.
connect и bind теперь можно вызывать и без предварительного
read_chain_data();
Написал две новых процедуры connect и bind
- просто обертки для create_chain, аргументы такие же
только не нужен тип соединения...
Процедура для соединения с первым сокс сервером
теперь зовется first_connect
accept теперь без параметра socks_obj
Добавил немного комментариев в код... так на будующее...
В качестве дескриптора LOG файла теперь используется не STDERR
както не красиво закрывать его...
Дескриптор LOG файла может быть напрямую передан в переменной
LOG_FH, только при инициализации ( new ) LOG_FILE должно
быть undef.
date: 2002/08/19 11:40:58; author: gosha; state: Exp; lines: +4 -3При проверке на наличие в системе alarm'а была
очепятка проверялось не d_alarm а d_flock
date: 2002/07/27 14:28:33; author: gosha; state: Exp; lines: +52 -23Теперь проверяю $Config{d_flock} и $Config{d_alarm} перед
использованием flock'а и alarm'а
Убрал из new переопределение сигналов __DIE__ и __WARN__
date: 2002/06/25 16:30:39; author: gosha; state: Exp; lines: +6 -4При создании цепочки теперь не зависимо от того есть DEBUG или нет
в STDERR пишем 'Connect to Socks....'
В dump_cfg_data некорректно отрабатывался сброс данных в
файл. Т.е. если запись с таким ключем уже уже существовала
то ни чего не изменялось...
date: 2002/06/17 17:55:23; author: gosha; state: Exp; lines: +3 -3При разборе конфига некорректно парсилась информация
о версии socks протокола. Т.е. всегда возвращаласть
версия N 5....
date: 2002/06/05 17:55:19; author: gosha; state: Exp; lines: +125 -52По умолчанию конфиг теперь лежит в $ENV{HOME}/.sc.conf
Добавил методы dump_cfg_data и restore_cfg_data
Добавил метод bad_proxy - помечать прокси которые не надо пользовать
принимает на входе id прокси в конфигу.
create_chain в ссылке на хеш теперь возвращает еще
и ID прокси в proxy_id
Ошибка в расчете доступных проксей в create_chain
Ошибка в подсчете проксей в get_socks_count
date: 2002/06/03 23:02:39; author: gosha; state: Exp; lines: +60 -50Заточил под цивильный модуль...
timeout поменял на configure - для изменения
любых параметров инициализированных в new();
Несколько подправил код, чтоб меньше ругалость на -w
$socks_obj->{listen_addr} - теперь содержит IP
в формате xxx.xxx.xxx.xxx
date: 2002/05/31 17:55:17; author: gosha; state: Exp; lines: +48 -15В конфиге может не описываться номер протокола - по умолчанию
пользуется 5.
Добавил процедуру accept
Добавил процедуру timeout - читает/изменяет текущий
таймаут.
В create_socks_chain() теперь два новых аргумента:
третий (4) по номеру - тип запроса;
1 - connect
2 - bind
четвертый (5) по номеру - ссылка на хеш в который
запишутся параметры последнего коннекта
в цепочке.
date: 2002/05/27 14:43:11; author: gosha; state: Exp; lines: +54 -49В create_chain - цепочка строится пока не достигнет нужной длинны или
в списке не кончутся доступные серверы.
Время задержки CFG_CHECK_DELAY с каждой неудачной попыткой увеличивается на
100 %, те все движется для использования в серверной части...
date: 2002/05/23 22:53:37; author: gosha; state: Exp; lines: +63 -37Протестировал все с реальным socks'ом
Добавил новую функцию get_chains_count - возвращает количество
socks серверов, которые считаюся доступными на данный момент
Из параметров CFG_ убрал RULE - за ненадобностью.
Сделал проверку: если CFG_LOG_FILE не undef то открывается лог
файл, иначе все ошибки пишутся в STDERR
Функция socks_error - теперь если не может определить
строковое представление ошибки возвращает ее номер.
connect - теперь тоже с timeout'ом
read_data - при таймауте возвращает 0, при закрытие сокета -1
create_chain - в начале делает undef $self->{sock_h} -
сделано для возможности организации цикла с перебором
всех возможных proxy...
Если число доступных в данный момент socks серверов
меньше CHAIN_LEN - то даже не пытаемся законектится
к доступным в данный момент серверам.
socks5_auth - даже при пустых user_id и user_pswd пытались
передать пароль, в результате чего все отваливалось
по AUTH_FAILED...
date: 2002/04/27 15:51:59; author: gosha; state: Exp;Всю работу по построению цепочек вытаскиваю в отдельный модуль,
далее для каждого сервиса надо писать клиента
( http, ftp, telnet, etc...)
=============================================================================
Working file: telnet_over_socks_chain.pl
head: 1.10
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 10; selected revisions: 10
description:
date: 2004/03/27 12:31:04; author: gosha; state: Exp; lines: +7 -4В accept при создании локального сокета добавил тайм-аут
date: 2002/11/22 21:19:42; author: gosha; state: Exp; lines: +5 -4Ну поправил немного, на предмет того, что в Net::SC (1.13) больше
не пользуется IO::Socket
date: 2002/09/02 20:38:49; author: gosha; state: Exp; lines: +65 -54Добавил два параметра коммандной строки
-as - выключить auto_save
-cfg - имя файла конфигурации
При принятии соединений к локальному порту сделал проверку на
IP адрес хоста который коннектится...
Поправил все для версии Net::SC 1.11
date: 2002/06/25 16:31:25; author: gosha; state: Exp; lines: +4 -1Добавил опцию -cd
date: 2002/06/17 17:57:19; author: gosha; state: Exp; lines: +8 -3Добаил опцию коммандной строки -cmd - для описания комманды
прямо в строке...
date: 2002/06/05 17:56:42; author: gosha; state: Exp; lines: +17 -9Прикрутил пользование dump_ и restore_
date: 2002/06/03 23:05:24; author: gosha; state: Exp; lines: +5 -5Вызов SC теперь сделан чуть по другому,
убрал use IO::Socket
date: 2002/05/31 17:55:17; author: gosha; state: Exp; lines: +2 -2новый формат вызова create_chains
date: 2002/05/27 15:26:48; author: gosha; state: Exp; lines: +65 -16Добавил опций кучку к командной строке, и самое главное теперь его
можно пользовать не только с телнетом.
date: 2002/05/25 20:28:20; author: gosha; state: Exp;Тунеь telnet'а через цепочку соксов.
=============================================================================
Working file: accept_over_socks_chain.pl
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3; selected revisions: 3
description:
date: 2002/09/02 20:41:55; author: gosha; state: Exp; lines: +25 -17Поправил все для версии Net::SC 1.11
date: 2002/06/03 23:06:52; author: gosha; state: Exp; lines: +24 -22Убрал use IO::Socket
Переписал чуть, для более красивого использования...
date: 2002/05/31 17:59:23; author: gosha; state: Exp;Пример входящий соединений через socks
=============================================================================