mirror of
https://github.com/minetest/minetest.git
synced 2024-11-23 16:13:46 +01:00
Fix password changing getting stuck if wrong password is entered once
This commit is contained in:
parent
3d2bf8fb02
commit
00f71c3b9d
@ -596,6 +596,15 @@ void RemoteClient::notifyEvent(ClientStateEvent event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RemoteClient::resetChosenMech()
|
||||||
|
{
|
||||||
|
if (chosen_mech == AUTH_MECHANISM_SRP) {
|
||||||
|
srp_verifier_delete((SRPVerifier *) auth_data);
|
||||||
|
auth_data = nullptr;
|
||||||
|
}
|
||||||
|
chosen_mech = AUTH_MECHANISM_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
u64 RemoteClient::uptime() const
|
u64 RemoteClient::uptime() const
|
||||||
{
|
{
|
||||||
return porting::getTimeS() - m_connection_time;
|
return porting::getTimeS() - m_connection_time;
|
||||||
|
@ -243,6 +243,8 @@ public:
|
|||||||
u32 allowed_auth_mechs = 0;
|
u32 allowed_auth_mechs = 0;
|
||||||
u32 allowed_sudo_mechs = 0;
|
u32 allowed_sudo_mechs = 0;
|
||||||
|
|
||||||
|
void resetChosenMech();
|
||||||
|
|
||||||
bool isSudoMechAllowed(AuthMechanism mech)
|
bool isSudoMechAllowed(AuthMechanism mech)
|
||||||
{ return allowed_sudo_mechs & mech; }
|
{ return allowed_sudo_mechs & mech; }
|
||||||
bool isMechAllowed(AuthMechanism mech)
|
bool isMechAllowed(AuthMechanism mech)
|
||||||
|
@ -1639,6 +1639,7 @@ void Server::handleCommand_SrpBytesA(NetworkPacket* pkt)
|
|||||||
<< std::endl;
|
<< std::endl;
|
||||||
if (wantSudo) {
|
if (wantSudo) {
|
||||||
DenySudoAccess(peer_id);
|
DenySudoAccess(peer_id);
|
||||||
|
client->resetChosenMech();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1705,6 +1706,7 @@ void Server::handleCommand_SrpBytesM(NetworkPacket* pkt)
|
|||||||
<< " tried to change their password, but supplied wrong"
|
<< " tried to change their password, but supplied wrong"
|
||||||
<< " (SRP) password for authentication." << std::endl;
|
<< " (SRP) password for authentication." << std::endl;
|
||||||
DenySudoAccess(peer_id);
|
DenySudoAccess(peer_id);
|
||||||
|
client->resetChosenMech();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user