Название: RusHub
Текущая версия: 2.3.10
Платформы: Windows (XP/Vista/7), GNU Linux, FreeBSD, Mac OS X, Solaris
Разрядность: 32, 64
Лицензия:
Основан на: verlihub
SourceForge:
GoogleCode:
Официальный сайт: http://rushub.org/
Полная поддержка и использование протокола NMDC.
Хаб поддерживает работу с ipv6.
Хаб поддерживает ADC протокол (тестирование).
Хаб постоянно совершенствуется и развивается.
rushub v 1.0.1
Added: Сделан поиск и некоторые проверки.
rushub v 1.0.2
Added: Сделаны основные настройки хаба. Они хранятся в файле.
Файлы настроек появляются после первого запуска хаба
rushub v 1.0.3 [beta]
Fixed: Исправлен баг с удалением пользователя с хаба, и добавлены следующие настройки:
sUnregNickPrefix - обязательный префикс для незарегистрированных
sNickChars - символы, которые разрешается использовать в нике
bHubTopicAfterMotd - посылать хаб-топик после MOTD
bCheckSRNick - проверять ник в $SR команде
iMinLimitSlotsRatio - минимально доступное отношение лимит/слоты
iMaxHubsSlotsRatio - максимально доступное отношение хабы/слоты
iMinDLLimit - минимально доступное ограничение скорости
iMaxSlots - максимальное число слотов
iMinSlots - минимальное число слотов
iMaxHubs - максимальное число хабов
iMinNickLen - минимальная длина ника
iMaxNickLen - максимальная длина ника
Для появления новых настроек нужно удалить старые файлы hub_config и lang_config
rushub v 1.0.4
Added: Включены логи действий хаба.
Added: Добавлена характеристика UserIP2.
rushub v 1.0.5
Fixed: Увеличено максимальное число сокетов.
rushub v 1.0.5c [beta]
Fixed: Исправлены падения, однако они ещё не исключены.
rushub v 2.0.0
Added: Реализован lua плагин (минимальный для работы lua функционал реализован). По средствам lua можно реализовать: регистрацию, баны и тд.
Для подключения lua плагина кладём файл lua.dll в папку plugins.
Lua библиотеки сторонних разработчиков (luasql и тд.) должны подключаться без каких либо перекомпиляций (ограничение только на формат COFF, то есть от птохи библиотеки не подходят, нужно качать отсюда:
Работа продолжается...
Простенький скрипт приветствия:
hello.lua ( 474 байт )
: 96
Простенькая регистрация:
registration.lua ( 2.78 килобайт )
: 107
rushub v 2.0.2
Fixed: Устранены причины падения при ошибках в скриптах и в некоторых api функция.
Параметр iMaxLevel - уровень лога событий. Для тестирования: 6 (логировать всё)
rushub v 2.0.3
lua plugin v 1.2
Изменения коснулись не только плагина, но и хаба (это для того, чтобы исправить некоторые баги).
Added: вместо функций Core.SendToUID и Core.SendToNick теперь функция Core.SendToUser(UID/sToNick, sData, sNick, sFrom)
Fixed: исправлен баг вылета в функции Core.GetScript при обращении к отключенному скрипту.
Fixed: исправлен баг, который не позволял создать лог ошибок скриптов, в случае, если в названии директории присутствовала кириллица.
Fixed: исправлен баг функции Core.Disconnect для случая разъединения пользователя по нику.
lua plugin v 1.3
Added: Функции Core.GetGVal и Core.SetGVal теперь позволяют оперировать с таблицами и с lightuserdata данными.
lua plugin v 1.4
Fixed: Исправлена несколько некорректная работа функции Core.SetGVal с таблицами.
rushub v 2.0.4
lua plugin v 1.5
Обновление хаба было связано с расширением возможностей установки ключика операторов в любое время, а не только при входе на хаб.
Список изменений:
Added: Добавлена функция Core.GetUpTime()
Added: Добавлена функция Core.GetHubInfo() информация о хабе и о плагине.
Added: Добавлена новая функция Core.SendToNicks(tNicks, sData, sNick, sFrom). Функция отправляет сообщение всем никам, которые находятся в таблице tNicks.
Added: Добавлена функция Core.DisconnectIP(sIP). Разъединяет всех пользователей с указанным IP.
Fixed: Исправлена функция Core.SetUser. Теперь пользователь может быть когда угодно занесён и извлечён из списка операторов, а не только при входе на хаб. Ставим/убираем ключик одним движением руки. Код написан оптимально и исключает повторных действий при вызове.
Fixed: Исправлен баг в функции Core.GetUsers
Fixed: Модифицирована функция Core.GetUsers(sIP, iByte).
Core.GetUsers() - таблица с UID'ми всех пользователей хаба
Core.GetUsers(iByte) - таблица с таблицами пользователей, которые содержат данные битов параметра iByte
Core.GetUsers(sIP) - таблица с UID'ми пользователей с указанным IP
Core.GetUsers(sIP, iByte) - таблица с таблицами пользователей с указанным IP, которые содержат данные битов параметра iByte
rushub v 2.0.5
lua plugin v 1.6
Изменения:
Fixed: Теперь в настройку sHubIP можно записывать не только ip адрес, но и хост.
Fixed: В целях оптимизации были убраны lua функции Core.GetMainDir(), Core.GetScriptsDir() и Core.GetHubInfo(). Вместо них теперь поля: Core.sMainDir, Core.sScriptsDir, Core.sHubVersion и Core.sLuaPluginVersion соответственно.
В связи с этим, некоторые скрипты откажутся работать!
Added: Добавлены lua функции: Core.GetConfig(sName), Core.SetConfig(sName, sValue), Core.GetLang(sName), Core.SetLang(sName, sValue).
Функции позволяют управлять конфигурацией и языковыми настройками хаба. Однако, для функции Core.SetConfig исключения составляют настройки: sHubIP, iMainPort, sSubPorts.
При изменении настройки sHubName или sTopic отправляется соответствующая команда. После изменения, настройки сохраняются.
rushub v 2.0.6
lua plugin v 1.7
Изменения:
Added: Добавлена настройка установки локали. Корректное восприятие русских букв или букв других языков (в зависимости от локали). Теперь lua функции string.lower и string.upper корректно работают с русскими буквами. Если на хабе есть пользователь Вася, то с ником ВАСЯ уже нельзя войти на хаб.
Added: Добавлена функции сокрытия ника из списка пользователей (12-ый бит функции Core.GetUser и функция Core.SetUser(UID, 5, bool)).
Added: Добавлено событие OnKick(UID, sData)
Added: Добавлено событие OnOpForceMove(UID, sData)
Added: Добавлено событие OnGetINFO(UID, sData)
rushub v 2.0.7
Fixed: Пофиксил небольшой баг на хабе перехода в скрытый режим. Обнаружил при написании скрипта hideme
Выложил исходники хаба и lua плагина
Для сборки хаба используем vs2005 или vs2008. Отвечу на все интересующие вопросы по поводу сборки хаба
rushub v 2.0.8
lua plugin v 1.8
Изменения:
Fixed: Исправлен баг с выскакиванием части команды при регистрации в оп листе (спасибо fixx-у за обнаружение бага)
Fixed: Исправлены мелкие баги с логированием некоторых событий как ошибок.
Fixed: Исправлены lua api функции Core.RestartScripts, Core.RestartScript, Core.StopScript, Core.StartScript. Теперь функции Core.GetScripts и Core.GetScript нормально отображают скрипты, даже если перезагружается текущий скрипт или все скрипты.
Fixed: Исправлены баги в функциях перезагрузки и остановки скриптов для случая удалённого скрипта (спасибо fixx-у за обнаружение бага).
Added: Добавлена полная поддержка характеристики UserIP2.
Added: Добавлен 13-й бит для функции Core.GetUser и 6-ой тип для функции Core.SetUser.
lua plugin v 1.9
Изменения:
Added: Добавлена api функция Core.Call(sScriptName, sFunc, ...), при помощи которой можно вызывать функции других скриптов.
Параметры функции и возвращаемые значения функции могут быть только следующих типов: string, number, boolean, table и userlightdata.
rushub v 2.0.9
lua plugin v 1.10
Изменения:
Added: Добавлена lua функция отправки данных профилю/профилям: Core.SendToProfile(iProfile/tProfiles, sData, sNick, sFrom). Если первый аргумент - число, то сообщение отправляется профилю, если первый аргумент таблица, то отправляется профилям, указанным в этой таблице.
Пример:
lua plugin v 1.11
Изменения:
Fixed: Исправлены баг в работе функции Core.GetGVal. (Баг появился из-за модернизации кода в плагине v 1.10)
Fixed: Исправлен баг в работе функции Core.RestartScripts. (спасибо fixx-у за очередной репорт).
Незапланированные версии хаба и lua плагина с фиксами в функциях Core.GetConfig(sName) и Core.GetLang(sName)
rushub v 2.1.1
lua plugin v 1.12
В результате глобальных изменений могут неправильно работать некоторые функции, хотя я думаю что будет всё ок.
Основные изменения:
Added: Установленные типы защиты:
rushub v 2.1.2
lua plugin v 1.13
Основные изменения:
Fixed: Исправлен баг в работе события OnScriptError.
Fixed: Исправлен баг, который не позволял в некоторых случаях при медленной скорости соединения получить полностью команду.
Fixed: Исправлен баг в изменении команды события.
Added: Добавлена функция Core.SendToIP(sIP, sData, sNick, sFrom, iProfile/tProfiles) отсылки сообщения ip адресу.
Added: Добавлена функция Core.SendToAllExceptIps(tExcept, sData, sNick, sFrom) отсылки сообщения всем, кроме ip адресов таблицы tExcept.
Added: Добавлена функция Core.RegBot(sNick, bKey, sMyINFO, sIP) регистрации бота на хабе (sMyINFO - это не полное MyINFO, а только всё то что после ника).
Added: Добавлена функция Core.UnregBot(sNick) удаления регистрации бота.
Added: Модифицирована функция Core.DisconnectIP(sIP, iProfile/tProfiles). Добавлен необязательный параметр.
rushub v 2.1.3
lua plugin v 1.14
Fixed: Исправлены некоторые достаточно серьёзные ошибки старых версий.
Added: Добавлен веб-сервер (по умолчанию отключен).
Веб-сервер предназначен только для использования его в Lua.
Некоторые новые настройки:
bWebServer - включить веб-сервер (по умолчанию отключен).
sWebServerIP - адрес веб-сервера.
iWebServerPort - порт веб-сервера (по умолчанию 81).
iWebTimeout - тайм-аут соединения с веб сервером (в сек.). Время бездействия, по истечению которого веб-сервер закрывает соединение с клиентом.
iWebStrSizeMax - максимальный размер сообщения, которое может отослать на сервер клиент.
Новое событие: OnWebData(WebID, sData)
Новая api функция: Core.SendToWeb(WebID, sData)
Пример скрипта для проверки работы веб сервера:
rushub v 2.1.4
lua plugin v 1.15
Fixed: Удалена функция Core.SendToWeb. Вместо неё для отсылки данных веб пользователю нужно использовать функцию Core.SendToUser(WebID, sData).
Added: Для получения ip адреса и других параметров веб-пользователя можно использовать ту же функцию, что и для обычного dc-пользователя: Core.GetUser(WebID, iByte).
Свожу все функции к единому интерфейсу.
rushub v 2.1.5
lua plugin v 1.16
Основные изменения:
Added: Добавлено новое событие OnScriptStart(sScriptName), вызываемое при запуске скрипта sScriptName.
Added: Добавлено новое событие OnScriptStop(sScriptName), вызываемое при остановке скрипта sScriptName.
Fixed: Исправлена работа веб-сервера. Предотвращена двойная отсылка.
Fixed: Исправлена ошибка отсутствия тела сообщения в POST запросах. Не заморачиваясь насчёт парсера, оставлено это дело на плечах Lua. Если клиентом было отправлено тело запроса, то оно всегда прибавляется к заголовку, даже в случае, например GET запроса, а не POST запроса, поэтому это должен отфильтровывать парсер в Lua, дабы придерживаться http протокола и не позволять отправлять левые запросы.
Fixed: WebID полностью совмещён с UID, и к нему применимы все функции, применимые к UID. Например, отключение веб-пользователя Core.Disconnect(UID/WebID). Хотя специфические функции типа GetUser могут возвращать не все нужные результаты из-за их отсутствия для данного соединения, или функция DisconnectIP не может разъединить веб-пользователя с указанным ip.
rushub v 2.1.6
lua plugin v 1.17
Fixed: Исправлена ошибка, связанная с отключениями за частую отсылку пустых команд, которые прикреплены к другим командам, вместо отключения только за частые пинги.
Fixed: Исправлен баг с падением хаба после входа компьютера из спящего режима.
Fixed: Исправлен баг в событии OnWebData (перепутанные возвращаемые значения события)
Fixed: Для файлов настроек установлены абсолютные пути вместо относительных.
Added: В таблице Core добавлено новое поле Core.sSystem, хранящее название и версию системы, на которой работает сервер.
Added: Модифицированы возвращаемые значения событий:
1) return false, return nil, return 0 - безусловное выполнение события
2) return true, return 1 - блокировка события
3) return 2 - выполнеие события и блокировка после обхода всех скриптов
4) return 3 - выполнение публичного события для всех соединений, кроме соединения, породившего это событие
5) return 4 - выполнение публичного события для всех соединений, кроме соединений, имеющих такой же ip адрес, что и соединение, породившее это событие
Added: К переменной UID теперь привязана метатаблица, поэтому отпадает нужда в функциях Core.GetUser и Core.SetUser, но эти функции сохранены для совместимости и для определения пользователя по нику.
Added: Добавлена сборка под x64 системы.
Пока что не добавлена встроенная возможность добавления хаба в список сервисов windows (в процессе тестирования).
rushub v 2.1.7
Fixed: Исправлен баг с падением хаба при загрузке заведомо "левого" плагина.
lua plugin v 1.18
Added: В событие OnAny добавлен третьим аргументом тип команды: OnAny(UID, sData, iType).
Существующие на данный момент типы:
lua plugin v 1.19
Fixed: Исправлено падение хаба при циклическом вызове функций GetGVal/SetGVal (reported by Phazeus).
Fixed: Немного оптимизирована работа lua.
lua plugin v 1.20
Fixed: Исправлен баг в очередях задач, который приводил к падению хаба.
Работа по оптимизации пока не производилась (возможно в следующей версии проведу).
rushub v 2.1.8
lua plugin v 1.21
Added: Сделан парсинг MyINFO.
Added: Добавлен параметр UID.sSupports.
Fixed: Убран автозапуск скриптов.
Fixed: Исправен баг функции os.date путём копирования файла loslib.c из lua 5.2 (там этот баг исправлен).
Fixed: Сделана установка MyINFO до события OnMyINFO, а не после как было раньше.
Fixed: Исправлено падение при пустом описании в MyINFO.
Fixed: Исправлено падение при помещении в папку plugins некорректного плагина.
Fixed: Добавлена проверка корректности пользователя в функцию Core.SendToUser.
Парсинг MyINFO позволяет получать следующие параметры (перечисляю все допустимые).
Важное замечание! Если пользователь ещё до конца не вошёл на хаб, то многие из этих параметров могут быть равны nil.
В частности, если, например, мы в событии OnValidateNick попытаемся получить UID.iShare, или UID.sMyINFO, или какой-либо другой параметр MyINFO строки, то мы получим nil, так как на этой стадии входа ещё не определён параметр sMyINFO, он будет определён на одной из последующих стадий (см. описание протокола NMDC и последовательность входа на хаб).
rushub v 2.1.9
lua plugin v 1.22
Fixed: Исправлен баг в событии OnUserDisconnected, который приводил к краху после попытки получить параметр пользователя, например ник.
Fixed: Исправлены значения по умолчанию для отсутствующих параметров MyINFO строки. Теперь значение по умолчанию равно nil.
Примерчик вполне валидной MyINFO строки
rushub v 2.2.0
lua plugin v 1.23
Fixed: Исправлен баг в работе таймеров.
Fixed: Переделаны алгоритмы работы таймеров и списков задач.
Fixed: Установлено ограничение: максимум 100 таймеров / скрипт. При превышении ограничения скрипт отключается с добавлением ошибки в лог ошибок.
Added: Функция AddTimer теперь возвращает количество зарегистрированных таймеров с указанными id (то есть добавлен контроль за числом таймеров в скрипте) - это если всё ок, если ошибка, то как и раньше nil и сообщение об ошибке.
Added: Функция DelTimer теперь возвращает количество удалённых по id таймеров.
Added: Оптимизированы некоторые процессы (в частности парсинг MyINFO и получение параметра объекта UID).
rushub v 2.2.1
lua plugin v 1.24
Fixed: Исправлена ошибка в таймерах.
Fixed: Подкорректированы исходники под сборку на линуксе
rushub v 2.2.2
Fixed: Исправлена ошибка в отправке данных при блокировке.
Added: Добавлен кэш при массовой рассылке.
rushub v 2.2.3
Fixed: Исправлен баг (падение хаба), который возникал при дисконнекте пользователя, который находился в процессе получения списока пользователей хаба.
Fixed: Исправлена задержка в отправке команд, которая составляла 0.1 - 1 сек.
rushub v 2.2.4
lua plugin v 1.25
Added: Добавлен параметр пользователя: время входа (iEnterTime - время отсылки клиентом на хаб команды $Key)
Added: Добавлен отдельный объект для получения настроек в глобальном окружении Lua: Config. Например, имя бота можно теперь получить так: Config.sHubBot
Fixed: Исправлено падение при удалении папки scripts в Lua плагине
Fixed: Перепроверены все возможные "массовые" события
Fixed: Поправлена регистрация бота с недопустимыми символами в нике.
Fixed: Подправлен файл luaconf.h в Lua плагине для unix. Добавлена возможность поиска модулей в папке libs
Fixed: Поправлен баг в событии OnValidateNick (возвращаемое значение)
Fixed: Оптимизирована функция изменения размера хеш-таблицы (AutoResize)
Fixed: Подправлены исходники под сборку на vs2010
Fixed: Оптимизированы некоторые функции хаба.
В целях ускорения работы в настройках нужно поставить параметр iStepDelay = 0. Если хаб не нагружен, то обнуление данного параметра может вызвать некоторую нагрузку на процессор.
rushub v 2.2.5
Added: Добавлены миллисекунды в логе
Fixed: Исправлен баг в счётчике закрытых соединений, который сильно влиял на производительность
Fixed: Проведена оптимизация основного цикла
rushub v 2.2.6
lua plugin v 1.26
Added: Сделан poll для линукса
Added: Сделана настройка включения определения mac адреса (по умолчанию отключено)
Added: Добавлено событие OnConfigChange, которое выполняется при изменении какой-либо настройки хаба. Это даст возможность скриптописателю хранить настройки в локальных переменных, а при изменении настроек перезаписывать данные в переменных, а не дергать каждый раз функции.
Added: Добавлена lua api функцию Core.SetHubState(iNum) - установка состояния хаба. iNum = nil или iNum = 0 - остановка хаба. iNum = 1 - рестарт хаба. Остальные значения заразервированы на будущее
Fixed: Убрано логирование и остановка хаба при ошибке в Choose
Fixed: Доработано автоматическое действие при смене настроек: sHubBot и bRegMainBot
rushub v 2.2.7
Added: Сделан таймерный кэш для массовой рассылки (оптимизация обходов списка, актуальная на больших хабах).
Added: Сделан параметр настроек "глобальное ограничение общего числа пользователей".
Added: Наконец-то добавлена возможность установки сервиса/демона (проблема с установкой директории для конфигурационных файлов в windows решена). Для показа помощи по доступным командам вводим в консоли: rushub.exe -h (набор команд для window и для linux несколько различается).
Added: Добавлено логирование изменения уровня нагрузки на хаб.
Fixed: Изменена кодировка по умолчанию для файла настроек с windows-1252 на windows-1251.
Fixed: Оптимизирована аллокация при конкатенации протокольных команд.
Fixed: Закрыта незначительная утечка в памяти (проявлялась при удалении бота).
rushub v 2.2.8
lua plugin v 1.27
Added: Сделан пинг при проверке занятого ника
Fixed: Устранен баг в функции Core.RegBot (появился в версии 2.2.7 из-за добавления параметров логирования)
Fixed: Поправлен luaconf.h (не работал луа плагин в линуксе из-за некорректности этого файла, если сборка была с этим (модифицированным) файлом)
Fixed: Поправлен путь к папке libs (смена корневой директории для линукса)
Fixed: Поправлен путь для файла luaerr.log в lua плагине (сделать абсолютный путь вместо относительного)
rushub v 2.2.9
lua plugin v 1.28
Added: Сделан параметр настроек для дополнительных ip:port. Вместо настроек: sHubIP, iMainPort и sSubPorts теперь одна настройка sAddresses, в которой можно через пробел писать ip адреса (или хост-адреса) и через двоеточие различные порты. Если порт не указан явно, то берётся порт по умолчанию 411. Пример:
rushub v 2.2.10
lua plugin v 1.29
Added: Добавлена возможность логирования в syslog.
Added: Добавлены в пинг стандартные функции антифлуда.
Added: Добавлена шара в приветственное сообщение.
Added: Введены причины дисконнекта.
Added: Сделана возможность показа ip (хоста) сервера, к которому коннектился пользователь (UID.sIPConn).
Added: Добавлена функция Core.Redirect(UID/sNick, sAddress[, sReason]). Причину указывать не обязательно.
Added: Дабавлен параметр юзера UID.bKick. Установка этого параметра в true даёт право ОПератору кикать других юзеров
Added: Дабавлен параметр юзера UID.bRedirect. Установка этого параметра в true даёт право ОПератору перенаправлять других юзеров
Fixed: Исправлен баг удаления открытых соединений при использовании poll в линуксе.
Fixed: Починен входящий пинг.
Fixed: Оптимизирована работа парсера.
Fixed: Оптимизировано приветственное сообщение, сделан его кеш и убраны секунды.
Fixed: Загнан интерфейсы для плагинов в один файл для удобства использования сторонними разработчиками.
P.S. В случае обновления хаба рекомендуется удалить старый файл lang.xml для того чтобы изменилось приветственное сообщение
rushub v 2.2.11
lua plugin v 1.30
Added: Добавлено логирование в веб сервере
Added: Некоторый рефакторинг.
Added: Сделана папка под логи
Fixed: Починено взаимодействие между хабом и плагинами (передача векторов между хабом и плагинами)
rushub v 2.2.12
lua plugin v 1.31
Fixed: Починен параметр bHide (сломался после введения общего кэша).
Fixed: Поправлены права на создание папок в линуксе.
Fixed: Исправлены пути lua модулей для линукса.
Fixed: Починены метатаблицы объектов Config и UID.
Added: Введено дополнительное логирование и отлов исключений в windows
rushub v 2.2.13
lua plugin v 1.32
Added: В windows добавлен отлов всех исключений с трейсом. Теперь после "падения хаба" (хаб теперь не падает, а программа просто закрывается) создаётся файл exception.txt, который содержит информацию о проблеме. Для полноценной информации нужно чтобы файлы с символами rushub.pdb и lua.pdb лежали рядом с rushub.exe. Возможно этого не всегда будет достаточно, и могут потребоваться символы системных либ, однако хотя бы так.
Fixed: Исправлен баг в метатаблице UID (рекурсивный вызов).
rushub v 2.2.14
lua plugin v 1.33
Added: Реализован стектрейс lua-ошибок: _TRACEBACK = debug.traceback.
Fixed: Устранен баг с уборкой мусора от UID.
Fixed: Устранен баг в функции закрытия соединения (poll функционал в select случае).
Fixed: Объединены функции Core.SendToNicks и Core.SendToUser (функция Core.SendToNicks осталась, но считается устаревшей)
Fixed: Усовершенствована функция Core.GetUsers. Разделились возвращаемые пользователи на группы: все и все вошедшие (Core.GetUsers(bAll), Core.GetUsers(sIP, bAll)).
Core.GetUsers() - вернёт только уже полностью вошедшие на хаб пользователей
Core.GetUsers(true) - вернёт всех пользователей
Аналогично и для случая возврата по ip: Core.GetUsers(sIP) и Core.GetUsers(sIP, true)
Fixed: Изменена кодировка в файле scripts.xml с windows-1252 на windows-1251.
Fixed: Подправлен путь до файла lua.hpp (lua/lua.hpp).
Fixed: Файл luaerr.log переменён в папку logs.
rushub v 2.3.0
lua plugin v 2.0
Added: Добавлено определение версии в системах UNIX
Added: Добавлен показ в логе загружаемого плагина (имя и версия)
Added: Добавлен терминальный сигнал SIGTSTP (Ctrl-Z)
Added: Реализован активный поиск со стороны хаба (udp поиск).
Added: Полноценная поддержка команды UserIP (для возможности использования клиент должен отослать в $Support характеристику UserIP или UserIP2)
Added: Добавлены настройки:
sMainPath - основная директория
sPluginPath - директория подгрузки плагинов
sLogPath - директория логов
sLangPath - директория языковых настроек
sLang - текущая языковая настройка (имя файла без расширения)
Файл конфигурации задаётся в настройке -c командной строки
rushub v 2.3.1
lua plugin v 2.1
Added: Сборка win64
Added: Введено юнит-тестирование хаба
Fixed: Устранён баг в lua плагине (удаление из списка)
Fixed: Проверено/устранено подтекание памяти
Fixed: Исправлен баг в функции получения mac-адреса
Fixed: Проведён рефакторинг и оптимизация
rushub v 2.3.2
lua plugin v 2.2
Fixed: Устранен баг в списке удаляемых таймеров
Fixed: Убран автозапуск хаба непосредственно после установки сервиса
Fixed: Исправлен lang файл по умолчанию
Fixed: Устранен баг циклического вызова при отсутствии файла лога
Fixed: Устранен баг в вызове параметров UID
Fixed: Устранен баг в вызове события OnScriptError
rushub v 2.3.3
lua plugin v 2.3
Added: Поддержка ipv6. Пример настройки одновременного прослушивания ipv4 и ipv6 адресов:
rushub v 2.3.4
lua plugin v 2.4
Added: Добавлена задержка для процесса остановки windows службы
Added: В файл RusHub.xml добавлены относительные (относительно него) пути, которые при загрузке заменяются на абсолютные, а при сохранении настроек в файл - обратно в относительные
Fixed: Устранен баг в команде $UserIP
Fixed: Устранен баг в lua api функции SendToIP
Fixed: Устранен баг в установке ipv6 адреса без порта
Fixed: Устранен баг в тримировании пустой строки
Fixed: Изменена логика работы события OnExit при остановке хаба (теперь событие отрабатывает до дисконнекта всех пользователей хаба)
Fixed: Проведено профилирование и оптимизация ядра хаба
Fixed: Немного снижено потребление памяти
rushub v 2.3.5
lua plugin v 2.5
Fixed: Оптимизация запросов на соединение. Одновременный приём до 64 соединений за цикл (до этого было 1 соединение за цикл).
Fixed: Проведен стресс-тест с последующей оптимизацией, что позволяет отныне хабу держать 10k+ соединений.
Fixed: Устранён баг в команде $SR UDP. Отсутствовала настройка длины команды.
Fixed: Оптимизированы события в Lua плагине. Для каждого события создан свой список скриптов. Таким образом, при вызове события не происходит никаких лишних обходов (обходятся только скрипты, в которых есть функция того или иного события).
rushub v 2.3.6
Added: Добавлена частичная поддержка ADC протокола (вход/выход и чат).
Для переключения хаба в ADC режим работы, нужно установить настройку bAdcOn.
Fixed: Устранена проблема с поиском пользователей в 64 битной системе.
Fixed: Устранен баг с установкой MyINFO из скрипта.
rushub v 2.3.7
lua plugin v 2.6
Added: Добавлено использование системы сборки GNU Autotools.
Added: Добавлена настройка iMaxSendSize, отвечающая за максимальный размер буфера отсылки (по умолчанию 2818047). При превышении этого размера пользователь отключается от хаба.
Fixed: Устранена повторная отсылка команды $Hello.
Fixed: Устранена уязвимость, при помощи которой можно было выкинуть с хаба зарегистрированного пользователя.
Fixed: Частичный рефакторинг кода.
rushub v 2.3.8
lua plugin v 2.7
Added: Добавлена возможность установки параметров MyINFO.
Текущие параметры:
sDesc - описание пользователя (строка);
sTag - тэг пользователя (строка, только чтение);
sClientName - клиент пользователя (строка);
sClientVersion - версия клиента пользователя (строка);
sMode - режим пользователя (строка);
iUsHubs - число хабов, на которых пользовател является незареистрированным (число);
iRegHubs - число хабов, на которых пользовател является зареистрированным (число);
iOpHubs - число хабов, на которых пользовател является оператором (число);
iSlots - число слотов у пользователя (число);
iLimit - ограничитель L (число);
iOpen - ограничитель O (число);
iBandwidth - ограничитель B (число);
iDownload - ограничитель D (число);
sFraction - ограничитель F (строка вида x/y);
sConn - тип соединения пользователя (строка);
iByte - магический байт (число);
sEmail - email адрес пользователя (строка);
iShare - шара пользователя (число);
sSupports - поддреживаемые пользователем характеристики (строка);
sVersion - версия протокола (строка);
iProfile - порофиль ользователя (число, не удаляемо);
sIP - IP адрес пользователя (строка, только чтение);
sIPConn - IP адрес, по которому пользователь соединялся (строка, только чтение);
iPort - порт пользователя (число, только чтение);
iPortConn - порт, по которому пользователь соединялся (число, только чтение);
sMacAddress - mac адрес пользователя (строка, только чтение);
iEnterTime - время входа на хаб (число, только чтение);
bKick - право на кик пользователей (логическое);
bRedirect - право на перенаправление пользователей (логическое);
bHide - скрыть пользователя (логическое);
bInUserList - пользователь с списке (логическое, только чтение);
bInIpList - пользователю отсылаются IP адреса (логическое);
bInOpList - у пользователя есть ключик (логическое).
FATAL - критическая ошибка (уровень 0);
ERROR - ошибка (уровень 1);
WARN - предупреждение (уровень 2);
INFO - информационное сообщение (уровень 3);
DEBUG - отладочное сообщение (уровень 4);
TRACE - трейс сообщение (уровень 5).
rushub v 2.3.9
lua plugin v 2.8
Added: Добавлен показ сообщения при первом отключении после частых переподключений.
Added: Добавлен языковый файл English.xml.example.
Added: Добавлен единственный таймер на длительность входа и соответствующая настройка: iTimeoutLogon.
Fixed: Модифицирован формат времени в логах.
Fixed: Исправлена ошибка, возникающая при ipv6 коннекте.
Fixed: Исправлен баг в отключениях при антифлуде (несоответствие с настройками).
Fixed: Обновлен tinyxml до версии 2.6.2.
Fixed: Удалены таймеры, а также соответствующие им настройки: iTimeoutKey, iTimeoutNick, iTimeoutLogin, iTimeoutMyinfo. iTimeoutGetpass.
Fixed: Исправлен баг в проверке ника. Теперь если входит юзер с профилем -1, а на хабе пользователь с таким ником уже есть, то входящий отключается. Если же входит юзер с профилем не равным -1, то отключается тот, кто находится на хабе с его ником (защита для зарегистрированных от обрыва соединений).
rushub v 2.3.10
lua plugin v 2.9
Fixed: Обновлен Zlib 1.2.7.
Fixed: Обновлен Lua 5.1.5.
Fixed: Устранены некоторые незначительные баги, утечки, глюки.
Fixed: Рефакторинг кода и частичная поддержка стандарта ISO C++.