showing client whether he is logging in or registering

This commit is contained in:
Václav Šmejkal 2025-02-04 22:07:18 +01:00
parent 240e7a79af
commit af1a1d8855
Signed by: ENGO150
GPG Key ID: 4A57E86482968843
2 changed files with 8 additions and 7 deletions

View File

@ -52,8 +52,9 @@ enum WHY2_CHAT_SERVER_TYPE //TYPE OF SERVER
#define WHY2_CHAT_CODE_LIST_SERVER "SC5" //SAME AS WHY2_CHAT_CODE_LIST BUT BACK TO THE CLIENT
#define WHY2_CHAT_CODE_VERSION_SERVER "SC6" //SAME AS WHY2_CHAT_CODE_VERSION BUT BACK TO THE CLIENT
#define WHY2_CHAT_CODE_DM_SERVER "SC7" //SAME AS WHY2_CHAT_CODE_DM BUT BACK TO THE CLIENT
#define WHY2_CHAT_CODE_ENTER_PASSWORD "SC8" //RECEIVE PASSWORD FROM USER
#define WHY2_CHAT_CODE_INVALID_PASSWORD "SC9"//🌸ꗥ~ꗥ🌸 𝐢 𝐡𝐚𝐭𝐞 𝐲𝐨𝐮 🌸ꗥ~ꗥ🌸
#define WHY2_CHAT_CODE_REGISTER "SC8" //RECEIVE PASSWORD FROM USER (REGISTER)
#define WHY2_CHAT_CODE_LOGIN "SC9" //RECEIVE PASSWORD FROM USER (LOGIN)
#define WHY2_CHAT_CODE_INVALID_PASSWORD "SCA"//🌸ꗥ~ꗥ🌸 𝐢 𝐡𝐚𝐭𝐞 𝐲𝐨𝐮 🌸ꗥ~ꗥ🌸
//(CLIENT -> SERVER) CODES
#define WHY2_CHAT_CODE_CLIENT_SERVER_KEY_EXCHANGE "CS0" //TELL SERVER YOU ARE SHARING YOUR PUBLIC KEY

View File

@ -873,7 +873,7 @@ void *why2_communicate_thread(void *arg)
char *user_config_path = why2_get_server_users_path();
if (!why2_toml_contains(user_config_path, decoded_buffer)) //REGISTRATION
{
send_socket_code_deallocate(NULL, why2_chat_server_config("server_username"), client_server_key, connection, WHY2_CHAT_CODE_ENTER_PASSWORD);
send_socket_code_deallocate(NULL, why2_chat_server_config("server_username"), client_server_key, connection, WHY2_CHAT_CODE_REGISTER);
//KEEP READING UNTIL CODE ARRIVES
char *code = NULL;
@ -902,7 +902,7 @@ void *why2_communicate_thread(void *arg)
why2_toml_write(user_config_path, username, password); //SAVE PASSWORD
} else //LOGIN
{
send_socket_code_deallocate(NULL, why2_chat_server_config("server_username"), client_server_key, connection, WHY2_CHAT_CODE_ENTER_PASSWORD);
send_socket_code_deallocate(NULL, why2_chat_server_config("server_username"), client_server_key, connection, WHY2_CHAT_CODE_LOGIN);
unsigned char max_tries = (unsigned char) server_config_int("max_password_tries");
@ -1496,17 +1496,17 @@ void *why2_listen_server(void *socket)
why2_deallocate(pm_info[i]);
}
why2_deallocate(pm_info);
} else if (strcmp(code, WHY2_CHAT_CODE_ENTER_PASSWORD) == 0 || strcmp(code, WHY2_CHAT_CODE_INVALID_PASSWORD) == 0) //PICK USERNAME (COULD BE CAUSE BY INVALID USERNAME)
} else if ((bool_buffer_1 = (strcmp(code, WHY2_CHAT_CODE_REGISTER) == 0)) || (bool_buffer_2 = (strcmp(code, WHY2_CHAT_CODE_LOGIN) == 0)) || (bool_buffer_3 = (strcmp(code, WHY2_CHAT_CODE_INVALID_PASSWORD) == 0))) //PICK USERNAME (COULD BE CAUSE BY INVALID USERNAME)
{
__why2_set_asking_password(1);
if (strcmp(code, WHY2_CHAT_CODE_INVALID_PASSWORD) == 0) //INVALID USERNAME
if (bool_buffer_3) //INVALID USERNAME
{
printf(WHY2_CLEAR_AND_GO_UP WHY2_CLEAR_AND_GO_UP "%s\nInvalid password!\n\n\n", asking_password > 1 ? WHY2_CLEAR_AND_GO_UP : "");
fflush(stdout);
}
printf("%s%s\nEnter password:\n", asking_password++ > 0 ? WHY2_CLEAR_AND_GO_UP : "", WHY2_CLEAR_AND_GO_UP WHY2_CLEAR_AND_GO_UP);
printf("%s%s\nEnter password:%s\n", asking_password++ > 0 ? WHY2_CLEAR_AND_GO_UP : "", WHY2_CLEAR_AND_GO_UP WHY2_CLEAR_AND_GO_UP, bool_buffer_1 ? " (REGISTER)" : (bool_buffer_2 ? " (LOGIN)" : ""));
fflush(stdout);
//TODO! THIS SOMEHOW BREAKS THE CLIENT INPUT
}