From 264488ff74748cf95d9bc0a010da4c2df2eca88e Mon Sep 17 00:00:00 2001 From: xgiovio Date: Sat, 31 May 2014 01:19:51 +0200 Subject: [PATCH] Implementata parzialmente la select --- .../makefile | 13 +- 12.3 nodes communication/makefile | 13 +- 13.mail smtp test and errors/makefile | 13 +- 7.client-server-daytime/daytimesrv.o | Bin 3280 -> 3080 bytes 7.client-server-daytime/makefile | 13 +- 7.client-server-daytime/server | Bin 13663 -> 13663 bytes .../client | Bin 0 -> 13563 bytes .../daytimecli.c | 49 ++++++ .../daytimecli.c~ | 0 .../daytimecli.o | Bin 0 -> 2880 bytes .../daytimesrv.c | 62 ++++++++ .../daytimesrv.c~ | 0 .../daytimesrv.o | Bin 0 -> 3152 bytes .../makefile | 14 ++ .../makefile~ | 0 .../readme | 0 .../readme~ | 0 .../server | Bin 0 -> 13768 bytes 7.client-server-print-ip-port-both/client | Bin 9508 -> 0 bytes .../daytimecli.o | Bin 2276 -> 0 bytes .../daytimesrv.c~ | 41 ----- .../daytimesrv.o | Bin 2412 -> 0 bytes 7.client-server-print-ip-port-both/server | Bin 9644 -> 0 bytes 7.client-server-printipclient/makefile | 13 +- 7.client-server-select/client | Bin 0 -> 13563 bytes .../daytimecli.c | 22 ++- 7.client-server-select/daytimecli.c~ | 51 ++++++ 7.client-server-select/daytimecli.o | Bin 0 -> 2880 bytes 7.client-server-select/daytimesrv.c | 145 ++++++++++++++++++ 7.client-server-select/daytimesrv.c~ | 63 ++++++++ 7.client-server-select/daytimesrv.o | Bin 0 -> 3152 bytes 7.client-server-select/makefile | 14 ++ .../makefile~ | 1 - 7.client-server-select/readme | 2 + 7.client-server-select/readme~ | 0 7.client-server-select/server | Bin 0 -> 13768 bytes 7.client-server_recursive/makefile | 13 +- 9.client-server-echo/makefile | 18 ++- 38 files changed, 486 insertions(+), 74 deletions(-) create mode 100755 7.client-server-print-ip-port-both (OK - NO ERRORS CHECKS)/client create mode 100644 7.client-server-print-ip-port-both (OK - NO ERRORS CHECKS)/daytimecli.c rename 7.client-server-print-ip-port-both/daytimecli.c => 7.client-server-print-ip-port-both (OK - NO ERRORS CHECKS)/daytimecli.c~ (100%) create mode 100644 7.client-server-print-ip-port-both (OK - NO ERRORS CHECKS)/daytimecli.o create mode 100644 7.client-server-print-ip-port-both (OK - NO ERRORS CHECKS)/daytimesrv.c rename 7.client-server-print-ip-port-both/daytimesrv.c => 7.client-server-print-ip-port-both (OK - NO ERRORS CHECKS)/daytimesrv.c~ (100%) create mode 100644 7.client-server-print-ip-port-both (OK - NO ERRORS CHECKS)/daytimesrv.o create mode 100644 7.client-server-print-ip-port-both (OK - NO ERRORS CHECKS)/makefile rename {7.client-server-print-ip-port-both => 7.client-server-print-ip-port-both (OK - NO ERRORS CHECKS)}/makefile~ (100%) rename {7.client-server-print-ip-port-both => 7.client-server-print-ip-port-both (OK - NO ERRORS CHECKS)}/readme (100%) rename {7.client-server-print-ip-port-both => 7.client-server-print-ip-port-both (OK - NO ERRORS CHECKS)}/readme~ (100%) create mode 100755 7.client-server-print-ip-port-both (OK - NO ERRORS CHECKS)/server delete mode 100755 7.client-server-print-ip-port-both/client delete mode 100644 7.client-server-print-ip-port-both/daytimecli.o delete mode 100644 7.client-server-print-ip-port-both/daytimesrv.c~ delete mode 100644 7.client-server-print-ip-port-both/daytimesrv.o delete mode 100755 7.client-server-print-ip-port-both/server create mode 100755 7.client-server-select/client rename 7.client-server-print-ip-port-both/daytimecli.c~ => 7.client-server-select/daytimecli.c (80%) create mode 100644 7.client-server-select/daytimecli.c~ create mode 100644 7.client-server-select/daytimecli.o create mode 100644 7.client-server-select/daytimesrv.c create mode 100644 7.client-server-select/daytimesrv.c~ create mode 100644 7.client-server-select/daytimesrv.o create mode 100644 7.client-server-select/makefile rename 7.client-server-print-ip-port-both/makefile => 7.client-server-select/makefile~ (94%) create mode 100644 7.client-server-select/readme create mode 100644 7.client-server-select/readme~ create mode 100755 7.client-server-select/server diff --git a/10.client-server_recursive_kill_zombies_plus_err_accept/makefile b/10.client-server_recursive_kill_zombies_plus_err_accept/makefile index 16fdd6d..a9beab6 100644 --- a/10.client-server_recursive_kill_zombies_plus_err_accept/makefile +++ b/10.client-server_recursive_kill_zombies_plus_err_accept/makefile @@ -1,9 +1,14 @@ +CC = gcc +CFLAGS = all : server client + server : daytimesrv.o ../fun-corso-reti.o - gcc -o server daytimesrv.o ../fun-corso-reti.o + $(CC) -o server daytimesrv.o ../fun-corso-reti.o $(CFLAGS) client : daytimecli.o ../fun-corso-reti.o - gcc -o client daytimecli.o ../fun-corso-reti.o + $(CC) -o client daytimecli.o ../fun-corso-reti.o $(CFLAGS) daytimesrv.o : daytimesrv.c ../basic.h - gcc -c -o daytimesrv.o daytimesrv.c + $(CC) -c -o daytimesrv.o daytimesrv.c $(CFLAGS) fun-corso-reti.o : ../fun-corso-reti.c ../basic.h - gcc -c -o ../fun-corso-reti.o ../fun-corso-reti.c + $(CC) -c -o ../fun-corso-reti.o ../fun-corso-reti.c $(CFLAGS) +daytimecli.o : daytimecli.c ../basic.h + $(CC) -c -o daytimecli.o daytimecli.c $(CFLAGS) diff --git a/12.3 nodes communication/makefile b/12.3 nodes communication/makefile index 16fdd6d..a9beab6 100644 --- a/12.3 nodes communication/makefile +++ b/12.3 nodes communication/makefile @@ -1,9 +1,14 @@ +CC = gcc +CFLAGS = all : server client + server : daytimesrv.o ../fun-corso-reti.o - gcc -o server daytimesrv.o ../fun-corso-reti.o + $(CC) -o server daytimesrv.o ../fun-corso-reti.o $(CFLAGS) client : daytimecli.o ../fun-corso-reti.o - gcc -o client daytimecli.o ../fun-corso-reti.o + $(CC) -o client daytimecli.o ../fun-corso-reti.o $(CFLAGS) daytimesrv.o : daytimesrv.c ../basic.h - gcc -c -o daytimesrv.o daytimesrv.c + $(CC) -c -o daytimesrv.o daytimesrv.c $(CFLAGS) fun-corso-reti.o : ../fun-corso-reti.c ../basic.h - gcc -c -o ../fun-corso-reti.o ../fun-corso-reti.c + $(CC) -c -o ../fun-corso-reti.o ../fun-corso-reti.c $(CFLAGS) +daytimecli.o : daytimecli.c ../basic.h + $(CC) -c -o daytimecli.o daytimecli.c $(CFLAGS) diff --git a/13.mail smtp test and errors/makefile b/13.mail smtp test and errors/makefile index 16fdd6d..a9beab6 100644 --- a/13.mail smtp test and errors/makefile +++ b/13.mail smtp test and errors/makefile @@ -1,9 +1,14 @@ +CC = gcc +CFLAGS = all : server client + server : daytimesrv.o ../fun-corso-reti.o - gcc -o server daytimesrv.o ../fun-corso-reti.o + $(CC) -o server daytimesrv.o ../fun-corso-reti.o $(CFLAGS) client : daytimecli.o ../fun-corso-reti.o - gcc -o client daytimecli.o ../fun-corso-reti.o + $(CC) -o client daytimecli.o ../fun-corso-reti.o $(CFLAGS) daytimesrv.o : daytimesrv.c ../basic.h - gcc -c -o daytimesrv.o daytimesrv.c + $(CC) -c -o daytimesrv.o daytimesrv.c $(CFLAGS) fun-corso-reti.o : ../fun-corso-reti.c ../basic.h - gcc -c -o ../fun-corso-reti.o ../fun-corso-reti.c + $(CC) -c -o ../fun-corso-reti.o ../fun-corso-reti.c $(CFLAGS) +daytimecli.o : daytimecli.c ../basic.h + $(CC) -c -o daytimecli.o daytimecli.c $(CFLAGS) diff --git a/7.client-server-daytime/daytimesrv.o b/7.client-server-daytime/daytimesrv.o index a970700c80469ff0da05f6ccdc20fca816644db5..b17ac13b22c5d6cc59383baa5b91f31535a734e0 100644 GIT binary patch delta 321 zcmca0*OgE3>Hra9x}EJl~fhZyIu$o&8Re{u?wJx^kCa%w?|LTXV_e$nKkOqP?F zRTx<&t1{mPl8h|oTmhU6V6cE`vJ;CLlMB=2h0J1;C$MP1m={v&vY27l2wE01k>bQtaeNvxF`Q&wPR$MY{_QNxMFf8n?2JDj?KH+_!t>kHlJkA zXErougqQ;|P6&wq09^?J?oe?qpcpF<+XFEO_)HGu7H15btjH}cnSi8M7$^tRTQ=E| iM_jTF%>*B?eg=l=lM8vorS2o?6+_bdn{o0Y9z6h4MpK;t delta 441 zcmeB>xF9(}gK@z|O>@SHRa}!37+pZrEXHMQ|Ni~|&%iL*g~?v2peQvtGclhbF*!N4 zphO|Hs3^aP0W4CGUt9uWOzvm0oP3N)jZtaxTc+DU@+7l4R|h8p7#J{5=3+5pOquM+ zVh^PFlQ*&nPrk#V!gy{nBda~*&&iIg_LJB+CU>w}Fzw)(e2CSK(PA=0kYWX5dkB|7ZSqAfaYoz8jNIaq zfoN*np=!cFY77&gvLKgn1M#2#5Ri(dD+H=53#3ajA5AtADq8}!w{CJGx47pNB$Gvu fOrC?LHwmhDE0TIqB=vtMALJHil4P2Ei(3x>7ei=T diff --git a/7.client-server-daytime/makefile b/7.client-server-daytime/makefile index 16fdd6d..a9beab6 100644 --- a/7.client-server-daytime/makefile +++ b/7.client-server-daytime/makefile @@ -1,9 +1,14 @@ +CC = gcc +CFLAGS = all : server client + server : daytimesrv.o ../fun-corso-reti.o - gcc -o server daytimesrv.o ../fun-corso-reti.o + $(CC) -o server daytimesrv.o ../fun-corso-reti.o $(CFLAGS) client : daytimecli.o ../fun-corso-reti.o - gcc -o client daytimecli.o ../fun-corso-reti.o + $(CC) -o client daytimecli.o ../fun-corso-reti.o $(CFLAGS) daytimesrv.o : daytimesrv.c ../basic.h - gcc -c -o daytimesrv.o daytimesrv.c + $(CC) -c -o daytimesrv.o daytimesrv.c $(CFLAGS) fun-corso-reti.o : ../fun-corso-reti.c ../basic.h - gcc -c -o ../fun-corso-reti.o ../fun-corso-reti.c + $(CC) -c -o ../fun-corso-reti.o ../fun-corso-reti.c $(CFLAGS) +daytimecli.o : daytimecli.c ../basic.h + $(CC) -c -o daytimecli.o daytimecli.c $(CFLAGS) diff --git a/7.client-server-daytime/server b/7.client-server-daytime/server index f434b739759adbf1929fe1b6f01018a7a1834ab4..1b7ddbe51751a5dfccd83e5d1f7c56bbf0ebe29a 100755 GIT binary patch delta 960 zcmY*YZAepL6n@{itDA0jccF+RZmVX~{ESHZL=o{41`3Ue3N4e$utbWcBr7hHE<;hy zAAc+``&to|4QxoM`_n8a_9M*5GA!eYlJifBTDNoWtmuXFKJR(X^PY3=x%W;sOg3~y z^gfQL%h&yW*z7RH9EYhyJviVV{g8a5`pK5M0mHi;SF%1$-M!g6HLzM4=+P`{>Bm4< z!U?LYWlIPj4n<&Dw?d!65B+vJ2Dyo?nlCKeOLVxuV_f>SD$B!4R%zm=EPFj~f64No z;twgC7?y4$Eqcb07M?3RX-OVlQEoo?d$SKEu^h#C;ziFW>iCWrV2VCe@?vOEhy5e{ z8KXml!nvd*+7GQs6-TpBAbKX$8p=*w_q}RKyxfSfnRHo}oxC{B3v*VnZEiL-$YCz8 zb5$JU#c)t*RZ3Q>bd)a*QuKK7#W3EHrB1LIEQX%+6)y(aWQ}&=w_bi)07C(WxurtfaETz8e@ehn|J4Yy?bmTT9P8RHcJu5`4MXcCw? zi_M6+Zz%L1mBwdCz-AQHEwoOkMis@%SN~I8R#lsj`-;{C-P~qo995b?h&yG32)7L! z8CBFDXvugQPe-B9p0D@g*QG2!oUs>~gKJ)pRY}qa{iyl(E6mu7^scoZ!xhNNbZc>z zq3o166A2=wQU@%cXC|(|LiQr1Jus7#Pn#eucb?XQKCglrp*rspw(v5~LTM0Y^7GRk p8cNh^5UWXEkyWw!tT delta 1011 zcmY*Ye@IhN6ux)!wN1D8Hc`YhxA`ku{)9{_D*ItRDycw;U}S3vX^^t4G_nVMGZ=Xvi;K*SXM|Z5-Lb}qR@m=EA@5mvy3j>d(Qp7?|tWR-g_ULJ~jnk z8~V*eUH#qf`z%gj{^ArW)x-(6>4%i>8z;I)R=K8Y2iDpjE@^Qs*J_T3E@`F`=xivc z+fVhU`AQ;2!g2Vi|3!yj(y)?FLQ&!gjaGo$i3MIB?c|XeMd@R%^3W`184P=iSinCx zrzpLQdCCqcB40s)$} zYD8Zq5T$VMI#eV63F)VV5+X{G9#&cga3)pnO+uOEA5zP+leFClsNJB&4&+AX5DW(E zL}^&`joYM-@v*d?E$A7jn~~lvn0@=js#i_-Vg)SmyidU;9|k4KYP^CsZO6`wvp}U^D<%B zR7kf$GT%fyp@T1_^>B}`$!_s9xEo!~#N~E3w6xk9Jf3C`QIVGBBdsg}onYNcGqh_& zET+f3d0J5pU_6NRx-fR(-0ot0gRvi@2j9>*Mh-`5#11cFEX0_LGpeO(hX&w|xHi}SnA;J+%(Rih3YVXB+BPl4TRwNGI6 zGykbhs;XSXzTn;mF7r|@ioIz<-R46kD9GALqoMY!$BU>8WqBorC|}8*CsAn3tFXlW z++w^65+6K3&A-2AG_S&N3qK6DZiSZRdlP6B!j4p}fNh5zY19c5c(Wim;h3UGjuw{C zAfy+4rKiDATuqB$SMhOd;YG2P(in`El%&5h&KrViOUO$cPBJl(IFyxoE$XO{;kEOq P4B^sx>I&J*)+PJ~;z5Hu diff --git a/7.client-server-print-ip-port-both (OK - NO ERRORS CHECKS)/client b/7.client-server-print-ip-port-both (OK - NO ERRORS CHECKS)/client new file mode 100755 index 0000000000000000000000000000000000000000..1480f8374d930190767fcd53370d1e98ec749721 GIT binary patch literal 13563 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 NCn%Sl%6@Z7{u7P)YIgtt literal 0 HcmV?d00001 diff --git a/7.client-server-print-ip-port-both (OK - NO ERRORS CHECKS)/daytimecli.c b/7.client-server-print-ip-port-both (OK - NO ERRORS CHECKS)/daytimecli.c new file mode 100644 index 0000000..f02e382 --- /dev/null +++ b/7.client-server-print-ip-port-both (OK - NO ERRORS CHECKS)/daytimecli.c @@ -0,0 +1,49 @@ + + +#include "../basic.h" + +int main(int argc, char **argv) { + int sockfd; + struct sockaddr_in servaddr; + + if (argc != 3){ + printf("usage: daytimecli \n"); + exit(0); +} + if( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0 ){ + printf("socket error\n"); + exit(0); +} + bzero(&servaddr, sizeof(servaddr)); + servaddr.sin_family = AF_INET; + servaddr.sin_port = htons(atoi(argv[2])); /* server port */ + + if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0){ + printf("inet_pton error for %s\n", argv[1]); + exit(0); +} + if (connect(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0){ + printf("connect error\n"); + exit(0); + } + + char server_address_redeable[INET_ADDRSTRLEN]; + short server_port_redeable; + + struct sockaddr_in server_struct; + unsigned int server_struct_size = sizeof(server_struct); + + + int ridden; + ridden = read (sockfd, &server_struct,server_struct_size ); + //fprintf(stdout,"Ho letto %d\n bytes",ridden); + + + inet_ntop(AF_INET, &(server_struct.sin_addr), server_address_redeable, INET_ADDRSTRLEN);// get ip + server_port_redeable = ntohs(server_struct.sin_port);// get port + + fprintf (stdout,"%s%c%hu\n",server_address_redeable,':',server_port_redeable); + + + exit(0); +} diff --git a/7.client-server-print-ip-port-both/daytimecli.c b/7.client-server-print-ip-port-both (OK - NO ERRORS CHECKS)/daytimecli.c~ similarity index 100% rename from 7.client-server-print-ip-port-both/daytimecli.c rename to 7.client-server-print-ip-port-both (OK - NO ERRORS CHECKS)/daytimecli.c~ diff --git a/7.client-server-print-ip-port-both (OK - NO ERRORS CHECKS)/daytimecli.o b/7.client-server-print-ip-port-both (OK - NO ERRORS CHECKS)/daytimecli.o new file mode 100644 index 0000000000000000000000000000000000000000..1b032de2514852ec5ff632383b9f3e6f90441b3b GIT binary patch literal 2880 zcmbuBPiP!f9LIl~U2Tj>v#nKxD9pi?w6#-%HE1YdYZyC1Q$k_egGxKuoppz1XO@|_ zkOV>xp~A2%s8>DY=%I%k3jK3PmL6PBQV=|ciqJznc=I6C-|x+P*>*`=J*Tl{2LaNZc4b_ zUmo zv$fT(FS=(hdA<_{#yNA|{NT)7SHcfZCUZDJy3q=oSD>(7F3e0G8UF@fgSU{;LAFD$ z#f78gug8|AUX}z;X0*{3&MJ-q1=HBlUg)klrf}BlbV6H|Hm|>7i>Os5h`ncu? z!Zj~muAPa5Q@@D;l;*asH$$iG>Nfv(G_U~4Kh&)XR@Er4P5CsGm{0CZ1|$AdzVQH6 z+AV0W;z4~BhBpbKy^9BNwp|Is0l^GQ_kRy#sOEpopTk^grDUR)nC_px(OSQb`xqU{ ze_sPNTB_jb6xWxf$4_uw`#iLh7Ni!_vDZ|7I$Y;}#EYVz)_(~0u9R5xYKbgbN=5X3SS$(TH+|J?4Ih^)KR{bw?cq50y=!<05q3w7+bh;t} zcij`}TLg{>JZRxpC>ni`pc8t&XzDK!gs#&_R(%n408gz5BGCxC0-7ooB|wEvX!x;u z;Vn5OX|iW%?Vsm~onxH#s^)aR$Y>kU9@6|OK{Q>To*UWc$spr-ef>K~b$I=6S^O0G zy8ic!)4Qm-{6~dzsx!^_ujrF$J@d&Fepe&K({t2y{$!l%DXRCJ;_0_Z$4@G*>t9y+ z$5=eS-WkSu{dvZZv-;N + +int main(int argc, char **argv) { + int listenfd, connfd, n; + struct sockaddr_in servaddr; + + + if (argc != 2 ){ + printf("usage: daytimesrv \n"); + exit(0); +} + if( (listenfd = socket(AF_INET, SOCK_STREAM, 0)) < 0){ + printf("socket error\n"); + exit(0); +} + bzero(&servaddr, sizeof(servaddr)); + servaddr.sin_family = AF_INET; + servaddr.sin_addr.s_addr = htonl(INADDR_ANY); /* wildcard address */ + servaddr.sin_port = htons(atoi(argv[1])); /* server port */ + + if( (bind(listenfd, (struct sockaddr *) &servaddr, sizeof(servaddr))) < 0){ + printf("bind error\n"); exit(0); +} + if( listen(listenfd, 5) < 0 ) + { printf("listen error\n"); + exit(0); + } + + char client_address_redeable[INET_ADDRSTRLEN]; + short client_port_redeable; + + struct sockaddr_in client_address_struct; + unsigned int client_address_struct_size = sizeof(client_address_struct); + + struct sockaddr_in server_struct_to_send; + unsigned int server_struct_to_send_size = sizeof(server_struct_to_send); + + + + for ( ; ; ) { + if( (connfd = accept(listenfd, (struct sockaddr *) &client_address_struct, &client_address_struct_size)) < 0) + { printf("accept error\n"); + exit(0); + } + + inet_ntop(AF_INET, &(client_address_struct.sin_addr), client_address_redeable, INET_ADDRSTRLEN);// get client ip + client_port_redeable = ntohs(client_address_struct.sin_port);// get client port + + fprintf (stdout,"%s%c%hu\n",client_address_redeable,':',client_port_redeable); + + + + getsockname (connfd, (struct sockaddr *) &server_struct_to_send, &server_struct_to_send_size); + write (connfd,&server_struct_to_send, server_struct_to_send_size); + + + close(connfd); + } +} diff --git a/7.client-server-print-ip-port-both/daytimesrv.c b/7.client-server-print-ip-port-both (OK - NO ERRORS CHECKS)/daytimesrv.c~ similarity index 100% rename from 7.client-server-print-ip-port-both/daytimesrv.c rename to 7.client-server-print-ip-port-both (OK - NO ERRORS CHECKS)/daytimesrv.c~ diff --git a/7.client-server-print-ip-port-both (OK - NO ERRORS CHECKS)/daytimesrv.o b/7.client-server-print-ip-port-both (OK - NO ERRORS CHECKS)/daytimesrv.o new file mode 100644 index 0000000000000000000000000000000000000000..d378ae74a6a6fb403bc32c00a203dd0e5c2af67e GIT binary patch literal 3152 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 IpIIgU4Zon<^Z)<= literal 0 HcmV?d00001 diff --git a/7.client-server-print-ip-port-both/client b/7.client-server-print-ip-port-both/client deleted file mode 100755 index 9bfcd746a3d426a2290ba4784c63932c583db9a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9508 zcmeHNZ)_aJ6`vz^FeYTrv%XagjiK$H>eWdsvCLcz2BQRZ{EE55ixxN=B&=4p~HO@XEGzap};869ZaLFL(lOI3J#>e!zIhHnh+u$7`t(@eeFTvRN# zH&lbcp!zXtghaT?W!-*xvP(0P(GmSWICBk2nG)<3b(M&j@yISS`T^9Blg%QG7Yd1}_PWmx{nznE6!M#2;tcNA* z#9J@EbwYN%xz@B~T+8+(I#Y2iZDww2&oe^{-|rXAr+?_0b|mFncFXJq(VqOna^s0` zxxG43M?}-&;V<&9UfAmvZ3z4A(Z0A-)Dh9N&g|kUULL;zVXvMC(QW9(ijYstD;M{D zYs*tlD*IZzJu8>Z12CmcV!x4Jep?%Gt~8Q@?8c@Blw*=1HOY)kf!5#8SQ?bpYd!K1 z@Yg{9zLBvI4BigD4Ve=8O_}DX7TF(Hz$K{z?O|$JqHQ80uR`9I%VxI4jm~XdJ@GDJ zO4K*`!QT6D<&ElZtv>PFiJph9Z#=jOq9Dm{L(j-tJWMjA%@{BD-&+W-nD^5Jp6Y0f zfxvqhLSV6P^naiyYwC%uk8Xt@MyK2G0TAl1AA=zJpulg4L4Dnaxxc`bREfal3vwJ&5s*D>rDAR(@8sax;beES-<;PXuQ>({WxHD?O@^$cmLBm4j$uBc3^*0}RGRE;Trxka^=8P)C% zI=_M-YMqycKXaZ(SG-TP*gh!@&qOW!DIc{$wZ%@?sD%%q%beFxx<0&u6N?5gfX-cm z=^6~A4+>%+1I|GJ?ge>Z=ciR`%-OwQ!5c*s7SQs^#g;ES>j1`;Q5u1*jKcT(Ay6&l zG+D88r|tct)^;&&DoS&a}UWY0lKUYT(2Gt_e3uEX49rvY4X#h&naQ-52jPPST1P@O@=Y!px zZy#*6t2H+`Bd4f8D9<%zosQnJ$sI-0`W3*me{W)|ncmAI> z((wMd^Pkn+b_rr>_}t+O1OCL<*NN$%mA`QomgeE?wGmn^&RW>Clv#I@e#ZYl7Mr)h zLpwJM7e2wdvXq(97&SUE8a#Yqp?~$nv~1Soe(MtO^{-(fU&f1ZPhs4X zs^`^D=mQ!Ci`{|!(mv_@9vGG{t77Lj0y`Zj#Qb`*cNrp9@}`m|t3;~q;<3@*-an~6 zcwV(YTsWZy2u_rK?2ZGD_y;iGa1U0|e8YXblzF*iH*xP1mn4o3h7uhMu}j1q0+-8% zkLbJQu5gcOB=kt!kRQQ!A|qoQKb~r7+ao`cPG!vS9=VofQ<0;(DeIX`DpSjhq;BHt zL@MbDq0u`+;B2bAyB?6TQR3cD`KqUf|2vj0ai9jU+l?YTK@TDVAx1qj+E@tXN8a;(~rE+GP zeJ2wf2+?C0e;n63aW{g;>|O^qCp-lPSf-x0;P)a7Q06e9CnD({EfPCQvdxf%&6GiW zBY1I3La+%??>0>0L*S!nym6aRf+`@tXGxl=Gzr=~0bRV1;8_R~;dne1A=E)gPh@p& zEC#e_D-D#V~Qs+hzhY;x6a&k5|#vCSBVs-0qMfnO_ab6s|w1B1jm# z_r6P)nS=*XLG|?J$T1#C3AZ9k0cz#q4p0dd!P{N@1A)EYQ5+MvL)5<@a2p;@$=<61 zhj1}P_#`qYu{^zt(vN>vhR>B@+_x^#rz<;u`#+cAkIOLKiTd@gm0@}^^4C|n0HvE& zmEk+f@VYX*u?%l1!i!DWK?MI{5qjS3qf!*C1oLu)C1y9hcr0+?ByX z^hW(B_|6aCapWE%3&)3ha4Z}dzQe+0`7z-g5Z=+?9SVHd%sU7c QP5_NN!M2I#oGf6IcgHOj=)V)I#$h51R&)} zkC=)-9*%>6oW- z`JM-e!jR9o_~U4k=#McLBl-mh9Sxwd?NW`k?B9d-e{D#(zlrhXDda5}cR1UvuL`%i zGG1Th@o67Dg}Z1R;m{@elVOH$uJL6+xcBS)#$02!?{kf1U#~T`P5#^$Ugs2XEzSTF z4P!~T3w~(c_^DlZ#)|N2ao>@3XSL><|2V^aipJ2A)?CTDxQw6sAno-^F){uf@4PPy z#_;KLzSt*0!BVVsA{TtMKMEd!S6>$H{FVya&*BqbwP4Kg3_N2_ja|6LG*|Je(_a6a zyXdP#;~+#Nyhj<_S-1a+@Or$VD{3&}>fL3i{vf>iv^O*--1?Ys|3;-TcjDZ}#)e%DPYn=vl7 zEY3tG%+G4i;)L+~66n{_!TRhUF|FCZKD!p%brWu_dE@=>tCjR=t4GhIN1S}YGKcf} zVH~i0IX^mT_YNG@50~t+lRm02Py4t4Ji{KPK>?4B>(BY~gV zM&F~hTD&d3duQwdRL{fzG}^5@SPz)0PxMw-{CxY{dvHvBV;z=>mevEE>gOKa3mAt+ zl-di#zNh|0AG?W;+y?K8A42*drFVvd-n;@>F# zmExBa|5ov7#pe~j!5j+^euozoAHby9&=qNXQ|8YT`WIC^4gZ!f^+$Lz!Vg6_)}$r> zRD|0R{z`XZBM oOINTTMcy48Jew}{7M=Zvl=n4-2Nb@p@E{o?_}g~3=5by659RWZegFUf diff --git a/7.client-server-print-ip-port-both/daytimesrv.c~ b/7.client-server-print-ip-port-both/daytimesrv.c~ deleted file mode 100644 index 5a71bf1..0000000 --- a/7.client-server-print-ip-port-both/daytimesrv.c~ +++ /dev/null @@ -1,41 +0,0 @@ -/* stampa l'ip del client */ - -#include "../basic.h" -#include - -int main(int argc, char **argv) { - int listenfd, connfd, n; - struct sockaddr_in servaddr; - char buff[MAXLINE]; - time_t ticks; - - if (argc != 2 ){ - printf("usage: daytimesrv \n"); - exit(0); -} - if( (listenfd = socket(AF_INET, SOCK_STREAM, 0)) < 0){ - printf("socket error\n"); - exit(0); -} - bzero(&servaddr, sizeof(servaddr)); - servaddr.sin_family = AF_INET; - servaddr.sin_addr.s_addr = htonl(INADDR_ANY); /* wildcard address */ - servaddr.sin_port = htons(atoi(argv[1])); /* server port */ - - if( (bind(listenfd, (struct sockaddr *) &servaddr, sizeof(servaddr))) < 0){ - printf("bind error\n"); exit(0); -} - if( listen(listenfd, 5) < 0 ) - { printf("listen error\n"); - exit(0); -} - for ( ; ; ) { - if( (connfd = accept(listenfd, (struct sockaddr *) NULL, NULL)) < 0) - { printf("accept error\n"); exit(0);} else { - } - - n=read(connfd, buff, MAXLINE); - fprintf (stdout,%s\n,buff); - close(connfd); - } -} diff --git a/7.client-server-print-ip-port-both/daytimesrv.o b/7.client-server-print-ip-port-both/daytimesrv.o deleted file mode 100644 index e160c2ea49a5b74049148d48fd4d9d1c59d0a5ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2412 zcmb7GOKclO7@mZNrXkIm@_raBwK<^5RRb+5g`z}crHN!jL{h2Zp}{!oc-zFb>@{%^ z7Oub*i(@Gq-~bm8Jrqtz6}aiaX^Iqc0Hq)V9N+*F5Tt-|C@4i$!uRj~6Oyf}!pO7V zeE;K{e`j}Qz3}(%t6PO=xlZ7MPPj~i2s+vw=&upKN;^dfXrWdgHHW64zQs2Sr5vm1 zFaanvY#tf@m+R5{tV4Q~d!~&`*&@n1hESe zWzD=G-KHlqZ+_X@G{5!&s^+q+7TZ00(w#Hvm%O2u7ekIwUrxICnO{{)OEGue^Ioe6 zXT1nK5P`)1l$F(4P4gs`-882Ns^%2eEnTxLYllzbUQR(&ay72Gc&&oQwDc^k>I}(3 z=o|^jHhQVGmQgQ#DBa3)I$qZH!z*SEaz?C5cO;DZO47y8Yz$Nn^c%BggP$T)r(~@# zT`euTm1ovfW-#&^{L`{pD)-~A`rUcyemn@fbia|+H)-TnVz_$C1qoR#aO8Ou)w|K- zRt{+DR`y}|+fS=&YsS50Dv#bjzrI!6(CXZ;?MD6a)wxUU+ZJFp>gS&Qw2+UFS_dN| z@kz%XxAM6cB9CM;q!YM>~Nx0sq3BJAgj`JB2v( z1rT$D=Ya@`egZ_T(YJs%0#5*OzC>RJ;yno;1#Sl)0^SOI7)WuuffTn3h_^4i19%H~ z8~gu6?d1Ohh$AliJ%5h#3ueqfD1Jqx6?vp@eOy9LRm%I5z61c@LA(|3q0;*Y@ui$3+3-% z${QQYB;fP*uuyi|a#Y&MWbvOs<(-jC!ND-8g-0!iRMYe&MgWu(*-4d19TRFIXFD(^ z#xi*T)w9P+iJ01he-;cq$a!LDXd<2+NIN|bvh{w(2N?G;?iZ%?Kl*z&=aH@u{{WP~ B%R>MF diff --git a/7.client-server-print-ip-port-both/server b/7.client-server-print-ip-port-both/server deleted file mode 100755 index 65d3aab96fb5539db3aaed12388f97c4fdbfcb4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9644 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 diff --git a/7.client-server-printipclient/makefile b/7.client-server-printipclient/makefile index 16fdd6d..a9beab6 100644 --- a/7.client-server-printipclient/makefile +++ b/7.client-server-printipclient/makefile @@ -1,9 +1,14 @@ +CC = gcc +CFLAGS = all : server client + server : daytimesrv.o ../fun-corso-reti.o - gcc -o server daytimesrv.o ../fun-corso-reti.o + $(CC) -o server daytimesrv.o ../fun-corso-reti.o $(CFLAGS) client : daytimecli.o ../fun-corso-reti.o - gcc -o client daytimecli.o ../fun-corso-reti.o + $(CC) -o client daytimecli.o ../fun-corso-reti.o $(CFLAGS) daytimesrv.o : daytimesrv.c ../basic.h - gcc -c -o daytimesrv.o daytimesrv.c + $(CC) -c -o daytimesrv.o daytimesrv.c $(CFLAGS) fun-corso-reti.o : ../fun-corso-reti.c ../basic.h - gcc -c -o ../fun-corso-reti.o ../fun-corso-reti.c + $(CC) -c -o ../fun-corso-reti.o ../fun-corso-reti.c $(CFLAGS) +daytimecli.o : daytimecli.c ../basic.h + $(CC) -c -o daytimecli.o daytimecli.c $(CFLAGS) diff --git a/7.client-server-select/client b/7.client-server-select/client new file mode 100755 index 0000000000000000000000000000000000000000..1480f8374d930190767fcd53370d1e98ec749721 GIT binary patch literal 13563 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 NCn%Sl%6@Z7{u7P)YIgtt literal 0 HcmV?d00001 diff --git a/7.client-server-print-ip-port-both/daytimecli.c~ b/7.client-server-select/daytimecli.c similarity index 80% rename from 7.client-server-print-ip-port-both/daytimecli.c~ rename to 7.client-server-select/daytimecli.c index 239a866..37ce25d 100644 --- a/7.client-server-print-ip-port-both/daytimecli.c~ +++ b/7.client-server-select/daytimecli.c @@ -1,10 +1,13 @@ -/* Client che interroga un daytime server */ + #include "../basic.h" +typedef struct message { + char data[100]; +}t_message; + int main(int argc, char **argv) { - int sockfd, n; - char recvline[MAXLINE + 1]; + int sockfd; struct sockaddr_in servaddr; if (argc != 3){ @@ -27,5 +30,18 @@ int main(int argc, char **argv) { printf("connect error\n"); exit(0); } + + t_message m; + + fscanf(stdin) + + + + + int ridden; + ridden = read (sockfd, &m,sizeof(m) ); + + + exit(0); } diff --git a/7.client-server-select/daytimecli.c~ b/7.client-server-select/daytimecli.c~ new file mode 100644 index 0000000..4d31ed5 --- /dev/null +++ b/7.client-server-select/daytimecli.c~ @@ -0,0 +1,51 @@ + + +#include "../basic.h" + +int main(int argc, char **argv) { + int sockfd; + struct sockaddr_in servaddr; + + if (argc != 3){ + printf("usage: daytimecli \n"); + exit(0); +} + if( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0 ){ + printf("socket error\n"); + exit(0); +} + bzero(&servaddr, sizeof(servaddr)); + servaddr.sin_family = AF_INET; + servaddr.sin_port = htons(atoi(argv[2])); /* server port */ + + if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0){ + printf("inet_pton error for %s\n", argv[1]); + exit(0); +} + if (connect(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0){ + printf("connect error\n"); + exit(0); + } + + struct sockaddr_in r_server_local_addr; + unsigned int r_server_local_addr_len = sizeof(r_server_local_addr); + + char * socket_buffer = (char *) malloc (r_server_local_addr_len) ; + int ridden; + ridden = read (sockfd, socket_buffer,r_server_local_addr_len ); + fprintf(stdout,"Ho letto %d\n bytes",ridden); + + memcpy (&r_server_local_addr,socket_buffer, r_server_local_addr_len); + + + char buff[INET_ADDRSTRLEN]; + short port; + + inet_ntop(AF_INET, &(r_server_local_addr.sin_addr), buff, INET_ADDRSTRLEN);// get ip + port = ntohs(r_server_local_addr.sin_port);// get port + + fprintf (stdout,"%s%c%hu\n",buff,':',port); + + + exit(0); +} diff --git a/7.client-server-select/daytimecli.o b/7.client-server-select/daytimecli.o new file mode 100644 index 0000000000000000000000000000000000000000..1b032de2514852ec5ff632383b9f3e6f90441b3b GIT binary patch literal 2880 zcmbuBPiP!f9LIl~U2Tj>v#nKxD9pi?w6#-%HE1YdYZyC1Q$k_egGxKuoppz1XO@|_ zkOV>xp~A2%s8>DY=%I%k3jK3PmL6PBQV=|ciqJznc=I6C-|x+P*>*`=J*Tl{2LaNZc4b_ zUmo zv$fT(FS=(hdA<_{#yNA|{NT)7SHcfZCUZDJy3q=oSD>(7F3e0G8UF@fgSU{;LAFD$ z#f78gug8|AUX}z;X0*{3&MJ-q1=HBlUg)klrf}BlbV6H|Hm|>7i>Os5h`ncu? z!Zj~muAPa5Q@@D;l;*asH$$iG>Nfv(G_U~4Kh&)XR@Er4P5CsGm{0CZ1|$AdzVQH6 z+AV0W;z4~BhBpbKy^9BNwp|Is0l^GQ_kRy#sOEpopTk^grDUR)nC_px(OSQb`xqU{ ze_sPNTB_jb6xWxf$4_uw`#iLh7Ni!_vDZ|7I$Y;}#EYVz)_(~0u9R5xYKbgbN=5X3SS$(TH+|J?4Ih^)KR{bw?cq50y=!<05q3w7+bh;t} zcij`}TLg{>JZRxpC>ni`pc8t&XzDK!gs#&_R(%n408gz5BGCxC0-7ooB|wEvX!x;u z;Vn5OX|iW%?Vsm~onxH#s^)aR$Y>kU9@6|OK{Q>To*UWc$spr-ef>K~b$I=6S^O0G zy8ic!)4Qm-{6~dzsx!^_ujrF$J@d&Fepe&K({t2y{$!l%DXRCJ;_0_Z$4@G*>t9y+ z$5=eS-WkSu{dvZZv-;N + +void sigchldaction (int signal){ + + int status, pid; + + for (pid = waitpid(-1,&status,WNOHANG);pid > 0;pid = waitpid(-1,&status,WNOHANG)){ + // server: child terminated + } + + +} + +void sigpipeaction (int signal){ + + //fprintf(stderr, "Sigpipe catturato\n"); + +} + +typedef struct message { + char data[100]; +}t_message; + + +int main(int argc, char **argv) { + int listenfd, connfd, n; + struct sockaddr_in servaddr; + + +//////////////////////////////////////////////////////////// SIGNALS +///////SIGCHLD +struct sigaction sigchldstructure; + sigchldstructure.sa_handler = sigchldaction; + sigchldstructure.sa_flags = 0; + +sigaction (SIGCHLD, &sigchldstructure, NULL); + +///////SIGPIPE +struct sigaction sigpipestructure; + sigpipestructure.sa_handler = sigpipeaction; + sigpipestructure.sa_flags = 0; + +sigaction (SIGPIPE, &sigpipestructure, NULL); +//////////////////////////////////////////////////////////// END SIGNALS + + + + if (argc != 2 ){ + printf("usage: daytimesrv \n"); + exit(0); +} + if( (listenfd = socket(AF_INET, SOCK_STREAM, 0)) < 0){ + printf("socket error\n"); + exit(0); +} + bzero(&servaddr, sizeof(servaddr)); + servaddr.sin_family = AF_INET; + servaddr.sin_addr.s_addr = htonl(INADDR_ANY); /* wildcard address */ + servaddr.sin_port = htons(atoi(argv[1])); /* server port */ + + if( (bind(listenfd, (struct sockaddr *) &servaddr, sizeof(servaddr))) < 0){ + printf("bind error\n"); exit(0); +} + if( listen(listenfd, 5) < 0 ) + { printf("listen error\n"); + exit(0); + } + + + + fd_set fd_set_1; + FD_ZERO(&fd_set_1); + /* + void FD_CLR(int fd, fd_set *set); + int FD_ISSET(int fd, fd_set *set); + void FD_SET(int fd, fd_set *set); + void FD_ZERO(fd_set *set); + */ + + struct timeval timer; + timer.tv_sec = 99999999; + timer.tv_usec = 0; + + + + for ( ; ; ) { + + + if( (connfd = accept(listenfd, (struct sockaddr *) &client_address_struct, &client_address_struct_size)) < 0) + { + if(errno == EINTR || errno==ECONNABORTED) + continue; + printf("accept error\n"); + exit(1); + } + + int split = fork(); + + if ( split < 0) { + printf("fork for iterative server failed\n"); + exit(-1); + } + + if (split == 0){ + close(listenfd); + + + t_message m; + int ready_fds_to_read = 0; + + FD_set(connfd,&fd_set_1); + + for (ready_fds_to_read = select( connfd + 1, fd_set_1, NULL,NULL,&timer); + ready_fds_to_read <= 0 ; + ready_fds_to_read = select( connfd + 1, fd_set_1, NULL,NULL,&timer)){ + + if (ready_fds_to_read == -1 && errno == EINTR ){ continue;} + if (ready_fds_to_read == 0) {timer.tv_sec = 99999999;continue;} + // write code to inform client that server has an internal error + exit(0); + + }// wait for nonblocking fd in read set + + int ridden; + if( FD_ISSET(connfd, fd_set_1) ){ + for (ridden = read (connfd,&m,sizeof(m)); ridden <= 0;ridden = read (connfd,&m,sizeof(m))){ + if (errno == EINTR){continue;} else {exit(0);} + } + + fprint(stdout,%s,m.data); + + + } + + exit(0); + + + }else { + close(connfd); + } + } +} diff --git a/7.client-server-select/daytimesrv.c~ b/7.client-server-select/daytimesrv.c~ new file mode 100644 index 0000000..12c17fd --- /dev/null +++ b/7.client-server-select/daytimesrv.c~ @@ -0,0 +1,63 @@ + + +#include "../basic.h" +#include + +int main(int argc, char **argv) { + int listenfd, connfd, n; + struct sockaddr_in servaddr; + char buff[INET_ADDRSTRLEN]; + short port; + + if (argc != 2 ){ + printf("usage: daytimesrv \n"); + exit(0); +} + if( (listenfd = socket(AF_INET, SOCK_STREAM, 0)) < 0){ + printf("socket error\n"); + exit(0); +} + bzero(&servaddr, sizeof(servaddr)); + servaddr.sin_family = AF_INET; + servaddr.sin_addr.s_addr = htonl(INADDR_ANY); /* wildcard address */ + servaddr.sin_port = htons(atoi(argv[1])); /* server port */ + + if( (bind(listenfd, (struct sockaddr *) &servaddr, sizeof(servaddr))) < 0){ + printf("bind error\n"); exit(0); +} + if( listen(listenfd, 5) < 0 ) + { printf("listen error\n"); + exit(0); + } + + struct sockaddr_in client_addr; + unsigned int client_addr_len = sizeof(client_addr); + + struct sockaddr_in server_local_addr; + unsigned int server_local_addr_len = sizeof(server_local_addr); + + char * socket_buffer = (char *) malloc (server_local_addr_len) ; + + + + for ( ; ; ) { + if( (connfd = accept(listenfd, (struct sockaddr *) &client_addr, &client_addr_len)) < 0) + { printf("accept error\n"); + exit(0); + } + + inet_ntop(AF_INET, &(client_addr.sin_addr), buff, INET_ADDRSTRLEN);// get client ip + port = ntohs(client_addr.sin_port);// get client port + + fprintf (stdout,"%s%c%hu\n",buff,':',port); + + + + getsockname (connfd, (struct sockaddr *) &server_local_addr, &server_local_addr_len); + memcpy (socket_buffer, &server_local_addr, server_local_addr_len); + write (connfd,socket_buffer, server_local_addr_len); + + + close(connfd); + } +} diff --git a/7.client-server-select/daytimesrv.o b/7.client-server-select/daytimesrv.o new file mode 100644 index 0000000000000000000000000000000000000000..d378ae74a6a6fb403bc32c00a203dd0e5c2af67e GIT binary patch literal 3152 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 IpIIgU4Zon<^Z)<= literal 0 HcmV?d00001 diff --git a/7.client-server_recursive/makefile b/7.client-server_recursive/makefile index 16fdd6d..a9beab6 100644 --- a/7.client-server_recursive/makefile +++ b/7.client-server_recursive/makefile @@ -1,9 +1,14 @@ +CC = gcc +CFLAGS = all : server client + server : daytimesrv.o ../fun-corso-reti.o - gcc -o server daytimesrv.o ../fun-corso-reti.o + $(CC) -o server daytimesrv.o ../fun-corso-reti.o $(CFLAGS) client : daytimecli.o ../fun-corso-reti.o - gcc -o client daytimecli.o ../fun-corso-reti.o + $(CC) -o client daytimecli.o ../fun-corso-reti.o $(CFLAGS) daytimesrv.o : daytimesrv.c ../basic.h - gcc -c -o daytimesrv.o daytimesrv.c + $(CC) -c -o daytimesrv.o daytimesrv.c $(CFLAGS) fun-corso-reti.o : ../fun-corso-reti.c ../basic.h - gcc -c -o ../fun-corso-reti.o ../fun-corso-reti.c + $(CC) -c -o ../fun-corso-reti.o ../fun-corso-reti.c $(CFLAGS) +daytimecli.o : daytimecli.c ../basic.h + $(CC) -c -o daytimecli.o daytimecli.c $(CFLAGS) diff --git a/9.client-server-echo/makefile b/9.client-server-echo/makefile index 3a00e69..a9beab6 100644 --- a/9.client-server-echo/makefile +++ b/9.client-server-echo/makefile @@ -1,6 +1,14 @@ -server : echosrv.o ../fun-corso-reti.o - gcc -o server echosrv.o ../fun-corso-reti.o -echosrv.o : echosrv.c ../basic.h - gcc -c -o echosrv.o echosrv.c +CC = gcc +CFLAGS = +all : server client + +server : daytimesrv.o ../fun-corso-reti.o + $(CC) -o server daytimesrv.o ../fun-corso-reti.o $(CFLAGS) +client : daytimecli.o ../fun-corso-reti.o + $(CC) -o client daytimecli.o ../fun-corso-reti.o $(CFLAGS) +daytimesrv.o : daytimesrv.c ../basic.h + $(CC) -c -o daytimesrv.o daytimesrv.c $(CFLAGS) fun-corso-reti.o : ../fun-corso-reti.c ../basic.h - gcc -c -o ../fun-corso-reti.o ../fun-corso-reti.c + $(CC) -c -o ../fun-corso-reti.o ../fun-corso-reti.c $(CFLAGS) +daytimecli.o : daytimecli.c ../basic.h + $(CC) -c -o daytimecli.o daytimecli.c $(CFLAGS)