--- rpl/src/chainage.c 2010/09/07 08:58:04 1.19 +++ rpl/src/chainage.c 2012/10/01 11:04:58 1.47 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.0.19 - Copyright (C) 1989-2010 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.11 + Copyright (C) 1989-2012 Dr. BERTRAND Joël This file is part of RPL/2. @@ -62,19 +62,21 @@ chainage(struct_processus *s_etat_proces # ifndef OS2 unsigned char *instructions = "%s/bin/%s %s | " "%s/bin/rpliconv `%s/bin/rplfile " - "-m %s/share/rplfiles -i %s | awk " - "'{ print $3; }' | awk -F= " + "-m %s/share/rplfiles -i %s | " + "%s/bin/rplawk " + "'{ print $3; }' | %s/bin/rplawk -F= " "'{ if ($2 != \"\") printf(\"-f %%s\", " "$2); }'` -t %s//IGNORE > %s"; # else - unsigned char *instructions = "sh -c \"" + unsigned char *instructions = BOURNE_SHELL " -c \"" "%s/bin/%s %s | " "%s/bin/rpliconv `%s/bin/rplfile " - "-m %s/share/rplfiles -i %s | awk " - "'{ print $3; }' | awk -F= " + "-m %s/share/rplfiles -i %s | " + "%s/bin/rplawk " + "'{ print $3; }' | %s/bin/rplawk -F= " "'{ if ($2 != \\\"\\\") " "printf(\\\"-f %%s\\\", " - "$2); }'` -t %s//IGNORE\" > %s"; + "$2); }'` -t %s//IGNORE > %s\""; # endif unsigned long unite_fichier; @@ -119,8 +121,8 @@ chainage(struct_processus *s_etat_proces { if ((commande = (unsigned char *) malloc((strlen(ds_preprocesseur) + (2 * strlen((*s_etat_processus).nom_fichier_source)) + - (4 * strlen(d_exec_path)) + strlen(d_locale) + - strlen(nom_fichier_temporaire) + strlen(instructions) - 13) + (6 * strlen(d_exec_path)) + strlen(d_locale) + + strlen(nom_fichier_temporaire) + strlen(instructions) - 21) * sizeof(unsigned char))) == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; @@ -134,7 +136,7 @@ chainage(struct_processus *s_etat_proces (*s_etat_processus).nom_fichier_source, d_exec_path, d_exec_path, d_exec_path, (*s_etat_processus).nom_fichier_source, - d_locale, nom_fichier_temporaire); + d_exec_path, d_exec_path, d_locale, nom_fichier_temporaire); if (alsprintf(&executable_candidat, "%s/bin/rpliconv", d_exec_path) < 0) @@ -143,15 +145,8 @@ chainage(struct_processus *s_etat_proces return(d_erreur); } - if (controle(s_etat_processus, executable_candidat, "md5", - rpliconv_md5) != d_vrai) - { - (*s_etat_processus).erreur_systeme = d_es_somme_controle; - return(d_erreur); - } - - if (controle(s_etat_processus, executable_candidat, "sha1", - rpliconv_sha1) != d_vrai) + if (controle_integrite(s_etat_processus, executable_candidat, + "rpliconv") != d_vrai) { (*s_etat_processus).erreur_systeme = d_es_somme_controle; return(d_erreur); @@ -166,15 +161,8 @@ chainage(struct_processus *s_etat_proces return(d_erreur); } - if (controle(s_etat_processus, executable_candidat, "md5", - rplfile_md5) != d_vrai) - { - (*s_etat_processus).erreur_systeme = d_es_somme_controle; - return(d_erreur); - } - - if (controle(s_etat_processus, executable_candidat, "sha1", - rplfile_sha1) != d_vrai) + if (controle_integrite(s_etat_processus, executable_candidat, + "rplfile") != d_vrai) { (*s_etat_processus).erreur_systeme = d_es_somme_controle; return(d_erreur); @@ -189,15 +177,24 @@ chainage(struct_processus *s_etat_proces return(d_erreur); } - if (controle(s_etat_processus, executable_candidat, "md5", - rplpp_md5) != d_vrai) + if (controle_integrite(s_etat_processus, executable_candidat, + "rplpp") != d_vrai) { (*s_etat_processus).erreur_systeme = d_es_somme_controle; return(d_erreur); } - if (controle(s_etat_processus, executable_candidat, "sha1", - rplpp_sha1) != d_vrai) + free(executable_candidat); + + if (alsprintf(&executable_candidat, "%s/bin/rplawk", + d_exec_path) < 0) + { + (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; + return(d_erreur); + } + + if (controle_integrite(s_etat_processus, executable_candidat, + "rplawk") != d_vrai) { (*s_etat_processus).erreur_systeme = d_es_somme_controle; return(d_erreur); @@ -209,8 +206,9 @@ chainage(struct_processus *s_etat_proces { if ((commande = (unsigned char *) malloc((strlen(ds_preprocesseur) + (2 * strlen((*s_etat_processus).nom_fichier_source)) + - (4 * strlen((*s_etat_processus).rpl_home)) + - strlen(nom_fichier_temporaire) + strlen(instructions) - 11) + (6 * strlen((*s_etat_processus).rpl_home)) + + strlen(d_locale) + + strlen(nom_fichier_temporaire) + strlen(instructions) - 21) * sizeof(unsigned char))) == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; @@ -220,12 +218,15 @@ chainage(struct_processus *s_etat_proces } sprintf(commande, instructions, - (*s_etat_processus).nom_fichier_source, (*s_etat_processus).rpl_home, ds_preprocesseur, - (*s_etat_processus).rpl_home, (*s_etat_processus).rpl_home, + (*s_etat_processus).nom_fichier_source, + (*s_etat_processus).rpl_home, + (*s_etat_processus).rpl_home, (*s_etat_processus).rpl_home, (*s_etat_processus).nom_fichier_source, - nom_fichier_temporaire); + (*s_etat_processus).rpl_home, + (*s_etat_processus).rpl_home, + d_locale, nom_fichier_temporaire); if (alsprintf(&executable_candidat, "%s/bin/rpliconv", (*s_etat_processus).rpl_home) < 0) @@ -234,15 +235,8 @@ chainage(struct_processus *s_etat_proces return(d_erreur); } - if (controle(s_etat_processus, executable_candidat, "md5", - rpliconv_md5) != d_vrai) - { - (*s_etat_processus).erreur_systeme = d_es_somme_controle; - return(d_erreur); - } - - if (controle(s_etat_processus, executable_candidat, "sha1", - rpliconv_sha1) != d_vrai) + if (controle_integrite(s_etat_processus, executable_candidat, + "rpliconv") != d_vrai) { (*s_etat_processus).erreur_systeme = d_es_somme_controle; return(d_erreur); @@ -257,15 +251,8 @@ chainage(struct_processus *s_etat_proces return(d_erreur); } - if (controle(s_etat_processus, executable_candidat, "md5", - rplfile_md5) != d_vrai) - { - (*s_etat_processus).erreur_systeme = d_es_somme_controle; - return(d_erreur); - } - - if (controle(s_etat_processus, executable_candidat, "sha1", - rplfile_sha1) != d_vrai) + if (controle_integrite(s_etat_processus, executable_candidat, + "rplfile") != d_vrai) { (*s_etat_processus).erreur_systeme = d_es_somme_controle; return(d_erreur); @@ -280,15 +267,24 @@ chainage(struct_processus *s_etat_proces return(d_erreur); } - if (controle(s_etat_processus, executable_candidat, "md5", - rplpp_md5) != d_vrai) + if (controle_integrite(s_etat_processus, executable_candidat, + "rplpp") != d_vrai) { (*s_etat_processus).erreur_systeme = d_es_somme_controle; return(d_erreur); } - if (controle(s_etat_processus, executable_candidat, "sha1", - rplpp_sha1) != d_vrai) + free(executable_candidat); + + if (alsprintf(&executable_candidat, "%s/bin/rplawk", + (*s_etat_processus).rpl_home) < 0) + { + (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; + return(d_erreur); + } + + if (controle_integrite(s_etat_processus, executable_candidat, + "rplawk") != d_vrai) { (*s_etat_processus).erreur_systeme = d_es_somme_controle; return(d_erreur);