Commit 08f8ef8d183c307771a5223aa68de729be61b81d

Authored by skhinach
1 parent c9ce1fd2

modifs

@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 # 3 #
4 4
5 CC=gcc 5 CC=gcc
6 -CFLAGS=-W -Wall -Wextra 6 +CFLAGS=-W -Wall -Wextra -g
7 CLIBS=ar -rcs 7 CLIBS=ar -rcs
8 LIB=libnet.a 8 LIB=libnet.a
9 LDIR=../libs/ 9 LDIR=../libs/
@@ -18,13 +18,9 @@ all: $(LIB) @@ -18,13 +18,9 @@ all: $(LIB)
18 $(LIB): sender.o sniffer.o tcpserver.o 18 $(LIB): sender.o sniffer.o tcpserver.o
19 rm -f $@ 19 rm -f $@
20 $(CLIBS) $(LDIR)$@ $^ 20 $(CLIBS) $(LDIR)$@ $^
21 -<<<<<<< HEAD  
22 ranlib $(LDIR)$@ 21 ranlib $(LDIR)$@
23 rm -f *.o 22 rm -f *.o
24 -=======  
25 - ranlib $(LDIR)$@  
26 ->>>>>>> 52d8a1eaf954b611aaf0861144b440a15f7c517d  
27 - 23 +
28 24
29 tcpserver.o: tcpserver.c 25 tcpserver.o: tcpserver.c
30 $(CC) -o $@ -c $^ -I$(IDIR) $(CFLAGS) 26 $(CC) -o $@ -c $^ -I$(IDIR) $(CFLAGS)
@@ -9,18 +9,11 @@ @@ -9,18 +9,11 @@
9 #include <errno.h> 9 #include <errno.h>
10 10
11 11
12 -<<<<<<< HEAD  
13 int initializeSocketUDP(char* service) 12 int initializeSocketUDP(char* service)
14 { 13 {
15 int sock_id; 14 int sock_id;
16 struct addrinfo precisions, *resultat=NULL, *origine; // On stocke dans précisions nos besoins pour le socket, dans resultat l'adresse qui respectera les requêtes 15 struct addrinfo precisions, *resultat=NULL, *origine; // On stocke dans précisions nos besoins pour le socket, dans resultat l'adresse qui respectera les requêtes
17 -=======  
18 16
19 -int initializeSocketUDP(char* service)  
20 -{  
21 - int sock_id;  
22 - struct addrinfo precisions, *resultat=NULL, *origine; // On stocke dans précisions nos besoins pour le socket, dans resultat l'adresse qui respectera les reqêtes  
23 ->>>>>>> 52d8a1eaf954b611aaf0861144b440a15f7c517d  
24 17
25 memset(&precisions, 0, sizeof precisions); 18 memset(&precisions, 0, sizeof precisions);
26 precisions.ai_family = AF_UNSPEC; 19 precisions.ai_family = AF_UNSPEC;
@@ -67,7 +60,7 @@ int sendUDPBroadcast(char* message, int port) @@ -67,7 +60,7 @@ int sendUDPBroadcast(char* message, int port)
67 { 60 {
68 static struct sockaddr_in addrUDP; 61 static struct sockaddr_in addrUDP;
69 addrUDP.sin_family=AF_INET; 62 addrUDP.sin_family=AF_INET;
70 - addrUDP.sin_port=(uint16_t)port; 63 + addrUDP.sin_port=htons(port);
71 64
72 struct in_addr tmpadd={0xffffffff}; 65 struct in_addr tmpadd={0xffffffff};
73 addrUDP.sin_addr=tmpadd; 66 addrUDP.sin_addr=tmpadd;
@@ -77,16 +70,10 @@ int sendUDPBroadcast(char* message, int port) @@ -77,16 +70,10 @@ int sendUDPBroadcast(char* message, int port)
77 int sock_id=initializeSocketUDP( tmp_str ); 70 int sock_id=initializeSocketUDP( tmp_str );
78 71
79 printf("Initialize via Broadcast %d\n", sock_id); 72 printf("Initialize via Broadcast %d\n", sock_id);
80 -<<<<<<< HEAD  
81 73
82 - int status;  
83 - if((status=sendto(sock_id, message, sizeof(message), 0, (struct sockaddr*) &addrUDP, sizeof(addrUDP))) < 0) { fprintf(stderr, "Erreur sendto %d\n", status); return(-1);} 74 + if(sendto(sock_id, message, sizeof(message), 0, (struct sockaddr*) &addrUDP, sizeof(addrUDP)) < 0) { fprintf(stderr, "Erreur sendto\n"); return(-1);}
84 75
85 -=======  
86 76
87 - if(sendto(sock_id, message, sizeof(message), 0, (struct sockaddr*) &addrUDP, sizeof(addrUDP)) < 0) { fprintf(stderr, "Erreur sendto\n"); return(-1);}  
88 -  
89 ->>>>>>> 52d8a1eaf954b611aaf0861144b440a15f7c517d  
90 close(sock_id); 77 close(sock_id);
91 return 0; 78 return 0;
92 } 79 }
@@ -97,7 +84,7 @@ int sendUDPUnicast(char* address, char* message, int port) @@ -97,7 +84,7 @@ int sendUDPUnicast(char* address, char* message, int port)
97 { 84 {
98 static struct sockaddr_in addrUDP; 85 static struct sockaddr_in addrUDP;
99 addrUDP.sin_family=AF_INET; 86 addrUDP.sin_family=AF_INET;
100 - addrUDP.sin_port=(uint16_t)port; 87 + addrUDP.sin_port=htons(port);
101 88
102 inet_aton(address, &(addrUDP.sin_addr)); // Converti l'écriture string de format a.b.c.d en format Internet 89 inet_aton(address, &(addrUDP.sin_addr)); // Converti l'écriture string de format a.b.c.d en format Internet
103 90
@@ -105,27 +92,14 @@ int sendUDPUnicast(char* address, char* message, int port) @@ -105,27 +92,14 @@ int sendUDPUnicast(char* address, char* message, int port)
105 sprintf(tmp_str, "%d", port); 92 sprintf(tmp_str, "%d", port);
106 int sock_id=initializeSocketUDP( tmp_str ); 93 int sock_id=initializeSocketUDP( tmp_str );
107 printf("Initialize via Unicast %d\n", sock_id); 94 printf("Initialize via Unicast %d\n", sock_id);
108 -<<<<<<< HEAD  
109 95
110 if(sendto(sock_id, message, sizeof(message), 0, (struct sockaddr*) &addrUDP, sizeof(addrUDP)) < 0 ) { fprintf(stderr, "Error sendto %d\n", errno); return(-1); } 96 if(sendto(sock_id, message, sizeof(message), 0, (struct sockaddr*) &addrUDP, sizeof(addrUDP)) < 0 ) { fprintf(stderr, "Error sendto %d\n", errno); return(-1); }
111 97
112 -=======  
113 -  
114 - if(sendto(sock_id, message, sizeof(message), 0, (struct sockaddr*) &addrUDP, sizeof(addrUDP)) < 0 ) { fprintf(stderr, "Error sendto\n"); return(-1); }  
115 -  
116 - close(sock_id);  
117 - return 0;  
118 -}  
119 ->>>>>>> 52d8a1eaf954b611aaf0861144b440a15f7c517d  
120 -  
121 close(sock_id); 98 close(sock_id);
  99 +
122 return 0; 100 return 0;
123 } 101 }
124 102
125 -<<<<<<< HEAD  
126 -  
127 -=======  
128 ->>>>>>> 52d8a1eaf954b611aaf0861144b440a15f7c517d  
129 /* 103 /*
130 104
131 int main(void) 105 int main(void)
Network/tcpserver.c
@@ -44,8 +44,9 @@ int initialisationServeur(char* service) @@ -44,8 +44,9 @@ int initialisationServeur(char* service)
44 44
45 int val=1; 45 int val=1;
46 46
47 - if(setsockopt(sock_fd, SOL_SOCKET, SO_REUSEADDR|SO_BROADCAST, &val, sizeof(val))<0) { fprintf(stderr, "Erreur setsockopt\n"); return(-1); } 47 + if(setsockopt(sock_fd, SOL_SOCKET, SO_REUSEADDR, &val, sizeof(val))<0) { fprintf(stderr, "Erreur setsockopt\n"); return(-1); }
48 48
  49 + if(setsockopt(sock_fd, SOL_SOCKET, SO_BROADCAST, &val, sizeof(val))<0) { fprintf(stderr, "Erreur setsockopt\n"); return(-1); }
49 50
50 51
51 if(bind(sock_fd, resultat->ai_addr, resultat->ai_addrlen)) { fprintf(stderr, "Erreur bind\n"); return(-1); } 52 if(bind(sock_fd, resultat->ai_addr, resultat->ai_addrlen)) { fprintf(stderr, "Erreur bind\n"); return(-1); }
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 # 3 #
4 4
5 CC=gcc 5 CC=gcc
6 -CFLAGS=-W -Wall -Wextra 6 +CFLAGS=-W -Wall -Wextra -g
7 CLIBS=ar -rcs 7 CLIBS=ar -rcs
8 LIB=libthrd.a 8 LIB=libthrd.a
9 LDIR=../libs/ 9 LDIR=../libs/
Threads/threadSocket.c
@@ -6,50 +6,89 @@ @@ -6,50 +6,89 @@
6 6
7 #define BUFF_SIZE 1000 7 #define BUFF_SIZE 1000
8 8
9 -void* reponseConnexion(void* sock) 9 +
  10 +
  11 +
  12 +struct PageWeb
10 { 13 {
11 -  
12 - printf("Connected\n");  
13 -<<<<<<< HEAD  
14 - char buff_rec[BUFF_SIZE];  
15 - char buffer[]="HTTP/1.1 200 OK\r\nServer: Serveur fait maison\r\nContent-Type: text/html; charset=UTF-8\r\nConnection: Keep-alive\r\n\r\nPOST /Page.html HTTP/1.1\r\n\r\n"; 14 + int size;
  15 + char* html_contents;
  16 +};
16 17
17 18
18 - FILE* sockdial_stream = fdopen(*((int*)(sock)), "a+");  
19 -  
20 - printf("Sock : %d // Stream : %p \n", *((int*)(sock)), sockdial_stream);  
21 -  
22 - fgets(buff_rec, BUFF_SIZE, sockdial_stream);  
23 - fprintf(sockdial_stream, "%s", buffer);  
24 19
25 - //while(strcmp(buffer, "EXIT\n")!=0)  
26 - //{  
27 - printf("WAIT\n");  
28 - // fgets(buff_rec, BUFF_SIZE, sockdial_stream); 20 +
  21 +void freePage(struct PageWeb** page)
  22 +{
  23 + if(*page!=NULL)
  24 + {
  25 + if((*page)->html_contents!=NULL) free((*page)->html_contents);
  26 + free(*page);
  27 + }
  28 +}
  29 +
  30 +
  31 +
  32 +void getWeb(char* pageName, struct PageWeb** page)
  33 +{
  34 + *page=malloc(sizeof(struct PageWeb));
  35 +
  36 + FILE* pageFile=fopen(pageName, "r+");
  37 +
  38 + if(pageFile!=NULL)
  39 + {
  40 + fseek(pageFile, 0L, SEEK_END);
  41 + long nbr_char=ftell(pageFile);
  42 + fseek(pageFile, 0L, SEEK_SET);
  43 +
  44 +
  45 + (*page)->html_contents=malloc(nbr_char*sizeof(char));
  46 + fread(((*page)->html_contents),1,nbr_char,pageFile);
  47 +
  48 + (*page)->size=strlen(((*page)->html_contents));
  49 + fclose(pageFile);
  50 + }
  51 + else
  52 + {
  53 + char erreur[]="<h1> 404 PAGE NOT FOUND </h1>\r\n\r\n La page que vous cherchez n'a pas été trouvée, sans doute parce que vous êtes nul.";
  54 + (*page)->html_contents=malloc(strlen(erreur)*sizeof(char));
  55 + strcpy((*page)->html_contents, erreur);
  56 + }
29 57
30 - printf("Le message reçu : %s", buff_rec); 58 +}
  59 +
  60 +
31 61
32 - fprintf(sockdial_stream, "Ceci est une réponse du serveur TCP.\n");  
33 62
34 - //}  
35 -======= 63 +void* reponseConnexion(void* sock)
  64 +{
  65 + printf("Connected\n"); // Affiche le fait que qqn soit connecté
  66 +
  67 + struct PageWeb* page;
  68 +
  69 + getWeb("../Sioux/Page.html", &page);
  70 +
  71 + char buff_rec[BUFF_SIZE];
36 char buffer[BUFF_SIZE]; 72 char buffer[BUFF_SIZE];
37 - 73 +
  74 + strcat(buffer,"HTTP/1.1 200 OK\r\nServer: Serveur fait maison\r\nContent-Type: text/html; charset=UTF-8\r\nConnection: Keep-alive\r\n\r\n");
  75 + strcat(buffer, page->html_contents);
  76 +
  77 + freePage(&page);
  78 +
38 FILE* sockdial_stream = fdopen(*((int*)(sock)), "a+"); 79 FILE* sockdial_stream = fdopen(*((int*)(sock)), "a+");
39 80
40 printf("Sock : %d // Stream : %p \n", *((int*)(sock)), sockdial_stream); 81 printf("Sock : %d // Stream : %p \n", *((int*)(sock)), sockdial_stream);
41 -  
42 - while(strcmp(buffer, "EXIT\n")!=0)  
43 - {  
44 - printf("WAIT\n");  
45 - fgets(buffer, BUFF_SIZE, sockdial_stream);  
46 82
47 - printf("Le message reçu : %s", buffer); 83 + fprintf(sockdial_stream, "%s", buffer);
  84 +
  85 + printf("WAIT\n");
48 86
49 - fprintf(sockdial_stream, "Ceci est une réponse du serveur TCP.\n"); 87 + fgets(buff_rec, BUFF_SIZE, sockdial_stream);
  88 +
  89 + printf("Le message reçu : %s", buff_rec);
50 90
51 - }  
52 ->>>>>>> 52d8a1eaf954b611aaf0861144b440a15f7c517d 91 + fprintf(sockdial_stream, "Ceci est une réponse du serveur TCP.\n");
53 92
54 strcpy(buffer, "START"); 93 strcpy(buffer, "START");
55 printf("Fin de la connexion\n"); 94 printf("Fin de la connexion\n");
@@ -58,6 +97,8 @@ void* reponseConnexion(void* sock) @@ -58,6 +97,8 @@ void* reponseConnexion(void* sock)
58 } 97 }
59 98
60 99
  100 +
  101 +
61 int lanceThread(void(* fonction) (void *), void* arg, int size) 102 int lanceThread(void(* fonction) (void *), void* arg, int size)
62 { 103 {
63 pthread_t thr_id; 104 pthread_t thr_id;
1 1
2 CC=gcc 2 CC=gcc
3 -CFLAGS=-W -Wall -Wextra 3 +CFLAGS=-W -Wall -Wextra -g
4 CLIBS=ar -rcs 4 CLIBS=ar -rcs
5 LIB=libnet.a 5 LIB=libnet.a
6 LDIR=../libs/ 6 LDIR=../libs/
No preview for this file type
1 #include <stdlib.h> 1 #include <stdlib.h>
2 #include <stdio.h> 2 #include <stdio.h>
3 -<<<<<<< HEAD  
4 #include <unistd.h> 3 #include <unistd.h>
5 #include <getopt.h> 4 #include <getopt.h>
6 #include <string.h> 5 #include <string.h>
@@ -23,13 +22,6 @@ void handler(int sig) @@ -23,13 +22,6 @@ void handler(int sig)
23 } 22 }
24 23
25 24
26 -=======  
27 -#include <getopt.h>  
28 -#include <string.h>  
29 -#include "libnet.h"  
30 -  
31 -  
32 ->>>>>>> 52d8a1eaf954b611aaf0861144b440a15f7c517d  
33 void argPortParsing(int argc, char* argv[], char* port) 25 void argPortParsing(int argc, char* argv[], char* port)
34 { 26 {
35 struct option port_arg={"port", 1, NULL, 'p'}; 27 struct option port_arg={"port", 1, NULL, 'p'};
@@ -55,7 +47,6 @@ int main(int argc, char* argv[]) @@ -55,7 +47,6 @@ int main(int argc, char* argv[])
55 char port[10]="80"; 47 char port[10]="80";
56 argPortParsing(argc, argv, port); 48 argPortParsing(argc, argv, port);
57 49
58 -<<<<<<< HEAD  
59 action.sa_handler=&handler; 50 action.sa_handler=&handler;
60 sigaction(SIGINT, &action, NULL); 51 sigaction(SIGINT, &action, NULL);
61 52
@@ -66,19 +57,6 @@ int main(int argc, char* argv[]) @@ -66,19 +57,6 @@ int main(int argc, char* argv[])
66 57
67 sendUDPBroadcast("BroadWesh", 2020); 58 sendUDPBroadcast("BroadWesh", 2020);
68 sendUDPUnicast("192.168.0.37", "Coucou", 2020); 59 sendUDPUnicast("192.168.0.37", "Coucou", 2020);
69 -=======  
70 -  
71 - int sock_fd=initialisationServeur(port);  
72 -  
73 - if( sock_fd==-1 ) { fprintf(stderr, "Initialisation du serveur impossible\n"); return -1; }  
74 -  
75 -  
76 - boucleServeur(sock_fd, (void*)&reponseConnexion);  
77 -  
78 -  
79 - sendUDPBroadcast("BroadWesh", 2020);  
80 -  
81 ->>>>>>> 52d8a1eaf954b611aaf0861144b440a15f7c517d  
82 return 0; 60 return 0;
83 } 61 }
84 62