--- rpl/src/instructions_w1.c 2013/02/26 19:56:16 1.71 +++ rpl/src/instructions_w1.c 2013/03/01 10:24:49 1.74 @@ -1,6 +1,6 @@ /* ================================================================================ - RPL/2 (R) version 4.1.12 + RPL/2 (R) version 4.1.13 Copyright (C) 1989-2013 Dr. BERTRAND Joël This file is part of RPL/2. @@ -1766,6 +1766,12 @@ instruction_write(struct_processus *s_et return; } + if (ios == EMSGSIZE) + { + (*s_etat_processus).erreur_execution = + d_ex_taille_message; + return; + } (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -1818,6 +1824,8 @@ instruction_write(struct_processus *s_et longueur_effective, 0, (struct sockaddr *) &adresse_ipv4, sizeof(adresse_ipv4)) < 0) { + ios = errno; + # ifndef SEMAPHORES_NOMMES while(sem_wait(&((*s_etat_processus) .semaphore_fork)) != 0) @@ -1834,6 +1842,20 @@ instruction_write(struct_processus *s_et } } + if ((ios == EPIPE) || (ios == ECONNRESET)) + { + (*s_etat_processus).erreur_execution = + d_ex_erreur_acces_fichier; + return; + } + + if (ios == EMSGSIZE) + { + (*s_etat_processus).erreur_execution = + d_ex_taille_message; + return; + } + (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -1901,6 +1923,8 @@ instruction_write(struct_processus *s_et longueur_effective, 0, (struct sockaddr *) &adresse_ipv6, sizeof(adresse_ipv6)) < 0) { + ios = errno; + # ifndef SEMAPHORES_NOMMES while(sem_wait(&((*s_etat_processus) .semaphore_fork)) != 0) @@ -1917,6 +1941,20 @@ instruction_write(struct_processus *s_et } } + if ((ios == EPIPE) || (ios == ECONNRESET)) + { + (*s_etat_processus).erreur_execution = + d_ex_erreur_acces_fichier; + return; + } + + if (ios == EMSGSIZE) + { + (*s_etat_processus).erreur_execution = + d_ex_taille_message; + return; + } + (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return;