[Назад] [Дальше] [Оглавление]

Изменения даны в обратном хронологическом порядке.

Исправлена проблема с распределением памяти в convertstat привнесенная в 1.4 (bug report by Sergey Gershtein).

Допустимо отсутствие директивы `postmaster' в `user.cf' (bug report by Serge Matral).

Действие ключа `-x' в модуле calcmail теперь не зависит от наличия параметра debug-level в `/etc/amstat.conf'.

Сортировка при выводе лицевого счета абонента теперь выполняется по дате и полю id (а не по дате и комментарию, как было ранее), т.е. практически всегда записи выводятся в том порядке, как они вносились.

Смягчено сообщение об ошибке `attempt to drop connection with non created driver' до отладочного сообщения. Никакого криминала в этом все равно нет.

Исправлен пример конфигурации модуля calctime и убрана лишняя строка отладочной печати в самом модуле.

Теперь модуль ckconfig корректно особождает SQL запросы - раньше это приходилось делать EasySQL'ю при завершении работы (что в общем-то совершенно не критично в данном случае, но генерирует предупреждения).

Исправлена весьма старая ошибка, из-за которой в редких случаях могло происходить нарушение рапределения памяти. Проявилось при обсчете по очень сложным формулам около 700 клиентов с помощью `convertstat -a'.

Исправлена ошибка в модуле listener, которая могла приводить к повисанию пары listener/runqueue при определенных условиях (bug report by Konstantin Vyazov).

Добавлен параметр sql-debug-level, позволяющий переопределить уровень отладки SQL. Убрано автоматическое включение отладки SQL при ненулевом debug-level.

Добавлен модуль amtacs - анализатор логов Tacacs+.

Модуль convertstat может теперь производить промежуточные вычисления. Очень удобно при сложных формулах расчетов в прайс-листах (например при вычислении скидок).

Значительно изменен модуль calctime - убрана необходимость исправлять исходный текст для большинства случаев, введен конфигурационный файл `calctime.cf'.

В некоторых местах переработана документация (иначе выглядит внешне, доработаны/изменены многие пункты).

Изменена система генерации идентификаторов. Таблица `ids' более не используется - необходимый идентификатор вычисляется динамически.

В описании украинского языка `двинадцять' заменено на `дванадцять' (bug report by Serg Tarasenko).

Синхронизировано с версией 1.3.11.

Исправлена проблема с вылетанием по floating exception при задании генератору отчетов команды <account lines=0> - проявлялось в runqueue при нечисловом параметре команде account (bug report by Igor Dovzhenko).

Все переделано на EasySQL (для использования с amstat EasySQL должен быть зарегистрирован). Теперь нет ограничений какую SQL базу данных будет использовать amstat даже в том случае, если доступна лишь его бинарная версия. Рекомендуемая база данных данных - MySQL.

Переименованы поля SQL таблиц, укорочены комментарии.

Внимание: версия 1.4 не полностью совместима с предыдущими! Пожалуйста прочитайте приложение ``Обновление до версии 1.4''!



В SQL таблицах snames/sgroups недопустимо использовать PRIMARY KEY на поле name. При отсутствии этих таблиц модуль ckconfig теперь создает их правильно - смотрите также рекоммендации на сайте поддержки (bug report by Konstantin Vyazov).

Пользовательский язык не сбрасывается в системный после include в модулях htreport и mkreport (bug report by Lubomir Ferents).

При вызове sendmail подставляется '-f sender' вместо '-f admin' (bug report by Valery V.Lunyov).

Ошибка округления при выводе дробных величин "словами", была внесена в 1.3.9 (bug report by Victor Gartvitch).

ckconfig теперь не падает на пустых или еще не созданных таблицах при проверке идентификаторов; в следующем (1.4, работа уже ведется паралельно с релизами 1.3.* - спасибо CVS) релизе скорее всего будет изменен способ ведения идентификаторов целиком (bug report by Sergey Vetoshkin).

Очередной глюк с округлением в linux - оказывается 0.01*10 вовсе не 0.1, как можно было подумать.. (bug report by Victor Gartvitch).

Сделана проверка наличия директивы class user в персональных `mail.cf' (модуль calcmail). При ее отсутствии выдается предупреждение.

Легализована возможность использования модификаторов ширины в формате команды print генератора отчетов (bug report by Serg Zorin).

Исправлена ошибка с невозможностью выдать html отчет о статистике без НДС (bug report by Serg Zorin).

Убрана двойная рассылка ~daily.fm в daily (bug report by Victor Gartvitch).

Восстановлено преобразование единиц измерений в прайс-листах в соответствие с языковой конфигурацией пользователя.

В модуль ckconfig добавлена проверка корректности значений в SQL таблице ids и восстановление ее в случае нарушений.

Исправлен способ формирования имен локальных прайс-листов и форм отчетов - существовавший сбоил под Linux (bug report by Victor Gartvitch).

Исправлена довольно старая ошибка в модуле htreport - в некоторых ситуациях не выводилось содержимое лицевого счета (ошибка распределения памяти).

При выводе ставки налога по командам statistic и account генератором отчетов иногда выводилось неверное значение в среде Linux из-за ошибки округления в системных библиотеках Linux; исправлено (bug report by Victor Gartvitch).

Модуль amlast при удалении пробелов из длинных имен хостов нарушал поле даты; исправлено.

При проверке легальности адресов в модуле runqueue сравнение происходило по подстроке, а не со всей строкой; исправлено.

Устранена ошибка в calcmail - статистика записывалась всегда в детализованном виде в домашние каталоги пользователей. Появилась по всей вероятности в одном из предшествующих релизов. Теперь ключу `-s' возвращено его изначальное значение.

Незначительная ревизия структуры исходных текстов для упрощения распространения в исходниках.

Теперь runqueue преобразует и адрес из From_ из доменной в банговую форму - распространилось достаточно много конфигураций sendmail, где это делать полезно..

Исправлена ошибка с невозможностью вставить перевод строки в файл описания языка - проявлялось в особенности на неопрятных текстах сообщений об ошибках в runqueue (8-Feb-1997).

Увеличен до трехсот символов допустимый размер поля данных в пользовательских расширениях (30-Jan-1997).

Мелкие ошибки в adduuser исправлены (26-Jan-1997).

Произошли изменения в лицензии! Начато распространение в исходных текстах.

Локализованы сообщения в модуле runqueue - смотрите пример языкового файла для русского и английского языков.

В пользовательскую конфигурацию добавлен параметр accname, задающий наименование лицевого счета пользователя. Позволяет нескольким пользователям иметь общий лицевой счет, например.

Окончательно (надеюсь) доведен до ума amlast - при реальных крушениях системы время клиентов считается до момента последнего успешного входа в систему на любом терминале плюс одну секунду.

Пользовательская конфигурация теперь может хранить дополнительные поля и модули mkreport/ htreport могут ее выводить (смотрите директиву print extension). Это удобно применить для хранения и вывода требующихся с первого января 1997 г. кодов по ОКПО и т.п..

Радикально переделано чтение пользовательской конфигурации - пожалуй единственный блок, который оставался без изменений несколько лет; мир праху его..

Модуль convertstat теперь корректно отрабатывает вывод информации по всем пользователям в один файл (ключи `-a -ofile' ) - раньше при этом выводились данные только первого пользователя (bug report by Evgeny Larionov).

В warn.cf допустимы отрицательные величины (feature request by Dmitry Valdov).



Убрано чтение параметра addresses пользовательской конфигурации и, соотвественно, автоматическое создание `mail.cf' - все, кому это было надо, уже перешли с версий сервера 0.* и дальше тащить этот груз совместимости смысла нет. Для ликвидации этого параметра у всех пользователей можно использовать скрипт (запускать в каталоге bin):

#!/bin/sh
for d in `ulist -p`
 do
  echo $d
  rm -f $d/user.cf.old
  sed 's/^addresses/#(obs. since 1.3)# addresses/g' \
      $d/user.cf > $d/user.cf.tmp &&
  ln $d/user.cf $d/user.cf.old &&
  mv $d/user.cf.tmp $d/user.cf
done

В accadmin исправлена ошибка с записью комментариев только на основном языке системы (bug report by Dmitry Valdov).

В convertstat переделан механизм чтения *.st файлов (наконец-то) и увеличена допустимая длина формул до 500 знаков. Если формула или название сервиса не вмещаются в отведенное им пространство, то об этом теперь выдается предупреждение.

Добавлен необязательный параметр конфигурации legal-chars, описывающий допустимые в почтовых адресах символы.

Исправлена ошибка в runqueue, которая приводила к core dump на версиях, скомпилированных с сильной оптимизацией (thanx to Dmitry Pletnev).

Небольшая ошибка в adduuser - в `logins.cf' записывалось дважды одно и то-же имя.

Теперь в прайс-листах вполне может присутствовать основная валюта в качестве валютной единицы - раньше модуль convertstat пытался для нее определить курс по отношению к ней самой.

Легализована возможность использования отрицательной величины в персональных файлах `.count' - позволяет задать ``кредит доверия'' пользователю (feature request by Dmitry Valdov). По ходу дела несколько причесан модуль daily.

Несколько расширены возможности отладочного вывода.

Валюта может быть и женского рода - легализована возможность использования параметра `num_1_0' в описании языка (bug report by Sergey Bashakov).

Модуль amlast теперь заменяет пробелы в имени host'а на символы подчеркивания, соответственно и calctime перестал спотыкаться на таких записях (bug report by Andrey L.Davydov).

Исправлены сообщения `Списание НДС' и `Услуги за ...' в модуле accadmin на универсальные `vat_remove' и `services_in' (транслируемые в соответствие с описанием языка). Кроме того, теперь все вводимые комментарии сервер пытается транслировать по описанию языка (спасибо Dmitry Valdov).

Исправлена старая ошибка в модуле amlast - неверно вычислялось время нахождения в системе при crash или reboot в некоторых довольно экзотических случаях.

Починена ошибка в модуле upgrade - было невозможно обновить таблицы от 1.0 к 1.2 если в свое время они были получены из 0.8 и поле statistic.sname было равно NULL.

Немного изменена документация.

Бета тестирование ошибок не выявило. Доработана документация и версия 1.2alpha практически без изменений переделана в версию 1.2.

Мелкая плюшка - %HOMEDIR% не отрабатывался в модуле user-add, хотя использовался в примере.

Самое главное изменение - все сообщения сервер получает из файлов описания языков, что позволяет легко настраивать сервер на иные языки, и, в том числе, на несколько языков одновременно - с одним клиентом на русском, с другим на английском, с третьим на хинди :). Соответсвенно, изменен формат хранения прайс-листов с тем, чтобы можно было иметь комментарии к сервисам на разных языках; формы отчетов также могут быть на нескольких языках - задается именем файла.

Поймана незначительная утечка памяти при обработке прайс-листов.

Теперь поле username в пользовательской конфигурации не обязательно и используется сервером только для проверки.

В модуль calcmail добавлена обработка ключа `-s' - по нему статистика сохраняется в домашних каталогах пользователей в практически совпадающем с исходным виде (feature request by Dmitry Valdov).



Модуль calcmail: mail.cf не формируется, если в конфигурации пользователя нет описания его адресов; пустые классы вполне допустимы хотя и не имеют смысла; адреса вида `a!b:c' или `a!b:!c' и подобные им считаются допустимыми и преобразуются к `a!b!c' (bug reports by Victor Gartvitch).

Исправлен модуль user-add - раньше было невозможно сделать несколько подстановок одной переменной в одной строке (bug report by Dmitry Valdov).

Написан WWW-интерфейс для пользователей сервера - модуль htreport. В команды генератора отчетов (модуль mkreport) account и statistic добавлен параметр html, задающий вывод таблицы в HTML формате.

В поставляемом с сервером примером `user.cf' заменены параметры reale и realr на соответствующие описанию namee и namer - ошибке этой похоже уже почти два года. Одновременно сервер научен понимать reale и realr на случай, если кто-то уже успел привыкнуть к ошибочному синтаксису.

Добавлена возможность эксплуатации сервера не от имени root'а - изменения отражены в документации, введены параметры конфигурации uid и gid - бинарные модули сервера выполняют все действия от имени указанного пользователя/группы, если они заданы.

Теперь сервер всегда при запуске делает setuid(geteuid()) и /setgid(geteuid())/ - это позволяет избежать проблемы с невозможностью доступа к mSQL из runqueue, запущенного из listener с правами sendmail. Раньше runqueue в этом месте просто повисал.



Переписан заново механиз отработки команд в runqueue - теперь он в достаточной мере универсален. Заодно сделана возможность для самого пользователя задать ежедневный отчет - модули daily и mkreport приведены в соответствие с этим нововведением.

Поправлена плюшка в генераторе отчетов - проявлялась в виде веротятного core dump при include несуществующего файла.

Полностью дописана документация, немного реорганизована структура хранения иходников - заготовки конфигурационных файлов лежат теперь поблизости от самих моулей.

Поправлена ошибка в getuserlist - не определялись ошибки чтения каталогов.

Добавлен раздел umanage c модулями user-add, user-open, user-close и adduuser. К ним написана документация.

Много всяких мелочей по ходу написания документации. В том числе:

monthly теперь сам удаляет (точнее архивирует) статистику. Удалены модули month-mail, month-misc и month-time.

daily-mail поправлен к чуть более дружелюбному оформлению.

ckconfig теперь корректно передает в shell и perl символы ' и @.

Первый public alpha release новой версии. Все модули как минимум просмотрены и оптимизированы, многие написаны практически заново.

Изменений слишком много, чтобы перечислить. Основные таковы:

  1. Более не ведется двухвалютный учет - иные валюты, кроме основной могут быть только в прайс-листах. Лицевые счета и статистика ведутся только в местной валюте.
  2. Убрана привязка к рублю в виде основной валюты. Валютой может быть что угодно, в том числе с любой точностью - например в Украине можно сделать округление до тысяч.
  3. Разработан формульный механизм - во многих модулях возможны вычисления по полноценным математическим формулам - со скобками, функциями и переменными.
  4. Полностью переписан модуль mkreport - убраны лишние команды, унифицирован синтаксис, добавлены новые параметры, сделано условное выполнение.
  5. Все, что можно, приведено к максимальной универсальности.

Версия 1.0 не совместима с предыдущими версиями как по формату файлов конфигурации, так и по формату SQL таблиц. Смотрите приложение ``Обновление от предыдущих версий'' и описание модуля upgrade.

Надоело бодаться с C - перенесено в C++

Добавлены id'ы к табличкам. В ckconfig добавлен ключ -U - обновление таблиц.

Переделан внутренний формат хранения комментариев к сервису - теперь они хранятся единой строкой независимо от количества строк в прайсе.

Добавлена табличка "statistic" в которой хранятся статистические сводки. Там-же теперь есть рубли и комментарии - нет нужды хранить неизменными прайсы и пересчитывать как-то хитро рубли..

ckconfig проверяет корректность таблицы `statistic' и создает ее при необходимости.

0.9.2: 05-May-1996

В основном bugfix'ы. Более точных сведений не сохранилось - одновременно с ее созданием началась работа над 1.0.

Добавлен модуль amlast - удобный для компьютерной обработки вариант конвертера wtmp. Теперь время заходов пользователей измеряется в секундах.

Исправлена довольно старая ошибка, которая не проявляла себя никак при том коде, который был: была переменная stat и линкер при сборке convertstat/ calcmail цеплял ее адрес вместо вызова функции stat() без каких-либо предупреждений - вот где хорош C++ :( Слава богу stat() нигде реально не вызывался..

uadmin: теперь enter при вводе суммы отменяет операцию.

uadmin: поиск по пользователям.

uadmin: убита застарелая ошибка - в редких случая могла приводить к core dump при первоначальном чтении данных абонентов.

Добавлены переменные admin-name, lock-dir, organization, server-keep-jobs в конфигурацию - amstat.conf.

Переделана структура ввода и вывода переменных конфигурации. Внешних изменений быть не должно.

Теперь ckconfig при запуске без параметров проверяет конфигурацию, создает каталоги (если их нет).

Сделан механизм блокировок, полностью переделан listener, выброшен за ненадобностью модуль queue. В тестовом режиме было запущено пять runqueue и десять циклов на `sendmail -odi' с заданиями к statserv'у - сбоев не возникло.

Изменен механизм привязки сервера - теперь нет различия между коммерческими или некоммерческими версиями - различие производится на ходу по уникальному ключу. Для указания этого файла введена переменная key-file.

Добавлен модуль registrate - подготовка информации для генерации ключа.

Легализована возможность повторения имен сервисов в прайс листе. Читаемые позже имеют более высокий приоритет. Удобно для небольших правок конкретным абонентам (например каких-то скидок).

Добавлена очистка адресов в runqueue, при некоторых ситуациях ее отсутствие приводило к проверке неверного адреса на корректность.

Исправлена еще одна ошибка при подсчете total/rtotal в mkreport.

Починен ввод русского текста в uadmin FreeBSD - дурацкий unctrl().

Добавлен преобразователь mprep.cf - mp2ams

Убраны упоминания о спецналоге.

Исправлена застарелая ошибка в monthly, где не формировались акты для "закрытых" пользователей. В чьей-то ситуации это может и не быть ошибкой, но пусть по умолчанию будет "формировать"

Поправлен подсчет курса доллара - не учитываются операции, где рубли или доллары были равны нулю. Кроме того исправлена форма SQL запроса - должно чуть чуть быстрее работать.

Исправлен convertstat - раньше обрабатывал только 50 первых пользователей при задании ключа `-a' .

Реально сделана обработка операции * (умножение) в прайс-листе, раньше была только провозглашена в документации

Исправлена ошибка в runqueue - не вызывался sqlConnect.

Добавлены параметры listener-uid, listener-gid и server-run в amstat.conf, значение описано в документации.

Исправлено чтение прайс листов - раньше было ограничение на 80 позиций в сумме. Начиная с этой версии ограничение снято совсем.

Добавлен `/' в список допустимых в адресе символов (sprint).

Выброшен режим добавления пользователя из uadmin. И вряд-ли когда то будет возвращен на место. user-add дает нормальный механизм, а adduuser - вариант front end'а.

Портировано в linux (спасибо Alex Vostrikov alex@ccc.uz) Тестирования в linux не проводилось!

Небольшая ошибка в обработке классов в calcmail, привнесена в 0.8.1

Исправлена ошибка с чтением конфигурации в runqueue - приводила к немедленному core dump при любых попытках запуска. Была привнесена при подготовке к релизу 0.8.

Для FreeBSD 2.* изменены опции компиляции - стояло "-O2", приводящее к core dump в совершенно безобидном месте внутри uadmin (точнее менюшного модуля). Разбираться в причинах пока не хочется - просто скомпилировано с "-O" - эффект исчез.

Исправлен calcmail - теперь память под внутреннюю структуру выделяется динамически. Снято ограничение на количество классов в mail.cf

Первая широко распространяемая версия.


[Назад] [Дальше] [Оглавление]