Version 0.49.10 ~~~~~~~~~~~~~~~ PatchLevel 3 ~~~~~~~~~~~~ - bugfix: В случае если у пользователя нет возможности читать файл, файл в очередь отправки не добавляется. В случае если у пользователя нет возможности писать в файл - файл нельзя удалить после отправки. Если указанный путь не regular файл (каталог, сокет, пайп и тп) то он также не попадает в очередь отправки. - Добавлена переменная usesetproctitle [yes|no]. По умолчанию: yes Данная переменная управляет выводом команды `ps'. В случае если стоит "no" то выводиться путь к qico иначе - как и раньше, статус программы. - BugFix: исправлена ошибка выбора протокола ZModem/DirZap - BugFix: исправлена ошибка обработки нодлиста в случае если попадаются Down станции. - change: расшифровка конфиг-файла теперь ведется в логи. (Не удобно, когда надо Enter нажимать) PatchLevel 2 ~~~~~~~~~~~~ - add: В связи с предыдущим BugFix'ом добавлен флаг "translatesubst yes|no" по умолчанию "no". Если указан, то номера телефонов в подстановках транслируются как и нодлистовые (в качестве телефонов необходимо прописывать полный номер 7-095-123-4567). - BugFix: Исправлена работа чтения конфигурационного файла, для изменения номеров (флаг "phonetr") в зависимости от имени порта. - Произведен переход на autotools (automake-2.53, automake-1.5) - bugfix: Исправлена работа с ASO при работе с нодой номер которой длиннее 4 цифр. - small bugfix: Исправлена работа с модемом (не дёргалась DTR, запрещалась работа с tty после sighup даже после tty_local, что-то ещё... не помню) (by Pavel Levshin) - add: Debug Log работы с модемом. (by Pavel Levshin) - add: Команда сбора статистики работы модема. (by Pavel Levshin) - Теперь при make install пример конфига копируется в правильный каталог (раньше не копировался вообще, для установки конфига требовался отдельный запуск make install-conf). - Перешел на autoconf 2.53, так что, всем собирающим CVS-версии теперь нужна эта версия autoconf. - Нодлисты при поиске по маске (nodelist.999) ищутся без учета регистра. - bugfix: Поправлен configure в районе опеределения возможностей syslog'а. - bugfix: В qico.conf.sample закрыто условие tcp/ip - change previous: функция basename взята из FreeBSD libc - bugfix: Поправлена затычка для ломанных basename(). Пердыдущий вариант ошибался при простом имени (без '/'), из-за чего возникали серьезные проблемы. - bugfix: Если стояло `needalllited yes', то статус узла определялся неправильно. - bugfix: После Origin'а в письмо с отчетом о фреке попадала лишняя запятая. Version 0.49.9 ~~~~~~~~~~~~~~ - Так как Hydra8K и Hydra16K могут легко заблокироватся, если в ядре недостаточно большие буфера у драйвера последовательного порта, то они теперь запрещены по умолчанию. Для разрешения надо configure сказать `--enable-hydra8k', после чего обозначения протоколов `8' и `6' станут доступны. - Новая буква для loglevels: R. Означает file Requests. - Проведен дополнительный аудит кода, выявлено еще несколько потенциальных переполнений буфера и race conditions. - Удалены все реальные адреса и телефоны из qico.conf.sample. - Новое слово в конфиге: needalllisted (yes|no). по-умолчанию -- `no'. Если стоит `no', то, что бы партнер получил флаг `listed' досаточно одного найденного адреса в списке предъявленных. Если стоит `yes', то для получения `listed' необходимо, что бы все адреса были надйены в нодлистах. Раньше проверялся только первый адрес. - Теперь строчка modemhangup посылается в модем не только после исходящих, но и после входящих сессий. - Новое слово в конфиге: alwayskillfiles (yes|no). по-умолчанию -- `no'. Если выставить в `yes', то файлы, прописанные в LO'шках как обнуляемые после отсылки (`#' в начале строки) будут удаляться, как если бы строка начиналась с `^'. - Новое слово в конфиге: rootdir. Если оно задано, то первое, что делает демон или отвечающая копия -- это chdir в этот каталог. Результат не проверяется. - Умеем собиратся с Electric Fence (libefence, отладчик памяти). Это определяется перед компиляцией ключем к configure `--enable-efence'. - собирается и запускается на NetBSD/i386 1.5 - basename() проверяется на глючность (в некоторых системах basename() возвращает указатель на послений символ '/', а не на символ после него). - Добавлена реализация strcspn() для систем, где оно отсутсвует. - Проверено, что собираемся на FreeBSD 2.1.0 (gcc 2.6.3). (Thnx to Alex Semenyaka ). - Теперь параметр конфига defperm влияет не только на файлы в инбаунде, но и на файлы, создаваемые в аутбаунде (*.?lo) при поллах и аттачах. Причем, только при создании таких файлов (права на существующие файлы, в которые производиться запись, не меняются). - Теперь при компиляции gcc (а кто-то компилирует чем-то другим?) все проверки на loglevels происходят в месте вызова, что экономит один вызов функции на каждое отключенное через loglevels отладочное сообщение (но несколько раздувает код, конечно). - Новая буква в loglevels: Y. Это разбор и проверка условий в конфиге. - Собираемся на системах без EIDRM в . На таких системах определяем EIDRM в EINVAL (может быть неверно). Так же, проверяем errno на EINVAL в тех же случаях, что и на EIDRM. - Собираемся на системах без getsid(). На таких системах всегда считаем себя лидером сессии. - Теперь во всех строках команд для модемов понимаются символы '^' и 'v'. Поднять и опустить DTR соответсвенно. Таким образом, в командах для модемов понимаются спец-символы: | -- ^M, он же , он же '\r' ~ -- Пауза в 1 секунду. ' -- Пауза в 0.2 секунды. ^ -- Установка DTR. v -- Сброс DTR. - Теперь индекс нодлистов сортируется и из него удаляются одинаковые узлы из разных листов. Приоритет имеют нодлисты, указанные в конфиге первыми, то есть локальный сегмент лучше указывать раньше мирового нодлиста. Поиск по нодлисту теперь бинарный. ВНИМАНИЕ! Перекомпилируйте нодлисты! (Thnx to Yuriy Kaminskiy, 2:5020/517.21). - Новая переменная в конфиге: holdonsuccess. Определяет на сколько минут задерживать прозвонку на узел после успешной сессии. 0 -- не задерживать вообще (старое поведение). По-умолчанию -- 0. Если есть повод задержать файлы и/или файловые запросч, то задержка происходит на максимум из waithrq и holdonsuccess. Работает как на входящих, так и на выходящих сессиях, но на входящих не учитывает флаги задержки файлов и/или файловх запросов (так как на входящих и исходящих эти флаги могут различаться). - Теперь configure проверяет параметры для всех своих аргументов. - bugfix: Закрываем pkt-файл с отчетом о файловом запросе перед отсылкой. Очень часто незакрытие файла приводило к пустому пакету. - bugfix: Не портим окружение (environment) при установке названия процесса. Такая порча могла приводить к искажению вывода времени в логе и другим странным эффектам. - bugfix: Работает immonflavors. И как никто не заметил, что оно вообще не работало? - bugfix: При неопределенной скорости коннекта не падаем при выводе в лог ожидаемого времени передачи файла. - bugfix: Поправлена грубая ошибка при работе с Txy-флагом. Эта ошибка могла приводить к звонкам на станции не вовремя на некоторых системах. (Thnx to Artem Afanasiev, 2:5030/1600). - bugfix: Поправлены отладочные сообщения для Y. - bugfix: Работает условие listed в конфиге для большего числа параметров -- флаг выставляется до посылки EMSI_DAT на входящих сессиях. - bugfix: При loglevel C>0 теперь действительно дампится конфиг, а не только сабсты. - bugfix: Теперь условие date в конфиге должно работать правильно в случае диапазона дней. - bugfix: Теперь файлы вида NN.NN.NN.NN.some (где NN -- числа) в каталоге для файлбоксов (longfileboxes) не пытаются рассматриваться как файл-боксы, и вообще не обращается внимание ни на что, кроме каталогов и символических ссылок (так что, появление таких файлов не будет приводить к переполнению мастер-лога сообщениями о невозможности открыть каталог). (Thnx to Maxi Rovnich, 2:5030/872.0). - bugfix: configure проверяет, можно ли одновременно включать и . На некоторых системах двойное включение приводило к ошибке компиляции и, в результате, не находились facilitynames и prioritynames. - bugfix: В qcc поправлен разбор пакета о посылке файлов. Может быть поможет... (Thnx to Sir Raorn ). - bugfix: Пароль в пакете с ответом на файловый реквест дополняется нулями, а не пробелами. Так же, исправлена возможная ошибка при использовании паролей длиннее 8 символов. - bugfix: На не-интел процессорах делаем правильный заголовок пакета с отчетом о файловом запросе. - bugfix: В mail-only время не пытаемся звонить, если на узел нет нетмейла. - bugfix: Поиск ioctl(TIOCSCTTY) опять поправлен. - bugfix: Теперь ASO точно работает -- глупая опечатка поправлена. Version 0.49.8 ~~~~~~~~~~~~~~ - старый ZModem удален из дистрибутива. Теперь всегда используется новый ZModem. - bugfix: ASO был сломан из-за параноидальных правок. Теперь ASO должен работать. - bugfix: configure будет находить ioctl(TIOCSCTTY) на большем количестве систем. - bugfix: `qctl -xX' не падает в корку без адреса. Version 0.49.7 ~~~~~~~~~~~~~~ - Теперь при сортировке списка файлов перед отправкой пакеты с нетмейлом переносятся наверх списка, только если они получены из *.?ut-файлов или файлбоксов. Пакеты, приаттаченные из *.?lo рассматриваются как обычные файлы. Таким образом, нетмейл будет уходить первым, а вот пакеты с аттачами -- в том порядке, в котором они были записаны в *.?lo, то есть после своих файлов. - Демон теперь открывает /dev/null вместо stdin, stdout и stderr. - Теперь на BSD-like системах звонящий процесс имеет контрольный терминал (собственно, тот порт, на котором происходит звонок). - Переписана вся работа с CRC. Благодаря этому работаем на Alpha и, надеюсь, на всех остальный 64-битных процессорах. (Thnx to Pavel Gubin pg@ie.tusur.ru за доступ на Alpha). - Теперь при указании в logfile $facility для syslog, можно указать так же и приоритет через двоеточие. По-умолчанию, как и раньше, используется LOG_INFO. - Новый ZModem теперь выбирается по-умолчанию. Для выбора старого ZModem'а надо запускать ./configure --without-new-zmodem. В следующем релизе старого ZModem'а не будет вообще. - qico проверяет все выделения памяти и падает по abort()'у, если не удалось выделить память. Так же не оставлено функций, которые работают со строками и не проверяют размер буфера (sprintf(), strcat(), strcpy(), strncat(), strncpy()). На платформах, где нет vsnprintf(), остался vsprintf(), потому что адекватной замены пока не найдено. - Новый флавор (flavor) в аутбаунде: REQ. В callonflavors и immonflavors обозначется буквой `R'. Таким образом, теперь вам решать -- звонить на одинокий файл-реквест или нет. Только не забывайте, что при наличии полла мейлер будет звонить даже если ничего кроме полла и файл-реквеста нет, а файл-реквесты задержаны и время задержки еще не вышло (так как полл добавит флавор с каким он был создан). По-умолчанию флавор R в callonflavors пристутсвует, будте внимательны. (Patch from Yuriy Kaminskiy 2:5020/517.21) - Новое слово в конфиге; loglevels. Если qico была собрана с поддержкой отладочной печати, то через эту переменную можно регулировать, по каким подсистемам и в каком количестве выводить в лог отладочную ифнормацию. Формат -- смотрите в конфиге. - Новый параметр у configure `--disable-debug'. Теперь по-умолчанию qico собирается с поддержкой отладочной печати (debug logging), и количество выводимой отладочной информации регулируется через конфиг. Если вы полностью уверены, что вам не потребуется писать багрепорт, то вы можете собрать qico без отладочной печати, для чего необходимо запустить configure с этим параметром. - Теперь, если freqtime не задан, в EMSI пишется `Never', иначе старые T-Mail'ы (2603 и раньше -- точно) падали или не могли провести EMSI-сессию. - Можно указать номер линии (subst'а), на который звонить, при звонке через `qico -cX': `qico -cX
'. Линии нумеруются с единицы. Если номер линии опущен, то будем звонить на первую, подходящую по времени работы. - Теперь значение по-умолчанию для пути к конфигу (если не указан параметр --with-config для configure) ${prefix}/etc/qico.conf, а не /etc/ftn/qico.conf - bugfix: Теперь демон не падает по qctl -K
, если он раньше падал на некоторых системах (в частности, на моей домашней) этот баг не проявлялся. (Thnx to Nick Procopets ) - bugfix: Поправлен skip на Janus'е от T-Mail'а (когда присылают позицию конца файла) - bugfix: Новый ZModem при выборе именно ZModem'а на приеме не говорит о 8Kb-блоке (косметика, реально -- не важно, так как размер блока задает посылающая сторона). - bugfix: Поправлена работа mincps*. Теперь сессия не будет рваться из-за того, что больше нечего передавать или принимать. Так же поправлен подсчет CPS на пересылаемых не с начала файлах на новом ZModem'е. - bugfix: Теперь не пропускаем звонок на узел, если у него несколько линий, и сейчас работают не все. - bugfix: Чуть-чуть оптимизирована EMSI на исходящих (возможно, это решит проблему с некоторыми cisco). - bugfix: Иногда теряли первый EMSI_DAT при ответе. (Thnx to Alexander Belkin 2:5030/2120.0). - bugfix: Демон не падает, если его просят прислать (`qctl -o') пустую очередь. - bugfix: Работают холды после сессий с флагами H*. (Patch from Sir Raorn ). - bugfix: В новом ZModem'е поправлены skip и refuse на начале файла. И как этого раньше никто не заметил?! - bugfix: Перебор subst'ов теперь начинается с первого и идет от первого к последнему, а не в обратном порядке. - bugfix: Теперь при звонке через `qico -cN' будет выбран первый подходящий по времени subst (если их несколько). - bugfix: Пакеты с именами типа 0000fffa6.tut не будут приводить к появлению в очереди странных адресов. - bugfix: qctl не валится, если забыть параметр у -f. Version 0.49.6 ~~~~~~~~~~~~~~ - Новый параметр у qctl: `qctl -o' показывает состояние очереди демона. - bugfix: Кардинально увеличена скорость приема у нового ZModem'а. Теперь модемный CPS не будет ограничен слабым процессором. - bugfix: Удаляем пустые *.?lo даже после Mail-Only сессии, избегая дятла в ZMH и подобное ему время. - bugfix: Если в конце EMSI_DAT нет перевода строки (что характерно для EMSI_DAT от The Brake! с неправильно написанным хуком), то все равно пакет распознается по длине. Таким образом, проблемы коннекта с The Brake! должны быть решены. - bugfix: Аккуратней пропускеам ZFIN'ы, оставшиеся от предыдущего батча, при инициализации приема на новом ZModem'е. - bugfix: Не посылаем лишних ZFIN при завершении принимающего батча в новом ZModem'е. На это болезненно реагировал Kitten Mail. - bugfix: RH1 посылаем только если в ProtOrder есть какая-нибудь Hydra. - bugfix: Посылаем два EMSI_ACK в ответ на EMSI_DAT, как и положено по стандарту. Version 0.49.5 ~~~~~~~~~~~~~~ - Более строго смотрим на то, можно ли докачивать файл, или надо начинать его заново. - Новое слово в конфиге: estimatedtime (yes|no). По-умолчанию `no'. Если установлено в `yes', то перед началом приема и передачи файла в лог пишется трока с именем файла, его размером и предполагаемым временем приема/передачи. При этом, для передеачи не учитывается то, что удаленная сторона может захотеть принимать файл не с начала. Пердполагаемое время передачи вычисляется на основании cps предыдущего файла, если он передавался больше двух секунд, или на основании цифры коннекта. - qcc при изменении размеров окна xterm'а изменяет размер своего экрана. Это работает только на ncurses с версией > 4.2 (не работает со стандартными ncurses из FreeBSD 3.x, например). - При использовании нового ZModem'а появляется поддержка протокола DirZap. Буква в строке PortOrder `D'. При использовании старого ZModem'а `D' просто игнорируется. Для странных файлов, состоящих из сплошных управляющих символов производительность возрастает в два раза. Для архивов (где все символы равновероятны) производительност вырастает приблизительно на 2%. - Новое слово в конфиге: standardemsi (yes|no). По-умолчанию `yes'. Теперь **EMSI_INQC816 посылается два раза за каждую попытку на исходящих звонках, если `standardemsi yes'. Это соответствует стандарту и должно помочь избежать проблем с глупыми cisco, которые хотят видить и login и password. Но некоторые мейлеры не понимают такого (в нарушение стандарта). Если есть проблемы на исходящих -- ставтье эту переменную для проблемных линков в `no'. - Makefile переписан таким образом, что бы при необходимости обновлять скрипт configure и config.h.in, а так же перезапускать генерацию всех необходимых для компиляции файлов (Makefile, config.h, src/Makefile, src/ver.c) при изменениях шаблонов. Все это сделано для того, что бы люди, апгрейдящиеся через cvs или патчи не забывали, что все эти файлы не хранятся в репозитории и не патчатся. - bugfix: В новом ZModem'е теперь не будет паузы на входящих, если у ремоты для нас ничего нет. - bugfix: В новом ZModem'е правильно показывается размер принимаемого файла. Теоретически, из-за этого же бага раньше могла неработать докачка (практически она работала во всех моих экспериментах). - bugfix: Значение по-умолчанию для ProtOrder'а приведено в порядок (JHZ1) - bugfix: FREQ'и на Janus'е теперь отдаются. Version 0.49.4 ~~~~~~~~~~~~~~ - При использовняии нового ZModem'а можно задавать размер окна на прием и на передачу: слова конфига zrxwin и ztxwin. Если принимающая сторона запросила окно меньшее, чем стоит в кофнфиге (но не нулевое), используется размер окна передачи из конфига. Иначе -- запрошенное. Окно приема передается послылающей стороне, но не все мейлеры используют это значение. Значения по-умолчанию -- 0 (потоковый режим). На очень плохих линиях ненулевое окно сильно помогает. Не стоит ставить окно меньше, чем 8Kb (8192) на ZedZap'е. - На Hydra можно включить окна приема и передачи: слова конфига hrxwin и htxwin. Это должны поддерживать все мейлеры, вообще поддерживающие Hydra. Значения по-умолчанию -- 0 (потоковый режим). - Новый, написанный полностью с нуля ZModem. Новый ZModem выбирается при конфигурации параметром configure --with-new-zmodem. ZModem испытан на совместимость на очень плохой линии с большими задержками с T-Mail, FH-Mail, SF-Mail, Argus, KittenMail, XMail/32, Bink/+, Xenia Mail, DVMail и на хорошей линии с GPMail и bforce. Поддерживается защита от двойного сикпа/suspend'а. Поддерживаются как потоковый режим, так и режим скользящего окна и режим с буферизацией (этот режим включается только если принимающая сторона не умеет FullDuplex, я таких не видел). - Умеем делать локи через open(...,O_CREAT|O_EXCL). Это не будет работать на NFS, но будет работать на VFAT. Способ создания локов выбирается перед компиляцией параметром configure --with-lock-style=(open|link). Если параметр не указан, то используется старый метод (link). - Должны собиратся на Linux'е, и вообще, все общеупотребимые h-файлы собраны в одном месте (headers.h). - Умеем собираться на системах, где нет struct tm.tm_gmtoff (SlackWare 4). - Теперь в master-log пишем не только ``calls delayed ...'', но и новый статус узла. - bugfix: Теперь по ``qico -cX
'' умеем звонить на узлы, прописанные только в subst. - bugfix: Теперь при удлиннении телефонов из-за трансляции не будет портится память (Thnx. to Sergey Korshunoff). - bugfix: После звонка по ``qico -cX
'' могли написать в лог ``Can't call to
''. - bugfix: Пофиксили Janus, что бы FH-Mail мог нам посылать больше одного файла. - bugfix: Для вывода года используется "%y" , а не "%g" (что более стандартно) - bugfix: Теперь в отчете о FREQ'е пишется те же progname, version и osname, что и в EMSI (то есть, используются значения из конфига, если они есть). - bugfix: Теперь при неудачном создании лок-файла временный файл удаляется. (при lock-style=link) - bugfix: Janus мог терять файлы при некоторых достаточно экзотических обрывах связи. - bugfix: Теперь qcc правильно показывает статус (когда вообще показывает) (Patch from Sir Raorn ). Version 0.49.3 ~~~~~~~~~~~~~~ - ВНИМАНИЕ! Формат статусных файлов изменился. Пожалуйста, удалите *.qst из аутбаунда! - Теперь можно указать flavor полла в `qctl -p' и можно не указывать flavor аттача в `qctl -s'. Если flavor не указан, то берется из конфига. - Новая переменная в конфиге: pollflavor, задает flavor, с которым создаются поллы при обрыве связи и пропускании flavor'а в коммандной строке qctl при аттаче и полле. - Новая переменная в конфиге: callonflavors, регулирует, в каком случае начинать прозвонку. - Новая переменная в конфиге: immonflavors, регулирует, в каком случае не проверять время работы ноды. - Умеем аттачить файлы со статусом Imm. - bugfix: Изменен способ ожидания сообщений от управляющих программ: теперь демон не виснет при переводе времени вперед. - bugfix: Теперь работает clearundial (Thnx to Alexey Froloff, 2:5020/2115.3) - bugfix: Теперь FREQ на Janus работает и в том случае, если у удаленной стороны ничего для нас нет. - bugfix: Теперь Janus-сессия не рвется, если файл для передачи не может быть открыт. - bugfix: Теперь понимаем .ilo и .iut (Imm) - bugfix: Теперь видим в нодлисте ноды, которые прямо под Zone (Zone:Zone/node) и видим ZC как Zone:Zone/0. - bugifx: Если в нодлисте ошибки (например, строки были ``завернуты'' редактором), то ругаемся на stderr и не падаем в core. - bugfix: Теперь работает refuse на Hydra. Раньше воспринимался как skip. - bugfix: Теперь тип файла определяется точнее, some.SAmple не будет считаться эхомейлом, а some.PKType -- нетмейлом. - bugfix: В Makefile снова подставляется @CONFIG@, в прошлый раз слишком упростил configure.in - bugifx: Закрываем принимаемый файл при обрыве связи на Janus, и, соответственно, пишем в лог строчку об этом. Version 0.49.2 ~~~~~~~~~~~~~~ - Новая возможность: dialdelta, случайное изменение dialdelay (Patch from Sir Raorn ) - Новый параметр у configure: --with-shell=XXX, /bin/sh по умолчанию - Новый параметр у configure: --with-tcp-speed=XXX, 115200 по умолчанию. - Новый параметр у configure: --with-default-speed=XXX, 9600 по умолчанию. - bugifx: Часть `:speed' в описании порта теперь действительно optional - bugfix: С AMIGA4D теперь собираемся. - bugifx: Учитываются subst'ы при звонке по `-c' - bugifx: Исправлен баг в Hydra по рецепту Игоря Ванина и GPMail'а - bugifx: Hydra поправлена до стандарта (знаменитый баг в Ленцовских исходниках) - bugfix: В протоколе Janus теперь максимальный размер блока 2K (что правильно) - bugfix: --enable-aso теперь работает Version 0.49.1 ~~~~~~~~~~~~~~ - Добавлен параметр mincpsdelay: сколько секунд пропускать, прежде чем реагировать на mincps{in|out} - qctl теперь может создавать несколько поллов за один раз (by Michael Kulinich) - ...и киллов тоже (оно само получилось ;) - bugfix: stuff/ftn: qctl -Q -> qctl -q - bugfix: поправлено поведение CallerID, Date в `if' - bugfix: qico ставился в $sbindir, а ipc-ключ прописывался как для $bindir Version 0.49.0 ~~~~~~~~~~~~~~ - при подключении морды отсылается очередь/инфа из emsi. - новый ключик -K у qctl - прибить все req'и, ?lo-шки, файлы из них, которые k/s и файлбоксы. - добавлен spec. дурацкий, конечно, но вдруг кому надо? ;) - местами улучшен алгоритм обмена между мордой и мылером, теперь гоняем меньше ненужной информации. - сделан autoconf, так что вместо CONFIG теперь смотрите configure --help - теперь действия типа фреков, поллов и т.д. выполняются внешним рулем - программкой qctl (скоро ее функциональность будет скопирована еще и в qcc) - соответственно, теперь суидность самого qico, да и вообще всех бинарей объявляется неправильной ;) - все межпроцессное взаимодействие переведено на SysV ipc, соотв. QIPC_SOCKET вынесен нафиг. - pidfile теперь не обязателен, т.к. контроль за количеством копий тоже переложен на ipc (NB: если qico или qcc сдохнет и забудет убрать очередь сообщений, то это надо дслеать руками с помощью ipcs(8) и ipcrm(8), иначе вы не сможете их снова запустить) - Появились опции у `-c', по-умолчанию теперь обращаем внимание на время работы ноды и параметр cancall. Выходим с exit code 33, если нет портов, на которых можно звонить сейчас, пишем в stderr о недопустимости звонка в это время. Надо задать опцию `N' (`-cN') если такое поведение устраивает, или добавть `A' и/или `I' для подавления проверки cancall и времени работы - сделан janus (поддержка фреков и crc32 есть) - буква J в protorder. - полностью переделан алгоритм подсчета "мгновенного" cps. Теперь он не зависит от протокола и уже не совсем мгновенный, а считается по формуле: ( всего_приняли_байтов_текущего_файла / время_на_это_потраченное ) но зато, по идее, теперь не должно быть неясных прыжков на гидре и пр. - предыдущее изменение позволило сделать mincpsin/mincpsout - сделано автоматическое снятие undialable - переменная clearundial. - Опция LOCK_DIR перенесена из Makefile'а в конфиг (`lockdir') - DONT_RM_DIRS убрано нафиг. На BSO каталоги прибиваются всегда, на ASO даже пустой аутбаунд не трогаем. - Добавлина опция в конфиг aftermail cmd выполняет cmd только после успешного принятия файлов (Thnx to Konstantin Petrenko) - bugfix: Пишем строку `Calling...' в лог при начале звонка по `-c'. - bugfix: Параметр `-c' теперь работает. Version 0.48.0 ~~~~~~~~~~~~~~ - Появилось понятие STABLE и CURRENT. 0.48.0 -- Первый STABLE - Добавлен параметр `-c' (force call) из мертвой версии 0.45.4 - bugfix: две точки в имени файла Version 0.46.2 ~~~~~~~~~~~~~~ - Теперь конфиг копируется при инсталляции, а не переносится - Теперь конфиг cтавится как qico.conf.sample - Максимальная строка log-файла увеличина в 16 раз. Теперь не будем падать при E_DEBUG и длинных EMSI_DAT (надеюсь, этого хватит!) - Теперь по-умолчанию собираемся без отладочной информации - bugfix: Поправлен завис в ZModem'е, возникающий при посылке, если потерян SIGHUP - bugfix: Теперь собирается с E_DEBUG (Наконец!) - bugfix: Конвертация имени файла в ыормат 8.3 (DOS) теперь не трогает большее количество спец. символов. Version 0.46.1 ~~~~~~~~~~~~~~ - Теперь имя файла при конфликте имен в inbound'е изменяется аккуратно - допускаются только алфавитно-цифровые символы, может изменятся не только последняя буква имени, в крайнем случае файл оставляется в inbount/tmp - Вывод компилятора нодлиста теперь идет в stdout вместо stderr - При конвертации динных имен (LNC) tar.gz меняется на tgz, tar.bz2 на tb2 (Max Levenkov) - bugfix: Убраны возможные баги при коныерсии длинных имен (Max Levenkov) - bugfix: Мелкая бага при приеме байтов (Thnx. to Denis Shaposhnikov) - bugfix: при ответе по IP теперь пишем в лог IP-адрес удаленной стороны, а не свой - bugfix: Теперь собирается с E_DEBUG - bugfix: Поправлен баг в stuff/ftn (из эхи ifmail) Version 0.46.0 ~~~~~~~~~~~~~~ - Теперь Lev Serebryakov не отмечается в Changes как (LS) - FREE_BSD=1 перенесено в CONFIG - Все положено на CVS - Изменен порядок нумерации версий - Лицензия поменена с жесткой GPL2 на свободную BSD-Like - Новые адреса в README Version 0.45pl3.1ls3 ~~~~~~~~~~~~~~~~~~~~ - (LS) bugfix: Теперь не звоним на PVT-узлы и более строго проверяем телефон (не просто две цифры, а только символы, могущие появится в номере: 0-9,'*','#','T','P','R','W',',','.','-') (Благодарности Denis Shaposhnikov) - (LS) bugifx: emsi_init() поправлена _против_ стандарта, но так, что бы ее понимала CISCO. - (LS) bugfix: Убрано -DFREE_BSD=1 в Makefile, оставшееся там по ошибке. Version 0.45pl3.1ls2 ~~~~~~~~~~~~~~~~~~~~ - (LS) free() заменена на параноидальную sfree() - (LS) bugfix: убран завис в emsi_init(), теперь таймаут 60 секунд или 10 попыток (что наступит раньше). В FSC тут тайматуов не предусмотрено. Version 0.45pl3.1ls1 ~~~~~~~~~~~~~~~~~~~~ - (LS) Новые буквы для mapin/mapout (смотри qico.conf). - (LS) Новое условие в конфиге -- file . - (LS) bugfix: вызов aftersession с правильными параметрами - (LS) bugfix: подсчет размеров файлов в файлбоксах Version 0.45pl3 ~~~~~~~~~~~~~~~ - (ED) скипалка по удалению файла - (ED) если кончилось место, то прерываем прием файла правильно - еще генераторы статистики by Andrey Lomov - bugfix: несколько мелких исправлений по мотивам fido7.ifmail - bugfix: если нодлист имеет время, отличное от времени, записанного в индексе, то не коримся а пишем ошибку. Warning! формат индекса изменился, обязательно запустите qico -n!!! Version 0.45pl2 ~~~~~~~~~~~~~~~ - добавлен генератор статистики by Dmitriy Filichev: stuff/qico.stat - (DS) в конфиге можно задавать progname, osname и version для EMSI - (DS) патчи, касающиеся ] и } в emsi - (ED) bugfix: pl1 и freebsd - bugfix: починен itime Version 0.45pl1 ~~~~~~~~~~~~~~~~~ - bugfix: поправлена ересь by Eugene Don из-за которой не звонили вообще (2ED: давай ты будешь у меня спрашивать по сорцам если не понял, ok? ;) - bugfix: наложены патчи от Denis Shaposhnikov Version 0.45 ~~~~~~~~~~~~ - info: моя нода сейчас по некоторым причинам в дауне, поэтому возможностей для тестирования стало немного меньше - в основном, это кидание файликами по ip на одной машине + забирание почты с босса и фреки, так что глюков скорее всего станет больше... :( - info: соотв. по тем же причинам изменились мой адрес (2:5030/736.25) и адрес для фреков - 2:5030/529 ;) - bugfix: в качестве ремотного показывалось локальное время - bugfix: не работал флаг inb и в хистори все сессии были исходящими - bugfix: в историю и в total неправильно писался размер недопринятых файлов (они считались принятыми целиком) - bugfix: если каталог %inbound%/tmp был не создан, то создать его не могли с ошибкой "уже существует" - bugfix: на гидре починены: докачка; если файл отложили, а не пропустили (эти понятия различны), то его не удаляем; ремоте говорим число файлов; теперь, как и надо, говорим ремоте два имени файла - одно досовское, другое длинное (соотв. убран глюк с приемом BadWazoo на ifcico);если какой-то файл не удавалось найти при отправке, то гидра повисала; теперь гидра вроде-бы стала более двухсторонней (по крайней мере по ip это так, не знаю, что будет в реальности) - bugfix: zmodem: если ремота пропускала последний файл при исходящей, то вторая фаза wazoo-сессии обламывалась; размер принятого файла в логе был меньше действительного; теперь тоже различаем понятия "пропустить" и "отложить" - bugfix: логи нельзя было разделить для входящих и исходящих линий - bugfix: не работало условие connect (зато работало conect ;) - bugfix: траффик из файлбоксов не добавлялся в emsi - теперь если мы пропускаем какой-то файл, то об этом тоже пишется в лог - nl_langinfo() заменено на портируемую strftime() - новый параметр autoskip - автоматически пропускать при приеме файлы, подходящие под маску (можно указать несколько) - полноценная поддержка флага FNC (приведение имен к виду 8.3 для досовских мылеров), можно включить принудительно (mapout/mapin f) - внимание! другой формат вызова в режиме ответа! теперь для mgetty надо писать 'qico -a @'!!! - новый параметр aftersession: имя программы, запускаемой после сессии. - новый параметр emsilog - имя файла, в который будут скидываться полученные emsi_dat пакеты - новый параметр pidfile - теперь имя pid-файла задается не при компиляции, а в конфиге - из protorder убрана буква R, т.к. RH1 - это все-таки не протокол, а опция. RH1 теперь используется во всех вариациях гидры, если удаленная сторона тоже поддерживает это расширение. - новые протоколы: hydra-8k ('8' в protorder), hydra-16k ('6') - это расширения гидры, позволяющие использовать блоки до 8 и 16Kb соответственно. эти расширения также поддерживаются в мейлерах: Xenolink/Amiga, Zeus/Amiga, GMS/Amiga, Ravel/Macintosh (thanx to Cyril Moorzin, 2:5030/700 for info). рекомендуется включать только на скоростях от 14400 и 28800 bps соотв. - для совместимости заменено: faddr_t -> ftnaddr_t F_xxx -> FOP_xxx - теперь qcc показывает размер файлов и почты, выделяет узлы, на которые можно звонить. - файлы из файлбоксов теперь приравнены к файлам в .hlo, поэтому соответственно отображаются в qcc. - в zmh, если нет нетмейла, то на систему не звоним. - если ремота не показала в EMSI {TRAF}, но сказала {MOH#} то выводим в лог это значение. соответственно заработало предсказание траффика с sf-mail. - bugfix: нерабочесть конструкций типа if port ... cancall ... - bugfix: баг с обработкой nodial (если находился порт с выставленным флагом, то остальные порты даже не просматривались) - изменено значение флага wait - теперь ждем не только по hrq, если нет ничего кроме фреков, но и по hxt, если нет ничего кроме аркмейла и по hat в любом случае ;) название параметра waithrq я менять не стал. [!] Внимание! формат .qst файлов изменился, так что перед запуском надо вытереть все старые файлы из аутбаунда - bugfix: размер файлов и почты на ASO - добавлена буфферизация чтения, а на zmodem еще и записи. - bugfix: исправлен баг с сислогом - все валилось в auth (thanx to Andrey Panov) - bugfix: обработка трансляции телефона, всегда обрабатывалась только первая. - теперь qcc можно собирать и на FreeBSD, добавив ключик -DFREE_BSD. (from PK: имеется ввиду собираемость с ncurses-3, с 4.2 было и будет все ok и этот ключ не нужен) - bugfix(?): на FreeBSD не удалялся сокет-файл, после выхода qcc. - новый символ в строке инициализации ' задержка 1/5с Version 0.44a ~~~~~~~~~~~~~ - bugfix: фуух, теперь EMSI вроде добил окончательно - чуток причесаны протоколы Version 0.44 ~~~~~~~~~~~~ - bugfix: ошибки вызова фрекпроцеесора: если pid был меньше 1000h, генерились неправильные имена файлов, не вставлялся адрес системы, в качестве фрекрепорта формировались не пакеты, а черт знает что %( - bugfix: неправильно показывал время работы по qico -f XXX - bugfix: если в полях EMSI_DAT содержались скобки ([]{}), то данные из них неправильно показывались. - bugfix: дата в логе выводилась как '1 Jan 100' - bugfix: по clo&cut не звонили - переменные DEF_ZONE и DEF_NET убраны из CONFIG, теперь эти значения берутся из первой переменной address. - поддержка RINGING (эту фичу я не тестировал, т.к. в моем модеме этого нет!) - longname fileboxes (переменная longboxpath), имя каталога имеет вид '/path/zone.net.node.point' (.0 для узлов обязателен) - переменная pinbound убрана за ненадобностью (надо использовать if) - переделан алгоритм работы с принимаемыми файлами, теперь и для них можно задать преобразование имен - параметр mapin Version 0.43 ~~~~~~~~~~~~ - bugfix: вернул взад блокирование порта (спрашивается, нафига убирал???) - bugfix: amiga-style outbound теперь работает - bugfix: исправлена ошибка в проверке временных промежутков с Txy (причина выставления HRQ, HXT и т.п. невовремя) - bugfix: исправлена ошибка в обработке фреков на парольных сессиях - bugfix: время удаленной стороне теперь предъявляем локальное, а не UTC - bugfix: регионы и независимые узлы теперь тоже попадают в индекс ;) - filebox'ы (см. README и пример в конфиге, опция filebox) - новые опции в конфиге: mapout и mappath. упарвляет правилами перекодирования имен исходящих файлов и путей. подробное описание см. в конфиге и README. (в частности, сделаны замена обратных слэшей на прямые, замена всех точек, кроме последней, на '_', приведение к опр. регистру, переименование бандлов в формат 8.3, замена начала пути) - новые опция minspeed задает минимальную скорость Version 0.42 ~~~~~~~~~~~~ - теперь, если ремота предъявила несколько одинаковых адресов, то дубли игнорируются (позвонил мне один раз такой кадр ;) - новое условие 'cid' - проверка переменной среды $CALLER_ID, в которую mgetty пишет определенный номер (если модем это поддерживает). также содержимое этой переменной пишется в лог (для поддержки курьеровских IDSDL на mgetty надо наложить патч Алексея Гречанинова - http://scorpus.cjb.net). - добавлена переменная modemreset - последовательность команд для сброса модема. если укзана, то выполняется перед набором номера. - теперь строчек modemhangup может быть несколько, или вообще не быть. в первом случае команды выполняютя последовательно, после каждой команды ожидается ответ. - сделана поддержка syslog (для этого вместо имени файла лога надо писать $, например log $local3) - теперь переменная log тоже может быть в условиях, а суффикс в виде имени порта НЕ добавляется. лог демона задается отдельно в переменной masterlog - badpmsg убрано, т.к. избыточно и негибко (надо использовать if bad ... ) - во временные промежутки добавлено новое ключевое слово "never", которое является полной противоположностью "CM" (на всякий случай) - добавлена новая опция конфига "zmh". смысл, я думаю, понятен ;) - изменилась логика отзвонки на узлы, теперь: 1. если есть subst, то звоним четко по нему. 2. если узел - нода с флагом Hold или Down, то не звоним 3. если есть телефон и Txy или CM - звоним в указанное время 4. если узел - нода, есть телефон, но нет ни Txy, ни CM - звоним в ZMH - cancall теперь проверяется после выбора порта, адреса и т.д., короче реагирует на условия. - bugfix: условия-флаги теперь работают (епс, надо ж было такой бред написать... ;) - bugfix: если получили NRQ/HRQ, .req просто убивался - новый способ задания нодлистов в конфиге - для автоматического выбора наибольшего цифрового расширения надо писать 'nodelist filename.999'. сделано для того, чтобы можно было использовать листы с фиксированными расширениями. - на свои aka теперь на всякий случай не звоним ;) Version 0.41 ~~~~~~~~~~~~ - чуток подправлен модемный код - исправлена ошибка, из-за которой падали на фреках - добавлены опции в конфиг: badpmsg, freqfrom, freqsubj - простейший внешний фрекпроцессор на bash, аналог встроенного в ifcico - history Version 0.40 ~~~~~~~~~~~~ - динамическое конфигурирование - подсчет траффика и время на линии за сессию (еще глючит из-за старого бага) - мелкие багфиксы и косметические изменения в emsi - перечитка конфигов по SIGHUP - ограничение времени на сессию - поддержка ifextrp-совместимых фрекпроцессоров