From 868aaccf2899f5f2a95f8be5ed5f48ef7b28a8e0 Mon Sep 17 00:00:00 2001 From: Aadhavan Srinivasan Date: Thu, 13 Apr 2023 10:28:16 -0500 Subject: [PATCH] Added check for whether the destination user exists --- main.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/main.c b/main.c index ef29ffd..a41b5fb 100644 --- a/main.c +++ b/main.c @@ -20,6 +20,8 @@ User** create_user_list(char* filename); void sigint_handler(int dummy); User* fetch_user(char* username); +int user_to_index(User* user); +bool user_equals(User* this, User* other); User** users; int num_users; @@ -120,10 +122,17 @@ int main() { } printf("Your message is: %s\n",message_string); - Message message = new_message(message_string,from_user[i],to_user[i]); + if (user_to_index(to_user[i]) < 0) { + printf("Recipient user does not exist!\n"); + return -20; + } + + Message* message = new_message(message_string,from_user[i],to_user[i]); stack_push( message_stack[user_to_index(to_user[i])],message ); + printf("Message has been pushed onto stack for %s\n",to_user[i]->username); + close(conn_sockets[i]); @@ -205,7 +214,7 @@ User* fetch_user(char* username) { } int user_to_index(User* user) { - int index = 0; + int index = -1; for (int i=0;i < num_users; i++) { if (user_equals(users[i],user) == true) { index = i;