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