From 3d2172ccb3b590e575e94a235bf8ff8544c67ac5 Mon Sep 17 00:00:00 2001 From: Terence Denning <t.denning@student.unimelb.edu.au> Date: Thu, 25 Apr 2019 18:02:41 +1000 Subject: [PATCH] fixed user bug --- http-server.c | 36 ++++++++++++++++++++++++++---------- image_tagger | Bin 22944 -> 22984 bytes 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/http-server.c b/http-server.c index aa97a81..2a55c86 100644 --- a/http-server.c +++ b/http-server.c @@ -29,6 +29,7 @@ void reset_game(); void reset_user(int sockfd); void set_user(int sockfd); void user_ready(int sockfd); +void print_details(); // constants static char const * const HTTP_200_FORMAT = "HTTP/1.1 200 OK\r\n\ @@ -114,7 +115,11 @@ static bool handle_http_request(int sockfd) if (method == GET) { - if( strstr(buff, "?start=Start") != NULL ){ + if( strstr(buff, "start=Start") != NULL ){ + if( strcmp(webpage, "html/2_start.html") ){ + user_ready(sockfd); + } + /* Handle resetting users when starting a new game */ printf("gameover: %d\n", gameover); if(gameover == 0){ @@ -122,9 +127,7 @@ static bool handle_http_request(int sockfd) } else { printf("Restarting game, user1: %d, user2: %d\n", user1, user2); gameover = 0; - } - - user_ready(sockfd); + } webpage = "html/3_first_turn.html"; } else if( strstr(buff, "Cookie:") != NULL ) { webpage = "html/1_intro.html"; @@ -161,6 +164,7 @@ static bool handle_http_request(int sockfd) return false; } close(filefd); + } else if (method == POST) { @@ -207,7 +211,7 @@ static bool handle_http_request(int sockfd) stat(webpage, &st); username = strstr(buff, "user=") + 5; - set_user(sockfd); + //set_user(sockfd); username_length = strlen(username); added_length = username_length + 2; @@ -215,15 +219,14 @@ static bool handle_http_request(int sockfd) n = sprintf(buff, HTTP_200_FORMAT_WITH_COOKIE, username, size); } else if(strstr(buff, "guess=Guess") != NULL) { + char *keyword = strstr(buff, "keyword=")+8; int keyword_length = strlen(keyword); keyword[keyword_length-12] = '\0'; - - - if (sockfd == user1){ + if (sockfd == user1){ /* if other player is ready then accept guesses */ - if(user2_start == 1){ + if( user2_start == 1 ){ webpage = "html/4_accepted.html"; strcpy(user1_guesses[user1_guess_number], keyword); user1_guess_number++; @@ -243,7 +246,7 @@ static bool handle_http_request(int sockfd) webpage = "html/5_discarded.html"; } } else if(sockfd == user2){ - if(user1_start == 1){ + if( user1_start == 1 ){ webpage = "html/4_accepted.html"; strcpy(user2_guesses[user2_guess_number], keyword); user2_guess_number++; @@ -267,6 +270,13 @@ static bool handle_http_request(int sockfd) stat(webpage, &st); n = sprintf(buff, HTTP_200_FORMAT, st.st_size); + + if(sockfd == user1){ + printf("I AM USER1"); + } else if( sockfd == user2 ){ + printf("I AM USER2"); + } + print_details(); } else { printf("\n\n\nerror reading html...\n\n\n"); @@ -299,6 +309,7 @@ static bool handle_http_request(int sockfd) // put the separator buff[p2++] = ' '; buff[p2++] = ' '; + // copy the username strncpy(buff + p2, username, username_length); if (write(sockfd, buff, size) < 0) @@ -434,6 +445,8 @@ int main(int argc, char * argv[]) void reset_game(){ gameover = 1; + user1 = -1; + user2 = -1; user1_guess_number = 0; user2_guess_number = 0; user1_start = 0; @@ -486,3 +499,6 @@ void user_ready(int sockfd){ } } +void print_details(){ + printf("User1: %d, User2: %d, User1_start: %d, User2_start: %d\n\n", user1, user2, user1_start, user2_start); +} diff --git a/image_tagger b/image_tagger index 59fc34b0f3a46ccd4f87ec7c6ebd6168c16caea4..5f3d42ef6698303f7771d7659733bd68e3bd6503 100755 GIT binary patch delta 4273 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 delta 3890 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 -- GitLab