/* * File: main.c * Author: Arthur Brandao * * Created on 22 novembre 2018 */ #include #include #include #include #include "error.h" #include "bomberstudent_server.h" #include "main.h" /* --- Extern --- */ extern Error error; /* --- Global --- */ boolean stop = false; /* --- Fonctions privées --- */ void handler(int sig){ //Si SIGINT if(sig == SIGINT){ stop = true; //Remet le handler signal(SIGINT, handler); //Avertit les clients notify_close(END_USER); } } /* --- Fonctions publiques --- */ void notify_close(int code){ //Encode la reponse JsonEncoder je; ini_encoder(&je); add_integer(&je, "status", code); //Avertit tous les clients notify_all("POST", "server/end", &je); } int main(){ //Lancement gestion d'erreur error_finit("bomberstudent_server.log"); //Inialise le serveur ini_server(); //Gestion des signaux signal(SIGINT, handler); //Ajout des handlers /*add_handler("POST", "aze/rty", handler);*/ //Lance le serveur UDP if(!launch_udp_server(PORT_UDP)){ error.print("Impossible de démarrer le serveur"); error.exit_err(); } //Lance les seerveurs TCP if(!launch_tcp_server(PORT_TCP)){ error.print("Impossible de démarrer le serveur"); error.exit_err(); } //Attend la fin du programme while(!stop){ pause(); } error.end(); return EXIT_SUCCESS; }