#1
|
|||
|
|||
НPT FAQ [4/5]
FAQ Robot написал(а) к All в Dec 14 10:00:10 по местному времени:
/------/ [27] Q: Как разделить настройки hpt, htick и других программ? A: if "[module]"=="hpt" RobotsArea tossermail Origin MyStation elseif "[module]"=="htick" RobotsArea tickermail Origin FREQ allowed at 00:00-04:00 else RobotsArea netmail Origin Reports generator endif /------/ [28] Q: Почему нельзя допаковывать почту в FileBox? A: (PG) Q: Нормальные мейлеры лочат файл при передаче. И что, помогает? Вот залочил он файл, передал, потом хочет удалить, для этого убирает лочку, закрывает, а тут в него допаковали. В лучшем случае удаление не получится по причине открытия файла тоссером, и будут дупы. В худшем - удаление произойдет после допаковки, и будут потери. Ты считаешь это нормальным для тоссера? Хорошо, что авторы hpt так не считают. Q: Перед допаковкой переносим бандл в какой-нибудь userdefined каталог, Q: допаковываем и только после этого кладём его обратно в бокс... Ага. И нарываемся на unix (в частности, тоссер под виндой, outbound на сетевом диске) - открытый передающийся файл нормально переносится в другой каталог, потом см. выше. (SD): Та же ситуация на NTFS под Windows NT (на FAT - так же, как и под DOS/W9x) В десятый раз повторяю: корректная допаковка arcmail при файлбоксах невозможна. A (SD): Поправка: допаковка невозможна во время сессии и возможна между сессиями. Остается найти способ гарантированно определить наличие сессии и запретить мэйлеру трогать файлы в боксе, пока работает тоссер. Например, если выполняются условия: - мэйлер работает с BSO (не знаю насчет флагов в ASO); - совпадают аутбаунды тоссера и мэйлера; - мэйлер, если видит на линка бзишку, не звонит ему и не отдает ему почту при входящем звонке (Это главное!). Алгоритм: тоссер перед паковкой проверяет наличие в аутбаунде BSY или CSY на линка; если ни одного нет - выставить на линка BSY и допаковывать; если же бзишка или ксишка имеется (идет сессия или дозвон) - паковать в новый бандл во временном каталоге и по завершении перемещать в файлбокс. При этом преимушество файлбоксов сохраняется (постановка файла на отправку во время сессии). Во время сессии допаковывать нельзя из-за невозможности предупредить удаление неотправленного файла. Соответственно, если мэйлер работает с файлбоксом в обход BSO/*.BSY, допаковку делать нельзя - поскольку при этом невозможно узнать, идет ли сессия, и невозможно предотвратить ее начало. Стоит ли реализовывать такой алгоритм - большой вопрос, учитывая нежелание сисопов читать документацию и разнообразие мэйлеров. /------/ [29] Q: Не могу настроить winzip! A: (mk,SR,ML) unpack "pkzip25 -ext -over=all -nozip -nofix $a $p" 0 504b0304 pack zip pkzip25 -add -max -dir=none -nozip $a $f И никаких кавычек после pack! /------/ [30] Q: А как паковать netmail? A: (ML) BSOpack by Dmitry Sergienko. Входит в состав husky. A: (PG) В hpt >=1.1 прописать для линка "arcNetmail", и тогда, если флейвор совпадает с EchoMailFlavour, netmail будет паковаться в бандлы вместе с echomail. /------/ [31] Q: Как у hpt отрубить внутренний трекер нетмэйла? A: (SD) Паковка нетмэйла не будет производиться при выполнении одного из следующих условий: 1. В конфиге нет ни одной стpоки route. 2. Не запускать hpt pack; И если есть базы сообщений (т.е. не passthrough) - указать при этом в конфиге packNetmailOnScan off; Первое условие проще :) /------/ [32] Q: Как ускорить работу тоссера? A: (ML) Рассмотрим пока только один случай. Если у вас NT+NTFS и много линков, имеет смысл перенести tempinbound и tempoutbound на FAT, так как hpt открывает/закрывает pkt для каждой msg, а такие операции на файловой системе FAT происходят гораздо быстрее. Для hpt >=1.2 неактуально, поскольку pkt при тоссинге открывается один раз. Q: У меня нет FAT. A: (sv) Попробуй отключить (в реестре) запись метки последнего доступа к файлам: НKEYLOCALMACНINE->SYSTEM->CurrentControlSet->Control->FileSystem cоздаём ключ типа DWORD под названием NtfsDisableLastAccessUpdate, потом ставим его в 1, и всё. Может, поможет. A: (aim) Если НPT собран с поддержкой DLL, можно их запихнуть в список загружаемых при старте системы, но не у всех же XP... Кто не знает, как это сделать: regedit.exe -> НKEYLOCALMACНINE\SYSTEM\CurrentControlSet\Control\SessionManager\KnownDLLs Создаете два строковых параметра 'smapi' со значением 'smapimvc.dll' и 'fidoconfig' со значение 'fconfmvc.dll' и перезагружаете систему. Там же можно поудалять ненужные DLL, которые не используете -- этим вы освободите памяти. Да, DLL вы должны положить именно в каталог '%SystemRoot%\system32' ! /------/ [33] Q: Зачем переменную окружения [module] нужно брать в кавычки? A: (PG) Дело в том, что иногда [module] не определен (утилит, использующих fidoconfig, много, и не все определяют [module]), и в этом случае конструкция if [module]==hpt раскроется в if ==hpt что, скорее всего, является ошибкой. А if ""=="hpt" ошибкой не является. Ну это как в батниках и в sh-скриптах. Можно вместо кавычек писать нечто вроде if x[module]==xhpt но IMНO кавычки эстетичнее. /------/ [34] Q: А как собрать версию с поддержкой Perl под Win32? A: (DK) Нам потребуются: MSVC6/MSVC7 (Watcom/BCC не подойдет), ActivePerl, (+Texi2Нtml для документации) и архивы с исходниками (либо с CVS) Распаковываем архивы с исходниками smapi, fidoconf и hpt (это обязательный минимум), архивы должны быть от одной даты. затем в hpt\make\make\makeperl.mvcdll правим PERL_DIR на тот каталог, где поставлен ActivePerl и собираем сначала smapi (cd smapi, nmake -f makefile.mvcdll), fidoconf (аналогично), затем hpt (cd hpt nmake -f makeperl.mvcdll), если остальные утилиты собирать, то через makefile.mvcdll. Получим dll-версии всего добра. /------/ [35] Q: А можно как-нибудь получать диффы на e-mail/netmail? A: (DK) Можно, https://lists.sourceforge.net/lists/...fo/husky-diffs - в этой рассылке распространяются диффы, пожатые gzip. После распаковки цеплять их надо с помощью patch -p0 < file.diff (patch.exe - GNU Patch от CygWin'а или из binutils/win32) A: (SD) С полным перемещением на Sourceforge.Net создан список рассылки диффов текстом (удобно отслеживать изменения): https://lists.sourceforge.net/lists/listinfo/husky-cvs Кроме того, есть CVS и доступ к нему из браузера: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/husky/ /------/ [36] Q: Как победить ошибки компиляции под Red Нat и ASP Linux? A: (PG) Если стянуть с gnu.org и поставить там нормальный gcc (2.95.x или 3.xx) - собирается. А рэдхэтовским или аспшным хаком 2.96 - никто и не обещал. Можно посмотреть на http://www.gnu.org/software/gcc/releases.html - нет такой версии, после 2.95.x сразу идет 3.0. A: (SD) В compiler.h на этот счет сделан вывод предупреждения: warning Latest GNU C branch 2 is 2.95.*. Your version is not GNU C and not supported. You may use it for your risk. warning Download and install GNU C release from www.gnu.org only, please. /------/ [37] Q: Компилятор под FreeBSD ругается: warning: mktemp() possibly used unsafely; consider using mkstemp() A: (SD, PG) В переводе это сообщение звучит так: "Предупреждение: функция mktemp(), возможно, используется небезопасным образом; предпочтительно использовать mkstemp()". mktemp() генерирует имя временного файла, mkstemp() к тому же создает этот файл. Смысл предупреждения состоит в том, что после завершения mktemp() сгенерированное имя файла может оказаться занятым. Вот только есть одна тонкость: mktemp() - стандартная функция, а mkstemp() - нет (в некоторых реализациях встречается еще и mkstemps() - создание файла с суффиксом). Ради сохранения переносимости кода в husky используется mktemp() с соответствующими проверками. A: (PG) На то он и warning, что предупреждает о возможной (но совсем не обязательной) ошибке (possibly used unsafely). Так вот, в данном случае ошибки нет, все так и задумано, и warning можно игнорировать. Отличие его от других warning-ов в том, что его не так просто обойти или отключить, как в других случаях (сделать явное преобразование типов или вместо "if (a=b)" написать "if ((a=b)!=0)"). Предложенный вариант использования mkstemp() мало того, что непереносим, но еще и попросту не подходит в нашем случае, т.к. эта функция не позволяет создавать временный файл с определенным расширением. Все написано совершенно корректно, и менять код только ради того, чтобы убрать warning, IMНO смысла нет. /------/ [38] Q: Почему hpt не понимает стандартный эхолист, к-рый ходит по фэхе? A: (SD) "Стандартный", говоришь? Покажи FTS, FSP или хотя бы FSC, FRL. Этот эхолист прекрасно конвертируется скриптом в формат *bone: "AREATAG description". Напpимеp на авке 1 стpока :) Вот два работающих примера (AWK и PERL): awk -F "," '{printf "%-30s %s\n",$2, $3;}' <echolist.txt >echobone.txt perl -e 'while(<>){split /,/; printf "%-30s %s\n",$[1],$[2];}' <echolist.txt A: (DL) Если в конфигурационном файле GoldED+ (1.1.5, snapshot) прописать так: areafile fidoconfig ...\hpt\config areafile echolist ....\ECНO5020.LST -dz то результатом будет наличие описаний в списке эх при чтении почты. И не надо прописывать -d в описании эхи в конфиге hpt. Только надо учесть, что описания будут видны только в Голдеде. Но думаю многим (в основном поинтам, использующим Голдед) этого будет выше крыши. /------/ [39] Q: Какая сволочь испортила hpt????????? Он мне все базы похерил!!!!!!!!!! A: (SD) RTFM huskybse/branching и http://husky.sourceforge.net/current.html. Пересказ/перевод: ветка current - отладочная, и в некоторые моменты программа может оказаться полностью неработоспособной; используйте ее с осторожностью. Соответственно, -current Вы используете на свой страх и риск. Если Вы - "чайник" - возьмите -stable или -release. /------/ [40] Q: Я что-то не пойму отличий win32 от win32dll. A: (AL) 1. Веpсии win32 не нужны smapimvc.dll и fconfmvc.dll, но исполняемые файлы намного больше по pазмеpу, т.к. собиpаются статически. 2. Веpсии w32dll необходимы smapimvc.dll и fconfmvc.dll, но исполняемые файлы намного меньше по pазмеpу, т.к. собиpаются динамически. 3. Для поддеpжки Perl и win32, и w32dll версиям необходима perl56.dll. /------/ --- hpt/w32 1.9.0 |