prepared client's receive for codes
This commit is contained in:
parent
db032d3066
commit
4ca411f32b
@ -942,6 +942,7 @@ void *why2_listen_server(void *socket)
|
|||||||
//CONTENT
|
//CONTENT
|
||||||
char *username = NULL;
|
char *username = NULL;
|
||||||
char *message = NULL;
|
char *message = NULL;
|
||||||
|
char *code = NULL;
|
||||||
|
|
||||||
//SERVER SETTINGS
|
//SERVER SETTINGS
|
||||||
int max_uname = -1;
|
int max_uname = -1;
|
||||||
@ -962,6 +963,7 @@ void *why2_listen_server(void *socket)
|
|||||||
//GET CONTENT
|
//GET CONTENT
|
||||||
username = get_string_from_json_string(read, "username");
|
username = get_string_from_json_string(read, "username");
|
||||||
message = get_string_from_json_string(read, "message");
|
message = get_string_from_json_string(read, "message");
|
||||||
|
code = get_string_from_json_string(read, "code");
|
||||||
|
|
||||||
if (server_uname == NULL) //GET SERVER USERNAME
|
if (server_uname == NULL) //GET SERVER USERNAME
|
||||||
{
|
{
|
||||||
@ -979,18 +981,18 @@ void *why2_listen_server(void *socket)
|
|||||||
continuing = 1;
|
continuing = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((strcmp(username, server_uname) == 0 && strncmp(message, "code", 4) == 0) && !continuing) //CODE WAS SENT
|
if ((strcmp(username, server_uname) == 0 && code != NULL) && !continuing) //CODE WAS SENT
|
||||||
{
|
{
|
||||||
if (strcmp(message, WHY2_CHAT_CODE_SSQC) == 0) //SERVER BROKE UP WITH YOU
|
if (strcmp(code, WHY2_CHAT_CODE_SSQC) == 0) //SERVER BROKE UP WITH YOU
|
||||||
{
|
{
|
||||||
printf("%s%s%s\nServer closed the connection.\n", asking_username > max_tries ? WHY2_CLEAR_AND_GO_UP : "", WHY2_CLEAR_AND_GO_UP WHY2_CLEAR_AND_GO_UP, (asking_username == 0 ? "\n": ""));
|
printf("%s%s%s\nServer closed the connection.\n", asking_username > max_tries ? WHY2_CLEAR_AND_GO_UP : "", WHY2_CLEAR_AND_GO_UP WHY2_CLEAR_AND_GO_UP, (asking_username == 0 ? "\n": ""));
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
|
|
||||||
pthread_cancel(getline_thread); //CANCEL CLIENT getline
|
pthread_cancel(getline_thread); //CANCEL CLIENT getline
|
||||||
exiting = 1; //EXIT THIS THREAD
|
exiting = 1; //EXIT THIS THREAD
|
||||||
} else if (strcmp(message, WHY2_CHAT_CODE_PICK_USERNAME) == 0 || strcmp(message, WHY2_CHAT_CODE_INVALID_USERNAME) == 0) //PICK USERNAME (COULD BE CAUSE BY INVALID USERNAME)
|
} else if (strcmp(code, WHY2_CHAT_CODE_PICK_USERNAME) == 0 || strcmp(code, WHY2_CHAT_CODE_INVALID_USERNAME) == 0) //PICK USERNAME (COULD BE CAUSE BY INVALID USERNAME)
|
||||||
{
|
{
|
||||||
if (strcmp(message, WHY2_CHAT_CODE_INVALID_USERNAME) == 0) //INVALID USERNAME
|
if (strcmp(code, WHY2_CHAT_CODE_INVALID_USERNAME) == 0) //INVALID USERNAME
|
||||||
{
|
{
|
||||||
printf(WHY2_CLEAR_AND_GO_UP WHY2_CLEAR_AND_GO_UP "%s\nInvalid username!\n\n\n", asking_username > 1 ? WHY2_CLEAR_AND_GO_UP : "");
|
printf(WHY2_CLEAR_AND_GO_UP WHY2_CLEAR_AND_GO_UP "%s\nInvalid username!\n\n\n", asking_username > 1 ? WHY2_CLEAR_AND_GO_UP : "");
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
@ -998,14 +1000,14 @@ void *why2_listen_server(void *socket)
|
|||||||
|
|
||||||
printf("%s%sEnter username (a-Z, 0-9; %d-%d characters):\n", asking_username++ > 0 ? WHY2_CLEAR_AND_GO_UP : "", WHY2_CLEAR_AND_GO_UP, min_uname, max_uname);
|
printf("%s%sEnter username (a-Z, 0-9; %d-%d characters):\n", asking_username++ > 0 ? WHY2_CLEAR_AND_GO_UP : "", WHY2_CLEAR_AND_GO_UP, min_uname, max_uname);
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
} else if (strncmp(message, WHY2_CHAT_CODE_LIST_SERVER, strlen(WHY2_CHAT_CODE_LIST_SERVER)) == 0) //LIST USERS
|
} else if (strcmp(code, WHY2_CHAT_CODE_LIST_SERVER) == 0) //LIST USERS
|
||||||
{
|
{
|
||||||
why2_bool printing_id = 0;
|
why2_bool printing_id = 0;
|
||||||
|
|
||||||
printf("\nList:\n-----\n");
|
printf("\nList:\n-----\n");
|
||||||
|
|
||||||
//ITER TROUGH LIST OF USERS FROM SERVER
|
//ITER TROUGH LIST OF USERS FROM SERVER
|
||||||
for (unsigned long i = strlen(WHY2_CHAT_CODE_LIST_SERVER) + 1; i < strlen(message); i++)
|
for (unsigned long i = 0; i < strlen(message); i++)
|
||||||
{
|
{
|
||||||
if (message[i] == ';')
|
if (message[i] == ';')
|
||||||
{
|
{
|
||||||
@ -1018,24 +1020,20 @@ void *why2_listen_server(void *socket)
|
|||||||
|
|
||||||
printf("\n");
|
printf("\n");
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
} else if (strncmp(message, WHY2_CHAT_CODE_VERSION_SERVER, strlen(WHY2_CHAT_CODE_VERSION_SERVER)) == 0)
|
} else if (strcmp(code, WHY2_CHAT_CODE_VERSION_SERVER) == 0)
|
||||||
{
|
{
|
||||||
char *server_version = message + strlen(WHY2_CHAT_CODE_VERSION_SERVER) + 1;
|
|
||||||
|
|
||||||
//INFO
|
//INFO
|
||||||
printf("\nServer Version: %s\nClient Version: %s\n\n", server_version, WHY2_VERSION);
|
printf("\nServer Version: %s\nClient Version: %s\n\n", message, WHY2_VERSION);
|
||||||
|
|
||||||
//SERVER IS OUTDATED
|
//SERVER IS OUTDATED
|
||||||
if (atoi(server_version + 1) < atoi(WHY2_VERSION + 1))
|
if (atoi(message + 1) < atoi(WHY2_VERSION + 1))
|
||||||
{
|
{
|
||||||
printf("Server is outdated. Some new features may not work correctly.\n\n");
|
printf("Server is outdated. Some new features may not work correctly.\n\n");
|
||||||
}
|
}
|
||||||
} else if (strncmp(message, WHY2_CHAT_CODE_PM_SERVER, strlen(WHY2_CHAT_CODE_PM_SERVER)) == 0)
|
} else if (strcmp(code, WHY2_CHAT_CODE_PM_SERVER) == 0)
|
||||||
{
|
{
|
||||||
printf(WHY2_CLEAR_AND_GO_UP WHY2_CLEAR_AND_GO_UP); //do not fucking ask me how the fucking formatting fucking works, i dont fucking know
|
printf(WHY2_CLEAR_AND_GO_UP WHY2_CLEAR_AND_GO_UP); //do not fucking ask me how the fucking formatting fucking works, i dont fucking know
|
||||||
|
|
||||||
char *received_pm = message + strlen(WHY2_CHAT_CODE_PM_SERVER) + 1;
|
|
||||||
|
|
||||||
//DECODED MESSAGE, AUTHOR AND RECIPIENT; 0 = AUTHOR, 1 = RECIPIENT, 2 = MESSAGE
|
//DECODED MESSAGE, AUTHOR AND RECIPIENT; 0 = AUTHOR, 1 = RECIPIENT, 2 = MESSAGE
|
||||||
char **pm_info = why2_calloc(3, sizeof(char*));
|
char **pm_info = why2_calloc(3, sizeof(char*));
|
||||||
|
|
||||||
@ -1043,9 +1041,9 @@ void *why2_listen_server(void *socket)
|
|||||||
unsigned long n_buffer = 0;
|
unsigned long n_buffer = 0;
|
||||||
|
|
||||||
//DECODE
|
//DECODE
|
||||||
for (unsigned long i = 0; i < strlen(received_pm); i++)
|
for (unsigned long i = 0; i < strlen(message); i++)
|
||||||
{
|
{
|
||||||
if (received_pm[i] == ';') //FUTURE ME, THIS IS PRETTY MUCH split FUNCTION IMPLEMENTATION
|
if (message[i] == ';') //FUTURE ME, THIS IS PRETTY MUCH split FUNCTION IMPLEMENTATION
|
||||||
{
|
{
|
||||||
//ALLOCATE INFO
|
//ALLOCATE INFO
|
||||||
pm_info[n_buffer] = why2_malloc((i - i_buffer) + 1);
|
pm_info[n_buffer] = why2_malloc((i - i_buffer) + 1);
|
||||||
@ -1053,7 +1051,7 @@ void *why2_listen_server(void *socket)
|
|||||||
//COPY INFO
|
//COPY INFO
|
||||||
for (unsigned long j = i_buffer; j < i; j++)
|
for (unsigned long j = i_buffer; j < i; j++)
|
||||||
{
|
{
|
||||||
pm_info[n_buffer][j - i_buffer] = received_pm[j];
|
pm_info[n_buffer][j - i_buffer] = message[j];
|
||||||
}
|
}
|
||||||
pm_info[n_buffer][i - i_buffer] = '\0';
|
pm_info[n_buffer][i - i_buffer] = '\0';
|
||||||
|
|
||||||
@ -1077,11 +1075,11 @@ void *why2_listen_server(void *socket)
|
|||||||
why2_deallocate(pm_info[i]);
|
why2_deallocate(pm_info[i]);
|
||||||
}
|
}
|
||||||
why2_deallocate(pm_info);
|
why2_deallocate(pm_info);
|
||||||
} else if (strcmp(message, WHY2_CHAT_CODE_ENTER_PASSWORD) == 0 || strcmp(message, WHY2_CHAT_CODE_INVALID_PASSWORD) == 0) //PICK USERNAME (COULD BE CAUSE BY INVALID USERNAME)
|
} 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)
|
||||||
{
|
{
|
||||||
__why2_set_asking_password(1);
|
__why2_set_asking_password(1);
|
||||||
|
|
||||||
if (strcmp(message, WHY2_CHAT_CODE_INVALID_PASSWORD) == 0) //INVALID USERNAME
|
if (strcmp(code, WHY2_CHAT_CODE_INVALID_PASSWORD) == 0) //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 : "");
|
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);
|
fflush(stdout);
|
||||||
@ -1115,6 +1113,7 @@ void *why2_listen_server(void *socket)
|
|||||||
why2_deallocate(read);
|
why2_deallocate(read);
|
||||||
why2_deallocate(username);
|
why2_deallocate(username);
|
||||||
why2_deallocate(message);
|
why2_deallocate(message);
|
||||||
|
why2_deallocate(code);
|
||||||
}
|
}
|
||||||
|
|
||||||
why2_deallocate(server_uname);
|
why2_deallocate(server_uname);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user