Описание настроек RusHub
Материал из MyDC's Wiki
Настройки хаба хранятся в файле RusHub.xml, который находится в папке с исполняемым файлом хаба. Если файла настроек нет, то он будет автоматически создан после первого запуска программы. Языковые настройки располагаются в xml-файлах в каталоге lang, нахождение которого задаётся в основном конфигурационном файле.
Содержание |
Lua API для настроек
Любую настройку можно получить в Lua-скриптах через объект конфигурационных настроек хаба Config:
Config.sLocale
Установить любую настройку (кроме sAddresses и bAdcOn) можно простым присвоением значения:
Config.sLocale = "Russian_Russia.1251"
При изменении настроек sHubName или sTopic всем пользователям будет отправлена соответствующая команда. Изменение любой настройки вызывает событие OnConfigChange. После каждого изменения настройки сохраняются.
Получить список всех настроек в Lua можно с помощью функции Config.table(), которая вернёт таблицу с названиями доступных настроек:
tConfigList = Config.table() for _, v in ipairs(tConfigList) do print(v, Config[v]) end
Настройки хаба
Далее описаны все настройки хаба.
Настройки с приставкой (префиксом) b (типа bool) устанавливаются числовыми, строковыми или булевыми значениями 1 — да (true), 0 — нет (false). Какого бы типа ни была настройка, всегда возвращается строковый тип.
Устаревшие настройки вынесены в конец списка и больше не используются.
Служебные
- sAddresses — адреса хаба (указываются через пробел). К примеру:
dc.hub.ru:413 127.0.0.1 192.168.0.1:4111 [::]:411 [fe80::219:7dff:fe86:e017]:413
- Адреса указываются через пробел. Порт указывается через двоеточие (если порт отсутствует, то берётся порт по умолчанию 411), при этом адрес IPv6 необходимо заключать в квадратные скобки (IPv4 также может быть заключён в квадратные скобки, однако для IPv4 это необязательное требование). Также, вместо IP-адреса может быть указано имя хоста, а вместо числового значения порта может быть указан его буквенный аналог (например: 80 <=> http, 443 <=> https, 512 <=> exec и т.д.).
- bAdcOn — включить тестовый режим работы хаба по протоколу ADC (пока без поддержки Lua-плагина).
- sHubName — название хаба.
- sTopic — топик хаба (приписка к имени хаба).
- sLocale — языковая локаль. По умолчанию устанавливается локаль из ОС (в Windows для России — Russian_Russia.1251).
- iPingInterval — период, через который пингуется пользователь.
- iStartPing — время начала пинга пользователя в секундах (отсчитывается от момента входа на хаб).
- bMAC — включить определение MAC-адреса (отключено по умолчанию).
- bSendUserIp — отсылать IP-адреса пользователей, то есть использовать ли характеристики UserIP и UserIP2.
- sMainPath — основная директория хаба.
- sPluginPath — директория подгрузки плагинов.
- sLogPath — директория логов.
- sLangPath — директория языковых настроек.
- sLang — текущая языковая настройка (имя файла без расширения).
- bUDPServer — включить активный поиск со стороны хаба (UDP-поиск).
- sUDPAddresses — адреса UDP-сервера (указываются через пробел). Порт по умолчанию 1209.
Основной бот
- sHubBot — ник основного бота хаба.
- sMainBotMyINFO — MyINFO основного бота, начиная с описания.
- sMainBotIP — IP основного бота.
- bRegMainBot — регистрировать основного бота.
- bMainBotKey — ключ у основного бота.
Логирование
- iMaxLevel — уровень логирования событий хаба (см. Система логирования RusHub)
Оптимизация
- bDelayedMyINFO — отсылать команды $MyINFO и $Quit с задержкой. Из-за отсутствия пока задержки входа рекомендуется установить этот параметр в 0.
- bDelayedLogin — записывать пользователя только после полной отсылки ему списка всех пользователей (на больших хабах список всех пользователей может не отправиться за один раз, поэтому для таких хабов рекомендуется включить эту опцию).
- bNicklistOnLogin — при входе на хаб отправлять список всех пользователей во время записи пользователя, а не по команде $GetNickList.
Защита и ограничения
- iUsersLimit — глобальное ограничение числа пользователей (по умолчанию -1 — проверка отключена).
- iFloodTime... и iFloodCount.. — ряд параметров защиты от флуда (количество iFloodCount за время iFloodTime (в секундах)). При обнаружении флуда вызывается событие OnFlood и, по умолчанию, отключение пользователя от хаба. Учёт событий ведётся индивидуально.
- iLenCmd... — ряд параметров, регулирующих максимальную длину соответствующей команды. При превышении — разъединение.
- iTimeoutAny — время на получение от пользователя какой-либо команды (таймаут соединения).
- iTimeoutLogon — максимальное время входа на хаб (в секундах).
- iMaxPassiveRes — количество возвращаемых хабом результатов при пассивном поиске.
- iStrSizeMax — максимальная длина команды, отправленной на хаб пользователем.
- iMaxNickLen — максимальная длина ника (проверяется только у пользователей с профилем -1).
- iMinNickLen — минимальная длина ника (проверяется только у пользователей с профилем -1).
- bCheckSRNick — проверять ник в команде $SR.
- bCheckRctmNick — проверять ник в команде RCTM.
- bCheckCTMIp — проверять IP в команде CTM.
- bCheckSearchIp — проверять IP в команде $Search.
- bDisableNoDCCmd — запретить использование команд, которые не относятся к NMDC-командам (не начинаются со знака $, за исключением команды пинга и команды чата).
Веб-сервер
- sWebAddresses — адреса веб-сервера (указываются через пробел). Через : можно указывать порт.
- iWebTimeout — таймаут соединения с веб-сервером (в сек.). Время бездействия, по истечении которого веб-сервер закрывает соединение с клиентом.
- iWebStrSizeMax — максимальный размер сообщения, отсылаемого клиентом.
- bWebServer — включить веб-сервер (по-умолчанию отключен).
Системные
Эти настройки не рекомендуется изменять.
- iTimerConnPeriod — период таймера соединения (в мсек.).
- iTimerServPeriod — период таймера сервера (в мсек.).
- iStepDelay — задержка на каждом цикле (в мсек.).
- iSysLoading — коэффициент загруженности системы.
Устаревшие
- sHubIP — прослушиваемый IP-адрес (0.0.0.0 — любой доступный на машине IP).
- Заменено на: sAddresses.
- iMainPort — основной прослушиваемый порт.
- Заменено на: sAddresses.
- sSubPorts — дополнительные порты хаба (нужно указывать через пробел).
- Заменено на: sAddresses.
- sWebServerIP — адрес веб-сервера.
- Заменено на: sWebAddresses.
- iWebServerPort — порт веб-сервера (по-умолчанию 81).
- Заменено на: sWebAddresses.
- iMaxErrLevel — уровень логирования ошибок хаба (от 0 до 2). По-умолчанию 2 — логировать все ошибки.
- Заменено на: iMaxLevel.
- iTimeoutGetpass — время на ввод пользователем пароля (в сек.).
- Удалено
- iTimeoutMyinfo — время на получение хабом команды $MyINFO (в сек.).
- Удалено
- iTimeoutLogin — максимальное время входа на хаб (в сек.).
- Заменено на: iTimeoutLogon.
- iTimeoutNick — время на получение хабом ника (в сек.).
- Удалено
- iTimeoutKey — время на получение хабом ключа (в сек.).
- Удалено
Текущее содержимое файла RusHub.xml
Настройки по умолчанию. Для случая самостоятельного конфигурирования хаба перед запуском.