|
|
ru.unix- RU.UNIX ---------------------------------------------------------------------- From : Igor Nikolaev 2:5030/266 23 Mar 2001 00:13:58 To : Slava Medvedev Subject : Re: AVP - новая версия -------------------------------------------------------------------------------- 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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix/1341651560c2f.html, оценка из 5, голосов 10
|