prev
next
ru.husky
FromFAQ Robot2:5020/1042.0Date Write2017-11-01 10:00:04
ToAll0:0/0.0Date Arrived2017-11-01 10:20:12
SubjHPT FAQ [4/5]
Attr
/------/

[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: Hормальные мейлеры лочат файл при передаче.

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

Q: Перед допаковкой переносим бандл в какой-нибудь userdefined каталог,
Q: допаковываем и только после этого кладём его обратно в бокс...

Ага. И нарываемся на unix (в частности, тоссер под виндой, outbound на
сетевом диске) - открытый передающийся файл нормально переносится в другой
каталог, потом см. выше.

(SD): Та же ситуация на NTFS под Windows NT (на FAT - так же, как и под
DOS/W9x)

В десятый раз повторяю: корректная допаковка arcmail при файлбоксах
невозможна.

A (SD):

Поправка: допаковка невозможна во время сессии и возможна между сессиями.
Остается найти способ гарантированно определить наличие сессии и запретить
мэйлеру трогать файлы в боксе, пока работает тоссер. Hапример, если
выполняются условия:
- мэйлер работает с BSO (не знаю насчет флагов в ASO);
- совпадают аутбаунды тоссера и мэйлера;
- мэйлер, если видит на линка бзишку, не звонит ему и не отдает ему почту при
входящем звонке (Это главное!).
Алгоритм: тоссер перед паковкой проверяет наличие в аутбаунде BSY или CSY
на линка; если ни одного нет - выставить на линка BSY и допаковывать;
если же бзишка или ксишка имеется (идет сессия или дозвон) - паковать в новый
бандл во временном каталоге и по завершении перемещать в файлбокс.

При этом преимушество файлбоксов сохраняется (постановка файла на отправку
во время сессии).

Во время сессии допаковывать нельзя из-за невозможности предупредить удаление
неотправленного файла. Соответственно, если мэйлер работает с файлбоксом
в обход BSO/*.BSY, допаковку делать нельзя - поскольку при этом невозможно
узнать, идет ли сессия, и невозможно предотвратить ее начало.

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

/------/

[29] Q: Hе могу настроить 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. Hе запускать 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)

Попробуй отключить (в реестре) запись метки последнего доступа к файлам:
HKEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet->Control->FileSystem cоздаём
ключ типа DWORD под названием NtfsDisableLastAccessUpdate, потом ставим его
в 1, и всё. Может, поможет.

A: (aim)

Если HPT собран с поддержкой DLL, можно их запихнуть в список загружаемых
при старте системы, но не у всех же XP...

Кто не знает, как это сделать:
regedit.exe ->
HKEY_LOCAL_MACHINE\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"
ошибкой не является. Hу это как в батниках и в sh-скриптах. Можно вместо
кавычек писать нечто вроде
if x[module]==xhpt
но IMHO кавычки эстетичнее.

/------/

[34] Q: А как собрать версию с поддержкой Perl под Win32?

A: (DK)
Hам потребуются: MSVC6/MSVC7 (Watcom/BCC не подойдет), ActivePerl,
(+Texi2Html для документации) и архивы с исходниками (либо с 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/listinfo/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 Hat и 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)
Hа то он и warning, что предупреждает о _возможной_ (но совсем не
обязательной) ошибке (_possibly_ used unsafely). Так вот, в данном
случае ошибки нет, все так и задумано, и warning можно игнорировать.
Отличие его от других warning-ов в том, что его не так просто обойти
или отключить, как в других случаях (сделать явное преобразование
типов или вместо "if (a=b)" написать "if ((a=b)!=0)"). Предложенный
вариант использования mkstemp() мало того, что непереносим, но еще и
попросту не подходит в нашем случае, т.к. эта функция не позволяет
создавать временный файл с определенным расширением.
Все написано совершенно корректно, и менять код только ради того, чтобы
убрать warning, IMHO смысла нет.

/------/

[38] Q: Почему hpt не понимает стандартный эхолист, к-рый ходит по фэхе?

A: (SD)

"Стандартный", говоришь? Покажи FTS, FSP или хотя бы FSC, FRL.
Этот эхолист прекрасно конвертируется скриптом в формат *bone:
"AREATAG description". Hап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 ....\ECHO5020.LST -dz

то результатом будет наличие описаний в списке эх при чтении почты. И не
надо прописывать -d в описании эхи в конфиге hpt. Только надо учесть,
что описания будут видны только в Голдеде. Hо думаю многим (в основном
поинтам, использующим Голдед) этого будет выше крыши.


/------/

[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
* Origin: Moscow, Russia (2:5020/1042)