From 46714e112cfee338f5b40e936e6b4ef145465c53 Mon Sep 17 00:00:00 2001 From: "romain.gabet.etu" <romain.gabet.etu@univ-lille.fr> Date: Mon, 1 Mar 2021 15:55:02 +0100 Subject: [PATCH] ok sauf Content-Length --- webserver/.client.c.swp | Bin 0 -> 1024 bytes webserver/client.c | 61 ++++++++++++++++++++-------------------- webserver/client.o | Bin 3064 -> 3488 bytes webserver/pawnee | Bin 18080 -> 18120 bytes 4 files changed, 31 insertions(+), 30 deletions(-) create mode 100644 webserver/.client.c.swp diff --git a/webserver/.client.c.swp b/webserver/.client.c.swp new file mode 100644 index 0000000000000000000000000000000000000000..a8adeb964feb5960ac505a8183ebe78242a2d52f GIT binary patch literal 1024 zcmYc?$V<%2S1{HyVn6{)SQ!}76O&R)ico~Ha)?!zoRgWFSE84U)sRua(GVC70lJ3( E0PV30l>h($ literal 0 HcmV?d00001 diff --git a/webserver/client.c b/webserver/client.c index 19fffad..c1cd904 100644 --- a/webserver/client.c +++ b/webserver/client.c @@ -12,13 +12,16 @@ char* testCorrect(char* str, int first){ char* strRet; char *correctStr = "GET / HTTP/1.1"; - char *incorrectStr = "HTTP/1.1 400 Bad Request\r\nConnection: close\r\nContent-Length: 17\r\n\r\n400 Bad request"; - char *correctStr2 = "HTTP/1.1 200 OK\r\nConnection: close\r\nContent-Length: 17\r\n\r\n200 OK"; + char *correctStr2 = "GET /inexistant HTTP/1.1"; + char *incorrectStrBR = "HTTP/1.1 400 Bad Request\r\nConnection: close\r\nContent-Length:17\r\n\r\n400 Bad request"; + char *correctStrOk = "HTTP/1.1 200 OK\r\nConnection: close\r\nContent-Length: 17\r\n\r\n200 OK"; + char *incorrectStrNF = "HTTP/1.1 404 not found\r\nConnection close\r\nContent-Length:17\r\n\r\n404 Not Found"; if(strstr(str,correctStr) == NULL && first == 0) { - strRet=incorrectStr; - //printf("---\n%s\n---",str); + strRet=incorrectStrBR; }else if(!strcmp(str,"\r\n")) { - strRet = correctStr2; + strRet = correctStrOk; + }else if(strcmp(str,correctStr2)){ + strRet = incorrectStrNF; }else{ strRet = NULL; } @@ -27,31 +30,29 @@ char* testCorrect(char* str, int first){ } -int traitementClient(int socket_client){ - /* On peut maintenant dialoguer avec le client */ - //const char *message_bienvenue = "Bonjour, bienvenue sur mon serveur\nExcogitatum est super his, ut homines quidam ignoti, vilitate ipsa parum cavendi ad colligendos rumores per Antiochiae latera cuncta destinarentur relaturi quae audirent. hi peragranter et dissimulanter honoratorum circulis adsistendo pervadendoque divites domus egentium habitu quicquid noscere poterant vel audire latenter intromissi per posticas in regiam nuntiabant, id observantes conspiratione concordi, ut fingerent quaedam et cognita duplicarent in peius, laudes vero supprimerent Caesaris, quas invitis conpluribus formido malorum inpendentium exprimebat.Sed fruatur sane hoc solacio atque hanc insignem ignominiam, quoniam uni praeter se inusta sit, putet esse leviorem, dum modo, cuius exemplo se consolatur, eius exitum expectet, praesertim cum in Albucio nec Pisonis libidines nec audacia Gabini fuerit ac tamen hac una plaga conciderit, ignominia senatus.Post emensos insuperabilis expeditionis eventus languentibus partium animis, quas periculorum varietas fregerat et laborum, nondum tubarum cessante clangore vel milite locato per stationes hibernas, fortunae saevientis procellae tempestates alias rebus infudere communibus per multa illa et dira facinora Caesaris Galli, qui ex squalore imo miseriarum in aetatis adultae primitiis ad principale culmen insperato saltu provectus ultra terminos potestatis delatae procurrens asperitate nimia cuncta foedabat. propinquitate enim regiae stirpis gentilitateque etiam tum Constantini nominis efferebatur in fastus, si plus valuisset, ausurus hostilia in auctorem suae felicitatis, ut videbatur."; +char* fgets_or_exit(char * buffer, int size, FILE *fd){ + int first = 0; + while(!feof(fd) && fgets(buffer,size,fd) != NULL){ + char* resTest = testCorrect(buffer,first); + if(resTest!=NULL)fprintf(fd,"<Notre Serveur> %s\n",resTest); + first=1; + fflush(fd); + } + first=0; + exit(1); +} -// int status = 1; - //while(status>0){ - char str[8000]; - FILE *fd; - //status = write(socket_client, message_bienvenue, strlen(message_bienvenue)); - fd = fdopen(socket_client, "a+"); - fprintf(fd,"Bienvenue client\n"); - if(fd == NULL) { - perror("Error opening file"); - exit(1); - } - //printf("test avant while\n"); - int first = 0; - while(!feof(fd) && fgets(str,8000,fd) != NULL){ - char* resTest = testCorrect(str,first); - if(resTest!=NULL)fprintf(fd,"<Notre Serveur> %s\n",resTest); - first=1; - fflush(fd); - } - first=0; - //fflush(fd); - fclose(fd); +int traitementClient(int socket_client){ + /* On peut maintenant dialoguer avec le client */ + char str[8000]; + FILE *fd; + fd = fdopen(socket_client, "a+"); + fprintf(fd,"Bienvenue client\n"); + if(fd == NULL) { + perror("Error opening file"); + exit(1); + } + fgets_or_exit(str,8000,fd); + fclose(fd); return 0; } diff --git a/webserver/client.o b/webserver/client.o index 3c7aaca08ec00cfdfd7053bcff251547ae5502d8..1ed8fdae63b1dd7e3cc24efdf9ffa85921daf1b5 100644 GIT binary patch literal 3488 zcmb<-^>JfjWMqH=Mg}_u1P><4z>vU&U^{@B4h*~uJPe^8oliZQ-#B=5)}H7rJ>t>J z3X=5bbp3!}zCbV^Aec80%nKgfp&vZDT~By)Ui0WY{sL@7>w!{%=Gr3+rCc7}t`9sq zU4Ojx0;}mY1<OO#wH^Q~xB*t6>Cqkf0;~vOQ0svbkO>#S3OGEDyZ!)c?{@v+(Rs|H z*A~Rv0U{vQcDw#Kc^K*|1CP$y7oDX~JUT;f9C!T#QuNxpJM@o7x9bap1z^uM*M49q zk%9W-h6mh@2$PSy{s9H7N4M(@xF3<&tp`e_Ji0?~bo)L58-EV2sP#Z;H`Mn1AQQmu z1iP^DO@cfFL+9Q#5B~q}ZUvE0i=kly^0EimqX%~hGB7ag18IkP8ElG2bL|g?QZZy9 zgcTm$p+7u&TQ@xT|9_u@JOcyVL0}Uhu>|(s$-@i`?yeyU`U)N)Ap!b^dWH~gW?pJV zW^qYkUI{`1rb5BQz(Bz%F-0LLwXig`xP+I>IX^EiHMt}+KhH`bIVZn36)aSenpdLh zlbV-al3`_N&dbHi1=Cmr(FlqZ1_lPWxkd&C3jW?;y#$O?fS3o-05t|-j){SZLSBA} zLRx-lUJ9~t1RQ6g;Fn*b;0Dsgz{|y;tE<bUTFj-ZtIJ^HmtRtpst}x7RF+y=WT&87 z%*BwX&ES-onpc*ZSDLDjoRgWFSHi{MT2z!@q>x{bnwOcEu8@|Qlghy0?(A%(py865 zl$n^PV4-KMXP|4Q31NVpE&?VQ7#OR97#J%A7^QjGIVLbNFvu`KFi83uh;ZZ+Xk&8b zWn;R?!_L9LAi==EU;`3oU|?7TqG9q33=9ek3=9z<F$M;PJ`fF)W9kI!1qtE8pp?eK z@bN!3d1kC73<Co*12Z<|49pBHIK;t)4Tc;u13QKoNPwAv14Ln9W(GD4F;H<Qgyc?e z*fB6Lh%qoQ2w<pYV9>!KZj3|R6Nk7J0|NudUYLF0I02<^9O?sbh==14kHI1Cj6*yL z>YfTvgu>DR0|P@b4)s+y#2aylci<3bfMf=}WQLN|;u7clqN3E~5{7tpAAcuDpLl;a zw_w+h_z*`YAJ=$>;*z4`k|Ge5oLj(<mY!Nt9G_nlpIVVw!jM)_l$lqO#*mhlQ(BzC zkd~UC22sIKQk0lklA4>ESK<uLcMNGMpe)CbR$i1@lFCq!3d)5HY2cy=6eo~KXJTMr z0HwM={~<sYBFq32=Z5k%pfpTe1<D7d2M`k`UIXGVFfiCbX_)vCC_fZRgK_}KY?!^J zP;r=gL1_HcLd8Mqc^DWNVCv`L5I+PJhnXV+HRlXe9ApkJk~y#p4HD->5|@PPgP9`_ z<*Pwyka~V3^_EEDp!@`Lrz?^;sLFzg$03OeA(>NxBrc33J_#xgbB{5UKNCuW+#`yl zek)WQrrr$7-vy;X>OpxQ=AIK!ahQ4!DE};!2B{ZEGXFY~II=t6BZ>1NssD{64l1Kz z_JYb}P}G3z1z`{ygduG*25>qAiNnedP<{u=gTz1>mX8_qiYs$V5|bG8ic5+hbOwx7 zl$w*MSCU#$!l0LuSdz$~msDKLpjVU+;Uwqhf-((*US57ls-C-FsBUpdVsbWv9#~sy zMtoXPVs0wPPHJF~e?dWkUP8nC%Leikl0_i3NL&VK1_p5L0aFi?(|}eH9Z>zC@*boY zRzrZo9Hdr_fdO0#pw~=pP<<dZ$QWb>G9OegfXpOUzai9qbn85z0`X`Tg6u-J-x8|d z09lZMfnhn+L9p@*CJi$VMms_E!{lM~5vYC`A4bFU!T6wh2qXq|E=-u=1XO<oTm-^E zcYhF$_}c&~e4zCrNGB-%KzczK#D~QnHoHOc4xkJQYTrN|1}a-YMxyHni9wwT(gw#f jpb4@cE&^eI?1Qi%B&ZC-rvC@XU<L+;M2IptiLM_25-vNi delta 1108 zcmZ1={X=|$2Gb6XiCVH81|FTYH#$qNO!QZB>JI(j(d~M}qw|_a=kXT|3=9k&tp`d4 znrp8xlyZ4=yT0(~bp7#K6Rf7!6f6%_*Lnb~;K9UKhV_ka3gj6WI`__b@c(~zD~R-f zD2A%_=yU~H^TDI@;4VQ128Ml%Ad7l!LFPd$ZLa;mP%7quB(xu-1}u5p^$$qlYrpQ$ zKOViU3m*LckL27=*BAUA&9yHWN@P5`Ltl7wyMCA)#wZv60q&u0S2(-%K&h+;$j=aC z_BqHiFu>Kd9w=>v+66KNCcXn?`N_lXt|1Eg3LYUL0s4k|h76PQnQR#qCa+<Vo_vDI zk(ZZ?L04CoOSPCwS66p(9kZsejbDCAQK~|4YEfBgX_1|RYBAU3Wz2GuPcW+(%?BCj z$S2Uo<jl*)G>eCwgMmSYfq}sWB+kIVzzFg?T>cLaJICZiE~&`@+$@u0Sk5rcpRCF1 z&zLsZkX3y01Xd0~uyHVL3=9n3V3`FxER#)GMHnMNJjMhtnF=Oz!DI=TtOS$wlN;Fr zC;wton|zy1o;@u&C%-tAVX_*#79-E(Kz4D?6sW`OCog0dmyCz<m>3usSQ!`?mO}aI zlP|K1*LOpCFxeGQ{!}Q<!oa}5%fP_!=RXAOgo?w|Z-(*@KxvSAekApGpyDv~+o1f1 z5W1cLq(J~l!+VGX15CpSDE|wT2B`<7N|=NGA&CninIjE~6$S>d`J71NrciN+`P>W) zx1k0&O+LsWE*T1y23aG5q%CpsM-Fku+R2KX;*3)#2Xcx}-oUBBG@oJeC(d)c3!s|7 zCQVl45uW^jOM+8?4a{c{n9Rs+&h&tBvLlPw<N$6B7;^%*2Im8)&d-w@dE_TQ;Fe&z z%ryBIw;j_5CWvw#4bBfBr!p`wL`-hvG3Qj^fS779`5=!urw22H=P;R(*POEh6u%4% U3~iGgdCfTkpehq5J95hd0Mue8=l}o! diff --git a/webserver/pawnee b/webserver/pawnee index 65c1d490681a32cb8646f454ae999aff9c33b416..65b9b5d470dca57b1fea5814215e05ba239dc6fa 100755 GIT binary patch delta 2076 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 delta 1820 zcmX@n%ebJIae@Y;!bHvcoVn}_V30dmkWruO12dSz@PT=<7vny~2Z|6bI-LR$W=NT= z$#h!eq9FG_?YDo|o_xIF<rc|R`o%wH*l*@wKE)@{#md0o(aWn0rfj#cY<?uDz*N7L z0VHah#>2qyLhjH1|NB9vy>R*a|9_}Q=Tnd7HwGS^wKqCTuXyybhVd{kcyzjc@aScY zhA>}v^s=siFdukyhko$rcD>=zdCjBq_zT0o|Nncm9w-%PuD!xg%H`4R`og2r^~Y;X zu$o@eO<-;H$6rYP`TxK509eHXunG>3<E}qI&hY4V{o&Dh%%j(~lZSy}2T16}>EHkV zgTzlB2D`8EO@TZEL+9Q(5B~q}ZUvDZy`~_~bRK_U@aO-3uyeazKX`N=+$G4sz_5=I z;$JtAfAjzRumA7ST>F8cRLrB-))geC0}2C>q8Cno{{KJj`Uhm|YrpQ$KOViU3m*Lc z5Aof@e_*p;cr@3(U?`FC=nj410kWpoR0!;^;}F-z{RW!>G7l`>dHh8+!~-8dVHE${ z80>dhaM(f2-{&9?3gzQ3KL3IQU@O!SFauUkmJpM*TEPtqk;T9M|9>sk?fM5CQVZeY z-M{|--vze0*Yvd(1H=CR|NsAgq56ArzL<(|J;?CpAOA~vJbG;txfvK<{GGf^Oo1_H z@^LYFp*=tU|A$G6fh1Q?{voF6`il$VvYS7_t`_#_wSCXU!0;mS=l}mZv=|r|UMsvX z`TzgFN3ZP@khtT||Nr+-kY`|cvF7*x|KJcgd3bVxxQN&VH3o)Ik6v969qgkCN@pA| zE^nSCp2jhG0$0H#h3S*mE7&qBOn##vJ()w%k(ZZ?L04CoOSPCwS66rPK1EGo8^8RL zqEv<8)S|M~(jq$r)ncy6&lIzgK-qztfq}u{-T(g^7#J8Xy#N3I1_J}bgZKacH!v_T z9R2YB{|5#J2Afa+{|hiOFx>w1|Gxnv1H+xq|NjRtGBB8b`TxIwk%3{ym;e7KFfuSG zeEt7_10w@N!`J`+e}ICMVe&R5C8mh?lW!^MF?LMmR90vFFxgO9obl{rPi1*Wm5=}b z&j%$MM?QfzCTCtYrdd4f91ILH3=9l&7#J89fBgTS5o8Wr{tsM!4+8^3%jA>F(yVtF z7#Q|XeyJ?Y21<YmpC@yvNU_Q=GB9LJ)>Lt3O#wM*bD>H(=i~`o6DGgVwO~xytf&{x z!k99-(nwztRz`r_0mIA;LJS_84;p=EWO}1Kd6!8U(*woHMy6_vPbNp2%4;QvLllCX z24bl)GB5}+@G<Nb0r40Zz;0$>U@&8x+;1ex#9%u4qNzAz&}2q4amEx7DOnBGAua~d z(Fma!`a!au%b~I|Q1ifH#K6F?87jU<6rwyDLNOd=WMB|rkYIS>02P2zXC_ZHlNU^Z zx)v(P@Bm~7W9DQ<b8*SfP!pF5L1fFJUSb5vGAe*bNn<96={L|!cL2#UhJeWoFj)&G zr-4YO6-*GnZ=d|oTwL-969a=Fg8&1A0>mB`2*q%DvY>^y<Siyh_%T3T8Vi+u1u}{8 zABdb>U?CxC2~~FhR6H>-Fla;72~A#TA#SL~405L=Mkp9DLrk9m4eJc3E_0ABMo%yq z2PTWaWE+^A0U{;WFf%X+GGT`7j>!`(#aS*fGcZg(Xe7+U@D8M!kzw*jOL0b#%^xjo z7&lv6d$VlruuouSTF5&2m6IMPEFMxOD>}O~-D8}b<*X+NOMNgpW%5dAeL)W;h#O(_ iip?*b?U|Tfa7@;6GvoYV36a&9oatuHC^31Vn>qkKUpd?W -- GitLab