diff --git a/.vscode/ipch/ab23cd8ac6e5a21a/http-server.ipch b/.vscode/ipch/ab23cd8ac6e5a21a/http-server.ipch index 2793f8f3ade6ff1e7d82a3895a263a978ce86674..77bc371b0b4a199291da28c422aa8a1071e6fa89 100644 Binary files a/.vscode/ipch/ab23cd8ac6e5a21a/http-server.ipch and b/.vscode/ipch/ab23cd8ac6e5a21a/http-server.ipch differ diff --git a/.vscode/ipch/f84947e8a755eb57/mmap_address.bin b/.vscode/ipch/f84947e8a755eb57/mmap_address.bin new file mode 100644 index 0000000000000000000000000000000000000000..93f05e1823747a395639026c3f8f5ecdf1511a26 Binary files /dev/null and b/.vscode/ipch/f84947e8a755eb57/mmap_address.bin differ diff --git a/http-server.c b/http-server.c index 31e7f79cef6cdb6f002a6f9a4e336ff961c72bee..690c7ce01685607eba63f288089730be5954c5a0 100644 --- a/http-server.c +++ b/http-server.c @@ -36,9 +36,13 @@ static int const HTTP_404_LENGTH = 45; static int user1 = -1; static int user1_start = 0; +char user1_guesses[100][100]; +int user1_guess_number = 0; static int user2 = -1; static int user2_start = 0; +char user2_guesses[100][100]; +int user2_guess_number = 0; static char *webpage; @@ -171,7 +175,9 @@ static bool handle_http_request(int sockfd) perror("write"); return false; } - webpage = "html/1_intro.html"; + + webpage = "html/7_gameover.html.html"; + int filefd = open(webpage, O_RDONLY); n = read(filefd, buff, 2048); if (n < 0) @@ -199,18 +205,66 @@ static bool handle_http_request(int sockfd) char *keyword = strstr(buff, "keyword=")+8; int keyword_length = strlen(keyword); keyword[keyword_length-12] = '\0'; - printf("keyword is: %s\n", keyword); if(sockfd == user1){ if(user2_start == 1){ webpage = "html/4_accepted.html"; - } else { + strcpy(user1_guesses[user1_guess_number], keyword); + printf("%s\n", user1_guesses[user1_guess_number]); + user1_guess_number++; + + for(int i=0; i<user2_guess_number; i++) + { + if(strcmp(user2_guesses[i], keyword) == 0){ + user1 = -1; + user2 = -1; + user1_guess_number = 0; + user2_guess_number = 0; + user1_start = 0; + user2_start = 0; + for(int i=0; i<100; i++){ + strcpy(user1_guesses[i], ""); + strcpy(user2_guesses[i],""); + } + webpage = "html/6_endgame.html"; + } + } + + } + else if(user2 == -1){ + webpage = "html/7_gameover.html"; + } + else { webpage = "html/5_discarded.html"; } } else if(sockfd == user2){ if(user1_start == 1){ webpage = "html/4_accepted.html"; - } else { + strcpy(user2_guesses[user2_guess_number], keyword); + printf("%s\n", user2_guesses[user2_guess_number]); + user2_guess_number++; + + for(int i=0; i<user1_guess_number; i++) + { + if(strcmp(user1_guesses[i], keyword) == 0){ + user1 = -1; + user2 = -1; + user1_guess_number = 0; + user2_guess_number = 0; + user1_start = 0; + user2_start = 0; + for(int i=0; i<100; i++){ + strcpy(user1_guesses[i], ""); + strcpy(user2_guesses[i],""); + } + webpage = "html/6_endgame.html"; + } + } + } + else if(user1 == -1){ + webpage = "html/7_gameover.html"; + } + else { webpage = "html/5_discarded.html"; } } else { diff --git a/server b/server index f6aa0ea59f69134f1df52d42bfbc04e1aad31006..862ae668d08ab686c8b4ef3e8a50a8c1bda3ca2b 100755 Binary files a/server and b/server differ