Глобальные настройки.

Корневым узлом конфигурации является server. Конфигурация состоит из основной части и конфигураций модулей в соответствующих узлах.

<server>
  <pid-file overwrite="0|1">filename</pid-file>
  <logging>
    <file>filename</file>
    <screen>Yes|No</screen>
    <level>N</level>
    <history>N</history>
    <size-max>bytes</size-max>
    <tail>N</tail>
  </logging>
  <name-resolution>
    <use-hosts-first>Yes|No</use-hosts-first>
    <domain>name</domain>
    <server>IP address</server>
    ...
  </name-resolution>
  <threads>N</threads>
  <threads-max>N</threads-max>
  <SSL-certificate-file>filename</SSL-certificate-file>
  <SSL-key-file>filename</SSL-key-file>
  <SSL-key-password>secret</SSL-key-password>
  <SSL-min-version>none|SSLv3|TLSv1|TLSv1.1|TLSv1.2|TLSv1.3</SSL-min-version>
  <module-dir>path</module-dir>
  <load-module>filename</load-module>
  ...
  <module-XXXXX>...</module-XXXXX>
  ...
</server>

Примечание

Узел name-resolution позволяет настроить подсистему разрешения доменных имён. Если данный узел отсутствует - будут использованы системные настройки.

pid-file

Задаёт имя т.н. pid-файла - текстового файла в котором будет записан числовой идентификатор процесса manjary. При нормальном завершении процесса pid-файл удаляется. Если атрибут overwrite установлен в 1 и pid-файл на момент запуска уже существует - он будет перезаписан. Если значение узла пустое, используется имя файла по-умолчанию (его можно найти в лог-файле). По-умолчанию, если узел не задан, файл создаваться не будет.

logging/file

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

logging/screen

Переключатель. Указывает, следует ли выводить записи на консоль. По-умолчанию: yes.

logging/level

Уровень детализации лог-файла. От 1 (наименьший) до 5 (самый подробный). По-умолчанию: 4.

logging/history

Количество лог-файлов в ротации. Когда нужно начать новый файл, текущий file.ext переименовывается в file-000.ext, перед этим старый file-000.ext переименовывается в file-001.ext и т.д., самый старый файл удаляется. По-умолчанию: 0.

Ротация может быть произведена принудительно в любой момент времени, для этого необходимо выполнить manjary -k rotate, на платформе OS/2 также можно послать сигнал ALRM процессу manjary.

logging/size-max

Максимальный размер лог-файла. Когда достигается это значение, выполняется ротация лог-файлов. Если size-max установлено в 0, ротация будет происходить каждый раз при переходе на новые сутки, а формат имён лог-файлов в ротации будет следующим: file-YYYYMMDD.ext, где YYYY - год, MM - месяц, DD - день месяца. По-умолчанию: 0.

logging/tail

Количество последних записей которые будут сохраняться в памяти для получения внешними сервисами в реальном времени. По-умолчанию: 1000.

name-resolution

Данное дерево XML описывает систему доменных имён (DNS). По-умолчанию, если дерево не указано, используются системные настройки.

use-hosts-first

Переключатель, задающий когда будет просматриваться файл hosts - до обращения к серверу DNS или после, если имя или адрес IP не найдены.

domain

Имя домена по-умолчанию.

server

Один или несколько узлов server задают адреса IP серверов DNS.

threads

Число параллельных нитей обслуживающих активные соединения. Если через соединение принимается очередной блок данных, отправляются данные или выполняется запрос, это занимает отдельную нить. Когда запрос выполнен и нет данных для немедленной отправки, нить переходит к обслуживанию следующего соединения или ожидает активности на других соединениях. По-умолчанию: 5.

threads-max

Максимальное число нитей. Если все нити заняты, для выполнения очередной операции создаётся новая. Общее количество нитей ограничивается значением данного узла. Неиспользуемые нити завершаются после некоторого тайм-аута, пока их количество не снизится до значения указанного в threads. По-умолчанию: 16.

SSL-...

Эти узлы описывают файлы сертификата и приватного ключа, а также устанавливают минимальную допустимую версию протокола SSL. Установленные здесь значения будут использоваться для всех хостов не изменяющих их явно.

module-dir

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

load-module

Множество узлов указывающих какие модули следует загружать. Значения узлов - имена файлов модулей. Каждый модуль имеет заданное имя (не путать с именем файла модуля). Конфигурации модулей находятся в узлах с именами module-XXXXX, где XXXXX - имя модуля.

Таблица 3.1. Имена модулей и их файлов.

Имя модуляЗагружаемый файлДерево XML конфигурации
Mailmail.dllmodule-Mail
SMTPsmtp.dllmodule-SMTP
POP3pop3.dllmodule-POP3
IMAPimap4.dllmodule-IMAP
HTTPhttp.dllmodule-HTTP
SpamCheckspamchk.dllmodule-SpamCheck
Helpershelpers.dllmodule-Helpers
ABab.dllmodule-AB
Sievesieve.dllmodule-Sieve
poppassdpoppassd.dllmodule-poppassd
BanIPbanip.dllmodule-BanIP
SMTPWeaselsmtpwsl.dllmodule-SMTPWeasel