|  | @@ -10,17 +10,59 @@
 | 
	
		
			
				|  |  |  #include <pthread.h>
 | 
	
		
			
				|  |  |  #include "arraylist.h"
 | 
	
		
			
				|  |  |  #include "bomberstudent_server.h"
 | 
	
		
			
				|  |  | +#include "error.h"
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /* --- Globale --- */
 | 
	
		
			
				|  |  |  arraylist get;
 | 
	
		
			
				|  |  |  arraylist post;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +/* --- Fonctions privées --- */
 | 
	
		
			
				|  |  | +void* udp_thread(void* data){
 | 
	
		
			
				|  |  | +    /*Server s;
 | 
	
		
			
				|  |  | +    //Cast data en serveur
 | 
	
		
			
				|  |  | +    s = (Server) data;
 | 
	
		
			
				|  |  | +    //Detache le thread
 | 
	
		
			
				|  |  | +    if(pthread_detach(pthread_self()) != 0){
 | 
	
		
			
				|  |  | +        return NULL;
 | 
	
		
			
				|  |  | +    }*/
 | 
	
		
			
				|  |  | +    return NULL;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  /* --- Fonctions publiques --- */
 | 
	
		
			
				|  |  |  void ini_server(){
 | 
	
		
			
				|  |  |      arraylist_ini(&get);
 | 
	
		
			
				|  |  |      arraylist_ini(&post);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +void add_handler(char* method, char* ressource, int(*handler)(Server, JsonParser*)){
 | 
	
		
			
				|  |  | +    if(strncmp(method, "POST", 5) == 0){
 | 
	
		
			
				|  |  | +        arraylist_add(&post, ressource, handler);
 | 
	
		
			
				|  |  | +    } else if(strncmp(method, "POST", 5) == 0){
 | 
	
		
			
				|  |  | +        arraylist_add(&get, ressource, handler);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  boolean launch_udp_server(int port){
 | 
	
		
			
				|  |  | -    return false;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | +    Server s;
 | 
	
		
			
				|  |  | +    boolean res;
 | 
	
		
			
				|  |  | +    pthread_t udp;
 | 
	
		
			
				|  |  | +    //Creation serveur
 | 
	
		
			
				|  |  | +    s = server_create_udp();
 | 
	
		
			
				|  |  | +    res = s->server_bind(s, port);
 | 
	
		
			
				|  |  | +    if(!res){
 | 
	
		
			
				|  |  | +        return false;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    //Lancement thread serveur udp
 | 
	
		
			
				|  |  | +    if(pthread_create(&udp, NULL, udp_thread, s) != 0){
 | 
	
		
			
				|  |  | +        adderror("Impossible de créer le thread UDP");
 | 
	
		
			
				|  |  | +        server_close(s);
 | 
	
		
			
				|  |  | +        return false;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    return true;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +boolean launch_tcp_server(int);
 | 
	
		
			
				|  |  | +boolean receive_client(Server);
 | 
	
		
			
				|  |  | +boolean send_client(Server, JsonEncoder*);
 | 
	
		
			
				|  |  | +boolean notify_client(Server, char*, char*, JsonEncoder*);
 |