Здравствуйте. Решил развернуть локальный сервер TBC из сборки под номером 9. Развернул по инструкции в теме, в realmlist.wtf следующее:
Цитата
set realmlist 127.0.0.1:3725
После, в консоль mangosd ввёл команду для создания аккаунта:
Цитата
account create newtest password q123456789
Но в клиенте возвращает ошибку о том, что указаны неверные сведения. Что я делаю не так? В таблице realmd.account пользователь в наличии. Я теряюсь в догадках.
Попробовал, если не писать порт, то возвращает ошибку подключения. Без разницы пишу ли я localhost или адрес в локальной сети. Если я пытаюсь подключиться по адресу в локальной сети с портом 3725, то тоже возвращается ошибка о неверных сведениях.
В общем, помучал я немножко сборку №9. Как мне кажется, она работает некорректно в плане создания новых аккаунтов.
Вот пример:
Цитата
mangos>account create ctest password 123 Account created: ctest mangos>account create ctest2 password 789 Account created: ctest2 mangos>SQL: INSERT INTO account(username,v,s,joindate,expansion) VALUES('CTEST2','759E4BFC82603F9A62A0A0CB53A2BE450D154870A927D77E36454802B2608966','F0DB8E4F8032E5E1B8951FA0FC9C4357584B56B204681807867B6E195D1818C9',NOW(),789) SQL ERROR: Out of range value for column 'expansion' at row 1
mangos>account create ctest2 password 256 Account created: ctest2 mangos>SQL: INSERT INTO account(username,v,s,joindate,expansion) VALUES('CTEST2','31E1C768C74CA394BC8645A90FE690693C72E05AA36BB3EDA8B216336745C40F','97534B5148F9D8234E8B1F3DD5AF58D77AF5B7CEE14CE557BA6B7DA48E6DBE7D',NOW(),256) SQL ERROR: Out of range value for column 'expansion' at row 1
mangos>account create ctest2 password 255 Account created: ctest2 mangos>account create ctest3 password 256 Account created: ctest3 mangos>SQL: INSERT INTO account(username,v,s,joindate,expansion) VALUES('CTEST3','312F54A99C1D0BBD887F424F5793606B13C98FF405F5CBCC10DE1C5D64A0B031','C347B2DD62B8ABA21D36A73329B828E10E9E967B45080FB8435BC2D3342EB02B',NOW(),256) SQL ERROR: Out of range value for column 'expansion' at row 1
Функция создания пароля, в случае подачи в переменную значения больше, чем 255, т.е. больше байта, почему-то некорректно выполняет приведение типов и вдобавок начинает заносить значение (хоть и не должна, судя по аргументам) в поле expansion таблицы realmd.account, которое имеет тип tinyint. Но если добавить любой буквенный символ, то приведение типов начинает работать корректно.
Где-то тут собака и зарыта, раз есть некорректное приведение типов, значит некорректно генерируется пароль (SHA1?).
Собственно, если выполнить следующую команду для уже созданного аккаунта. то авторизация выполнится корректно:
Цитата
mangos>account set password ctest 123 123 The password was changed
То есть, функция сброса пароля генерирует пароль корректно, в отличие от функции создания аккаунта. Неприятно... Сборка сломана в основной базовой функции, получается. P.S. При установке MySQL прилетели какие-то обновления + я поставил совместимость паролей с MySQL5, это не должно никак повлиять.