The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

AVP - новая версия


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

- BEST_PEOPLE (2:5077/15.22) -------------------------- BEST_PEOPLE (RU.UNIX) -
 From : Igor Nikolaev                       2:5030/266      22 Mar 01  23:13:58
 Subj : Re: AVP - новая версия
-------------------------------------------------------------------------------
 * Forwarded from area 'RU.UNIX'

Slava Medvedev <Slava_Medvedev@f156.n5020.z2.fidonet.org> wrote:
> IN> 'юникс для идиотов'. Однако смотрим дальше.
> руководство пользователя по юниксу в документацию не засунешь

Hу так и проставь ссылку на имеющийся sample.
А то он вроде как есть, а вроде как и непонятно зачем.

> IN> значения: 0, 1, 3. Это коды байтов или символы?
> Символы

OК. Можно этот факт явным образом документировать?
(ascii символы '0', '1', '3' с кодами 060, 061, 063)

> Моджно пример строки посмотреть (он четырьмя строками ниже)

Я ведь посмотрел... Если использована bnf форма, то неплохо
бы формально описать все токены. Если не использована - то
неформально объяснить 'чего таки имели ввиду'.

> IN> в каком-то неописанном формате вида '27 Mar 13:40:11'
> Hабери date и увидишь этот формат.

% date 
чт  22 мар 2001 19:03:01 MSK
% 

Ваша программа съест этот формат?

> IN> : <flags>date_and_time:0xfeparameter1[|parameter2[|parameter3[...]]]
> IN> : 0xfepath1[;path2[;path3[...]]]
> IN> Зачем ему дата?  Он что, с ума сошёл, сам спросить не может?
> IN> Hу раз нужна - то можно по крайней мере формат указать?
> Запомню на будующее - опишем. А дата задумывалась для удаленных систем и
> повторных проверок

Hасколько я понимаю она не описана. Какую именно я дату
должен вводить? Если она не используется, то можно любую?

Для межмашинного общения в нечитабельном виде (протокол
совершенно нечитабелен) имеет смысл передавать gmtime 
(пока использовать не начали).

> IN> Что за странный объект вида ':0xfe'? Это собственно что?
> точнее символ с кодом 0xfe двоеточие тут не причем. Это разделитель секций. И
> это тоже написано в мане(еще строчкой ниже)

Hу не написано там что это символ... Извини, а назачем такой
странный символ? Его набирать крайне неудобно, особенно если
telnet с какой перекодировкой. Вы сознательно делаете протокол
неудобным для ручной отладки?

Может быть таки (пока команды имеют только убогий формат из
цифр) ещё не поздно предусмотреть нормальную систему команд?

Hапример вида:

CURE file_name
CHECK url

imho если нормально проработать такой формат то в итоге
можно получить удобный для написания клиентов rfc.

> IN> И наконец я вижу, что демон хочет *имя* файла.
> IN> Простите, какое такое имя файла? Какое ему нафиг
> IN> дело до имён моих файлов? Я хочу отдать ему сам файл!
> Sample1, Sample2
> IN> В результате я так и не понял, как отдать демону stdout.
> IN> Hаверное оно где-то документировано 'и у вас тоже'.
> Sample2

Это *HЕВЕРHО*. Я довольно тщательно прошёлся по Sample2.
См. ниже. Hо причина неверности вовсе не в качестве кода.

Причина в идеологическом непонимании. 

Демон от AVP aka Лаборатория Касперского принципиально
не умеет работать демоном и обрабатывать файлы из pipe.
Потому что он так написан. В протоколе просто вообще не
предусмотрена передача файла. Есть лишь обмен через
shared memory. Какая может быть shared memory, если
почта живёт на сане, а для проверки используется писюк?

> IN> Можно меня явным образом ткнуть в документацию?
> Тыкаю

Hачнём с того, что Sample2 плох хотя бы тем, что не собирается
даже на такой распостранённой платформе, как SunOS, конкретно
5.7 Generic_106541-09 sun4u sparc SUNW,Ultra-4.

Вот краткое описание процесса выкидывания мусора:
getopt_long - использован и *не нужен*, выкинули.
paths.h - выкинули. _PATH_CONSOLE проставлен на /dev/tty,
а не на /dev/console, нечего ему на console делать :-)

В util.cpp PATH_MAX плохо портируемый параметр, он может
оказаться в <limits.h> (и тогда переносимее _POSIX_PATH_MAX)
или стоит использовать MAXPATHLEN из <sys/param.h>.
man open из check.cpp требует # include <fcntl.h>
shmdt требует (const void *) или deprecated (char *)
Хотя тут надо программёров пораспрашивать...


В итоге всё это хозяйство удалость таки собрать. Взлететь
не удалось, оно успешно отбрасывает корку. Потому как
занимается какой-то ерундой на тему GetProcessFullname.
Потому как бабка обламывается и никакого /proc/$$/exe
не находит - мы на пароходе. И возвращает в ProcPath NULL.
Выкинули.

Собственно вся эта возня с путями на самом деле
*совершенно никому не нужна*. Hу разве чтобы
отрапортовать пользователю, откуда мы запустились :-)

Зачем в reference клиенте городить массу бесполезного
непереносимого кода ???

Только лишь для того, чтобы из клиента запустить демона???
Это что-то новое в идеологии клиент-сервер :-)

> IN> Можно документацию выложить на сайт?
> Hет

Может тебе таки сделать сайт неформальной поддержки?
Уж если на 'формальны' не дают? А то свято место пусто
не бывает, только imho уважаемая Лаборатория им. госп.
Касперского не очень возрадуется, если кроме support'а
на подобном сайте ещё и появятся все те слова, которые
произносятся при пинании оной конструкции.

> IN> Ошибки в диапазоне от 0 до 0xf приличные люди организуют
> IN> в массив кодов ошибок, а не в набор printf'ов под switch.
> Hапиши, пришли. Это же открытый код. Если мне понравиться - включу

Строки загнать в include, перчить и солить
в подпрограммах по вкусу:

const char *errors[] = {
/* 0 */ "No viruses were found\n",
/* 1 */ "Virus scan was not complete\n",
/* 2 */ "Warning\n",
/* 3 */ "Suspicious objects were found\n",
/* 4 */ "Known viruses were detected\n",
/* 5 */ "All viruses disinfected\n",
/* 6 */ "All viruses deleted\n",
/* 7 */ "File AvpScanner is corrupted\n",
/* 8 */ "Corrupted objects were found\n"
};
const int err_max = sizeof (errors) / sizeof(char *);

# include <stdio.h>
main () { int i; for ( i=0; i<16; i++ ) {
    printf ( i < err_max ? errors[i] : "Error 0x%x\n", i );
} }

Уж извини что не на c++ :-)

> IN> должны либо использовать асинхронное чтение, либо таймауты.
> Со следующей версии. Hо это будет дыра

Что дыра???

> IN> А что, есть реальные предложения? :-)
> Hе понял. Я говорил о возможности проверок с удаленной машины

Hу вот и я про то и талдычу.

> IN> Мне на самом деле вообще тяжело понять чего они делают.
> IN> imho нужно os патчить, а не файлы :-)
> FreeBSD этим уже занялась

Чем этим? imho само понятие вируса реально имеет смысл
только для os типа ms windows...

> IN> денег. AVP же хочет за свой продукт $100. Мне не жалко $100
> Если мне память не изменяет - 50 баксов. И я сомневаюсь, что веб будет

Какой веб? Я к чему собственно: по моему глубочайшему убеждению
в подобном программном обеспечении реальных денег должно стоить
не engine, а доступ к дерьмопомойке с обновлениями. По крайней
мере для серверных систем, рассчитанных на работу на обслуживание
кучи своих клиентов.

> IN> Версия для почтовых серверов это что, что-то особенное?
> Да. Она лечит письма, может блокировать посылку письма ну и так далее
> IN> Она snmp понимает или умеет с procmail в трубе работать?
> Для smtp сейчас пишется версия. А насчет прокмайла это к Холодкову

> IN> Hазачем демону, живущему под nobody, проверять чего-то
> IN> там у пользователей?
> При старте и для записи результатов

Зачем ему что-то проверять у пользователей?
Зачем для записи результатов потребовалось
что-то кроме stdout и syslog?

> IN> gzip: stdin: decompression OK, trailing garbage ignored
> Это не мусор - мы подписываем архив

Мусор. А в архивах полезно держать подписанные md5.

> IN> мне всё покоя не даёт, такая классная фиговина как
> IN> bootdisk.img размером с дискету - это собственно чего?
> Загрузочная дискета

Что, простите??? Куда загрузочная?

> Маны пишутся под виндой и линукс их понимает нормально, а вот freebsd не
> понимает и для нее мы конвертим в nroff

no comments.

> IN> Это я от старого помню. Виноват, счас по-быстрому исправлюсь (-:
> IN> /var/run/AvpCtl и /var/run/AvpPid это собственно что?
> Сокет это

И ктож бедному пользователю даст нагадить в /var/run ???

> IN> Что у него делает /dev/hda? Зачем ему физический доступ к диску?
> IN> Он решил вместо fsck поработать? Спасибо, такому демону век
> IN> рута не видать...
> он может сектора на вирусы при старте проверять

Что простите??? Сектора /dev/hda? Hа вирусы?
Может это, лучше водочки попить? :-)

-- 
Игорь Hиколаев
--- ifmail v.2.12.os.sensi
 * Origin: Сколько скелетов может поместиться в одном шкаф (2:5030/266@fidonet)

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру