From 6374516e063e49ca313329a68f9c5f0dd16713ae Mon Sep 17 00:00:00 2001
From: Ludovic Pouzenc <ludovic@pouzenc.fr>
Date: Tue, 25 Jan 2011 16:20:29 +0000
Subject: Correction de quelques trucs oubliés dans le refactoring précédent.
 La gestion de signaux est remontée dans le main (pas fonctionnellement lié au
 serveur TCP).
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

git-svn-id: file:///var/svn/2011-usi/trunk@16 db941bf7-0cb3-4dda-9634-87faf64f93a7
---
 app/v3_c/src/main.c | 27 +++++++++++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)

(limited to 'app/v3_c/src/main.c')

diff --git a/app/v3_c/src/main.c b/app/v3_c/src/main.c
index c88485e..d952730 100644
--- a/app/v3_c/src/main.c
+++ b/app/v3_c/src/main.c
@@ -1,9 +1,32 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <signal.h>
+
+#include "usi2011jjl.h"
+#include "utils.h"
 #include "tcpserver.h"
 
-#define USI2011JJL_VERSION_MAJOR @USI2011JJL_VERSION_MAJOR@
-#define USI2011JJL_VERSION_MINOR @USI2011JJL_VERSION_MINOR@
+extern int end;
+
+void _signals(int signum) {
+	static int force=0;
 
+	if (0) printf("signal %i\n", signum);
+
+	if(!force) {
+		end=1;
+		force=1;
+		logs("Tentative d'arrêt soft du serveur...");
+	} else {
+		logs("Arrêt d'urgence du serveur");
+		exit(1);
+	}
+}
 
 int main() {
+	// On active la gestion des signaux
+	signal(2,_signals);
+
+	// On exécute le serveur TCP
 	return tcpserver();
 }
-- 
cgit v1.2.3