# CVS logs for:

- SC.pm
- telnet_over_socks_chain.pl
- accept_over_socks_chain.pl

## SC.pm

- revision 1.16
- revision 1.15
- revision 1.14
- revision 1.13
- revision 1.12
- revision 1.11
- revision 1.10
- revision 1.9
- revision 1.8
- revision 1.7
- revision 1.6
- revision 1.5
- revision 1.4
- revision 1.3
- revision 1.2
- revision 1.1

## telnet_over_socks_chain.pl

- revision 1.10
- revision 1.9
- revision 1.8
- revision 1.7
- revision 1.6
- revision 1.5
- revision 1.4
- revision 1.3
- revision 1.2
- revision 1.1

## accept_over_socks_chain.pl

- revision 1.3
- revision 1.2
- revision 1.1

## SC.pm

    Working file: SC.pm
    head: 1.16
    branch:
    locks: strict
    access list:
    symbolic names:
    keyword substitution: kv
    total revisions: 16;	selected revisions: 16
    description:

## SC.pm [ revision 1.16 ]

date: 2004/09/24 08:20:06; author: gosha; state: Exp; lines: +42 -34

    Поборолся с ворнингами. Теперь вроде поменьше стали ругаться
    	при установленной $^W

## SC.pm [ revision 1.15 ]

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 файла вообще ни каких расширений не
        добавляется - отсюда потеря конфига.

## SC.pm [ revision 1.14 ]

date: 2003/12/14 09:39:55; author: gosha; state: Exp; lines: +85 -93

    При ошибки открытии лог файла - данные об этой ошибке пропадали...

    Добавил возможность ведения лога черес syslog. В связи с эти пришлось
    	добавить процедуру debug - пишет лог в секцию debug сислога,
    	без DEBUG'а все пишется с приоритетом warning

    Вернул все варнинги назад - т.е. теперь об ошибках
    	ругаемся не только при включенном $^W

## SC.pm [ revision 1.13 ]

date: 2002/11/22 21:16:08; author: gosha; state: Exp; lines: +104 -86

    Таймауты сделал на select'е вместо Alarm'а

## SC.pm [ revision 1.12 ]

date: 2002/09/02 21:01:19; author: gosha; state: Exp; lines: +5 -8

    Ну вобщем то ничего такого глобального,	просто перенес
    	инициализацию __peer_addr и __peer_port в create_chain
    	для совместимости с версией модуля 1.10

## SC.pm [ revision 1.11 ]

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.

## SC.pm [ revision 1.10 ]

date: 2002/08/19 11:40:58; author: gosha; state: Exp; lines: +4 -3

    При проверке на наличие в системе alarm'а была
    	очепятка проверялось не d_alarm а d_flock

## SC.pm [ revision 1.9 ]

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__

## SC.pm [ revision 1.8 ]

date: 2002/06/25 16:30:39; author: gosha; state: Exp; lines: +6 -4

    При создании цепочки теперь не зависимо от того есть DEBUG или нет
    	в STDERR пишем 'Connect to Socks....'

    В dump_cfg_data некорректно отрабатывался сброс данных в
    	файл. Т.е. если запись с таким ключем уже уже существовала
    	то ни чего не изменялось...

## SC.pm [ revision 1.7 ]

date: 2002/06/17 17:55:23; author: gosha; state: Exp; lines: +3 -3

    При разборе конфига некорректно парсилась информация
    	о версии socks протокола. Т.е. всегда возвращаласть
    	версия N 5....

## SC.pm [ revision 1.6 ]

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

## SC.pm [ revision 1.5 ]

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

## SC.pm [ revision 1.4 ]

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) по номеру - ссылка на хеш в который
    				запишутся параметры последнего коннекта
    				в цепочке.

## SC.pm [ revision 1.3 ]

date: 2002/05/27 14:43:11; author: gosha; state: Exp; lines: +54 -49

    В create_chain - цепочка строится пока не достигнет нужной длинны или
    	в списке не кончутся доступные серверы.

    Время задержки CFG_CHECK_DELAY с каждой неудачной попыткой увеличивается на
    	100 %, те все движется для использования в серверной части...

## SC.pm [ revision 1.2 ]

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...

## SC.pm [ revision 1.1 ]

date: 2002/04/27 15:51:59; author: gosha; state: Exp;

    Всю работу по построению цепочек вытаскиваю в отдельный модуль,
    	далее для каждого сервиса надо писать клиента
    	( http, ftp, telnet, etc...)
    =============================================================================

## telnet_over_socks_chain.pl

    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:

## telnet_over_socks_chain.pl [ revision 1.10 ]

date: 2004/03/27 12:31:04; author: gosha; state: Exp; lines: +7 -4

    В accept при создании локального сокета добавил тайм-аут

## telnet_over_socks_chain.pl [ revision 1.9 ]

date: 2002/11/22 21:19:42; author: gosha; state: Exp; lines: +5 -4

    Ну поправил немного, на предмет того, что в Net::SC (1.13) больше
    	не пользуется IO::Socket

## telnet_over_socks_chain.pl [ revision 1.8 ]

date: 2002/09/02 20:38:49; author: gosha; state: Exp; lines: +65 -54

    Добавил два параметра коммандной строки
    	-as   - выключить auto_save
    	-cfg  - имя файла конфигурации

    При принятии соединений к локальному порту сделал проверку на
    	IP адрес хоста который коннектится...

    Поправил все для версии Net::SC 1.11

## telnet_over_socks_chain.pl [ revision 1.7 ]

date: 2002/06/25 16:31:25; author: gosha; state: Exp; lines: +4 -1

    Добавил опцию -cd

## telnet_over_socks_chain.pl [ revision 1.6 ]

date: 2002/06/17 17:57:19; author: gosha; state: Exp; lines: +8 -3

    Добаил опцию коммандной строки -cmd - для описания комманды
    	прямо в строке...

## telnet_over_socks_chain.pl [ revision 1.5 ]

date: 2002/06/05 17:56:42; author: gosha; state: Exp; lines: +17 -9

    Прикрутил пользование dump_ и restore_

## telnet_over_socks_chain.pl [ revision 1.4 ]

date: 2002/06/03 23:05:24; author: gosha; state: Exp; lines: +5 -5

    Вызов SC теперь сделан чуть по другому,

    убрал use IO::Socket

## telnet_over_socks_chain.pl [ revision 1.3 ]

date: 2002/05/31 17:55:17; author: gosha; state: Exp; lines: +2 -2

    новый формат вызова create_chains

## telnet_over_socks_chain.pl [ revision 1.2 ]

date: 2002/05/27 15:26:48; author: gosha; state: Exp; lines: +65 -16

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

## telnet_over_socks_chain.pl [ revision 1.1 ]

date: 2002/05/25 20:28:20; author: gosha; state: Exp;

    Тунеь telnet'а через цепочку соксов.
    =============================================================================

## accept_over_socks_chain.pl

    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:

## accept_over_socks_chain.pl [ revision 1.3 ]

date: 2002/09/02 20:41:55; author: gosha; state: Exp; lines: +25 -17

    Поправил все для версии Net::SC 1.11

## accept_over_socks_chain.pl [ revision 1.2 ]

date: 2002/06/03 23:06:52; author: gosha; state: Exp; lines: +24 -22

    Убрал use IO::Socket

    Переписал чуть, для более красивого использования...

## accept_over_socks_chain.pl [ revision 1.1 ]

date: 2002/05/31 17:59:23; author: gosha; state: Exp;

    Пример входящий соединений через socks
    =============================================================================