--- rpl/src/rpl.c 2010/12/10 08:59:01 1.53 +++ rpl/src/rpl.c 2011/03/06 16:44:15 1.58 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.0.20 - Copyright (C) 1989-2010 Dr. BERTRAND Joël + RPL/2 (R) version 4.0.21 + Copyright (C) 1989-2011 Dr. BERTRAND Joël This file is part of RPL/2. @@ -107,6 +107,10 @@ rplinit(int argc, char *argv[], unsigned errno = 0; +# ifdef DMALLOC + atexit(dmalloc_shutdown()); +# endif + # ifdef DEBUG_MEMOIRE debug_memoire_initialisation(); # endif @@ -307,11 +311,11 @@ rplinit(int argc, char *argv[], unsigned if ((*s_etat_processus).langue == 'F') { - printf("+++Copyright (C) 1989 à 2009, 2010 BERTRAND Joël\n"); + printf("+++Copyright (C) 1989 à 2010, 2011 BERTRAND Joël\n"); } else { - printf("+++Copyright (C) 1989 to 2009, 2010 BERTRAND Joel\n"); + printf("+++Copyright (C) 1989 to 2010, 2011 BERTRAND Joel\n"); } if (getenv("HOME") != NULL) @@ -438,6 +442,23 @@ rplinit(int argc, char *argv[], unsigned return(EXIT_FAILURE); } + if (sigaction(SIGTERM, &action, NULL) != 0) + { + erreur = d_es_signal; + + if ((*s_etat_processus).langue == 'F') + { + printf("+++Système : Initialisation des signaux POSIX " + "impossible\n"); + } + else + { + printf("+++System : Initialization of POSIX signals failed\n"); + } + + return(EXIT_FAILURE); + } + # ifndef _BROKEN_SIGINFO action.sa_sigaction = interruption2; # else @@ -3558,12 +3579,6 @@ rplinit(int argc, char *argv[], unsigned } } -# if !defined(Cygwin) && !defined(OpenBSD) - (*s_etat_processus).pile_signal.ss_flags = SS_DISABLE; - sigaltstack(&((*s_etat_processus).pile_signal), NULL); - free((*s_etat_processus).pile_signal.ss_sp); -# endif - closelog(); pthread_mutex_destroy(&((*s_etat_processus).protection_liste_mutexes));