|
@@ -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*);
|