From 3591c8eca8da65bab5f85983109ed7313f9df021 Mon Sep 17 00:00:00 2001 From: "romain.gabet.etu" <romain.gabet.etu@univ-lille.fr> Date: Mon, 8 Mar 2021 16:16:39 +0100 Subject: [PATCH] rararera --- webserver/.client.c.swp | Bin 1024 -> 1024 bytes webserver/client.c | 12 +++++++++++- webserver/client.o | Bin 11512 -> 12288 bytes webserver/pawnee | Bin 30640 -> 30880 bytes 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/webserver/.client.c.swp b/webserver/.client.c.swp index e8e5cee828505144e5259dac66921fccd25827ed..e074561066df0b854f31087b8c23a582dbc374f9 100644 GIT binary patch delta 84 zcmZqRXyBM2!PLb)Q7Xt#KO;XkRX;s3DYc|X->I}HHL+AbpeR2*zPPeDKCw(c*Tm4k aFj>DmHK{nYs4TTee`8J%vtTF#8UO%$qZb$e delta 19 acmZqRXyBM2!NkciQ7UNT+#u$O2b=&jg$4fr diff --git a/webserver/client.c b/webserver/client.c index 556ef4b..3003183 100644 --- a/webserver/client.c +++ b/webserver/client.c @@ -8,7 +8,12 @@ #include "client.h" #include "http_parse.h" - +char* rewrite_target(char *target){ + char* ret = strchr(target, '?'); + char* rep =""; + strncpy(rep,target,atoi(ret)-1); + return rep; +} char* fgets_or_exit(char * buffer, int size, FILE *fd){ @@ -79,6 +84,11 @@ int traitementClient(int socket_client){ }else{ send_response(fd, 404, "Not Found", "Not Found"); } + //partie 7 + char* absolute_path = rewrite_target(request.target); + fprintf(fd,"test - - - - - - - - \n%s",absolute_path); + + fclose(fd); return 0; } diff --git a/webserver/client.o b/webserver/client.o index b2e9c5334a81915453e3b8cdfedb49c8f9637de8..d124f3cc86bedbf2cde2f5b4f691d68f3f19bcd1 100644 GIT binary patch delta 4386 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 delta 3589 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 HP+J}V_=)|; diff --git a/webserver/pawnee b/webserver/pawnee index c20a651122655a32332826702626eac47bb97d5d..c3585590cefcc0ba0ce2a1c494f02c734cccb5cc 100755 GIT binary patch delta 5599 zcmdn+o^ioP#t9Na9|Re|zyVA$Fg(bgsI`nUgB!xln0Qm4D;CO$<(@3WsK>d01tPa# zvL~ZHrv)>F=P<dEv0ZVAB7}!dPk{(COqs07bXxafWC?@R3xmp{4=j^@m)`uK^VjkZ z69WT-0s{jBBLf2i8(4KCm{gdo$o!v?W3nQPIHLfVG?^U8qR*&1xsgSmk$>_=mU2dM zkoaT=)`ZClEE1C!uvW0hF)}brUYH=fS)YxCktMMtKXbAXyYJ)%b~A2}MNAAJ$S`>? zyELQQ<eTjBl5QY-85kH&*n(|k;DAsJ7bXjGh)Yfof^dI8LkTAPW3nShG^6a~xg6q* z3Y)ibgflV9Oy=cQ=6wNG$j-pPAivp=dojx<flG|_Li!908Bz=k3@;u2{r~@8RY;G4 zA#DQ0Yz79yx1OCB<2*Vac{D%y5D?<i%j(6+z~Ir#`<Men*=BPvF#H!irpv(ag<swU zEOb*3M6q51QI<bSL_NA$=jk#qc(fiU;r#!AU%mlk_F*XP!PRTK5~Q-%bkSsQAsLra zs8Wvq57NLU!c;ccX6i98FqG<tdNkXH=`t`dcyvB3;qmCU_0nTtc%l3M|Nj>m|Ns9# z#_BkEwU8?t3oir1i}cCggbamD|Nj5q{NsPAm`AVeMIHu*7b=r2g=HAcCx;0u)E`5V zTm+K5`uG3;{h*+K@%!)p|J|;C_Hi*VFmxV&QG=wi2c&W}T;)ZG%3UC@?E?{=$6w6- z`~QEZ>yPGIsLlBxEfsJr^Zx$-|6=FgdXS<o&9z@3&I<x53V|!C0$Ex6g`s|Nx9gA2 z<1d()Kw)cZ22#cM=l}oxAiG|G)Q5U>KJ{pRqu|k5`@*B!^~FAWa0nfL;r{3Ue~(Vr zA0EA|ygZ;lbN%4a?fS!`^Y{y%zyJTsH@{%?NWS3F?F-WO!K3pWNM`cy|NlL@T|b;W zJlRG>g^_h~qKFjJu0NA&MV9e>;R2a*d<WR-)X9dTR*AcQ{r}&22yASx=>}wZ0f<3A zJUS2V0;TeOpn&!0wOzo)!0=)*STghhRAWD~#_PYpE&#jp^{>fiL?x{f!1As?x?6kh z{QvLKYns6Yj+YxCrJb%HJeq4iFn}XD2xR)lU$A%-pDZtCz{JKlIZ#Zq{uem?ihkx~ zVAwa65$u&0OaJ}<|GFOJVUJ$kHxLCMK?){76|{g9#Ci0#P5{~5e1ONJ*YplZUFY!^ ztA76f-+G`_(W5)`2iS<tiypnA2SD0SK;ys_q+K2?8Q#mg5~Q(LbP-6!6sQF%|3E%M z7~gsP#ePV{J@DuThtLO)UeijD&Q5612mb_z&<9X_9se;|R$P@c1S0<;VzRfm5!2Kk zlk3GbnX-ONUM23uH1GT5Z{iwUwV-?pO3dFUYe;;tYGr3&fW+jVZ~y<l7VCEX(|OFJ z*R~EW{^Z;L|GOZuW-6o3z_9;6D5vFppByHsB7Ec9|NkDKti|KeYiq~O!0^Ita<8NU z)6s8}*GtL?fBg!{cp%x&Yzz!9zI>bfKvKi^IvXV1jlO|{PS~T@_6$gR(%1k0cW5y% zFuYcHVe%goBDM!X;#FV&|KC4Bo`K=T*YE%TgWY@ba2mgS3n&dv_LmYBKcK|G5bDvZ z3!;O4G(lN`<Hh4Io2#XsvP@EFoZO%=L#iaTxI{r048er10+`}bEuJi{SXvJ%^FS3( z&Ab2q?=Ubh*nIf^pM{Zu!RN#O|7#c+7z{uD|1ZPHz_8-e|Nl0O3=IE2{r?}s$iU$8 z`TzeKMh1rZ&;S3=VPs%9`uYF=J&X(tzdrx}e}|EQVak{P|Nk&DFvxuS|6hiQf#Lu6 z|Nm{67#N~{{Qn=r#K3U-$N&E|Obq-CK0p8epToq!u;%Cg|4*1Eizz8F&X{beq|Z9z z?f?G=Cg&<CGa5{us3gwFJ9(v&ykg47|Np~50pQ3d(8lD<%f=MM!_L9LAj81GFo%JG zVfN&cO46)*7#J81On#{(%?k3<?a7?V(rkY~b=s%NTFO#vAP<Rsn(U=4r3&)Xgirtf zcYq=rW+rnpBgjyYnIOOZnB1u>%?k4E?#U~arCCA#{WkfevNRjW$Kl^5zfzWB1$lbK zWKI=lRuv`&h69@eRm?d#FF>oS36n4C`ZI+{Pgc^4WAvEZs3*@DG<l((J!8k@hkEjY z51`c;sFDKtO<}U2zCGiE$$|RvjI%Zu>X$PLUIRrENDhjBO#WzK%ykuNemUc0M<%h! zE`|b}J|YkmC6fc=g(o{0a)~hVGC*t51L6?5$6)1BIt&a9Obm|%VA6{vA<`~j>B(0N zB^j@7erL$c$k?{|ibWjL<^a=YjEq+&o14cno}WC`Tv1t?oq>UcA)AqbfrGJ+iGhJ< zBMSqAFarYv+!f4|Z<_xC>sMwD)MsH}U}wo;U|`@?VT)&BU=W!CYQl)TV*xccM0r?v z^*HCTFfeeNurM(28i+c8WVx+D977Iw1_lNe?#CdG5tzfl?Kj!OMy}q7m4SiRgc)R> zcp1nfJ64cd3o(dqz%dJo`#IjM3=9(0Af}xZNCnHpKRfCrlR;V>IF5k=V`7F>aY+#a zqa!;=E%U?)j*{lA3=E7;{Oeg57+5AY?5vkcOJQJi=3r)KU|^b<AbFFeo`HeUiw$HR z)5I7_Nsws~P}2e!_#zn?7-Co%7{n|Y7#Qs38Kg5n3XIw2i9%dA3qmn4&e;xfT@%Q4 z#!?W|GbA|J7#J9h)gXqaNE`#}weSNwH9}%8m|GtV;Ri5C?*a+vv1LNdHietb%*MbV z0XADt0>x}S6%@1e%phh(Fi5w9%u;4khMMIDH_Hibma-(sta|2&D;y<Pft0I4gKdK& zgN!;zKn@%eFQ7@%8g51j8v}zZIHctyAvR_(h=+o72(yDCVlh;QD_qAVkgZ@#gk?Y~ zm?lO@TmfsS*MN8-L>3e?!X_X$F-`Q4DoQP3U=$I6D9&Jza|5a71{)7co#2856ykFv z{J^p>qam7kpwXBiRg_x5z{m^bCNMDEWd@~t8)i_tmjfq!c~(fmM`SUG(;X%+u<K!L z+pKG^!vszLsSFGZ94c&#%nS^I;PfvDN&iATEF5~A4$KS;oS^j2VIcYl)Og?orGE}+ z`sW0te-3E+=k%Mr%27@Nl>RwPm_g===zvnI1~}9YOn%@f<|70aP=N%phbTBTYdGEl zr(Op!u&<2-AhH=^>>$PFT#LZzD?tn#zE<G8#xyZT?EhpZCpD=}Y!Htk3JZuwW!NS^ zG#8sZ!^xiU-Q*ii%DgSC3=GUOBtgDq3ZBg2ti{;2+1S~EseT3<0|N)Us3y3-!UM_| zmdp$cydVZY1CuH{0|N&Kvk)kBp0F}7aBxbnXEQS}2z_H?VBnNu2bm{S3Svuhf+C)Q ziGiJgfm2S*m6?G-fP>3|X*MVX53n&Xa9Qy!204!NIf!G;R}U&d80rNCxa^tEfE4Wn zi92$EjAY>4#LB?H<pk!ia6SZaoCQG^b1(=9aJe)61!(}A>WOTs7sOPE25*=K1ulOk z4;BUnPOyeRWDP;}P#v>DRs@6X<KVmj;)DpVXJB9u;G6{Fgn~H|Aj=b(b3kTsvokPo zCG&zk&AAk$CI!slU=SAIieu|zVPFu_1^FnI9b~tVD2ScT2P$qE1QfU;nf8NB*=q;V z8O;MRW*JCLtUw$nNpi-5WHPuwmI;9D&0zwiHcnoUnmo}8a8QO$)^it=?ga^zLCyFB z(pC=jNYCVWcQMHVki02d9V-Ka&>E1m4O=-V4qs31a~D??0(m5i4HTk6pFpyi5XY;4 zbQQ3HoGEl+@+o&!e`%128Yd)z(m@;zFo%Vc6~xg3b2vDoK^y}xhlkS~#Hr>KVP#+t zU|<5(P+T>veXI-&Om36yJXCp)vNAC6C<#6VxvhM1frqYX6)OY73?6BYc2KIi%*MdL zqsGbv>iTld199{OK<Sf%vjxO41l!WVd3^FEkHA!rQyJM=LGI&ZW^n|C5Cel$J*d=H z1dG;#`j`w13>gq92F5u`><kRjj$jphAbm^|bEK2NTxpOL)5HV@Hjdp43=A^%pxh|P z_HS~Bry55ph{MUYc=I;T8|;i%C-(;?u}3n2>hG}0f??T{8v-0AFAiF-sm#F11S{T{ zxfogbcC&JDc(aPGWtH2-%4EaJ$q~uQ=*?<wI5{zRKc@u8O;#q3bdL3#l|y7084qlB z2<2yDT)a6Td^!tnVp4H_PH9PMd_iJK#^h(w3VcPW<wcn#sqrO=Md_&}lUZZ>H_wjA zWSYzvUk_^4#EUb|n!GVyl$nF!!Q_qc;*1KDAI6I^b1^)a{4m~qvO|IxGati;$&Lx) zpr%k%f}SL7bOIVWV2YVRh{0m=!i0Xt50ecO#hDl!CwnFClT?5<b--#E7#R3Kg%krH zL%?LkBylO&xByJn98{_^NHQ=uP7X@aW4tiAF=;vDoXMKW<%~-vFHBZvjGcTkSza<g z8lnNz_ye(w7#SFZ82A_#Pi9OJ=Y+Q)CM%}+8}4TUjf+Sye1MK9fYgKVbf_L!sKY9i zWuUPT#vLG1@;p?{KWGaJGNQu3@E9bU_!}yVUT?EAL0p60RuF}X!;0W&kTVz<7}S|S zNnV110h$n@!VG$oC#H%|PDtet41xL=CgTK>VGIM4nPBoWh?J~_+JI<ZLUeS4WEoe1 zNXflW+t9<~6iAlw9+><DCfO%Dri)MBkj65(FhRJUK_67KGf6PO#&94;GcbUvQ$Yp+ zP$+|iK#e~zgNcDbkU^3GmcL-)-k=hNfsX;bc@Yd1{{YQ<v0y_O7?Q!_likvV7|SO+ zrprfipoP<6sIOroaoSLg-C&J;4Cr<HJg7K&8)-GjzlQrk^$|D;LXCk^r=hygi-rpz zU5t;w<aaR1JvlK$oKYT38iGk@5GfVT!oVQNgc;AtER*vSM41?BCm+lZXPgOA%eZ>; z$BcE1XgPQDysRoF@L=3#u3S~7%?9}jjEoYK0}J#8JwW9ir~?nBgC<Wb&=;Hq?U}%6 zr^y!!^f@0uMITJ&EHvj-fOcXOCVLi|!@D%Fu1&|}iG}ry2PO*^=}&Gb5||uNWB?!W zgoSq^=j2I6dR(wX8X`UURFNCwqRE2A`hu{M0!B}n99XO`XrTlNR2ZGHd1A3WBjbn3 z7fbXxVF~lYWX@7^E_kLeoa|L<H+g+N>*U^2Yet#LCrj-)?-)YNDVi);X3pg2HQB4o zj<YlXBKTnP#4>Zv&<F_6VDiN>bIy)<2rpo=V7WQxjZ6q{|Kz}ObI$2`5T5(wi3Rci D<k2;0 delta 5049 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 HW1&0%W=5n} -- GitLab