From de94b6069260b463ac5d3b49777864ba3aa9ca31 Mon Sep 17 00:00:00 2001
From: Abhisha Nirmalathas <a.nirmalathas1@student.unimelb.edu.au>
Date: Sun, 14 Apr 2019 19:03:01 +1000
Subject: [PATCH] navigating with checking the keywords, adding keywords to
 users list

---
 http-server.c |  89 +++++++++++++++++++++++++++-----------------------
 http-server.o | Bin 24368 -> 23736 bytes
 image_tagger  | Bin 42448 -> 43000 bytes
 user.c        |  55 +++++++++++++++++++++++++++++--
 user.h        |  19 ++++++++---
 user.o        | Bin 7128 -> 9856 bytes
 6 files changed, 115 insertions(+), 48 deletions(-)

diff --git a/http-server.c b/http-server.c
index 2feee98..63c567c 100644
--- a/http-server.c
+++ b/http-server.c
@@ -93,7 +93,7 @@ bool get_request(char* buff, int sockfd, char* file_name){
     return true;
 }
 
-bool post_request(char *buff, int sockfd, char* file_name, char* response){
+bool post_request(char *buff, int sockfd, char* file_name){
 	// locate the username, it is safe to do so in this sample code, but usually the result is expected to be
     // copied to another buffer using strcpy or strncpy to ensure that it will not be overwritten.
     printf("USERNAME IS %s\n\n", buff);
@@ -107,7 +107,7 @@ bool post_request(char *buff, int sockfd, char* file_name, char* response){
     stat(file_name, &st);
     // increase file size to accommodate the username
     long size = st.st_size + added_length;
-    int n = sprintf(buff, response, size);
+    int n = sprintf(buff, HTTP_200_FORMAT, size);
     // send the header first
     if (write(sockfd, buff, n) < 0)
     {
@@ -146,6 +146,7 @@ bool post_request(char *buff, int sockfd, char* file_name, char* response){
 static bool handle_http_request(int sockfd, User_list* users)
 {
     // try to read the request
+    printf("THE NUMBER OF USERS IS (in http req) %d\n", users->n_users);
     char buff[2049];
     int n = read(sockfd, buff, 2049);
     if (n <= 0)
@@ -165,36 +166,50 @@ static bool handle_http_request(int sockfd, User_list* users)
     // parse the method
     Request* req = parse_request(curr);
     printf("REQUEST BODY IS \n\n%s\n", req->body);
-    if (strncmp(req->url, "/welcome_page?start=Start", 24)  == 0){
+    if(strncmp(req->body, "quit=Quit", 9)  == 0){
+        change_player_status(sockfd,users, QUIT);
+        post_request(buff,sockfd, "7_gameover.html");
+    }
+    if (strncmp(req->url, "/?start=Start", 24)  == 0){
         printf("matches start");
         if (req->method == GET){
-                get_request(buff,sockfd, "3_first_turn.html");
+            change_player_status(sockfd, users, READY);
+            get_request(buff,sockfd, "3_first_turn.html");
         }
         if (req->method == POST){
-            Response* response = redirect(req, "gameover_page");
-            
-            char *resp = parse_response(response);
-		    post_request(buff,sockfd, "7_gameover.html",resp); 
-            free(response);
-        }
-    }
-    else if (strncmp(req->url, "/gameover_page", 14) == 0){
-        if(req->method == GET){
-            get_request(buff,sockfd, "7_gameover.html");
-            printf("i return false\n");
+            if(strncmp(req->body, "keyword=", 8)  == 0){
+                printf("strncmp with keywoprds is successful");
+                printf("the numer of users is %d\n", users->n_users);
+                // for(int i=0; i < users->n_users; i++){
+                //     printf("USER ID %d", users->users[i]->id);
+                //     if(users->users[i]->status == READY){
+                //         printf("is ready\n");
+                //     }
+                //     if(users->users[i]->status == WAIT){
+                //         printf("is wait\n");
+                //     }
+                //     if(users->users[i]->status == QUIT){
+                //         printf("is quit\n");
+                //     }
+                // }
+                if(players_ready(users)){
+                    post_request(buff,sockfd, "5_discarded.html");
+                }
+                else if(should_player_quit(users)){
+                    change_player_status(sockfd,users, QUIT);
+                    post_request(buff,sockfd, "7_gameover.html");
+                }
+                else{
+                    add_keyword(sockfd, users, req->body);
+                    post_request(buff,sockfd, "4_accepted.html"); 
+                }
+            }
         }
     }
     else if (strncmp(req->url, "/welcome_page", 13) == 0){
         if(req->method == GET){
             get_request(buff,sockfd, "2_start.html");
         }
-        if (req->method == POST){
-            Response* response = redirect(req, "gameover_page");
-            
-            char *resp = parse_response(response);
-		    post_request(buff,sockfd, "7_gameover.html",resp); 
-            free(response);
-        }
     }
     else if (*req->url == '/' && (strlen(req->url) == 1)){
         if (req->method == POST)
@@ -202,16 +217,12 @@ static bool handle_http_request(int sockfd, User_list* users)
             char *name = strchr(req->body, '=')+1;
             printf("**%s**\n", name);
             if (name != NULL){
-                // for (int i=0; i < users->n_users; i++){
-                //     if(users->users[i]->name == NULL){
-                //         users->users[i]->name = name;
-                //     }
-                // }
-                Response* response = redirect(req, "welcome_page");
-                char *resp = parse_response(response);
-                post_request(buff,sockfd, "2_start.html",resp); 
-                free(resp);
-                free(response);   
+                 for (int i=0; i < users->n_users; i++){
+                     if(users->users[i]->id == sockfd){
+                         users->users[i]->name = name;
+                     }
+                 }
+                post_request(buff,sockfd, "2_start.html");
             }
         }
         else if (req->method == GET)
@@ -271,13 +282,6 @@ int main(int argc, char * argv[])
     // if ip parameter is not specified
     serv_addr.sin_addr.s_addr = inet_addr(argv[1]);
     serv_addr.sin_port = htons(atoi(argv[2]));
-    char *user_id = malloc(sizeof(char)*(strlen(argv[1])+strlen(argv[2])));
-    user_id[0] = '\0';
-    strcat(user_id,argv[1]);
-    strcat(user_id,argv[2]);
-    printf("%s\n\n\\n", user_id);
-    assert(user_id);
-    free(user_id);
     // bind address to socket
     if (bind(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0)
     {
@@ -324,8 +328,12 @@ int main(int argc, char * argv[])
                         // update the maximum tracker
                         if (newsockfd > maxfd)
                             maxfd = newsockfd;
+                        
                         // print out the IP and the socket number
                         char ip[INET_ADDRSTRLEN];
+                        User* new_player = new_user(sockfd);
+                        add_user(new_player, users);
+                        printf("THE NUMBER OF USERS IS %d\n", users->n_users);
                         printf(
                             "new connection from %s on socket %d\n",
                             // convert to human readable string
@@ -342,8 +350,7 @@ int main(int argc, char * argv[])
                 }
             }
         }
-    free(users);
+        free(users);
     }
-
     return 0;
 }
diff --git a/http-server.o b/http-server.o
index b00f6d1b747122f3ddabb921837e564fbc1277d4..ce050eae728c5840758ba35cf9fd718b08cf3c24 100644
GIT binary patch
literal 23736
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
ZW)e301wfOi3=9mfKo)?^fnqc+0|14yAFKcX

literal 24368
zcmb<-^>JfjWMqH=Mg}_u1P><4z_1|_!FB*M9T>zIgc(9TI-hzpzPZ4_z~Irj*W>^H
z|D9W1{{R2)(K*!uO!XT4|NlS5qnkxl1FXjNhv9+!AOl{22#?;W2_R+Ntq|4MJUWj<
zB)UT<cyxm`dvv#g%=PFz=h1n52S^uKMQ3Zo|Ns9HMs<Vv9?2Ixx_d$DyIUddI0rMa
z^+2TvLOIx=mvb2y7!YC}5NGTI*@0$P%>V!YySIW#u(>-KI2agqffPcGhd8HsFUV00
z^;e*bN;!n--K`+)P~~9jUn_!T!ECUfP?dn<!K2&vM~a6r4><HnSi!1J9wrd#Xu*v)
zkavRofH#QA3fLA<WYar1g-8s)4<JW&?$rRNS`|<_?3^kArg{Z1Q>{mLD@dhB=P|Tc
zgGwA{C@oGcN;~erV$0yse1O%X6OwLW$rqBaJ6ml)NeN6gA7JvB;nCR|0J0OF6Cf@?
z%Lx!Qj2Ap0>CB^hDk!0Obb}oVbpU1#aR6HdA|d$#<o@nfh)?n6i#d!83?ALBAg5r<
z4d9&B-3u`e#MuSP4j!E_Gdo*Bb~f(?kqniPR1QwMkW7i32VNR7GBBVBdq5Ig^9#n#
zRuixXK%__aR8TN!Ug!iD6|XJ3!IEHqLE?q+5G1{MB%go<2;&L<Z44bu&1*p>FgC9R
z6*7!ajWb|j*!)V;!}3Dy`ev}fj1WV50~nzt7^pyjT5#bQgARUag>G=fdL&<fs6%$k
zL3l1Z=Fxc`92_twz=9GpW(2`$4XhYkOuS~@0Vx(rLB)az)?%T6gMp!Q@0{<TQh4ix
z?-<3eM{n<k@BjaIw}O=HV&ni7-H4c5^8Nq+=Di@2q23J2sN_L7<Fz<MBStm=yYJ->
zW>9p3w0q1r*1`(1h{2<`6-0Y<wypp<svAN<Q-Mck>jsD@gmO^8n!})y9J?eK7#Lt_
z5*#kA2l!hz!^&~6Bf!EQ-C%RO8CnmN%5?XF{0emkq}T@4Ca4OVe=zd5sxX67KFB&0
zTRb{jA3&T5rVx&Q0T!JKqPn*t+2YZ85o{5nMuQjt)%kKa6Wk(?ZU>HCe3<?!wL$U(
ze`_Zb0|P#fAmZp{9Gc<0n1=JWE&&yP<b~2dNcn&*lrDh7qZLd+{p!)#dIKyv6+{sV
zC1jm1ry?u@g%bZZ1{;0;RvT1Nco2hQP#z)K%>WiTgz%_Gw}ZkyTM!@Sw&nwj9-XZ_
z!0v-k7%AJMc`rzwfxm?nVK#c|H~=vLOu@|VY&`)MoeH7|`5UAL?vw6TWP@Jzf?SLg
zRdV>!!RsWCZdP!$-g$7B6e#9FMFt{uyms253o<YH0=V*rWM@R-?a_LmQW2W)VD3R^
z24}F>q7%>*KuaZDjg?@J#y1^|pkk@!AGla5_=j37y)Zn`ycZ<LRPW%?-3pTS=oWzb
z0~XX^yTN%D%<|}teUai}ECVhC`CDvQ85mv~u|k_=`@nu?VqjnZYv^p9@DEh3fk+1A
zcHn-HI<S)CtquSF{|9kBdZ&Vz-C#YAJ6J%0)p>Cj$S|<6(C9^NP$CTS=xyEb@BjaO
z0$_cRYCr8bSd0l&tAah(e1OBFn*kQSovm9y;R5w|^8o=QIsWYjpcbZewr)aEhHQjK
z=V4gDq3ZWwyaBVuqqB7Z!~igbEun)X7)m9<DPxxiBebkV#J@*xFUWI{u-OIiBCPVj
z6(A7B`#@<D>JxDM?F8%Yoq7S}q|WPqK6|Y0{Ly);bLy0T|NnQk&iDtaqd*bX8(`mh
zfZyZL!5?g$$2^jcd35hN3ep5Icjm!YQj8axAJ}VN*aeEc&VwG8A9-|M@Zdb|(fJFc
zymJbY^3K){kbT{)AQNDXukO|xAVFB;s`UYc2ko1@fbcRv&9v^;4-j4fg!co&tAOwr
zKvbt|gGYBO2ZY(-(cKDaOnP*>g7OTgMdi`yI>V#8RRN-40j#mo>AJ$ByA{-3^5}Hk
z0PTx-bh_^F=ms~ZJUU$uz?%@RCp>z=Z9+##P=c~Mw7NOApMeFM>TyK~SPwYSgX-je
z|NkFv?fLirKgf`mr@-wo5Em)fJ!W`xZ#fETfOUga;tX@e4<4-t_*?4WhFF6$5r6AP
z1_p-Xtu6ol|A)ppi0RSWdjKBGh!Uu?bq+YQf=Gr+enjGXsRlL|B#z`bv@`*d#pyoG
zGyzg>4NenvJl$Z6At{7^dn?Fo{M!$B^oCx5y40h$kOiD<q3PJ8^B`2uA&<^;V22{Y
z_I0&K_tX_&|AB(jqw`wl@fQ)_{{L_Oz}Rx2Bo-2sP?I1W+`a;tfYVpsFL)@TCH7`;
zJTXFyh4_!ZPX&}%yIVnSf)xobKmGatACeRrkARBk=-9)caw{YxK;KZ$P{GK+K*8Ue
zm&-XnuOv0EL^q_eAk|8tB(<VMKcgf!2O;5;nwMUZVWps&lfuiz%LPhHNZ12ro{52h
zf>UCOLQra9X=-r^rhWqy-TF{7ko21<_~n-<xaF7Tr4Z81zyPY~Kt>dm=H=yO=A|nX
z<Rn(67AX{`78hsc=P9I><|UV8<}nnf=B0q7Gg1>%Qi~YMi!w`6;eu(IIS>w*k(iWU
zTB1;ruaKORU!2Mi8tfY6=jiLI;2Er-TFk}8P?VaO!cd%_oSj;tpqc_vrBITQs*s$Y
zmzSDcl9`{!#Sr8g80s1vqTuB35((1D#id%z#h_oFnv<NLn;Kt`n4W51T#{H+VjB!1
z8FCX#k~30^6~JN)#_?&HMa3oYC8b4qdZ1`vNKed7%`ZzW0_$WjkB9LgvidMCL^@NU
zC>5ktAuTbdI2F}a2BUbe9T1ILTB^lbT3igs?qV>EhjJlm^70k(OEOZ66mnBbGV)W3
z6^cs>3i69eQd1a8ixbmRtrS#?6*3DHKw@0bfMF<3Edd2lenANXD9~c^7&1yq3UrH8
zi^@`q^pe3{>G;ePhNR5A6o%r|oYdqJhQ#FL)PfRFY%(z9rIsUwr$Sm$elEzG{5%Da
zvEY#BV#rO*%ww3r!vHD|85kHiK(zw{55xcjd6gf*237G4OgAhT7#Ns2*g@jVp#Bj9
z12YqZ#{!`k*}!s4pel`lg@rXUuY`e_1Iz;(!CV6}0>Z5IWnf@{FzXP^dW3>TglH2&
zv^f*5tp&t{x(8xVH%Nq)1HzdJ;y{@55X|)m=0=dIY#e-y3=GT=mqS$V1z8OC&<&Q4
zbD0=Gop=TYmQP6_&vAeVmhYfI<AAV#fY<^M_D>L70>b_UVk<z{zd>vb2>TC+Z2)2a
z1+gt4?0+D(11H#g21XFa1Hxeha{?e7CNL)g!eL>&%EZ8s0O7DP-ezK8$bfJ-7(uQr
zfN*%goDv9!k8u+N149LbBgE*&z`)P|;RrK^FfcGQK{z6e51AMknjsts#*a)43>^@T
zBI8~L28Ia`jwa(R1_p*15RMj@vjD=;26I+GI67d?1_(!w5mfx_fN=D|ZaV<s7&3lm
zVqiGJ04^q3rh(%?f@KcKlaMf)3t~d!V;;!6&^TBG@~r>^8^;nR1_m|`1x5x2Zcw~}
zoXv9r6r>Dn9H6KKi?TB_Fn~pc8Q3^@nHd;(L28i`DytzVT)@eJ)fki<z)UtpQAP#^
zP>+;>1tiEX(aOxg0L~|jV3G+;GJ{DLFv$ug*}x<hsEP+=I0iwmi#Q<3pIruI7uc@?
zY%{kqL(?1EY>?p)zp~8%2{S?bbQI=#UWk4UIZ)>ute=HL{v}L5hayNJG>dVROENPs
zfYk_ayf<Wl+QIP=VF$-2kX9yeICFfyz|6qF0%3oHDCf3kU|?`$frcDA0~-e@iGst0
z(+rfUgc>*<(qSfZdVrV=4BYN43=HKkUHlLib9x7{KwUF|OD~-j>KZPC0#LYsZRIkZ
z2ns0(+jcnv0|O+7aoNpbU|@jcFfNB`1_lNhh#JQ>1_lO5ZsT$Wr3Mv<xGTs^NY3N(
z0;PON&g1gC!@$4*$$4A>&lwmP93bkG&V#CX2s`;N0|P?<gq;EskASdKLE;Gzb{a@L
z1Hw)RiGzlj7#O&+K;Eig;QqwGz);Q#4K*f+|G7DuSQ!|EL7o)>CnO%0WvmPgqVBFC
zsL2VUoQI>G6&hR`JY2tE!NtQ3(!?NET9m`U!vl&8NM_*S1+gK)#lr_u4hb$Eevr5V
z0~-g(J>ZDr5!eVfnU^Jm4H^-=te^mdBt2d>kS>VHyzC&;ASUyIqaR{2FDFQi0>rhv
zT-<C73=n_uF;}obeFV)W5H);k@oX?3@o`><*~`ZTGKWDdGlhYV8^nZI%f|ysb`Wd%
zctK8sSj)!;G942CeEcABs1x`EnqkHZ@CmWAL%qc(3{nH}7M}=2n2m#%9aLg~+yD*|
zKG8>P3=HC+xM5UX2F@`cHUmQ$xSC{OV4MRI1r4_`Fsgza$vkmK9h3_)pLyaI7#AYD
z0+qX<PO`X!fl;H0g@J*2;)OcNJO)NBh{h9jpkWCHMiU74OdSI=BiK<8=eU3@hB$_S
z!2#|ZH4X*_i2W`Q3t`T2ffxgG4pepp#C|tq`#m5kVfF_=xM%91;gEoA@pZ6^K;gi~
z39~o>V(|>9PZJ>er@*)n*$z~01JtuA5ZN72ZYo6Y8Ynj%RI)HnJOFWY7R=F*aLR>9
zo&bko9z^2?sKzn~cT1gQfguB91BADvPO`uV&RbE(APovm#!1Njn+6)!U;z2gk_+a)
zNf7Nl`H*m)1d?H%*pLr###DPQP*gt12Sw#Hh|(!gxy2CQ&B&K5N-bnyTowRUx*%T$
zWHAVXya1v%b22bMj9V85R&xPr!Ul*5H}V-U^gM^_IRMdf0IKH@M9+zQ23e5VAPlOr
zK{UjUQxF9!^5OEuAV~(88!kc2+W<B1GDP`~d<IZn5oU+ht{~6IfooR|1~v``HjpH!
z5P>Au&!CWin#!;V+z14P>JM&MsDc$RPkd7Y3DwV_T+Tf4K@G%-e?Z!qCpOf|gUn!L
zVFYPpp7@~#!slW9!VC)a1yFe*aJz_k;)GfSka}Jo1_n-M5DSDMS`-*T6%q5q15hn0
z;HC%j#2+>AkOfV~f;2dDGcZ6jDMA&sKsCYm9kqzCg;@mAp#ig|4#L-Cgd~?4weY}x
z4b8lYnGB2uPz(Olz@<Th0w7mF^qWI{x&i6}3r2mg&%Z!J!V+pg55oM_Al(cM42qcr
z42&*}LOcu%OcNpV)8O)x8{FvOf!0ba47`82p;4*?6Xb`cMj3OIkmLomogfh;k17KZ
zQ~<>iEIeSTNfDb$B~+D4ASVl~0=4NF7zG(s`GmQd`K0*-8HLyd#2FZv#2A?QthlYY
zJ%t$<m{l0Kx$U@_`4|{jpiB-123CFsZf*t!HV_3;#V*Xq%*V|Q(!?mtz`(%^H^G9N
zfq@gsW%U#Wak*gTGca&7GI|PwbnqxLcna%tGcfR~F@Ox@V*wlJDGW1`UxR^}PllU;
zK>*BPV_*;jGguiIgoGIpRtpO=F!R|+f@(!ZZf=BrQ4I!W4v>B^UIu0kkf{*Ii0d)h
zOG3P>F6k)@3Ihj;X-<+LM@g{4y}=~Gz#wS?*9qcEnV`r@>oMXmMuwXaWGu);SqPJX
zK@RL+Rt5%ns41+T!XQHxKwM8@6G;$95o#e+P6;Fjak;%D$cqd*u>KjOq6I}O7$f&5
z!2(c1hZ)pHEn;L~U}XHw$IHOT2wryq;_H_d7wP9@Ch4aqC+k;On8ll!=;mbRl~(Ac
z=auT4>SyL9=ai<TGJw@VIhg8_GE0h4l%R0*^HNJP^HNJt1u-lut}JFi>x(lmFcg=h
zq@<?lWq{U(lvEa^7VBkz8aO$bNtyY284S!|6`6S@P&Rn*1EK`f9ZyV2DT44a^Yk)6
zy>Up7UN3`z6{Ir}qz}}kODxVPNleN~)yn{d8F)mXAhD=86{MR1>a3#F;)49VVyGI>
zlsiN<$fDGec#!KLb`_VTz#PZGzzMC)L3xUiNlob40*+=T4Uzdwsv`3j&Szj^VdS_8
zBAJv$CQh1vvh3+e5HFJL30o=0wdWkoOll%vr65sMm2ib+Olm^UIhr|6a`<qlaI|oE
zGigKga9n3n5}q{w<bu--Of1Yy>cU`3TM%Rx+ch?hvNDeA95<Nsgqf5@=9hs)LH1T~
zlspINo4AJ~ebJYj9FZKmnN)?Jp5$1^p~$g-Ba%r)n8TjqGlww8+UHEF!l>dPL)bVX
z*f@4`C^0Dub2Q)Km=D(Sl)2~$vtR@>=LzOCjy243ddx{2CzuuWn3P1G&S#D;VOCdo
z%D}|J1ad(+N7K_uOv=K{4;dnu7uR!?a7>&uf6;s<ZIStlIcz6!tYuOcW^xqfXa?Ih
zkBy^+<JtU094bs2!c4v*`<M<f3WI`p0f)#lCRb4o<@ro1!V_OG`HEaWP{_>5WXs5L
z3KV!u%<)VCj9@cL*qBv06rM&i@iQ<o!Xla>zBnVls3fU0jUnFCKRzcvIXk|D0W=^O
zZ(?8oW0-)_XlhXrLuheoQG8BjaS2#;QfXRzYF-LMVoFMCN_-A@jFO=^F+L@+B$1)G
zBtEeuGdDG_I5n9e)X&?`KirQYK0YlaJ~y#A8$476O1j{|sA8~j;Bi5)fu(uHndy0{
zDGH#WpR&{<&}bq<X=YxDu~B>pLtcDxVnJeZW=SQ;lBAsM;>@a4hWNCc#Pni@_;{qW
z$`GHMSd^Vw1QO26$;<=!4LUZ;5FekJmmgmO9#Kq7DQ1W-$S-Ed%!>y(Djwp$;>5C4
zuzS)|OX7<lW2z7<^OLiSL9ASm4;hLx^WxJIb2D=)!Tv}}OwKMXh)+r^PGyMCPfIIK
zEn&z`tt`(kN&(vd8mj}@02=Vj%V#JqNh|>yQI%Sh&yZA_mWEbD<R(_6r7#qOT?P)p
z;&^ar1oC!#2`IoJmV?ZU&&^Ls1u;DR<3VGkP**tR=jVXjo1U4%kXV$S%#e|omy(kj
z4=M%VK8w#wttbJh0-3=88Ox1_j^%=c!6C@t>l)(W@4^rt4-NSE5{BfA#3F`pN6!!j
zu=NZ<&{6~(8ju(OGr<ljC@Esdi-(5?ESWF_`#XEbyEr=sfCHqo7$Okh=<Mwp0<t|b
zFCUT|jSLLp-TZ@m9Yer|LQ)Mlupvgc2RZsO<mBh2D}V`55-Ki<2gejRErQZHIA+0m
z;^R|N%Rr%+nHLX=7>2xfP_b9c03EE>&&?~*Pu2$|{9^sYq>TK0eV6>?(%jU%l45<w
zq>Rksj6{Xdyi5g`{N!SNBLhQA{p9@Ig3=PuICy1oNosDfeqLr#ZemViNk(FEVmwIJ
z*ucQZI3A=pzMv>SD>b=9*ASF)D~pp8b8_N~K@N{EVaQD^E=er{CC;>zcu*<=#W*;r
zfD$P~e0)J-iUEWIX)j1jF@o@nA(RP(GG&O5PtVCrN{%l|1&;xzFa-Dqhd@Hp#K0il
z$JNh0#DgKe3|v3Jk}R|kFo8*ff(0~coLH1z1~M@-CB6ilDGkj);a3u$49X1PAO=T7
za7d7=qc4)TN}=8YMF2P{fXa^ec(4~z3>m-$5je+#Y|2Z_O@$RH$)!a_kQfC;CQOzA
z>{^C`j3Q7*D@rXbPGxZS3srEov{W$FGto0pFfuSSGcYr-RM5>WDa}i@O;62BEy_$*
z(9KOOO3tvYurSj#Gf~h@SI{jkNwH0~v{cYdD=tY)&ekm`$}dSxF3B&_EiNg_&r4_U
zNG#3>0o9)1f(w)#^OLhdu@Ik`#}FT13J#27Xc#bn91lsq&OZLG5w6Y*$vK%I)ePVg
zmH`xxpt=;|DU{MKK0hY~76YJwa`W_Yg%}m&7|sAHGSX5QlJZk3VPzEqTst@$#utOi
z@`C(gM2Q6{5_3}XpydK2$AI!7B%WLYp}7n)$G`weBe22-6s3^Z1-Y3a$kov$5|kTD
zGgBDiLGA=gCYF>I$0z5fq=KYUQp*^i#W&bR#fh-OF)y_oR5*h|4^-(Wz+DcCR*=`?
z!2t)JS%{Ah2yzVxiHvs(^>YsK^!JO8hXjM4zn_zjzq2<eNOMv_fuEF<ot#$!F3O7w
z7=l9_LqdZY;*&E#6BM9e067Shf1y=`5jYB=!I4~A6rY@*Q<@7hC_gRD%mfrjrFo^r
zsi4f{=^qcO<iI5bIIx0Td>I(rot>=|G(wX~^GZq~Nln+R6wEWMGc?mPFwwKrgowkF
zAgIa3AOa>C7#OR97#J%A7^QjGIVLbNfV<?d&Len$$dON=jmeppjk%DKhn)i~Zv)i}
z9<hPTTf^mJpz`2>6}bE*CYb&js62RJ0xmz11thP+z`y_+5Ctg#cd=pe9?i_mOIblm
zKvFm{s2|G0@bN!31<asUEfxu8P`ehZICSI$O^zAVnne=>jfXQburhc+#lhpJ43IuI
zNW1|}9MmrdiFZK7VK#wga6sY*pyDud96<v(46F>`!3hS~Ocw(~Ah>hF$j}QNjsS-#
z0|P@URQ*wCdl)JWHkBDNZVqN66U+?YNeg5lFq;`NeF0`86U>-%Y+z|-$czG*jZ82z
zK<5jP1wk`#(CGs-VFqT%5G#ss9RmY{5K=sX(<lQ218CtCHq$482HH_ffN-Yc5VvAv
z!0O8RIMgr0Ar2a_z~-JUIMfH@uotw}1DiRgq2U1YKR7QkFfd$)if@C)J2($AFfcs9
zVee}k;-Dqd*zEm*Lp>V~_k-r4u$d!{Lp^BW2R8NEIMf^A5Vyo34hko1=KC^2(v>oJ
zrj7wVycdMSoG2XPi8#d5aEKS;5HH6e-iSlI4TpFS4)Mu2#24ZaUxq_`Ee`Q5IK)rm
z5Wj>&9IgKWZU`c^y1{&;-XXjJ36(H`wJhOHN36XK%nDx5*x1|<z2i|(T2c(|5-=1O
z6lLa>q%jnv78T_eG2|DdLY9_*S`G}5^&;`0^%cq4@yQw4@o9;fISj}>H<U(EaY+%V
z^#E#zG8C5-<s}zXGJuCe;N2mxXl?;RQEEzN5on17Od2vo!jM*!3Tp2ZC1(`Dy2okY
zrWIHQZVb3JlLmD<sQHsx!jM{#S%SPuBMIE~0}UWS+Fgky`I!tECHZ;947rIpIr+&9
z@$rep#i>Ol5MO~8Zh*Ss;1B?>-^k3%EXhpF$t+HdhxXh+@~~wcV59R&@<G#>3=C$F
z;uu`Rfa)mF1|yJ=HHZM$Z43-z3=9l^{zCw0LLVdrD&9b&@-Xo-kRVh&X!IQ>-Ut;3
zWowZ6pmGf)1e#n0(I9h>%?Fj|FmXvFdpCdt85rR1gf%d>Ld8MmfCh|V_8x(X!|Vku
zC<Y0g1QAeoBHQ~2NgOnX12YGv4`e>5T?P|Z0yT7y+#>|#t3zp!dSv&QAc=#9<zeQ4
z%0rOVFn3Br)p<c_kU4Tl;Si1_j%-c=k~nCTA7=heByr^UIs_Gm*$Z+52;YQ?gX~3)
zNAP-GXt*KA3v9d(W)3V~_&^3g)gy<4A(A+9IENsKBZqS#R2*hLES$@r;vfpy{AQ2<
z)L!K9nT|tz1Cls$xP60)!|c_9h6}8z3X(>S7hUMo5J(&}^8gF~I3#i8@SlMsjvUVW
zki?P0`2<uP<{nr$pM{Ep>_rZT4@lz3;VcAg=z`QMBc&@fs5s1gYp8#<q2eI*$mUxh
zi6e)zKMrv#Q09lm3#g9)3!exiab*7{LB(P2f%zA-2m+K&(cJ@D&;S!hj>j`lb3p2m
z{reIs4l^I--*-@Pka}eQ{)LLe)Wh;EJ9vQ_Xu^Sk0XaR`A&ILZg>wW{9A-`eG@O&5
z;vjpG%_)b9!_>ptoApp}ka{&F^LwD;F!i85B`92`LB&Dpk<H%<6^E&x2X)VWs5nSH
zX#NuxUw5J6F!dXt>YqZzLF(0!-18er9MtE6nIi{X2mvz(yxyOIfk6!_4l+j($sAK8
zaZMy~f2cUjoO4k3ghRza<{*bp9aJ2q9%gR`R2-xp*}uI|ahUqMQ1d52#X;(k>yb53
zahUoyQ1x4&;vn_N?zs&WhpGPsRsR$!4pNWo9%g8V6s8^){@hS;kb30sS40v=4u2P@
zILsVaIQT%tLFOQbe>9Rfa`<;5i6fVLdy&MokmBn)R2*h6JIEpi28M@FaS#_deg1}u
z!_@PG6oC4y(5^Cwi|k)XBynW_+Car&=D@<)1u70Q2id>DNaD!;O~N7G1{H^yF9R|V
zzN!&YJ|M^AOsIO0GHs;rSq&A3nWGI-z`(!&S?LHd2Q(oH%SZds)K36qb_NE9^H6b+
zcI0yPF_JiF(Im{A7f^ASy|D83EmRz24sv<O0#XPq&ymfMMG{9YhZB*+k^P$n6$eqE
zBGwIL5d#B5F-QPvK4@(^%$-Y+#0`+bZ3k2wM1jnSgqpJ#BmgxB+5N|n#0`<m`GF*E
zge1<$4GCC~G|2n}sQGMAaS#{Td;uhJWb;*!#Ep^62dxhQ*#I)f1W7y|NxdnOcqWoK
zs0|MbpEe|M<oq}vhxjTaadRZ|4?x9X{>=tCjDdmS6jU6<Mb4);q2e(0uyL=)XyQd6
zjiAk9XyOe}@wZTM5EnES2lE#vbU8Ul+!D#1pp__~aD&;~0aC!gz#xvK9ywkVk;IYX
z#TZH43d#IgpdFpi^aJV>!Q8VLDh{)^7i#Ycs5pp=Z0{x{ab$b<Ac=#<bz$ZQf)@ot
z@;hi7B}_aODh{)E3dkY`28JxCIEagE?{6e=J0yScfd)*G`Y#JW8bJ$Tq2eGea{Rg?
zi6gi7_9BTRmy^el#F5JZ*!V1{ngit{P~3qqY<w0b9sm+#U|@ia!@|U2<r}nF0qze%
zy$IF;jYhCIXi@ZaXnPdI1}OlA8;A{S=ZJy?q2T}$*Mzp4L1iXL3S=)REI@1!2Kf<0
zgUmr5$I=4{BAIgpq>+Jv0hDGyQXusp^I`2&Cy*eL`qR+B@I(`bwew)%0W)VFR9!ff
zhKYlg!GeV1Km?NclcC{|gC@QSDqe^t4qI^rn=62s?+bNjJDPe2s5zkVUXT<_Jrgt>
zKnH*zi(iL|uK)=mxf3=%0NQ8{l7gAz0*!F+7F8tmprwN#b)fNB5Dimb2X!ZGJOd`K
z1~um{NHLN*j?hR3@6bXLKLu6)8BP6UXgc|aCY}Wi2SKR+VD|b#%@;!xe*<-=BAWP8
zsJJeg_$8=)pz&1@6J|cFpX`dJz6R=^Ks50OP<||whM98=>ds6w@gGq4l%k2l@?#^K
zIIJDtizW`5M*+EeCYtzfsJ)<ZPLMpzJrPiKo1rvJ92Q;&(8NIt??L*{qKQ9*#^WtC
z@n$IhIh2N({}rnK3!3;$XgENYQA5U~K=~T9_#0#|Y}^B8jtDgTrJ??Vi9?%J3>s+S
z6;Sg{(Zn;L?r=gAKMhTX{%GQtpyDxT;y0n<nP}n<pyIG`6_`7pL&ag^DlqYIsQw91
z8YV6a?YGQB69?~2U|?WaiYA^0<!^-2Fmptp{Jl^bCVmqdJ}1${VdFxgQ1`;rKY*%}
zLKF9Z#)~SNIIP?;KokE9O%K*+;x|E&&cMLnjV2xkH9rtd9K79#fq@|$O?(~HU$JQ7
z#?bIgMiXa)x+fD&d=k{Z`Do&cq2i@z;>l2Z>(Inu;{t7H;-L8hke4T-iNnTu=c0*c
zL*2O&O*{%@2m=GdF*I?|yc9_4BAWPNs5|eXiEo1Di&tpkl~D1oXyT4ga~PrV14}2M
z`6rOQylCQrQ2ml<;=7^Zs%YY{@fKM6f|*|qGMs^dAsS6RY<#u?O?*An{AM)qZm7Td
z(ZpfnO0&_#*F)odIhr_Z9CkCBxD-_Vel&4gXgr=q6Ni<Luyz*Azek|%e~hO71=O7P
zXyW=%@!x3T$D!fI4vjaM`Jj1Xkd!c*IOyyakhnaWIB4xZNL(9D+yxq*=4j&YpyA+*
zCLRjq`$K7%djg^Ejz$xI2Mq^Uxeilr09DrvrD5Vnpytd%6aNo2X91cxXafbvU(3<N
zt)T7)ui-#y&-?-@1|3y`rd|{p{@2jNLG$P!EsxN|m7wl{jhDjQ4?cVXwDtjN9!wl&
zFAth{EYzJ6XyQIlz6z9vnFDi=0h&0>JvM0Kr=a2KfhG=fXDFID%sn}1;^t6(5tN3x
zCkX2PN;L6XP<{)PhN=Gm<xhapF!4BO_%25iht2D3MiZ}t+6x<}g_$!4Dt;PG{T@&x
zGB7aQKof_#=P{Z%Xe<Dv<vp4>tR97p>%#2q0x4!-U=V@US1@syIr3=YN>F!dLd8MZ
z5Gn*V$pI=3GY8gQL>})2wYy;R3UO%aCqdnvizW^>oPmL1I-2-)X!x&06MqMC7y|>t
zIy7-TsQ3=3IEV{!KWu#dJX9Rr{rAwsVeWs6CJuAIIMVnh$iFams-ubDhq~VoDh_iG
zY#oXRR2<zs;b`J8_oShT!`xGfCJqbF7BunQ(0n%;O?)m?d=Z*BX!kS7to>->+o0vl
zZ8ULMIIu$-(lCF4c1wWF5rm4v!U48EO9LtnQxEg6Ihr^uJ-eZa!_pya92jQKTByGu
zJKq_=E2Kc_;VLv8PDL{Z<VFx)f+h}AzXd7|bN_E>`Zx&{huI4<1B7p&iNnl+jqAe9
zSqTltpJ?h~<qrqQU{LuD9rOAORWAt@2T`DO2(lA|H9!JL^$X12STylD&~QkHio@Ik
zTklf`6$eou^M8XBfYz0P1dz<PhKBPTG;vrwu0|8T2vxruO<V@*p3`XJ#!&UQ(Zm-*
z)jx%bgPaG-a<FmEcTjN<1#<sVXuACe5<qhQ8jwZ?1_nOpI46h;N++NVZJ_W}hKhr<
zfz0WIy2ltzybmhw0u_guvjaK+777)InZpHA09u!bCJsyIrBHE@GLU<YL&qhjpo!~3
z2iulH#bM?bfC7Vofnh6}_+e<c9Yqr_g^FK=io@(JhMKPo^#{y+SUIK-6$hyYSqU3Y
zw1tYp)Pu$@LE-5M6^E&ZjWY&8#bN4Mpy3$@6^E&Ztq)Cyio?`{=A1z07emEi>S5!R
zHBfPwdS$5j9Z+$Ydf0l>iBNHvdeGbk$b4upfyXnUQ34W%uaN|q1Bx%OAOizKJxBm4
z|H8yUb59^PNG%A1*dPqq!wDH@28qM!uLO`Jv<v`=!@?gHejqUrhLx)e(A2~7HG^Jp
zWo}7g5`$iGNfCt3fU$~Fa}xDHCmb>8fwu|iB^4Jl=z&Fx@*yH%PD*N0X?lESURpkb
z9)z8klvI>j22~3cDoV^tPlf4+h~;GFrNXonmlQGRCFkdYc55)`<>i;8>bd)c>Vnt!
zLk&vJh)*j@%mppoh5Ckk3KZU;sDQ;E%p_QNqi<dWsfDQl(V#UOpd<rR4-y068KB7_
z1_p)#Xg&e0BM0e)7SoV@`=EJrXc~YPLm;hSEQ&m64HkhAATuB=2nm{F1er;$e$bp0
z$V^ZgftUy(C7|}7LX!a51yKPZL31S7{LkSGk%#4bkpDsD08Bq<Ee%KoNEyg}5E~gk
z5`ysNK=T`f2dS@NY!D5aE5T-e0LWm_{1wPzP<xjFa_j`U{r=GK2bqP8AzQc^81|w$
z4votI>aU`Ufy}W6O;R&3Fu=+OkQfM~tBr-OQAbZd77-xT2>l>$fXW<n_k-5+p_>WP
znGLfaEn%Rm1<fa53%?Ag{jhif*$;{ebo-m2;fL<e*`UQk3=9l5(Do3>O&|=jA4Y@L
zql4J!`mci~pBWe!Ky#@eeJ~7C3u43QX;Aw?V#t^WlrfM6plp~vD3<}$PX&pgC36M=
zsD4;I0aFk2Ka3Ar2Z=5G8ld4<0aXYJKTtaXrXLorAThKk0_*qz)el=Y2^PfSS8Q$v
ssl5Po{|iv2V_;wa&7XlVy8WQ$B{utafF{)$7#Qw=EC3k@#b{gx00&4u5&!@I

diff --git a/image_tagger b/image_tagger
index e75f06810a1abd98dc04ec442587bdfd46469f44..058f8c6173d82bfd8264946dc1acfcf47c65e547 100644
GIT binary patch
delta 14220
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
HTq+L$vkm)}

delta 12682
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

diff --git a/user.c b/user.c
index 99db6a2..89a7963 100644
--- a/user.c
+++ b/user.c
@@ -2,12 +2,13 @@
 #include <stdlib.h>
 #include <assert.h>
 #include <stdbool.h>
+#include <string.h>
 
 #include "user.h"
 
 
-User* new_user(char* id){
-    User *user = malloc(sizeof(User*));
+User* new_user(int id){
+    User *user = malloc(sizeof *user);
     assert(user);
     user->id = id;
     user->n_capacity = 5;
@@ -22,11 +23,35 @@ User_list* initialise_player_list(){
     User_list *users = malloc(sizeof(User_list));
     assert(users);
     users->n_users = 0;
-    users->users = malloc(sizeof(User*)*3);
+    users->users = malloc(sizeof(User*)*5);
     assert(users->users);
     return users;
 }
 
+void resize_keywords(User* user, char* keyword){
+    if(user->n_capacity == user->n_keywords){
+        user->n_capacity *= 2;
+        user->keywords = realloc(user->keywords,sizeof(char*) * (user->n_capacity));
+    }
+    user->keywords[user->n_keywords] = keyword;
+    user->n_keywords++;
+}
+
+
+void add_keyword(int id, User_list* users, char* query){
+    const char s[2] = "&";
+    char * curr = query;
+    char * token;
+    curr += 8;
+    token = strtok(curr, s);
+    printf("the keywod is %s\n", token);
+    for(int i=0; i < users->n_users; i++){
+        if(users->users[i]->id == id){
+            resize_keywords(users->users[i], token);
+        }
+    }
+}
+
 void add_user(User* user, User_list* users){
     users->users[users->n_users] = user;
     users->n_users++;
@@ -48,4 +73,28 @@ bool is_players_ready(User_list* users){
         }
     }
     return true;
+}
+
+bool should_player_quit(User_list* users){
+    for(int i=0; i < users->n_users; i++){
+        if (users->users[i]->status == QUIT){
+            return true;
+        }
+    }
+    return false;
+}
+bool players_ready(User_list* users){
+    for(int i=0; i < users->n_users; i++){
+        if (users->users[i]->status != READY){
+            return false;
+        }
+    }
+    return true;
+}
+void change_player_status(int user_id, User_list* users, STATUS status){
+    for(int i=0; i < users->n_users; i++){
+        if (users->users[i]->id == user_id){
+            users->users[i]->status = status;
+        }
+    }
 }
\ No newline at end of file
diff --git a/user.h b/user.h
index 6131fe7..81ce36f 100644
--- a/user.h
+++ b/user.h
@@ -2,13 +2,14 @@
 typedef enum
 {
     READY,
-    WAIT
+    WAIT,
+    QUIT
 } STATUS;
 
 
 typedef struct User {
     char* name;
-    char* id;
+    int id;
     char** keywords;
     int n_keywords;
     STATUS status;
@@ -20,12 +21,22 @@ typedef struct User_list{
     User **users;
 }User_list;
 
-User* new_user(char* id);
+User* new_user(int id);
 
 User_list* initialise_player_list();
 
+void resize_keywords(User* user, char* keyword);
+
+void add_keyword(int id, User_list* users, char* query);
+
 void add_user(User* user, User_list* users);
 
 void free_users(User_list* users);
 
-bool is_players_ready(User_list* users);
\ No newline at end of file
+bool is_players_ready(User_list* users);
+
+bool should_player_quit(User_list* users);
+
+bool players_ready(User_list* users);
+
+void change_player_status(int user_id, User_list* users, STATUS status);
\ No newline at end of file
diff --git a/user.o b/user.o
index d10234ac9ebf35864a3e8532e0781a1ba07fdaeb..4561529bef21b14459e05815a19a720799bf6d0f 100644
GIT binary patch
literal 9856
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

delta 2886
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

-- 
GitLab