mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Clean up some auth packet handling related code
This commit is contained in:
parent
00f71c3b9d
commit
a65f6f07f3
9 changed files with 52 additions and 98 deletions
|
@ -183,7 +183,7 @@ void Client::handleCommand_AccessDenied(NetworkPacket* pkt)
|
|||
m_access_denied_reason = "Unknown";
|
||||
|
||||
if (pkt->getCommand() != TOCLIENT_ACCESS_DENIED) {
|
||||
// 13/03/15 Legacy code from 0.4.12 and lesser but is still used
|
||||
// Legacy code from 0.4.12 and older but is still used
|
||||
// in some places of the server code
|
||||
if (pkt->getSize() >= 2) {
|
||||
std::wstring wide_reason;
|
||||
|
@ -196,14 +196,14 @@ void Client::handleCommand_AccessDenied(NetworkPacket* pkt)
|
|||
if (pkt->getSize() < 1)
|
||||
return;
|
||||
|
||||
u8 denyCode = SERVER_ACCESSDENIED_UNEXPECTED_DATA;
|
||||
u8 denyCode;
|
||||
*pkt >> denyCode;
|
||||
|
||||
if (denyCode == SERVER_ACCESSDENIED_SHUTDOWN ||
|
||||
denyCode == SERVER_ACCESSDENIED_CRASH) {
|
||||
*pkt >> m_access_denied_reason;
|
||||
if (m_access_denied_reason.empty()) {
|
||||
if (m_access_denied_reason.empty())
|
||||
m_access_denied_reason = accessDeniedStrings[denyCode];
|
||||
}
|
||||
u8 reconnect;
|
||||
*pkt >> reconnect;
|
||||
m_access_denied_reconnect = reconnect & 1;
|
||||
|
@ -220,9 +220,8 @@ void Client::handleCommand_AccessDenied(NetworkPacket* pkt)
|
|||
// Until then (which may be never), this is outside
|
||||
// of the defined protocol.
|
||||
*pkt >> m_access_denied_reason;
|
||||
if (m_access_denied_reason.empty()) {
|
||||
if (m_access_denied_reason.empty())
|
||||
m_access_denied_reason = "Unknown";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1006,7 +1006,7 @@ enum AuthMechanism
|
|||
AUTH_MECHANISM_FIRST_SRP = 1 << 2,
|
||||
};
|
||||
|
||||
enum AccessDeniedCode {
|
||||
enum AccessDeniedCode : u8 {
|
||||
SERVER_ACCESSDENIED_WRONG_PASSWORD,
|
||||
SERVER_ACCESSDENIED_UNEXPECTED_DATA,
|
||||
SERVER_ACCESSDENIED_SINGLEPLAYER,
|
||||
|
@ -1029,18 +1029,18 @@ enum NetProtoCompressionMode {
|
|||
|
||||
const static std::string accessDeniedStrings[SERVER_ACCESSDENIED_MAX] = {
|
||||
"Invalid password",
|
||||
"Your client sent something the server didn't expect. Try reconnecting or updating your client",
|
||||
"Your client sent something the server didn't expect. Try reconnecting or updating your client.",
|
||||
"The server is running in simple singleplayer mode. You cannot connect.",
|
||||
"Your client's version is not supported.\nPlease contact server administrator.",
|
||||
"Player name contains disallowed characters.",
|
||||
"Player name not allowed.",
|
||||
"Too many users.",
|
||||
"Your client's version is not supported.\nPlease contact the server administrator.",
|
||||
"Player name contains disallowed characters",
|
||||
"Player name not allowed",
|
||||
"Too many users",
|
||||
"Empty passwords are disallowed. Set a password and try again.",
|
||||
"Another client is connected with this name. If your client closed unexpectedly, try again in a minute.",
|
||||
"Server authentication failed. This is likely a server error.",
|
||||
"Internal server error",
|
||||
"",
|
||||
"Server shutting down.",
|
||||
"This server has experienced an internal error. You will now be disconnected."
|
||||
"Server shutting down",
|
||||
"The server has experienced an internal error. You will now be disconnected."
|
||||
};
|
||||
|
||||
enum PlayerListModifer : u8
|
||||
|
|
|
@ -176,7 +176,7 @@ const ClientCommandFactory clientCommandFactoryTable[TOCLIENT_NUM_MSG_TYPES] =
|
|||
{ "TOCLIENT_ACTIVE_OBJECT_MESSAGES", 0, true }, // 0x32 (may be sent as unrel over channel 1 too)
|
||||
{ "TOCLIENT_HP", 0, true }, // 0x33
|
||||
{ "TOCLIENT_MOVE_PLAYER", 0, true }, // 0x34
|
||||
{ "TOCLIENT_ACCESS_DENIED_LEGACY", 0, true }, // 0x35
|
||||
null_command_factory, // 0x35
|
||||
{ "TOCLIENT_FOV", 0, true }, // 0x36
|
||||
{ "TOCLIENT_DEATHSCREEN", 0, true }, // 0x37
|
||||
{ "TOCLIENT_MEDIA", 2, true }, // 0x38
|
||||
|
|
|
@ -227,7 +227,7 @@ void Server::handleCommand_Init(NetworkPacket* pkt)
|
|||
Compose auth methods for answer
|
||||
*/
|
||||
std::string encpwd; // encrypted Password field for the user
|
||||
bool has_auth = m_script->getAuth(playername, &encpwd, NULL);
|
||||
bool has_auth = m_script->getAuth(playername, &encpwd, nullptr);
|
||||
u32 auth_mechs = 0;
|
||||
|
||||
client->chosen_mech = AUTH_MECHANISM_NONE;
|
||||
|
@ -1461,11 +1461,9 @@ void Server::handleCommand_FirstSrp(NetworkPacket* pkt)
|
|||
session_t peer_id = pkt->getPeerId();
|
||||
RemoteClient *client = getClient(peer_id, CS_Invalid);
|
||||
ClientState cstate = client->getState();
|
||||
const std::string playername = client->getName();
|
||||
|
||||
std::string playername = client->getName();
|
||||
|
||||
std::string salt;
|
||||
std::string verification_key;
|
||||
std::string salt, verification_key;
|
||||
|
||||
std::string addr_s = getPeerAddress(peer_id).serializeString();
|
||||
u8 is_empty;
|
||||
|
@ -1551,8 +1549,6 @@ void Server::handleCommand_SrpBytesA(NetworkPacket* pkt)
|
|||
RemoteClient *client = getClient(peer_id, CS_Invalid);
|
||||
ClientState cstate = client->getState();
|
||||
|
||||
bool wantSudo = (cstate == CS_Active);
|
||||
|
||||
if (!((cstate == CS_HelloSent) || (cstate == CS_Active))) {
|
||||
actionstream << "Server: got SRP _A packet in wrong state " << cstate <<
|
||||
" from " << getPeerAddress(peer_id).serializeString() <<
|
||||
|
@ -1560,6 +1556,8 @@ void Server::handleCommand_SrpBytesA(NetworkPacket* pkt)
|
|||
return;
|
||||
}
|
||||
|
||||
const bool wantSudo = (cstate == CS_Active);
|
||||
|
||||
if (client->chosen_mech != AUTH_MECHANISM_NONE) {
|
||||
actionstream << "Server: got SRP _A packet, while auth is already "
|
||||
"going on with mech " << client->chosen_mech << " from " <<
|
||||
|
@ -1606,8 +1604,7 @@ void Server::handleCommand_SrpBytesA(NetworkPacket* pkt)
|
|||
|
||||
client->chosen_mech = chosen;
|
||||
|
||||
std::string salt;
|
||||
std::string verifier;
|
||||
std::string salt, verifier;
|
||||
|
||||
if (based_on == 0) {
|
||||
|
||||
|
@ -1657,10 +1654,10 @@ void Server::handleCommand_SrpBytesM(NetworkPacket* pkt)
|
|||
session_t peer_id = pkt->getPeerId();
|
||||
RemoteClient *client = getClient(peer_id, CS_Invalid);
|
||||
ClientState cstate = client->getState();
|
||||
std::string addr_s = getPeerAddress(pkt->getPeerId()).serializeString();
|
||||
std::string playername = client->getName();
|
||||
const std::string addr_s = client->getAddress().serializeString();
|
||||
const std::string playername = client->getName();
|
||||
|
||||
bool wantSudo = (cstate == CS_Active);
|
||||
const bool wantSudo = (cstate == CS_Active);
|
||||
|
||||
verbosestream << "Server: Received TOSERVER_SRP_BYTES_M." << std::endl;
|
||||
|
||||
|
@ -1720,8 +1717,7 @@ void Server::handleCommand_SrpBytesM(NetworkPacket* pkt)
|
|||
if (client->create_player_on_auth_success) {
|
||||
m_script->createAuth(playername, client->enc_pwd);
|
||||
|
||||
std::string checkpwd; // not used, but needed for passing something
|
||||
if (!m_script->getAuth(playername, &checkpwd, NULL)) {
|
||||
if (!m_script->getAuth(playername, nullptr, nullptr)) {
|
||||
errorstream << "Server: " << playername <<
|
||||
" cannot be authenticated (auth handler does not work?)" <<
|
||||
std::endl;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue