From ea02042ace78e406cb491ac02a890776ce04fd94 Mon Sep 17 00:00:00 2001 From: Akkadius Date: Wed, 3 Jul 2019 01:40:36 -0500 Subject: [PATCH] Merge fixes --- loginserver/client_manager.cpp | 4 +- world/console.cpp | 292 +++++++++++++++++++++++++++------ world/login_server.cpp | 18 +- world/login_server.h | 2 - zone/api_service.cpp | 23 ++- 5 files changed, 268 insertions(+), 71 deletions(-) diff --git a/loginserver/client_manager.cpp b/loginserver/client_manager.cpp index d487e971e..9c8e3de09 100644 --- a/loginserver/client_manager.cpp +++ b/loginserver/client_manager.cpp @@ -27,7 +27,7 @@ extern bool run_server; ClientManager::ClientManager() { int titanium_port = server.config.GetVariableInt("Titanium", "port", 5998); - EQ::Net::EQStreamManagerOptions titanium_opts(titanium_port, false, false); + EQStreamManagerInterfaceOptions titanium_opts(titanium_port, false, false); titanium_stream = new EQ::Net::EQStreamManager(titanium_opts); titanium_ops = new RegularOpcodeManager; if (!titanium_ops->LoadOpcodes(server.config.GetVariableString("Titanium", "opcodes", "login_opcodes.conf").c_str())) @@ -45,7 +45,7 @@ ClientManager::ClientManager() }); int sod_port = server.config.GetVariableInt("SoD", "port", 5999); - EQ::Net::EQStreamManagerOptions sod_opts(sod_port, false, false); + EQStreamManagerInterfaceOptions sod_opts(sod_port, false, false); sod_stream = new EQ::Net::EQStreamManager(sod_opts); sod_ops = new RegularOpcodeManager; if (!sod_ops->LoadOpcodes(server.config.GetVariableString("SoD", "opcodes", "login_opcodes.conf").c_str())) diff --git a/world/console.cpp b/world/console.cpp index b14bbfff8..e5643e5b1 100644 --- a/world/console.cpp +++ b/world/console.cpp @@ -44,7 +44,8 @@ extern LoginServerList loginserverlist; struct EQ::Net::ConsoleLoginStatus CheckLogin(const std::string &username, const std::string &password) { struct EQ::Net::ConsoleLoginStatus ret; - std::string prefix = "eqemu"; + + std::string prefix = "eqemu"; std::string raw_user = ""; ParseAccountString(username, raw_user, prefix); @@ -54,10 +55,10 @@ struct EQ::Net::ConsoleLoginStatus CheckLogin(const std::string &username, const if (ret.account_id == 0) { return ret; } - + char account_name[64]; database.GetAccountName(ret.account_id, account_name); - + ret.account_name = account_name; ret.status = database.CheckStatus(ret.account_id); return ret; @@ -717,25 +718,17 @@ void ConsoleSetPass( connection->SendLine("Format: setpass accountname password"); } else { - std::string prefix = "eqemu"; + std::string prefix = "eqemu"; std::string raw_user = ""; ParseAccountString(args[0], raw_user, prefix); - int16 tmpstatus = 0; - uint32 tmpid = database.GetAccountIDByName(raw_user.c_str(), prefix.c_str(), &tmpstatus); - if (!tmpid) + int16 tmpstatus = 0; + uint32 tmpid = database.GetAccountIDByName(raw_user.c_str(), prefix.c_str(), &tmpstatus); + + if (!tmpid) { connection->SendLine("Error: Account not found"); } - else if (tmpstatus > connection->Admin()) { - connection->SendLine("Cannot change password: Account's status is higher than yours"); - } - else if (database.SetLocalPassword(tmpid, args[1].c_str())) { - connection->SendLine("Password changed."); - } - else { - connection->SendLine("Error changing password."); - } } } @@ -879,37 +872,242 @@ void ConsoleQuit( /** * @param console */ -void RegisterConsoleFunctions(std::unique_ptr& console) +void RegisterConsoleFunctions(std::unique_ptr &console) { console->RegisterLogin(std::bind(CheckLogin, std::placeholders::_1, std::placeholders::_2)); - console->RegisterCall("acceptmessages", 50, "acceptmessages [on/off]", std::bind(ConsoleAcceptMessages, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("api", 200, "api", std::bind(ConsoleApi, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("auction", 50, "auction [message]", std::bind(ConsoleAuction, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("broadcast", 50, "broadcast [message]", std::bind(ConsoleBroadcast, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("echo", 50, "echo [on/off]", std::bind(ConsoleNull, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("emote", 50, "emote [zonename or charname or world] [type] [message]", std::bind(ConsoleEmote, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("flag", 200, "flag [status] [accountname]", std::bind(ConsoleFlag, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("gmsay", 50, "gmsay [message]", std::bind(ConsoleGMSay, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("iplookup", 50, "IPLookup [name]", std::bind(ConsoleIpLookup, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("kick", 150, "kick [charname]", std::bind(ConsoleKick, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("lock", 150, "lock", std::bind(ConsoleLock, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("lsreconnect", 50, "LSReconnect", std::bind(ConsoleNull, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("md5", 50, "md5", std::bind(ConsoleMd5, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("ooc", 50, "ooc [message]", std::bind(ConsoleOOC, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("reloadworld", 200, "reloadworld", std::bind(ConsoleReloadWorld, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("setpass", 200, "setpass [accountname] [newpass]", std::bind(ConsoleSetPass, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("signalcharbyname", 50, "signalcharbyname charname ID", std::bind(ConsoleSignalCharByName, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("tell", 50, "tell [name] [message]", std::bind(ConsoleTell, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("unlock", 150, "unlock", std::bind(ConsoleUnlock, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("uptime", 50, "uptime [zoneID#]", std::bind(ConsoleUptime, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("version", 50, "version", std::bind(ConsoleVersion, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("who", 50, "who", std::bind(ConsoleWho, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("whoami", 50, "whoami", std::bind(ConsoleWhoami, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("worldshutdown", 200, "worldshutdown", std::bind(ConsoleWorldShutdown, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("zonebootup", 150, "zonebootup [ZoneServerID] [zonename]", std::bind(ConsoleZoneBootup, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("zonelock", 150, "zonelock [list|lock|unlock] [zonename]", std::bind(ConsoleZoneLock, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("zoneshutdown", 150, "zoneshutdown [zonename or ZoneServerID]", std::bind(ConsoleZoneShutdown, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("zonestatus", 50, "zonestatus", std::bind(ConsoleZoneStatus, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3));console->RegisterCall("ping", 50, "ping", std::bind(ConsoleNull, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("quit", 50, "quit", std::bind(ConsoleQuit, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); - console->RegisterCall("exit", 50, "exit", std::bind(ConsoleQuit, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); + console->RegisterCall( + "acceptmessages", + 50, + "acceptmessages [on/off]", + std::bind( + ConsoleAcceptMessages, + std::placeholders::_1, + std::placeholders::_2, + std::placeholders::_3 + )); + console->RegisterCall( + "api", + 200, + "api", + std::bind(ConsoleApi, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); + console->RegisterCall( + "auction", + 50, + "auction [message]", + std::bind( + ConsoleAuction, + std::placeholders::_1, + std::placeholders::_2, + std::placeholders::_3 + )); + console->RegisterCall( + "broadcast", + 50, + "broadcast [message]", + std::bind( + ConsoleBroadcast, + std::placeholders::_1, + std::placeholders::_2, + std::placeholders::_3 + )); + console->RegisterCall( + "echo", + 50, + "echo [on/off]", + std::bind(ConsoleNull, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); + console->RegisterCall( + "emote", + 50, + "emote [zonename or charname or world] [type] [message]", + std::bind(ConsoleEmote, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); + console->RegisterCall( + "flag", + 200, + "flag [status] [accountname]", + std::bind(ConsoleFlag, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); + console->RegisterCall( + "gmsay", + 50, + "gmsay [message]", + std::bind(ConsoleGMSay, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); + console->RegisterCall( + "iplookup", + 50, + "IPLookup [name]", + std::bind( + ConsoleIpLookup, + std::placeholders::_1, + std::placeholders::_2, + std::placeholders::_3 + )); + console->RegisterCall( + "kick", + 150, + "kick [charname]", + std::bind(ConsoleKick, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); + console->RegisterCall( + "lock", + 150, + "lock", + std::bind(ConsoleLock, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); + console->RegisterCall( + "lsreconnect", + 50, + "LSReconnect", + std::bind(ConsoleNull, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); + console->RegisterCall( + "md5", + 50, + "md5", + std::bind(ConsoleMd5, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); + console->RegisterCall( + "ooc", + 50, + "ooc [message]", + std::bind(ConsoleOOC, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); + console->RegisterCall( + "reloadworld", + 200, + "reloadworld", + std::bind( + ConsoleReloadWorld, + std::placeholders::_1, + std::placeholders::_2, + std::placeholders::_3 + )); + console->RegisterCall( + "setpass", + 200, + "setpass [accountname] [newpass]", + std::bind( + ConsoleSetPass, + std::placeholders::_1, + std::placeholders::_2, + std::placeholders::_3 + )); + console->RegisterCall( + "signalcharbyname", + 50, + "signalcharbyname charname ID", + std::bind( + ConsoleSignalCharByName, + std::placeholders::_1, + std::placeholders::_2, + std::placeholders::_3 + )); + console->RegisterCall( + "tell", + 50, + "tell [name] [message]", + std::bind(ConsoleTell, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); + console->RegisterCall( + "unlock", + 150, + "unlock", + std::bind( + ConsoleUnlock, + std::placeholders::_1, + std::placeholders::_2, + std::placeholders::_3 + )); + console->RegisterCall( + "uptime", + 50, + "uptime [zoneID#]", + std::bind( + ConsoleUptime, + std::placeholders::_1, + std::placeholders::_2, + std::placeholders::_3 + )); + console->RegisterCall( + "version", + 50, + "version", + std::bind( + ConsoleVersion, + std::placeholders::_1, + std::placeholders::_2, + std::placeholders::_3 + )); + console->RegisterCall( + "who", + 50, + "who", + std::bind(ConsoleWho, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); + console->RegisterCall( + "whoami", + 50, + "whoami", + std::bind( + ConsoleWhoami, + std::placeholders::_1, + std::placeholders::_2, + std::placeholders::_3 + )); + console->RegisterCall( + "worldshutdown", + 200, + "worldshutdown", + std::bind( + ConsoleWorldShutdown, + std::placeholders::_1, + std::placeholders::_2, + std::placeholders::_3 + )); + console->RegisterCall( + "zonebootup", + 150, + "zonebootup [ZoneServerID] [zonename]", + std::bind( + ConsoleZoneBootup, + std::placeholders::_1, + std::placeholders::_2, + std::placeholders::_3 + )); + console->RegisterCall( + "zonelock", + 150, + "zonelock [list|lock|unlock] [zonename]", + std::bind( + ConsoleZoneLock, + std::placeholders::_1, + std::placeholders::_2, + std::placeholders::_3 + )); + console->RegisterCall( + "zoneshutdown", + 150, + "zoneshutdown [zonename or ZoneServerID]", + std::bind( + ConsoleZoneShutdown, + std::placeholders::_1, + std::placeholders::_2, + std::placeholders::_3 + )); + console->RegisterCall( + "zonestatus", + 50, + "zonestatus", + std::bind( + ConsoleZoneStatus, + std::placeholders::_1, + std::placeholders::_2, + std::placeholders::_3 + )); + console->RegisterCall( + "ping", + 50, + "ping", + std::bind(ConsoleNull, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); + console->RegisterCall( + "quit", + 50, + "quit", + std::bind(ConsoleQuit, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); + console->RegisterCall( + "exit", + 50, + "exit", + std::bind(ConsoleQuit, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); } diff --git a/world/login_server.cpp b/world/login_server.cpp index 69778d34a..0043a15a5 100644 --- a/world/login_server.cpp +++ b/world/login_server.cpp @@ -360,20 +360,4 @@ void LoginServer::SendAccountUpdate(ServerPacket* pack) { strn0cpy(s->worldpassword, LoginPassword.c_str(), 30); SendPacket(pack); } -} - -bool LoginServer::Connected() -{ - if (IsLegacy) { - if (legacy_client) { - return legacy_client->Connected(); - } - } - else { - if (client) { - return client->Connected(); - } - } - - return false; -} +} \ No newline at end of file diff --git a/world/login_server.h b/world/login_server.h index 161c1388f..9134f4654 100644 --- a/world/login_server.h +++ b/world/login_server.h @@ -35,14 +35,12 @@ public: ~LoginServer(); bool Connect(); - void SendInfo(); void SendStatus(); void SendPacket(ServerPacket* pack); void SendAccountUpdate(ServerPacket* pack); bool Connected() { return IsLegacy ? legacy_client->Connected() : client->Connected(); } - bool MiniLogin() { return minilogin; } bool CanUpdate() { return CanAccountUpdate; } private: diff --git a/zone/api_service.cpp b/zone/api_service.cpp index 957d2b012..5be7a7927 100644 --- a/zone/api_service.cpp +++ b/zone/api_service.cpp @@ -34,13 +34,25 @@ extern Zone *zone; -EQ::Net::WebsocketLoginStatus -CheckLogin(EQ::Net::WebsocketServerConnection *connection, const std::string &username, const std::string &password) +/** + * @param connection + * @param username + * @param password + * @return + */ +EQ::Net::WebsocketLoginStatus CheckLogin( + EQ::Net::WebsocketServerConnection *connection, + const std::string &username, + const std::string &password +) { EQ::Net::WebsocketLoginStatus ret; ret.logged_in = false; - ret.account_id = database.CheckLogin(username.c_str(), password.c_str()); + + std::string prefix = "eqemu"; + + ret.account_id = database.CheckLogin(username.c_str(), password.c_str(), prefix.c_str()); if (ret.account_id == 0) { return ret; @@ -54,6 +66,11 @@ CheckLogin(EQ::Net::WebsocketServerConnection *connection, const std::string &us return ret; } +/** + * @param connection + * @param params + * @return + */ Json::Value ApiGetPacketStatistics(EQ::Net::WebsocketServerConnection *connection, Json::Value params) { if (zone->GetZoneID() == 0) {