PtokaX 0.5.0.1 Mod, Модификация PtokaX от alex82 |
Здравствуйте, гость ( Вход | Регистрация )
PtokaX 0.5.0.1 Mod, Модификация PtokaX от alex82 |
4.3.2013, 17:39
Сообщение
#81
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
Поскольку исходники PtokaX нынче доступны в полном объеме (включая проекты Visual Studio), у многих анонимусов руки так и чешутся запилить форк сего замечательного хабсофта. Я оказался в их числе PtokaX 0.5.0.1 Mod Версия: 0.5.0.1 Модификация: mod 11 Операционная система: Windows, Linux Описание: Решил выложить на всеобщее обозрение свою модификацию PtokaX под кодовым названием PtokaX Mod. Список изменений относительно оригинальной версии выглядит так: mod 11 Добавлено: Расширение протокола CTM2HUB. Добавлено: Задержка перед отправкой $Lock (которая якобы помогает при DDoS-атаках). mod 10 Исправлено: Неверные названия некоторых стран, возвращаемые функцией IP2Country.GetCountryName. Добавлено: Возможность получения названия страны по коду с помощью функции IP2Country.GetCountryName. Исправлено: Предупреждения при компиляции версии, хранящей пароли в зашифрованном виде. Исправлено: Компиляция библиотеки SHA-2 под новыми версиями gcc. mod 9 Исправлено: Профиль юзера устанавливался до успешной проверки пароля, что представляло собой потенциальную уязвимость (перенесено из тестовой версии). Исправлено: Неполный IP-адрес отображался как некорректный в тех случаях, когда юзер, использующий IPv6, отправлял адрес IPv4 в команде (перенесено из тестовой версии несмотря на то, что суть бага мне не совсем ясна). Исправлено: Права доступа для файлов и папок в *nix (перенесено из тестовой версии). Исправлено: Возможные падения GUI-версии хаба при закрытии окон (перенесено из тестовой версии). Исправлено: Неверные размеры массивов в коде редактора скриптов (перенесено из тестовой версии). Исправлено: Невозможность использования в командах адресов IPv6, чья длина превышает 15 символов (перенесено из тестовой версии). Исправлено: Ошибки в командах !rangeban и !rangeunban. Добавлено: Автозапуск скрипта locale.lua. mod 8 Изменено: Отныне юзеры с одинаковыми профилями не смогут банить друг друга. Данное изменение не относится к юзерам с профилем 0 (Master): эти засранцы по-прежнему могут банить кого угодно. Добавлено: Ограничение продолжительности временных банов. В GUI данная опция находится на вкладке "Настройки банов". ID для SetMan.(G/S)etNumber - 114. Добавлено: Опция, позволяющая менять интервал между служебными циклами. Уменьшение интервала снижает скорость отклика хаба на действия юзеров, однако это также приводит к некоторому повышению нагрузки на процессор. В GUI данная опция находится на вкладке "Больше настроек". ID для SetMan.(G/S)etNumber - 115. Исправлено: Ошибка в linux-версии хаба, приводившая к некорректной работе таймеров с интервалом, не кратным одной секунде. Исправлено: Окончательное решение вопроса локалей. Теперь локаль устанавливается изнутри Ptokax. В связи с этим былы добавлены 2 параметра настроек. ID для SetMan.(G/S)etString - 37 (Windows) и 38 (NIX). В GUI доступна только локаль Windows. Поскольку в Windows локаль устанавливается только для текущего модуля (т.е. выполняем setlocale() в PtokaX.exe - локаль меняется только для PtokaX.exe, выполняем setlocale() в lua.dll - локаль меняется только для lua.dll), необходимость в скрипте locale.lua никуда не делась. Добавлено: Установка автозапуска хаба при выполнении make install. Добавлено: Цели uninstall, on и off в makefile. Цели make on и make off позволяют включить и отключить автозагрузку хаба соответственно. Цель make uninstall используется для удаления файлов хаба (при этом удаляются только исполняемые файлы и ссылки автозапуска, рабочую директорию необходимо удалить вручную). mod 7 Исправлено: Проверка прав доступа при создании банов с помощью команды $Kick. mod 6 Добавлено: Команда !reloadcountry, позволяющая перезагрузить базы IP-To-Country. Команда доступна юзерам с профилем 0. Добавлено: Функция Core.BotMyINFO(sBotNick, sBotMyINFO), позволяющая изменить $MyINFO бота, зарегистрированного из скрипта. Полная проверка синтаксиса $MyINFO не производится. Исправлено: Максимальное значение параметра "Ограничение входа юзеров" в GUI. Удалено: Бессмысленная опция "Отключать клиенты, отправляющие $Supports с ошибками". При ближайшем рассмотрении выяснилось, что "ошибками" считается лишний пробел в конце команды. Код, отвечающий за определение этой "ошибки" сохранен, поскольку он влияет на обработку магического байта, и в этом, возможно, есть некий смысл. Добавлено: Опция, позволяющая отключить обработку магического байта. При включении заработает отображение пола в GreylinkDC, но могут появиться ошибки коммуникации между разными клиентами, поскольку при использование старшей половины байта каждый разработчик DC-клиента извращался как мог. Исправлено: Функция os.clock под Linux. Теперь она работает так же, как под Windows - возвращает время с момента запуска хаба с точностью до миллисекунды. По умолчанию данный костыль включен, отключается в stdinc.h. Изменено: При корректной остановке хаба всем юзерам рассылается сообщение о перезапуске. Раньше это сообщение отправлялось лишь при выполнении команды !restart. Изменено: Время последнего входа зарегистрированного юзера обновляется не только при его входе на хаб, но и при выходе. Добавлено: Переменная iOnlineTime, отображающее время, проведенное зарегистрированным юзером на хабе (в секундах). Переменная обновляется при выходе юзера, а также при вызове RegMan.UpdateTimes() (см. ниже). Добавлено: Функция RegMan.UpdateTimes(), обновляющая значения iLastEnter и iOnlineTime в профилях зарегистрированных юзеров, находящихся на хабе. iOnlineTime вычисляется с учетом текущего времени и значения iLastEnter, а iLastEnter устанавливается равным текущему времени. Добавлено: Функция RegMan.SetTimes(sNick, iRegDate, iLastEnter, iOnlineTime), позволяющая вручную установить время регистрации, время последнего входа и время онлайн для указанного зарегистрированного юзера. Перенесены некоторые изменения из PtokaX 0.5.0.2 mod 5 Исправлено: Падение хаба при загрузке банов. (перенесено из тестовой версии) Исправлено: Корректное завершение работы при помощи os.exit(). (перенесено из тестовой версии) Добавлено: В makefile добавлена рекурсия для компиляции tinyxml. Теперь его не нужно собирать отдельно перед сборкой PtokaX (перенесено из тестовой версии) Исправлено: Ошибка в скрипте init.d Исправлено: Ошибки в русском языковом файле. Его можно пилить вечно, и все равно будет кривой :( mod 4 Исправлено: Ошибки в функции Core.HideUserKey Исправлено: Несколько ошибок в настройках прав доступа для незарегистрированных. Испорчено: Опция "Не проверять IP в командах DC" в профиле незарегистрированного юзера. Теперь она игнорируется, и, как следствие, IP всегда проверяется. Это не баг, это фича. Добавлено: Костыль, исправляющий регистрочувствительность кириллических ников в некоторых версиях Linux. По умолчанию отключен, включается в stdinc.h Исправлено: Команда restart скрипта init.d mod 3 Добавлено: Обработка ошибок при загрузке XML-файлов. Если в одном из файлов есть синтаксическая ошибка, программа сообщает об этом и аварийно завершает работу вместо того, чтобы втихую загрузить значения по умолчанию. Исправлено: Кодировка, указанная в заголовках XML-файлов. Исправлено: Если хаб не смог запуститься (например, по причине занятости всех указанных портов), настройки будут сохранены, что даст возможность исправить их. Добавлено: Функция Core.HideUserKey(tUser, bHide), позволяющая скрыть ключ юзера. Исправлено: Добавление/удаление ключей при изменении зарегистрированных юзеров. Исправлено: Несколько ошибок в настройках прав доступа для незарегистрированных. Добавлено: Функция Core.IsolateUser(tUser, bState), позволяющая изолировать юзера от главного чата. Изолированный юзер не видит сообщений других юзеров, а они, соответственно, не видят сообщения изолированного юзера. Добавлено: Функция Core.SendToNonisolated(sData), отправляющая данные всем неизолированным юзерам (см. предыдущий пункт). Используется аналогично Core.SendToAll(sData). Исправлено: В сборке x64 отключено использование больших адресов. Теперь хаб не падает при запуске скриптов. Как результат - в сборке нельзя использовать библиотеки, предназначенные для оригинальной PtokaX 0.5.0.1. Исправлено: Компиляция под Debian и Ubuntu различных архитектур. Надеюсь, в этот раз исправил правильно. Исправлено: В скрипте для init.d исключена возможность повторного запуска демона, а также исправлена передача ему переменных окружения. mod 2 Изменено: В сборках x86 отключено использование инструкций SSE для совместимости с некоторыми не очень свежими процессорами от AMD. Исправлено: Установка размеров окон при различных размерах системных шрифтов. Исправлено: Компиляция под Debian. Исправлено: Небольшая ошибка в makefile при выполнении цели install. Исправлено: Скрипт locale.lua Исправлено: Пропущенные функции и параметры в scripting-interface.txt mod Исправлено: При нажатии кнопки "Принять" настройки не сохранялись в файл (подозреваю, что кое-кто считает это фичей, а не багом). Изменено: К черту бинарный бред. Список зарегистрированных юзеров снова хранится в файле XML. Изменено: Для 32-разрядной версии метод вызова функций изменен на cdecl, что позволило испльзовать библиотеки, предназначенные для Lua-AIO и RusHub. Изменено: Положение и размеры кнопок на вкладке "Статистика". Изменено: Отключено открытие скрипта по двойному клику в списке. Глубокого смысла в этом нет, просто мне так удобнее . Исправлено: Доведен до ума файл русской локализации. Добавлено: В профиль зарегистрированного юзера добавлены дата регистрации, дата последнего входа и один текстовый параметр для хранения произвольных данных. В связи с этим в таблицу зарегистрированного юзера были добавлены поля iRegDate, iLastEnter и sCustom. Для установки поля sCustom используется функция RegMan.SetCustom(sNick, sString). Поле sCustom может отсутствовать. Изменено: При сохранении настроек в файл записываются все параметры, а не только те, значения которых отличаются от значений по умолчанию. Добавлено: Проверка прав доступа для команды !stats. Добавлено: Блокировка неизвестных команд. Отключается на вкладке "Дополнительно". Добавлено: Возможность отключения приветствия (Этот хаб работает под управлением...). Включается на вкладке "Дополнительно" Имя параметра в настройках - ShowWelcome, ID для SetMan.(S/G)etBool - 57. Изменено: Отключение проверки ключа вынесено в настройки. В связи с этим был удален ключ командной строки /nokeycheck. Добавлено: Возможность отключения сжатия zlib. Отключается на вкладке "Больше настроек". Изменено: Профиль по умолчанию для юзеров, регистрируемых с помощью GUI. Добавлено: Функция print. В GUI-версии функция выводит текст в окно ошибок скриптов, в консольной - в главный чат юзерам с профилем Master. Исправлено: Самодеятельность TinyXML, касающаяся обработки пустых символов. Несколько пустых символов подряд заменялись одним пробелом. По непонятной причине неразрывный пробел также считался пустым символом. Исправлено: При запуске принудительно устанавливается локаль "C" для чисел. Это поможет избежать проблем с сохранением дробных чисел если сервер, на котором работает хаб, настраивали жопой. Добавлено: Версия PtokaX, хранящая пароли в зашифрованном (SHA-256) виде. Изменено: Настройки по умолчанию. Строковые параметры переведены на русский. Изменено: Список стран IP-To-Country: Добавлены коды стран, названия стран переведены на русский. Добавлено: Сообщения об ошибках скриптов отправляются операторам. Добавлено: Возможность отключения отображения трассировки стека Lua в ошибках скриптов. Добавлено: Параметр bZPipe, отображающий поддержку юзером сжатия. Код для Core.GetUserData - 64 Исправлено: Устранено мелькание окна консоли при вызове функций os.execute и io.popen. Добавлено: Настройка прав доступа для незарегистрированных юзеров. Добавлено: Альтернативный синтаксис для функции регистрации бота: Core.RegBot(sNick, sMyINFOString, bHaveKey). Полная проверка синтаксиса $MyINFO не производится. Добавлено: Функция Core.HideUser(tUser, bHide), позволяющая скрыть юзера из списка. Добавлено: Функции Core.GetDCStats, Core.GetNetStats. Добавлено: События BadPassArrival и ValidateDenideArrival. Исправлено: При загрузке настроек из файла строковые настройки заменялись настройками по умолчанию в тех случаях, когда длина сохраненной строки равна нулю, а длина строки по умолчанию больше нуля. По этой причине в предыдущих версиях мода было невозможно переключить язык на английский, а в оригинальной версии - удалить адрес перенаравления. Исправлено: Изменение паролей зарегистрированных юзеров. Исправлено: Если длинные MyINFO отправляются только разрешенным профилям, а профиль юзера позволяет ему получать полные MyINFO, то боты, зарегистрированные скриптами, становились видны ему только после переподключения к хабу. Добавлено: Функция Core.UserNoQuit(tUser, bState), позволяющая подавить команду $Quit при выходе юзера. Кому-то функция может показаться бессмысленной, однако я знаю наверняка, для чего я ее добавил. Возможно, и вы когда-нибудь узнаете . 0.5.0.1_mod11_x86.rar ( 7.36 мегабайт ) Кол-во скачиваний: 65 0.5.0.1_mod11_x64.rar ( 6.3 мегабайт ) Кол-во скачиваний: 71 0.5.0.1_mod11_src.zip ( 1.05 мегабайт ) Кол-во скачиваний: 66 Старые версии
0.5.0.1_mod10_x86.rar ( 7.38 мегабайт )
Кол-во скачиваний: 2 0.5.0.1_mod10_x64.rar ( 6.3 мегабайт ) Кол-во скачиваний: 2 0.5.0.1_mod10_src.zip ( 1.05 мегабайт ) Кол-во скачиваний: 4 0.5.0.1_mod10_hashpass.rar ( 3.85 мегабайт ) Кол-во скачиваний: 2 Остальные версии можно найти в моей шаре на хабе MyDC Как правильно обновляться... ...с оригинальной версии на mod: Первым делом конвертируем базу из бинарного формата в xml. Делать это нужно на оригинальной версии, поскольку скрипт использует для конвертирования API хаба. Затем останавливаем хаб, открываем файл cfg/Profiles.xml, и добавляем профиль для незарегистрированных юзеров: Длиннокод Код <Profile> <Name>Unreg</Name> <Permissions>00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0 0000000000000000000</Permissions> </Profile> Если Вы обновляетесь с версии 0.4.x.x, работавшей под Windows, у Вас может возникнуть еще одна проблема: в списке зарегистрированных юзеров обнаружится большое число юзеров с одним и тем же ником, но в разных регистрах. При удалении каждого повторяющегося юзера, GUI-версия PtokaX будет выдавать сообщение. Если Вам лень клацать кнопку "OK" 10500 раз, можете убить птоку диспетчером задач, и использовать для первого запуска консольную версию - она удалит дублирующихся юзеров тихо, а сообщения об удалении сохранит в файл system.log ...с PtokaX 0.5.0.0 mod3 на PtokaX 0.5.0.1 mod: Останавливаем хаб, добавляем в настройки профиль незарегистрированных юзеров (см. предыдущий пункт), запускаем хаб. Всё ...с mod на оригинальную версию: Останавливаем хаб, удаляем из конфига профиль незарегистрированных юзеров. После этого можно обновлять бинарники и запускать хаб - PtokaX сама сконвертирует базу регистраций в бинарный формат, а также удалит все ненужные (и даже некоторые нужные ) настройки. ...с обычной версии на версию, хеширующую пароли: Просто заменяем бинарники, и запускаем хаб. При запуске все пароли будут хешированы автоматически. ...с версии, хеширующей пароли, на обычную версию: Останавливаем хаб, заменяем бинарники, удаляем базу регистраций, запускаем хаб, и просим всех юзеров зарегистрироваться по-новой. Ну да, а Вы что думали? Расшифровать хешированные пароли невозможно. Именно по этой причине включение хеширования паролей производится таким извращенным способом. Версия, хранящая пароли в зашифрованном виде: 0.5.0.1_mod11_hashpass.rar ( 3.84 мегабайт ) Кол-во скачиваний: 12 Как это работает Пароли хранятся в виде Код |<Хэш пароля в hexadecimal-формате> Символ | в начале пароля нужен для того, чтобы PtokaX могла отличить шифрованные пароли от нешифрованных. Если при загрузке базы какие-либо пароли не соответствуют данному формату, они автоматически хешируются. Это позволяет не париться при переходе на шифрованную базу и при добавлении аккаунтов прямо в XML-файл.Следует помнить, что хешированные пароли расшифровать нельзя. Т.е вы не сможете сконвертировать базу обратно. Никак не сможете. СОВСЕМ никак. Также следует помнить, что зарегистрированных юзеров теперь нельзя редактировать с помощью PXControl, PRA, и им подобных. И да, если Ваш скрипт регистрации запрашивает старый пароль при его изменении, Вам придется прикрутить к нему библиотеку sha2. В архиве только exe'шник, все остальное берем из основного дистрибутива. Скрипт для конвертирования бинарной базы обратно в XML: GetBaseBack.lua ( 1.22 килобайт ) Кол-во скачиваний: 102 Если Вы переходите на данную версию с более новой, хранящей настройки и список скриптов в файлах .pxt, то Вам будет полезен конвертер: settings_back.lua ( 7.42 килобайт ) Кол-во скачиваний: 27 TODO По-человечески исправить отрисовку GUI. Думаю, многие заметили, что внешний вид окна оригинальной птоки сильно портится если по нему провести окном другого приложения. Сильнее всего эффект заметен в Windows 7 на упрощенных темах оформления. Связано это с тем, что PPK не до конца осилил создание GUI с помощью чистого WinAPI. Проблема в том, что я знаю WinAPI еще хуже, поэтому я даже не представляю, как это исправить. Поэтому я поступил следующим образом - убрал свойство WS_CLIPCHILDREN главного окна. После этого глюки с перерисовкой дочерних элементов исчезли, но они стали сильно мигать при изменении размеров окна. Перенести из PtokaX 0.5.0.0 mod 4 (этот мод никогда не выкладывался, поскольку я не закончил его) событие IsRegistered(). Оно используется для хранения аккаунтов во внешних БД, и в вышеназванной модификации вполне себе работало. Но в версии 0.5.0.1 PPK так отрефакторил ту часть кода, что добавить его стало некуда. Возможно, когда-нибудь я таки решусь на переделку. Исправить странные глюки в работе функции SendToNonisolated. Иногда при изменении прав профилей сообщения, отправленные с помощью этой функции начинают получать все юзеры, включая изолированных. Причину пока не выяснил. P.S. Не забывайте сообщать о найденных ошибках Версии, основанные на PtokaX 0.5.0.0 mod 3 Исправлено: При изменении настроек главного бота или ОпЧата из GUI, бот со старым ником оставался в списке юзеров до перезапуска хаба. Изменено: Профиль по умолчанию для юзеров, регистрируемых с помощью GUI. Добавлено: Альтернативный синтаксис для функции регистрации бота: Core.RegBot(sNick, sMyINFOString, bHaveKey). Полная проверка синтаксиса $MyINFO не производится. Добавлено: Возможность отключения сжатия zlib. Отключается на вкладке "Больше настроек". Изменено: Отключение проверки ключа вынесено в настройки. В связи с этим был удален ключ командной строки /nokeycheck. Исправлено: Незначительные исправления в языковом файле. Изменения в библиотеках: Устранено мелькание окна консоли при вызове функций os.execute и io.popen. mod 2 Исправлено: Самодеятельность TinyXML, касающаяся обработки пустых символов. Несколько пустых символов подряд заменялись одним пробелом. По непонятной причине неразрывный пробел также считался пустым символом. Добавлено: Функции Core.GetDCStats, Core.GetNetStats и Core.GetMemStats. Добавлено: Консольная версия PtokaX, хранящая пароли в зашифрованном (SHA-256) виде. Добавлено: Функция print. В GUI-версии функция выводит текст в окно ошибок скриптов, в консольной - в главный чат юзерам с профилем Master. Добавлено: Сообщения об ошибках скриптов отправляются юзерам с профилем Master. Исправлено: Пропущенные строки в языковом файле. Изменения в библиотеках: В библиотеке Lua параметры LUA_PATH_DEFAULT и LUA_CPATH_DEFAULT изменены на более каноничные, что позволит избежать проблем при подключении некоторых библиотек. Из Lua удалены костыли, добавленные для совместимости с библиотеками Lua-AIO. В связи с этим были удалены библиотеки iup, tcps и udps. Заменена библиотека iconv. Добавлены библиотеки sha1 и sha2. mod 1 Изменено: Для 32-разрядной версии метод вызова функций изменен на cdecl, что позволило испльзовать библиотеки, предназначенные для Lua-AIO и RusHub Изменено: Положение и размеры кнопок на вкладке "Статистика" Изменено: Отключено открытие скрипта по двойному клику в списке. Глубокого смысла в этом нет, просто мне так удобнее Исправлено: Доведен до ума файл русской локализации Изменено: Настройки по умолчанию. Строковые параметры переведены на русский Изменено: Список стран IP-To-Country: Добавлены коды стран, названия стран переведены на русский Добавлено: В никах запрещены символы от \0 до \31 Добавлено: Блокировка неизвестных команд. Отключается на вкладке "Дополнительно" Добавлено: Проверка прав доступа для команд !stats и !memstats Добавлено: События BadPassArrival и ValidateDenideArrival Добавлено: Параметр bZPipe, отображающий поддержку юзером сжатия. Код для Core.GetUserData - 64 Изменено: При сохранении настроек в файл записываются все параметры, а не только те, значения которых отличаются от значений по умолчанию Добавлено: Возможность отключения приветствия (Этот хаб работает под управлением...). Включается на вкладке "Дополнительно" Имя параметра в настройках - ShowWelcome, ID для SetMan.(S/G)etBool - 57 Изменено: К черту бинарный бред. Список зарегистрированных юзеров снова хранится в файле XML Исправлено: Ошибка IPToCountry - первый и последний адрес диапазона не считались его частью Исправлено: При нажатии кнопки "Принять" настройки не сохранялись в файл (подозреваю, что кое-кто считает это фичей, а не багом ) ptokax_0.5.0.0_mod3_x86.rar ( 8.69 мегабайт ) Кол-во скачиваний: 284 ptokax_0.5.0.0_mod3_x64.rar ( 4.79 мегабайт ) Кол-во скачиваний: 92 ptokax_0.5.0.0_mod3_src.zip ( 1.06 мегабайт ) Кол-во скачиваний: 52 Консольная версия, хранящая пароли в зашифрованном виде: ptokax_0.5.0.0_mod3_hashpass_sha2.rar ( 1.79 мегабайт ) Кол-во скачиваний: 7 Предыдущая версия, шифрующая пароли алгоритмом MD5: PtokaX_console_hashpass.rar ( 278.28 килобайт ) Кол-во скачиваний: 11 Дополнительную информацию можно найти во втором сообщении данной темы
|
|
|
12.1.2015, 8:48
Сообщение
#82
|
|
Участник Группа: Пользователи Сообщений: 36 Регистрация: 6.2.2009 Из: Липецк Пользователь №: 2 131 Спасибо сказали: 8 раз |
alex82 привет!
Ты ведь хорошо в коде птохи разбираешься подскажи как правильнее на уровне С++ встроить вот такой скрипт :~/src/PtokaX/scripts$ cat ctm2hub.lua function UnknownArrival(tUser, sData) if sData:sub(1,7) == "$MyNick" then Core.SendToUser(tUser, "$Error CTM2HUB|") end end хочется нативно поддержкать команду блокировки ddos в verli он ужен добавлен. может и ты добавишь к себ в мод поддержку этого расширения? Данную фишку придумал RoLex и она поддерживается в клиентах FlylinkDC++ 5xx и 4xx алгоритм такой Добавлена поддержка команды CTM2HUB (RoLex) (Часть 1) HUB1 = атакующий хаб который не проверяет запрос CTM HUB2 = атакуемый хаб HUB2.ADDR = адрес атакуемого хаба DC1 = атакующий бот который отсылает левые CTM на HUB1 DC2 = обычный юзер на HUB1 DC1 -> HUB1 $ConnectToMe DC2 HUB2.ADDR| HUB1 -> DC2 $ConnectToMe DC2 HUB2.ADDR| DC2 не находит HUB2.ADDR в черном списке и продолжает работу с запросом CTM DC2 -> HUB2 socket_connect(HUB2.ADDR) + $MyNick DC2|$Lock ABC| HUB2 -> DC2 $Error CTM2HU DC2 добавляет HUB2.ADDR в черный список и закрывает соединение DC1 -> HUB1 $ConnectToMe DC2 HUB2.ADDR| HUB1 -> DC2 $ConnectToMe DC2 HUB2.ADDR| DC2 находит HUB2.ADDR в черном списке и игнорит запрос CTM |
|
|
14.1.2015, 21:44
Сообщение
#83
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
PPA
В файле DcCommands.cpp есть довольно странный кусок кода, отвечающий за обработку команды $MyNick: Раскрывающийся текст Код void clsDcCommands::MyNick(User * pUser, char * sData, const uint32_t &ui32Len) { if((pUser->ui32BoolBits & User::BIT_IPV6) == User::BIT_IPV6) { int imsgLen = sprintf(msg, "[SYS] IPv6 $MyNick (%s) from %s (%s) - user closed.", sData, pUser->sNick, pUser->sIP); if(CheckSprintf(imsgLen, 1024, "clsDcCommands::MyNick") == true) { clsUdpDebug::mPtr->Broadcast(msg, imsgLen); } Unknown(pUser, sData, ui32Len); return; } if(ui32Len < 10) { int imsgLen = sprintf(msg, "[SYS] Short $MyNick (%s) from %s (%s) - user closed.", sData, pUser->sNick, pUser->sIP); if(CheckSprintf(imsgLen, 1024, "clsDcCommands::MyNick1") == true) { clsUdpDebug::mPtr->Broadcast(msg, imsgLen); } Unknown(pUser, sData, ui32Len); return; } sData[ui32Len-1] = '\0'; // cutoff pipe User * pOtherUser = clsHashManager::mPtr->FindUser(sData+8, ui32Len-9); if(pOtherUser == NULL || pOtherUser->ui8State != User::STATE_IPV4_CHECK) { int imsgLen = sprintf(msg, "[SYS] Bad $MyNick (%s) from %s (%s) - user closed.", sData, pUser->sNick, pUser->sIP); if(CheckSprintf(imsgLen, 1024, "clsDcCommands::MyNick2") == true) { clsUdpDebug::mPtr->Broadcast(msg, imsgLen); } Unknown(pUser, sData, ui32Len); return; } strcpy(pOtherUser->sIPv4, pUser->sIP); pOtherUser->ui8IPv4Len = pUser->ui8IpLen; pOtherUser->ui32BoolBits |= User::BIT_IPV4; pOtherUser->ui8State = User::STATE_ADDME; pUser->Close(); /* int imsgLen = sprintf(msg, "<%s> Found IPv4: %s =)|", clsSettingManager::mPtr->sPreTexts[clsSettingManager::SETPRETXT_HUB_SEC], pOtherUser->sIPv4); if(CheckSprintf(imsgLen, 1024, "clsDcCommands::MyNick3") == true) { UserSendCharDelayed(pOtherUser, msg, imsgLen); } */ } А если все-таки добавлять расширение протокола, то сделать это можно где-то здесь: Код if(pOtherUser == NULL || pOtherUser->ui8State != User::STATE_IPV4_CHECK) {
int imsgLen = sprintf(msg, "[SYS] Bad $MyNick (%s) from %s (%s) - user closed.", sData, pUser->sNick, pUser->sIP); if(CheckSprintf(imsgLen, 1024, "clsDcCommands::MyNick2") == true) { clsUdpDebug::mPtr->Broadcast(msg, imsgLen); } Unknown(pUser, sData, ui32Len); return; } |
|
|
14.1.2015, 22:02
Сообщение
#84
|
|
Участник Группа: Пользователи Сообщений: 36 Регистрация: 6.2.2009 Из: Липецк Пользователь №: 2 131 Спасибо сказали: 8 раз |
Если я понимаю правильно, PPK задумал проверять поддержку IPv4 таким хитрожопым способом. В связи с чем у меня к тебе как к разработчику DC-клиентов есть ответный вопрос: а есть ли смысл в этой функции? Хоть в одном клиенте реализована такая проверка? Спасибо. Погуляю в том месте под отладкой.. Поддержка реализована пока только у меня FlylinkDC++ 5xx и 4xx т.е. все юзера которые сидят на хабе со свежими флаями автоматом перестанут учавствовать в ddos-е На стороне сервера это поддерживается в новых версиях verlihub почему-бы это не поддержать и в ptokax-mod |
|
|
14.1.2015, 22:08
Сообщение
#85
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
По поводу расширения $Error я и так понял . Вопрос был про определение поддержки IPv4 при помощи команды $MyNick.
|
|
|
15.1.2015, 8:15
Сообщение
#86
|
|
Участник Группа: Пользователи Сообщений: 36 Регистрация: 6.2.2009 Из: Липецк Пользователь №: 2 131 Спасибо сказали: 8 раз |
|
|
|
15.1.2015, 9:55
Сообщение
#87
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
|
|
|
15.1.2015, 11:26
Сообщение
#88
|
|
Участник Группа: Пользователи Сообщений: 36 Регистрация: 6.2.2009 Из: Липецк Пользователь №: 2 131 Спасибо сказали: 8 раз |
а разве её нет? или это было написано про Flylink? Ага. я про клиента ) У меня дома нет настоящего ipv6 и не начем отлаживаться в слепую - не хочется ковырять. также вроде airdc++ умеет из коробки Для флая ip6 пока не сильно актуально там есть другие более важные баги. По поводу сервера у птохи я тоже не проверял только заметил что у него это сделано не эффективно по памяти резервирует 46 байт (даже если IP6 не нужен) на каждого юзера + хранит адрес в буковках |
|
|
15.1.2015, 12:19
Сообщение
#89
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
У меня дома нет настоящего ipv6 [offtop]у меня есть, но роутер не поддерживает, хотя можно кастомными прошивками поддержку сделать, но нет желания кастомить прошивки и кошмарить роутер, а вообще, есть люди(естественно админы, а не обычные "прохожие") у которых это есть, почему к ним не обращаешься?[/offtop] [offtop] Цитата Для флая ip6 пока не сильно актуально там есть другие более важные баги. не только баги, но и иссуи с запросами добавления новых, полезных вещей, которые пока игнорируются тобой хотя может они и не такие важные, по сравнению с тэгами цветов и жирноты текста в чатике [/offtop] |
|
|
15.1.2015, 12:55
Сообщение
#90
|
|
Участник Группа: Пользователи Сообщений: 36 Регистрация: 6.2.2009 Из: Липецк Пользователь №: 2 131 Спасибо сказали: 8 раз |
не только баги, но и иссуи с запросами добавления новых, полезных вещей, которые пока игнорируются тобой хотя может они и не такие важные, по сравнению с тэгами цветов и жирноты текста в чатике [/offtop] Скажите номера issue которые беспокоят лично вас. если я их смогу поправить - сделаю. а цвета и жирность в чате давно сделаны и вроде работают - никто не жалуется |
|
|
15.1.2015, 13:31
Сообщение
#91
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
Скажите номера issue которые беспокоят лично вас. если я их смогу поправить - сделаю. а цвета и жирность в чате давно сделаны и вроде работают - никто не жалуется Да я уже и весь форум Flylink исписал этими issue, да и в ЛС писал, но что-то игнорируются, да и там не поправлять, а добавлять нужно)))) Да и тема эта не Flylink'а как бы, не хочу здесь оффтопить/флудить не по теме. |
|
|
29.1.2015, 16:08
Сообщение
#92
|
|
Участник Группа: Пользователи Сообщений: 36 Регистрация: 6.2.2009 Из: Липецк Пользователь №: 2 131 Спасибо сказали: 8 раз |
Привет.
alex82 подскажи зачем в птохе в методе bool clsDcCommands::MyINFODeflood 2 куска DeFloodCheckForFlood на MyINFO + заведены пары переменных типа ui16MyINFOs и ui16MyINFOs2 ui64MyINFOsTick и ui64MyINFOsTick2 SETSHORT_MYINFO_ACTION и SETSHORT_MYINFO_ACTION2 ... ? |
|
|
30.1.2015, 14:57
Сообщение
#93
|
|
Начинающий Группа: Пользователи Сообщений: 20 Регистрация: 27.12.2009 Из: Красноярска Пользователь №: 5 495 Спасибо сказали: 0 раз |
Есть вопрос? Ubuntu 12.04_х64 ptokax mod 9, прочитал все коменты,поправил и пересобрал ptokax...Все работает пока нормально но,профилю Master птока весь чат загадила за сутки непонятными цифрами примерно с 10 минутным интервалом,как то это можно исправить или есть какая то команда чтоб убрать этот флуд?
- [18:24:56 <Krasmediafiles> 5 15 - [18:24:56] <Krasmediafiles> 244 15 - [18:24:56] <Krasmediafiles> -12 18 - [18:24:56] <Krasmediafiles> 300 94 - [18:24:56] <Krasmediafiles> 276 37 - [18:24:56] <Krasmediafiles> 336 55 - [18:24:56] <Krasmediafiles> 345 81 - [18:24:56] <Krasmediafiles> 344 68 - [18:34:57] <Krasmediafiles> 114 15 - [18:34:57] <Krasmediafiles> 5 15 - [18:34:57] <Krasmediafiles> 244 15 - [18:34:57] <Krasmediafiles> -12 18 - [18:34:57] <Krasmediafiles> 300 93 - [18:34:57] <Krasmediafiles> 272 37 - [18:34:57] <Krasmediafiles> 337 55 - [18:34:57] <Krasmediafiles> 345 81 - [18:34:57] <Krasmediafiles> 345 68 - [18:44:56] <Krasmediafiles> 114 15 - [18:44:56] <Krasmediafiles> 5 15 - [18:44:56] <Krasmediafiles> 252 15 - [18:44:56] <Krasmediafiles> -12 18 - [18:44:56] <Krasmediafiles> 307 94 - [18:44:56] <Krasmediafiles> 273 37 - [18:44:56] <Krasmediafiles> 337 55 - [18:44:56] <Krasmediafiles> 345 81 - [18:44:56] <Krasmediafiles> 345 68] До этого ставил deb-пакет 0.4.1.2 такого не наблюдалось. P.S. собирал так... Открыть cd ptokax make и сборка в deb-пакет checkinstall -D cd /root ldconfig |
|
|
31.1.2015, 13:00
Сообщение
#94
|
|
Начинающий Группа: Пользователи Сообщений: 20 Регистрация: 27.12.2009 Из: Красноярска Пользователь №: 5 495 Спасибо сказали: 0 раз |
Отключил все скрипты кроме locale.lua флуд исчез!Дело не в птоке а в каком то скрипте,буду включать по очереди и смотреть какой флудит.Всем спасибо!
P.S. Флудил в чат скрипт HubBanner 2.01 by alex82 API2 (PtokaX 0.4.x.x)!!!!!!!!!!!!!!!!! |
|
|
31.1.2015, 21:04
Сообщение
#95
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
PPA, потому что в птоке две настройки антифлуда MyINFO, которые можно настроить по-разному:
2015_01_31_195548.png ( 2.86 килобайт ) Кол-во скачиваний: 164 для многих других типов антифлуда также имеется по две независимые настройки. Reanimator, этот прикол возникает из-за того, что в PtokaX mod в отличие от PtokaX имеется функция print, и если автор скрипта забыл удалить вывод отладочных сообщений с помощью этой функции, при переходе на PtokaX mod скрипт начнет флудить. |
|
|
6.2.2015, 9:39
Сообщение
#96
|
|
Участник Группа: Пользователи Сообщений: 36 Регистрация: 6.2.2009 Из: Липецк Пользователь №: 2 131 Спасибо сказали: 8 раз |
PPA, потому что в птоке две настройки антифлуда MyINFO, которые можно настроить по-разному: Спасибо! Cлучайно не знаешь еще почему сделано вот так CODE #ifdef _WIN32 pNickList = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, ui32NickListSize+NICKLISTSIZE+1); #else pNickList = (char *)realloc(pOldBuf, ui32NickListSize+NICKLISTSIZE+1); #endif #ifdef _WIN32 pRangeBan->sBy = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szByLen+1); #else pRangeBan->sBy = (char *)malloc(szByLen+1); #endif У тебя не было желания в моде добавиь функции-обертки типа ppk_alloc и ppk_realock ppk_free хотя это усложнит слияние - может ты сможешь уговорить PPK так сделать и он раскопипащен по всей птохе - не лень ведь было так трахаться.... с #ifdef HeapAlloc C:\git\PtokaX\core\colUsers.cpp(56): pNickList = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, NICKLISTSIZE); C:\git\PtokaX\core\colUsers.cpp(69): pZNickList = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, ZLISTSIZE); C:\git\PtokaX\core\colUsers.cpp(80): pOpList = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, OPLISTSIZE); C:\git\PtokaX\core\colUsers.cpp(93): pZOpList = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, ZLISTSIZE); C:\git\PtokaX\core\colUsers.cpp(106): pMyInfos = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, MYINFOLISTSIZE); C:\git\PtokaX\core\colUsers.cpp(117): pZMyInfos = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, ZMYINFOLISTSIZE); C:\git\PtokaX\core\colUsers.cpp(137): pMyInfosTag = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, MYINFOLISTSIZE); C:\git\PtokaX\core\colUsers.cpp(148): pZMyInfosTag = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, ZMYINFOLISTSIZE); C:\git\PtokaX\core\colUsers.cpp(167): pUserIPList = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, IPLISTSIZE); C:\git\PtokaX\core\colUsers.cpp(181): pZUserIPList = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, ZLISTSIZE); C:\git\PtokaX\core\colUsers.cpp(939): pNewRecTime->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, curUser->ui8NickLen+1); C:\git\PtokaX\core\DcCommands.cpp(4138): cmdSearch->sCommand = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen+1); C:\git\PtokaX\core\eventqueue.cpp(118): pNewEvent->sMsg = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen+1); C:\git\PtokaX\core\GlobalDataQueue.cpp(45): OpListQueue.pBuffer = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, 256); C:\git\PtokaX\core\GlobalDataQueue.cpp(58): UserIPQueue.pBuffer = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, 256); C:\git\PtokaX\core\GlobalDataQueue.cpp(83): GlobalQueues[ui8i].pBuffer = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, 256); C:\git\PtokaX\core\GlobalDataQueue.cpp(84): GlobalQueues[ui8i].pZbuffer = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, 256); C:\git\PtokaX\core\GlobalDataQueue.cpp(247): pNewItem->pCommand1 = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen1+1); C:\git\PtokaX\core\GlobalDataQueue.cpp(266): pNewItem->pCommand2 = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen2+1); C:\git\PtokaX\core\GlobalDataQueue.cpp(868): pNewItem->pData = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szDataLen+1); C:\git\PtokaX\core\GlobalDataQueue.cpp(1063): ((QueueItem *)pQueueItem)->pCommand1 = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen+1); C:\git\PtokaX\core\hashBanManager.cpp(1209): Ban->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNickLen+1); C:\git\PtokaX\core\hashBanManager.cpp(1236): Ban->sReason = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szReasonLen+1); C:\git\PtokaX\core\hashBanManager.cpp(1256): Ban->sBy = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szByLen+1); C:\git\PtokaX\core\hashBanManager.cpp(1380): RangeBan->sReason = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szReasonLen+1); C:\git\PtokaX\core\hashBanManager.cpp(1399): RangeBan->sBy = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szByLen+1); C:\git\PtokaX\core\hashBanManager.cpp(1766): pBan->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, u->ui8NickLen+1); C:\git\PtokaX\core\hashBanManager.cpp(1870): pBan->sReason = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szReasonLen > 255 ? 256 : szReasonLen+1); C:\git\PtokaX\core\hashBanManager.cpp(1900): pBan->sBy = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szByLen+1); C:\git\PtokaX\core\hashBanManager.cpp(1992): pBan->sReason = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szReasonLen > 255 ? 256 : szReasonLen+1); C:\git\PtokaX\core\hashBanManager.cpp(2022): pBan->sBy = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szByLen+1); C:\git\PtokaX\core\hashBanManager.cpp(2074): pBan->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNickLen+1); C:\git\PtokaX\core\hashBanManager.cpp(2098): pBan->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, u->ui8NickLen+1); C:\git\PtokaX\core\hashBanManager.cpp(2147): pBan->sReason = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szReasonLen > 255 ? 256 : szReasonLen+1); C:\git\PtokaX\core\hashBanManager.cpp(2177): pBan->sBy = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szByLen+1); C:\git\PtokaX\core\hashBanManager.cpp(2237): pBan->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNickLen+1); C:\git\PtokaX\core\hashBanManager.cpp(2374): pBan->sReason = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szReasonLen > 255 ? 256 : szReasonLen+1); C:\git\PtokaX\core\hashBanManager.cpp(2404): pBan->sBy = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szByLen+1); C:\git\PtokaX\core\hashBanManager.cpp(2500): pBan->sReason = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szReasonLen > 255 ? 256 : szReasonLen+1); C:\git\PtokaX\core\hashBanManager.cpp(2530): pBan->sBy = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szByLen+1); C:\git\PtokaX\core\hashBanManager.cpp(2582): pBan->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNickLen+1); C:\git\PtokaX\core\hashBanManager.cpp(2605): pBan->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, u->ui8NickLen+1); C:\git\PtokaX\core\hashBanManager.cpp(2669): pBan->sReason = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szReasonLen > 255 ? 256 : szReasonLen+1); C:\git\PtokaX\core\hashBanManager.cpp(2699): pBan->sBy = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szByLen+1); C:\git\PtokaX\core\hashBanManager.cpp(2965): pRangeBan->sReason = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szReasonLen > 255 ? 256 : szReasonLen+1); C:\git\PtokaX\core\hashBanManager.cpp(2995): pRangeBan->sBy = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szByLen+1); C:\git\PtokaX\core\hashBanManager.cpp(3085): pRangeBan->sReason = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szReasonLen > 255 ? 256 : szReasonLen+1); C:\git\PtokaX\core\hashBanManager.cpp(3115): pRangeBan->sBy = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szByLen+1); C:\git\PtokaX\core\hashRegManager.cpp(94): pReg->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szRegNickLen+1); C:\git\PtokaX\core\hashRegManager.cpp(109): pReg->ui8PassHash = (uint8_t *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, 64); C:\git\PtokaX\core\hashRegManager.cpp(123): pReg->sPass = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szRegPassLen+1); C:\git\PtokaX\core\hashRegManager.cpp(868): pCurReg->ui8PassHash = (uint8_t *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, 64); C:\git\PtokaX\core\IP2Country.cpp(102): ui32RangeFrom = (uint32_t *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, ui32Size * sizeof(uint32_t)); C:\git\PtokaX\core\IP2Country.cpp(117): ui32RangeTo = (uint32_t *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, ui32Size * sizeof(uint32_t)); C:\git\PtokaX\core\IP2Country.cpp(132): ui8RangeCI = (uint8_t *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, ui32Size * sizeof(uint8_t)); C:\git\PtokaX\core\IP2Country.cpp(288): ui128IPv6RangeFrom = (uint8_t *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, ui32IPv6Size * (sizeof(uint8_t)*16)); C:\git\PtokaX\core\IP2Country.cpp(303): ui128IPv6RangeTo = (uint8_t *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, ui32IPv6Size * (sizeof(uint8_t)*16)); C:\git\PtokaX\core\IP2Country.cpp(318): ui8IPv6RangeCI = (uint8_t *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, ui32IPv6Size * sizeof(uint8_t)); C:\git\PtokaX\core\LanguageManager.cpp(42): sTexts[szi] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szTextLen+1); C:\git\PtokaX\core\LuaScript.cpp(111): pScriptBot->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNickLen+1); C:\git\PtokaX\core\LuaScript.cpp(129): pScriptBot->sMyINFO = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szWantLen); C:\git\PtokaX\core\LuaScript.cpp(189): pScriptTimer->sFunctionName = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen+1); C:\git\PtokaX\core\LuaScript.cpp(275): pScript->sName = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNameLen+1); C:\git\PtokaX\core\LuaScriptManager.cpp(172): ppScriptTable = (Script **)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, (ui8ScriptCount+1)*sizeof(Script *)); C:\git\PtokaX\core\ProfileManager.cpp(415): ppProfilesTable = (ProfileItem **)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (ui16ProfileCount+1)*sizeof(ProfileItem *)); C:\git\PtokaX\core\ProfileManager.cpp(440): pNewProfile->sName = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen+1); C:\git\PtokaX\core\ResNickManager.cpp(62): pReservedNick->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNickLen+1); C:\git\PtokaX\core\serviceLoop.cpp(686): curUser->pLogInOut->pBuffer = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededLen+1); C:\git\PtokaX\core\SettingManager.cpp(142): sMOTD = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, 18); C:\git\PtokaX\core\SettingManager.cpp(183): sMOTD = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, ui16MOTDLen+1); C:\git\PtokaX\core\SettingManager.cpp(571): sMOTD = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, ui16MOTDLen+1); C:\git\PtokaX\core\SettingManager.cpp(979): sTexts[szTxtId] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen+1); C:\git\PtokaX\core\SettingManager.cpp(1156): sPreTexts[SETPRETXT_HUB_SEC] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, ui16TextsLens[SETTXT_BOT_NICK]+1); C:\git\PtokaX\core\SettingManager.cpp(1220): sPreTexts[SETPRETXT_MOTD] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(1271): sPreTexts[SETPRETXT_HUB_NAME_WLCM] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(1326): sPreTexts[SETPRETXT_HUB_NAME] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(1388): sPreTexts[SETPRETXT_REDIRECT_ADDRESS] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededLen); C:\git\PtokaX\core\SettingManager.cpp(1430): sPreTexts[SETPRETXT_REG_ONLY_MSG] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(1487): sPreTexts[SETPRETXT_SHARE_LIMIT_MSG] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(1584): sPreTexts[SETPRETXT_SLOTS_LIMIT_MSG] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(1675): sPreTexts[SETPRETXT_HUB_SLOT_RATIO_MSG] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(1763): sPreTexts[SETPRETXT_MAX_HUBS_LIMIT_MSG] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(1866): sPreTexts[SETPRETXT_NO_TAG_MSG] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(1935): sPreTexts[SETPRETXT_TEMP_BAN_REDIR_ADDRESS] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(1998): sPreTexts[SETPRETXT_PERM_BAN_REDIR_ADDRESS] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(2049): sPreTexts[SETPRETXT_NICK_LIMIT_MSG] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(2239): sPreTexts[SETPRETXT_HUB_BOT_MYINFO] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(2371): sPreTexts[SETPRETXT_OP_CHAT_HELLO] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(2400): sPreTexts[SETPRETXT_OP_CHAT_MYINFO] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem); C:\git\PtokaX\core\TextFileManager.cpp(104): char * sMSG = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szChatLen); C:\git\PtokaX\core\TextFileManager.cpp(187): pNewTxtFile->sText = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, textfile.size+2); C:\git\PtokaX\core\TextFileManager.cpp(205): pNewTxtFile->sCommand = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, strlen(textfile.name)-3); C:\git\PtokaX\core\UdpDebug.cpp(111): char * sMsg = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen); C:\git\PtokaX\core\UdpDebug.cpp(165): pNewDbg->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, u->ui8NickLen+1); C:\git\PtokaX\core\UdpDebug.cpp(254): char * sMsg = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen); C:\git\PtokaX\core\UdpDebug.cpp(302): pNewDbg->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNameLen+1); C:\git\PtokaX\core\UdpDebug.cpp(392): char * sMsg = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen); C:\git\PtokaX\core\UdpDebug.cpp(566): char * sMsg = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen); C:\git\PtokaX\core\User.cpp(526): pUserBan->sMessage = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, iMessLen+1); C:\git\PtokaX\core\User.cpp(885): pSendBuf = (char *)HeapAlloc(clsServerManager::hSendHeap, HEAP_NO_SERIALIZE, szAllignLen); C:\git\PtokaX\core\User.cpp(940): pLogInOut->pBuffer = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, 64); C:\git\PtokaX\core\User.cpp(1044): pRecvBuf = (char *)HeapAlloc(clsServerManager::hRecvHeap, HEAP_NO_SERIALIZE, szAllignLen); C:\git\PtokaX\core\User.cpp(1304): pSendBuf = (char *)HeapAlloc(clsServerManager::hSendHeap, HEAP_NO_SERIALIZE, szAllignLen); C:\git\PtokaX\core\User.cpp(1432): sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, ui8NewNickLen+1); C:\git\PtokaX\core\User.cpp(1492): sMyInfoOriginal = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, ui16NewMyInfoLen+1); C:\git\PtokaX\core\User.cpp(1578): u->sMyInfoLong = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, ui16NewMyInfoLongLen+1); C:\git\PtokaX\core\User.cpp(1613): u->sMyInfoShort = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, ui16NewMyInfoShortLen+1); C:\git\PtokaX\core\User.cpp(1644): sVersion = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen+1); C:\git\PtokaX\core\User.cpp(1673): sLastChat = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen+1); C:\git\PtokaX\core\User.cpp(1707): sLastPM = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen+1); C:\git\PtokaX\core\User.cpp(1742): sLastSearch = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen+1); C:\git\PtokaX\core\User.cpp(1783): pLogInOut->pBuffer = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen+1); C:\git\PtokaX\core\User.cpp(1803): pLogInOut->pBuffer = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, 512); C:\git\PtokaX\core\User.cpp(2691): pNewToCmd->sCommand = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szCommandLen+1); C:\git\PtokaX\core\User.cpp(2715): pNewToCmd->sToNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, to->ui8NickLen+1); C:\git\PtokaX\core\User.cpp(2766): pNewcmd->sCommand = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szCommandLen+1); C:\git\PtokaX\core\User.cpp(2826): sOldData = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, sz8NewDataLen+1); C:\git\PtokaX\core\utility.cpp(965): char * sMSG = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, sData.size()+64); C:\git\PtokaX\core\utility.cpp(1180): return ::HeapAlloc(clsServerManager::hLuaHeap, 0, szNewSize); C:\git\PtokaX\core\utility.cpp(1367): clsServerManager::pGlobalBuffer = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, clsServerManager::szGlobalBufferSize); C:\git\PtokaX\core\ZlibUtility.cpp(43): pZbuffer = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, ZBUFFERLEN); realloc C:\git\PtokaX\core\colUsers.cpp(439): pNickList = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, ui32NickListSize+NICKLISTSIZE+1); C:\git\PtokaX\core\colUsers.cpp(472): pOpList = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, ui32OpListSize+OPLISTSIZE+1); C:\git\PtokaX\core\colUsers.cpp(506): pNickList = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, ui32NickListSize+NICKLISTSIZE+1); C:\git\PtokaX\core\colUsers.cpp(536): pOpList = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, ui32OpListSize+OPLISTSIZE+1); C:\git\PtokaX\core\colUsers.cpp(566): pOpList = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, ui32OpListSize+OPLISTSIZE+1); C:\git\PtokaX\core\colUsers.cpp(718): pMyInfos = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, ui32MyInfosSize+MYINFOLISTSIZE+1); C:\git\PtokaX\core\colUsers.cpp(758): pMyInfosTag = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, ui32MyInfosTagSize+MYINFOLISTSIZE+1); C:\git\PtokaX\core\colUsers.cpp(801): pMyInfosTag = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, ui32MyInfosTagSize+MYINFOLISTSIZE+1); C:\git\PtokaX\core\colUsers.cpp(825): pMyInfos = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, ui32MyInfosSize+MYINFOLISTSIZE+1); C:\git\PtokaX\core\colUsers.cpp(877): pUserIPList = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, ui32UserIPListSize+IPLISTSIZE+1); C:\git\PtokaX\core\DcCommands.cpp(4105): cmdSearch->sCommand = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, cmdSearch->ui32Len+szLen+1); C:\git\PtokaX\core\GlobalDataQueue.cpp(319): OpListQueue.pBuffer = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, szAllignLen); C:\git\PtokaX\core\GlobalDataQueue.cpp(358): UserIPQueue.pBuffer = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, szAllignLen); C:\git\PtokaX\core\GlobalDataQueue.cpp(978): pQueue.pBuffer = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, szAllignLen); C:\git\PtokaX\core\hashRegManager.cpp(149): sPass = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldBuf, szNewLen+1); C:\git\PtokaX\core\hashRegManager.cpp(167): sPass = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldPass, szNewLen+1); C:\git\PtokaX\core\hashRegManager.cpp(187): ui8PassHash = (uint8_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldPass, 64); C:\git\PtokaX\core\IP2Country.cpp(157): ui32RangeFrom = (uint32_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, ui32Size * sizeof(uint32_t)); C:\git\PtokaX\core\IP2Country.cpp(170): ui32RangeTo = (uint32_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, ui32Size * sizeof(uint32_t)); C:\git\PtokaX\core\IP2Country.cpp(183): ui8RangeCI = (uint8_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, ui32Size * sizeof(uint8_t)); C:\git\PtokaX\core\IP2Country.cpp(234): ui32RangeFrom = (uint32_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, ui32Size * sizeof(uint32_t)); C:\git\PtokaX\core\IP2Country.cpp(245): ui32RangeTo = (uint32_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, ui32Size * sizeof(uint32_t)); C:\git\PtokaX\core\IP2Country.cpp(256): ui8RangeCI = (uint8_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, ui32Size * sizeof(uint8_t)); C:\git\PtokaX\core\IP2Country.cpp(343): ui128IPv6RangeFrom = (uint8_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, ui32IPv6Size * (sizeof(uint8_t)*16)); C:\git\PtokaX\core\IP2Country.cpp(356): ui128IPv6RangeTo = (uint8_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, ui32IPv6Size * (sizeof(uint8_t)*16)); C:\git\PtokaX\core\IP2Country.cpp(369): ui8IPv6RangeCI = (uint8_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, ui32IPv6Size * sizeof(uint8_t)); C:\git\PtokaX\core\IP2Country.cpp(430): ui128IPv6RangeFrom = (uint8_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, ui32IPv6Size * (sizeof(uint8_t)*16)); C:\git\PtokaX\core\IP2Country.cpp(441): ui128IPv6RangeTo = (uint8_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, ui32IPv6Size * (sizeof(uint8_t)*16)); C:\git\PtokaX\core\IP2Country.cpp(452): ui8IPv6RangeCI = (uint8_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, ui32IPv6Size * sizeof(uint8_t)); C:\git\PtokaX\core\LanguageManager.cpp(78): sTexts[szi] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldText, szTextLen+1); C:\git\PtokaX\core\LanguageManager.cpp(132): sTexts[szi] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldText, szLen+1); C:\git\PtokaX\core\LuaScriptManager.cpp(174): ppScriptTable = (Script **)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, (ui8ScriptCount+1)*sizeof(Script *)); C:\git\PtokaX\core\ProfileManager.cpp(387): ppProfilesTable = (ProfileItem **)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldTable, ui16ProfileCount*sizeof(ProfileItem *)); C:\git\PtokaX\core\ProfileManager.cpp(417): ppProfilesTable = (ProfileItem **)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldTable, (ui16ProfileCount+1)*sizeof(ProfileItem *)); C:\git\PtokaX\core\ProfileManager.cpp(578): ppProfilesTable[iProfile]->sName = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldName, szLen+1); C:\git\PtokaX\core\serviceLoop.cpp(688): curUser->pLogInOut->pBuffer = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, sOldBuf, szNeededLen+1); C:\git\PtokaX\core\SettingManager.cpp(573): sMOTD = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldMOTD, ui16MOTDLen+1); C:\git\PtokaX\core\SettingManager.cpp(981): sTexts[szTxtId] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldText, szLen+1); C:\git\PtokaX\core\SettingManager.cpp(1158): sPreTexts[SETPRETXT_HUB_SEC] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldHubSec, ui16TextsLens[SETTXT_BOT_NICK]+1); C:\git\PtokaX\core\SettingManager.cpp(1222): sPreTexts[SETPRETXT_MOTD] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldMotd, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(1273): sPreTexts[SETPRETXT_HUB_NAME_WLCM] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldWelcome, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(1328): sPreTexts[SETPRETXT_HUB_NAME] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldHubName, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(1390): sPreTexts[SETPRETXT_REDIRECT_ADDRESS] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldRedirAddr, szNeededLen); C:\git\PtokaX\core\SettingManager.cpp(1432): sPreTexts[SETPRETXT_REG_ONLY_MSG] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldRegOnlyMsg, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(1489): sPreTexts[SETPRETXT_SHARE_LIMIT_MSG] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldShareLimitMsg, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(1586): sPreTexts[SETPRETXT_SLOTS_LIMIT_MSG] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldSlotsLimitMsg, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(1677): sPreTexts[SETPRETXT_HUB_SLOT_RATIO_MSG] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldHubSlotLimitMsg, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(1765): sPreTexts[SETPRETXT_MAX_HUBS_LIMIT_MSG] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldHubLimitMsg, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(1868): sPreTexts[SETPRETXT_NO_TAG_MSG] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldNoTagMsg, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(1937): sPreTexts[SETPRETXT_TEMP_BAN_REDIR_ADDRESS] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldTempBanRedirMsg, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(2000): sPreTexts[SETPRETXT_PERM_BAN_REDIR_ADDRESS] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldPermBanRedirMsg, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(2051): sPreTexts[SETPRETXT_NICK_LIMIT_MSG] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldNickLimitMsg, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(2241): sPreTexts[SETPRETXT_HUB_BOT_MYINFO] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldHubBotMyinfoMsg, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(2373): sPreTexts[SETPRETXT_OP_CHAT_HELLO] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldOpChatHelloMsg, szNeededMem); C:\git\PtokaX\core\SettingManager.cpp(2402): sPreTexts[SETPRETXT_OP_CHAT_MYINFO] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldOpChatMyInfoMsg, szNeededMem); C:\git\PtokaX\core\User.cpp(1046): pRecvBuf = (char *)HeapReAlloc(clsServerManager::hRecvHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, szAllignLen); C:\git\PtokaX\core\User.cpp(1267): pSendBuf = (char *)HeapReAlloc(clsServerManager::hSendHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, szAllignTxtLen); C:\git\PtokaX\core\User.cpp(1306): pSendBuf = (char *)HeapReAlloc(clsServerManager::hSendHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, szAllignLen); C:\git\PtokaX\core\User.cpp(1785): pLogInOut->pBuffer = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, pOldBuf, szLen+1); C:\git\PtokaX\core\User.cpp(1805): pLogInOut->pBuffer = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, pOldBuf, 512); C:\git\PtokaX\core\User.cpp(2047): clsUsers::mPtr->pNickList = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, clsUsers::mPtr->ui32NickListSize+NICKLISTSIZE+1); C:\git\PtokaX\core\User.cpp(2202): clsUsers::mPtr->pOpList = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, clsUsers::mPtr->ui32OpListSize+OPLISTSIZE+1); C:\git\PtokaX\core\User.cpp(2659): cur->sCommand = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, cur->ui32Len+szCommandLen+1); C:\git\PtokaX\core\utility.cpp(1178): return ::HeapReAlloc(clsServerManager::hLuaHeap, 0, pData, szNewSize); C:\git\PtokaX\core\utility.cpp(1402): clsServerManager::pGlobalBuffer = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldBuf, clsServerManager::szGlobalBufferSize); C:\git\PtokaX\core\utility.cpp(1430): clsServerManager::pGlobalBuffer = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldBuf, clsServerManager::szGlobalBufferSize); C:\git\PtokaX\core\ZlibUtility.cpp(86): pZbuffer = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, szZbufferSize); C:\git\PtokaX\core\ZlibUtility.cpp(161): pZbuffer = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, szZbufferSize); C:\git\PtokaX\core\ZlibUtility.cpp(217): sOutData = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, szOutDataSize+1); C:\git\PtokaX\core\ZlibUtility.cpp(259): pZbuffer = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, szZbufferSize); C:\git\PtokaX\core\ZlibUtility.cpp(316): sOutData = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, uiOutDataSize); |
|
|
8.2.2015, 9:00
Сообщение
#97
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
PPA, уговорить это маловероятно. У PPK много подобных странностей - и бесконечные #ifdef _WIN32 при выделении памяти, и явные указания размеров массивов и строк вместо использования sizeof (потому что это якобы ускоряет компиляцию), и функция CheckSprintf (возможно, это просто рудимент, оставшийся с тех времен, когда птока собиралась в придурковатом компиляторе от Borland, и там функция sprintf действительно могла косячить).
|
|
|
15.3.2015, 22:23
Сообщение
#98
|
|
Участник Группа: Пользователи Сообщений: 36 Регистрация: 6.2.2009 Из: Липецк Пользователь №: 2 131 Спасибо сказали: 8 раз |
В версии 5.0.3 птоха стала рубить клиентов которые используют NAT Traversal
у себя на хабе пофиксил так клиенты дописывают к номеру порту N, NS, R, RS [Outgoing][94.242.221.159:411] $ConnectToMe Gramm 80.92.105.240:51179NS MikeKMV| <MikeKMV> [21:33:43] <FlyBot> Your client sent incorrect port in connection request! так-же отослал ошибку PPK - может он тоже поправит |
|
|
15.3.2015, 23:35
Сообщение
#99
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
PPA, ты ошибся темами, здесь моды от alex82
|
|
|
16.3.2015, 1:48
Сообщение
#100
|
|
Участник Группа: Пользователи Сообщений: 36 Регистрация: 6.2.2009 Из: Липецк Пользователь №: 2 131 Спасибо сказали: 8 раз |
|
|
|
14.6.2015, 20:32
Сообщение
#101
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 5 Регистрация: 9.12.2013 Пользователь №: 12 227 Спасибо сказали: 0 раз |
Мда... Судя по-всему не интересно и не планирует.
Жаль. |
|
|
Похожие темы
|
Сейчас: 26.11.2024, 20:04 |