Diff for /rpl/src/rpl.c between versions 1.49 and 1.55

version 1.49, 2010/09/06 16:50:17 version 1.55, 2010/12/14 15:46:24
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.19    RPL/2 (R) version 4.0.20
   Copyright (C) 1989-2010 Dr. BERTRAND Joël    Copyright (C) 1989-2010 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
Line 419  rplinit(int argc, char *argv[], unsigned Line 419  rplinit(int argc, char *argv[], unsigned
 #   else  #   else
     action.sa_handler = interruption1;      action.sa_handler = interruption1;
 #   endif  #   endif
     action.sa_flags = SA_ONSTACK | SA_SIGINFO | SA_NODEFER;      action.sa_flags = SA_ONSTACK | SA_SIGINFO;
   
     if (sigaction(SIGINT, &action, NULL) != 0)      if (sigaction(SIGINT, &action, NULL) != 0)
     {      {
Line 438  rplinit(int argc, char *argv[], unsigned Line 438  rplinit(int argc, char *argv[], unsigned
         return(EXIT_FAILURE);          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  #   ifndef _BROKEN_SIGINFO
     action.sa_sigaction = interruption2;      action.sa_sigaction = interruption2;
 #   else  #   else
Line 465  rplinit(int argc, char *argv[], unsigned Line 482  rplinit(int argc, char *argv[], unsigned
 #   else  #   else
     action.sa_handler = interruption4;      action.sa_handler = interruption4;
 #   endif  #   endif
     action.sa_flags = SA_ONSTACK | SA_SIGINFO | SA_NODEFER;      // SIGCONT ne doit pas pouvoir être appelé depuis son gestionnaire.
       action.sa_flags = SA_ONSTACK | SA_SIGINFO;
   
     if (sigaction(SIGSTART, &action, NULL) != 0)      if (sigaction(SIGSTART, &action, NULL) != 0)
     {      {
Line 1599  rplinit(int argc, char *argv[], unsigned Line 1617  rplinit(int argc, char *argv[], unsigned
 #           else  #           else
             action.sa_handler = interruption10;              action.sa_handler = interruption10;
 #           endif  #           endif
             action.sa_flags = SA_ONSTACK | SA_SIGINFO | SA_NODEFER;              action.sa_flags = SA_ONSTACK | SA_SIGINFO;
   
             if (sigaction(SIGHUP, &action, NULL) != 0)              if (sigaction(SIGHUP, &action, NULL) != 0)
             {              {
Line 1819  rplinit(int argc, char *argv[], unsigned Line 1837  rplinit(int argc, char *argv[], unsigned
             (*s_etat_processus).autorisation_empilement_programme = 'N';              (*s_etat_processus).autorisation_empilement_programme = 'N';
             (*s_etat_processus).requete_arret = 'N';              (*s_etat_processus).requete_arret = 'N';
             (*s_etat_processus).evaluation_forcee = 'N';              (*s_etat_processus).evaluation_forcee = 'N';
               (*s_etat_processus).recherche_type = 'N';
   
             (*s_etat_processus).constante_symbolique = 'N';              (*s_etat_processus).constante_symbolique = 'N';
             (*s_etat_processus).traitement_symbolique = 'N';              (*s_etat_processus).traitement_symbolique = 'N';
Line 3557  rplinit(int argc, char *argv[], unsigned Line 3576  rplinit(int argc, char *argv[], unsigned
     }      }
   
 #   if !defined(Cygwin) && !defined(OpenBSD)  #   if !defined(Cygwin) && !defined(OpenBSD)
     (*s_etat_processus).pile_signal.ss_flags = SS_DISABLE;      do
     sigaltstack(&((*s_etat_processus).pile_signal), NULL);      {
           (*s_etat_processus).pile_signal.ss_flags = SS_DISABLE;
       } while(sigaltstack(&((*s_etat_processus).pile_signal), NULL) != 0);
     free((*s_etat_processus).pile_signal.ss_sp);      free((*s_etat_processus).pile_signal.ss_sp);
 #   endif  #   endif
   

Removed from v.1.49  
changed lines
  Added in v.1.55


CVSweb interface <joel.bertrand@systella.fr>