aboutsummaryrefslogtreecommitdiff
path: root/src/client.cpp
diff options
context:
space:
mode:
authorMuhammad Rifqi Priyo Susanto <muhammadrifqipriyosusanto@gmail.com>2018-01-13 18:07:16 +0700
committerLoïc Blot <nerzhul@users.noreply.github.com>2018-01-13 12:07:16 +0100
commit792752997c5ae2aaa4f54d0a2e2af2a96d7d1e9f (patch)
tree568b578dd8cd5d0e579a4debc560d088c880d5e7 /src/client.cpp
parentfad263dec9e1fa7ae0886f768e22d8ee74e8553b (diff)
downloadminetest-792752997c5ae2aaa4f54d0a2e2af2a96d7d1e9f.tar.gz
minetest-792752997c5ae2aaa4f54d0a2e2af2a96d7d1e9f.tar.bz2
minetest-792752997c5ae2aaa4f54d0a2e2af2a96d7d1e9f.zip
Add confirmation on new player registration (#6849)
* Attempt to add registration confirmation Using SRP auth mechanism, if server sent AUTH_MECHANISM_FIRST_SRP that means the player isn't exist. Also tell player about the server and chosen username. Local game has localhost as IP address of the server. Add RenderingEngine::draw_menu_scene() to draw GUI and clouds background. aborted -> connection_aborted * Rewrite information message text Client::promptConfirmRegister() -> Client::promptConfirmRegistration()
Diffstat (limited to 'src/client.cpp')
-rw-r--r--src/client.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/client.cpp b/src/client.cpp
index e6af5c324..90f1c4e01 100644
--- a/src/client.cpp
+++ b/src/client.cpp
@@ -318,6 +318,10 @@ void Client::step(float dtime)
initial_step = false;
}
else if(m_state == LC_Created) {
+ if (m_is_registration_confirmation_state) {
+ // Waiting confirmation
+ return;
+ }
float &counter = m_connection_reinit_timer;
counter -= dtime;
if(counter <= 0.0) {
@@ -974,6 +978,18 @@ void Client::sendInit(const std::string &playerName)
Send(&pkt);
}
+void Client::promptConfirmRegistration(AuthMechanism chosen_auth_mechanism)
+{
+ m_chosen_auth_mech = chosen_auth_mechanism;
+ m_is_registration_confirmation_state = true;
+}
+
+void Client::confirmRegistration()
+{
+ m_is_registration_confirmation_state = false;
+ startAuth(m_chosen_auth_mech);
+}
+
void Client::startAuth(AuthMechanism chosen_auth_mechanism)
{
m_chosen_auth_mech = chosen_auth_mechanism;