--- rpl/src/instructions_w1.c 2013/03/01 09:29:30 1.73 +++ rpl/src/instructions_w1.c 2013/03/01 10:24:49 1.74 @@ -1770,6 +1770,7 @@ instruction_write(struct_processus *s_et { (*s_etat_processus).erreur_execution = d_ex_taille_message; + return; } (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; @@ -1823,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) @@ -1839,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; @@ -1906,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) @@ -1922,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;