API adjustments

This commit is contained in:
Akkadius 2019-08-10 05:36:22 -05:00
parent f06ff14f9e
commit f39684b7f7
3 changed files with 17 additions and 13 deletions

View File

@ -242,15 +242,16 @@ bool AccountManagement::UpdateLoginserverUserCredentials(
return true;
}
bool AccountManagement::CheckExternalLoginserverUserCredentials(
uint32 AccountManagement::CheckExternalLoginserverUserCredentials(
const std::string &in_account_username,
const std::string &in_account_password
)
{
auto res = task_runner.Enqueue(
[&]() -> bool {
bool running = true;
bool ret = false;
[&]() -> uint32 {
bool running = true;
uint32 ret = 0;
EQ::Net::DaybreakConnectionManager mgr;
std::shared_ptr<EQ::Net::DaybreakConnection> c;
@ -284,8 +285,9 @@ bool AccountManagement::CheckExternalLoginserverUserCredentials(
switch (opcode) {
case 0x0017: //OP_ChatMessage
{
size_t buffer_len =
in_account_username.length() + in_account_password.length() + 2;
size_t buffer_len =
in_account_username.length() + in_account_password.length() + 2;
std::unique_ptr<char[]> buffer(new char[buffer_len]);
strcpy(&buffer[0], in_account_username.c_str());
@ -318,9 +320,10 @@ bool AccountManagement::CheckExternalLoginserverUserCredentials(
EQ::Net::StaticPacket sp(&decrypted[0], encrypt_size);
auto response_error = sp.GetUInt16(1);
auto m_dbid = sp.GetUInt32(8);
{
ret = response_error <= 101;
ret = (response_error <= 101 ? m_dbid : 0);
running = false;
}
break;
@ -332,7 +335,7 @@ bool AccountManagement::CheckExternalLoginserverUserCredentials(
EQ::Net::DNSLookup(
"login.eqemulator.net", 5999, false, [&](const std::string &addr) {
if (addr.empty()) {
ret = false;
ret = 0;
running = false;
}

View File

@ -76,7 +76,7 @@ public:
* @param in_account_password
* @return
*/
static bool CheckExternalLoginserverUserCredentials(
static uint32 CheckExternalLoginserverUserCredentials(
const std::string &in_account_username,
const std::string &in_account_password
);

View File

@ -191,13 +191,14 @@ namespace LoginserverWebserver {
return;
}
bool credentials_valid = AccountManagement::CheckExternalLoginserverUserCredentials(
uint32 account_id = AccountManagement::CheckExternalLoginserverUserCredentials(
username,
password
);
if (credentials_valid) {
response["message"] = "Credentials valid!";
if (account_id > 0) {
response["message"] = "Credentials valid!";
response["data"]["account_id"] = account_id;
}
else {
response["error"] = "Credentials invalid!";
@ -246,7 +247,7 @@ namespace LoginserverWebserver {
ss.str(request.body);
ss >> request_body;
}
catch (std::exception&) {
catch (std::exception &) {
request_body["error"] = "Payload invalid";
return request_body;