From 3d74075a6aed07e4117ee08797e5ed5ac5f195df Mon Sep 17 00:00:00 2001 From: asus Date: Thu, 23 Feb 2023 22:10:16 +0100 Subject: [PATCH] wip new version still --- a.out | Bin 16944 -> 17024 bytes mini_serv_2.c | 27 ++++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/a.out b/a.out index cf5e79094fc14e71d6b46a9b1ebcef14cd46b63a..70086a89ba6b81659f2b00cab0bd0b497711a023 100755 GIT binary patch delta 2275 zcmZWreNa?Y6u);rSRP`#Z&`S(AMF!U(QKCm`4HJ<(OG;nGJ`rM(^x_(%BV=h&Xh&q z01fL#xgKgN`@=C!{ljr-on$n1wI=khz;V(V{{YkRQCg6ctEsPZ_wAa}-FfeK&)2=@ zoO|wh8|t8Kope_wU&E8w@Tfo{!MO*yD5p}<;7^W}V6sXClfg{wTn|;r9;l!WZa||_ zS6~OdJEKTcsfoBuWs_y_spbdE?zgXt;mW(^bFLX?f3oJIwEd@ww!=HxY^#83Z1p63 z+Q<&}B8-;_r?e{}j*9@a2I`~Fsfzd@ecwaZ4_Q0@KpjTi}cbVPG<^G&J8=rtq+wFbfI zF*6-PMqMh#b3sU)AM!lS55Zx>5}FFP4T3dY6~*4sQk7t#2{1kRGMxl}C7-ccp3vFr zQ3(S=M))k3mh_crG38%&5VDD#(#XIgMNww$gC%@+Rj-y1C4HrxknuXZ(bf?&mAYLs zP+RKOPhqey+MF&0^aZFSbw-*wWyol2V~XF#5%tHIusi=(ILS|=dbq+rJNF2(i0}DT zQoHNg3pkbhH=0wWfa?R~%X85Mc|E?q*LQ-=Tx`DcP*J3SZ&dQ1JHv`Wz6hJmLCpU{ z^NaKbNNGLkjSm#X@4YIm!^iI(kOD2TyavY7R?|yRVVU3BeoK`6Em6O3+`nq{46A_C znQSE^+M$6gwYSK`*qO?F>2_64LQxOy8mJtX0$$ml9H<+d{|M}ljTe(w-`X|c72{$ZisYHzuvJa)K-=^teJ-7N#ozfUmlurLNzL z_lE`CD)%Gp_g=z1F_t%z~Vy|{x7 z)lTDfL_R-3k3}5|DA1_GJZn%CB68(DXw6s% zzKreE2%{OI=6Dp$LU|sm4BX8b@t>3YKgxTf%zw<;sR*Vd;FANZhU7`;5+<=dLRnsq zh8u-8!){U6T3*{+yG7j4)U>TBg{*Gc*051*@NIoEFwBpyNLA>b_3-<6r~L@b4*bVA!Z|PV)UPi5<#p+yo%U$M^PRiO5=($4Wo=A zmQcLxgg}FsMf)Hq3i=vcEeDQ>GwCK66a_5Z5pgPQ2K@}1w*yx?iRz^68Pj{3C6kjh zU#A+-g=xqdz~?#K;qX)P{V_SK-%)&yp?qbyV#dZ)Yoe7TS_jKI8+(A-ZJLfu$g;mm zMc9D^rLfQLrXd)%+jxmZjDxiWHoAa!l+tQg?y%9U@aql-<;&wuTvfnhgTpyzth**~ zMHFj@kwjpJQ?Mr7NZ3^1gpw(w4|<&r>VaYBTDl9$a+lH~@aJyhM$li8Sji!vc}uN* zo`ju>n^9`UwX2{uPhi1p&wGg;g~7Z$u;f{+H&JY2#uLoOVK`TyTIkIe=9#d2@c6@B zVne3_u_2!=y(`{wvncFbPz*f_EY3|RGNI2APh2++x8vRfa6^VE)bw9KPk;f+Tx8lcD5+{jLGN`_O_mm+egx3W+YZ0IPH(={LJ3de?uK! zVn;7c65$UZDM5=enxY=g!U6Q32Yn*`=Uu*AVt$GO#Tp`?)Oic?*{xe6Z_ zT%zzou-w&3b70Wr0FT=QCU=fGk=X>!G{6eCJ*9)yJq|2@o$hj40E2D^|G$3&z?VAA zU1Cg=BruhRSCqObJp@6IgG&_3A-Lcv;*9sFW85 M%L?fM;1M!Zg0rOn-nEkj@Zg zt`%m|lqQx#2#X6Dgv9xe=~j^Vxq?wJ#$*@+f%peAl01?{E1-@qpXc_yvgmE@{oUWW zzkANT@1A=b8KS9!^!+knoj`I$)`9dTYd+*Nyv{Pot5Q+as*|V{?9|8iQl0ifHUkdUQ62P|j7t7?*MM*RL6_TqC}5>a09`=~U>fw>NnX_M56*3vdc^S%5V{ zqO2jzCc>Ad4ItN>!C?-=sJRa0pcxLC9rO|iX7R8kL$AX*%UUXfP%r|g3wFa2s{>Y8 zE0;2d965qcY*<-2oji*EP2@QCnXSM4Roo&+K7y!K^w-&$hLCJf$3h)Q*7!DK@_+4P z@SXK(IuGU-iY|wtWiZ>W6SkEF5G=exi^0iHQfE3@_H4m~Z6&1>utBI^M@@ui&aFN| z?rigwxDV#0DT!c>M2M2GR54gS8+IyjOBafip-h<9u9vtYO!&2dsK3hw6HT|^d!d3l zK@}=%&Y+3(FMVD)5WMvic9qzTaIq2(9!0xaqiLG@GB)2@5+K=E*iHXvniB8NDzWpE z>?GA+;B9-7Zh`rw&(J?%Q|S?BK18qOS`>7ttlW?sN}s&rO^;FfgN)3>CAbB!VlMa5EDo2B!Rfea6m0J$_%)wq59) z;>aW>!l3#N@>u6jO1v|x#P=1dzacL)Cr@qrm7(Lbe69!KMW*|`YUi_qf( z4DCkQS4fCD_&*7=s@LGj1y{^xa2(zgn_;K;77fA;(Zh}01#4MX8A}QD;LpU)E3wP! z&|S7B_2z6kQWmjJ6xrxuj~N8d!nIwYaA=q3mA!j+?=2#9p{Yg2ne58k`CZe(h>kxr zZ3J-%VlU&jH0?CvbBI%j2XAXy7ID=bO|wyW&r`K1lhw4x(L`2R*%u;9ur^}dhb}$v zjc2i|4;A?|Wr{MaEZ8QX-i35OEb_YPAqaZK`D}!Rsl_m+bkw`O_;69c^(f_y6gMt4 zIRez@=E5RW`8Lx+h$6X1;H0mO9)oG0Tc|dI8gByG0fN*{1F&9lQ!c$nlBn@?5Hbei zb(1s#d;Fq5WrV?XEUZP-XZhD-G#WE(16Ha1bththGHIfQYp zv^$GEfpd}kWzXv#GCTf=N4J=bfnvNbcHBb52w#OdRw`h;QKS-UA=Ov`jwVO`uOKM;Iqco z@I|iu0oG&xD$r%3Z8*ly`#;79I2zjow~bZFTJ6iNcq>H7f-2N|wlqGb!kr!~|n z35D!E!;;5);B9e3rqw2JMjGU?4yIcrK44e_;0iYLI}El1dVIf>CgFH1qinpMsu_cFd>Yj&`2-bwxEyqoR75&Yl48%4UA;a-EgK HiB|W&4u{f$ diff --git a/mini_serv_2.c b/mini_serv_2.c index 836e7b1..0ff5b19 100644 --- a/mini_serv_2.c +++ b/mini_serv_2.c @@ -91,10 +91,31 @@ char *str_join(char *buf, char *add) return (newbuf); } +void add_client(t_client *first_client, int fd, int id) { + t_client *new_client; + t_client *client; + + new_client = calloc(1, sizeof(*new_client)); + if (!new_client) + error("Fatal error\n"); + new_client->fd = fd; + new_client->id = id; + new_client->next = NULL; + if (!first_client) + first_client = new_client; + else { + client = first_client; + while (client) + client = client->next; + client->next = new_client; + } +} + int main(int ac, char **av) { int sockfd; int client_fd; int maxfd; + int id; struct sockaddr_in servaddr; fd_set read_set; fd_set write_set; @@ -104,6 +125,7 @@ int main(int ac, char **av) { if (ac != 2) error("Wrong number of arguments\n"); client = NULL; + id = 0; first_client = client; // socket create and verification @@ -129,6 +151,8 @@ int main(int ac, char **av) { FD_ZERO(&write_set); client = first_client; while(client) { +write(1, "1", 1); +printf("id: %i\n", client->id); FD_SET(client->fd, &read_set); FD_SET(client->fd, &write_set); if (client->fd > maxfd) @@ -140,7 +164,8 @@ int main(int ac, char **av) { if (FD_ISSET(sockfd, &read_set)) { client_fd = accept(sockfd, NULL, NULL); - + add_client(first_client, client_fd, id); + id++; } } return (0);