Diff for /rpl/src/rpl.c between versions 1.99 and 1.103

version 1.99, 2011/11/26 13:05:03 version 1.103, 2011/11/30 17:21:07
Line 31 Line 31
 */  */
   
 int  int
 rplinit(int argc, char *argv[], unsigned char ***resultats, char *rpl_home)  rplinit(int argc, char *argv[], char *envp[],
           unsigned char ***resultats, char *rpl_home)
 {  {
 #   include                             "copyright-conv.h"  #   include                             "copyright-conv.h"
 #   include                             "licence-conv.h"  #   include                             "licence-conv.h"
Line 40  rplinit(int argc, char *argv[], unsigned Line 41  rplinit(int argc, char *argv[], unsigned
     char                                pile_signaux[SIGSTKSZ];      char                                pile_signaux[SIGSTKSZ];
 #   endif  #   endif
   
   #   define RPL_PATH_MAX                 1024
       char                                repertoire_initial[RPL_PATH_MAX];
   
     file                                *f_source;      file                                *f_source;
   
     int                                 erreur_historique;      int                                 erreur_historique;
Line 176  rplinit(int argc, char *argv[], unsigned Line 180  rplinit(int argc, char *argv[], unsigned
         (*s_etat_processus).langue = 'E';          (*s_etat_processus).langue = 'E';
     }      }
   
       if (getcwd(repertoire_initial, RPL_PATH_MAX) == NULL)
       {
           if ((langue = getenv("LANG")) != NULL)
           {
               if (strncmp(langue, "fr", 2) == 0)
               {
                   uprintf("+++Système : Mémoire insuffisante\n");
               }
               else
               {
                   uprintf("+++System : Not enough memory\n");
               }
           }
           else
           {
               uprintf("+++System : Not enough memory\n");
           }
   
           return(EXIT_FAILURE);
       }
   
     initialisation_contexte_cas(s_etat_processus);      initialisation_contexte_cas(s_etat_processus);
   
     (*s_etat_processus).exception = d_ep;      (*s_etat_processus).exception = d_ep;
     (*s_etat_processus).erreur_systeme = d_es;      (*s_etat_processus).erreur_systeme = d_es;
     (*s_etat_processus).erreur_execution = d_ex;      (*s_etat_processus).erreur_execution = d_ex;
   
       (*s_etat_processus).requete_redemarrage = d_faux;
     (*s_etat_processus).rpl_home = rpl_home;      (*s_etat_processus).rpl_home = rpl_home;
   
     pthread_mutexattr_init(&attributs_mutex);      pthread_mutexattr_init(&attributs_mutex);
Line 3566  rplinit(int argc, char *argv[], unsigned Line 3592  rplinit(int argc, char *argv[], unsigned
     liberation_contexte_cas(s_etat_processus);      liberation_contexte_cas(s_etat_processus);
   
     free((*s_etat_processus).chemin_fichiers_temporaires);      free((*s_etat_processus).chemin_fichiers_temporaires);
   
       if ((*s_etat_processus).requete_redemarrage == d_vrai)
       {
           chdir(repertoire_initial);
           execve(argv[0], (*(argv + 1)), envp);
           erreur = d_erreur;
       }
   
       // Libération de la copie des arguments
       // A FAIRE
   
     free(s_etat_processus);      free(s_etat_processus);
   
 #   ifdef DEBUG_MEMOIRE  #   ifdef DEBUG_MEMOIRE
Line 3640  informations(struct_processus *s_etat_pr Line 3677  informations(struct_processus *s_etat_pr
 }  }
   
   
   logical1
   controle_integrite(struct_processus *s_etat_processus,
           unsigned char *executable_candidat, unsigned char *executable)
   {
       unsigned char       *md5;
       unsigned char       *sha1;
   
       if (strcmp(executable, "rplpp") == 0)
       {
           md5 = rplpp_md5;
           sha1 = rplpp_sha1;
       }
       else if (strcmp(executable, "rplfile") == 0)
       {
           md5 = rplfile_md5;
           sha1 = rplfile_sha1;
       }
       else if (strcmp(executable, "rpliconv") == 0)
       {
           md5 = rpliconv_md5;
           sha1 = rpliconv_sha1;
       }
       else if (strcmp(executable, "rplawk") == 0)
       {
           md5 = rplawk_md5;
           sha1 = rplawk_sha1;
       }
       else if (strcmp(executable, "rplconvert") == 0)
       {
           md5 = rplconvert_md5;
           sha1 = rplconvert_sha1;
       }
       else
       {
           return(d_faux);
       }
   
       if (controle(s_etat_processus, executable_candidat, "md5", md5) != d_vrai)
       {
           return(d_faux);
       }
   
       if (controle(s_etat_processus, executable_candidat, "sha1", sha1) != d_vrai)
       {
           return(d_faux);
       }
   
       return(d_vrai);
   }
   
   
 unsigned char *  unsigned char *
 date_compilation()  date_compilation()
 {  {

Removed from v.1.99  
changed lines
  Added in v.1.103


CVSweb interface <joel.bertrand@systella.fr>