Diff for /rpl/src/instructions_r4.c between versions 1.75 and 1.82

version 1.75, 2013/03/18 10:32:41 version 1.82, 2013/09/26 14:19:28
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.13    RPL/2 (R) version 4.1.16
   Copyright (C) 1989-2013 Dr. BERTRAND Joël    Copyright (C) 1989-2013 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
Line 96  instruction_r_vers_b(struct_processus *s Line 96  instruction_r_vers_b(struct_processus *s
         }          }
         else          else
         {          {
             (*((logical8 *) (*s_objet_resultat).objet)) = (*((integer8 *)              (*((logical8 *) (*s_objet_resultat).objet)) = (logical8)
                     (*s_objet_argument).objet));                      (*((integer8 *) (*s_objet_argument).objet));
         }          }
     }      }
     else      else
Line 855  instruction_read(struct_processus *s_eta Line 855  instruction_read(struct_processus *s_eta
     integer8                        i;      integer8                        i;
     integer8                        id;      integer8                        id;
     integer8                        position_clef;      integer8                        position_clef;
       integer8                        longueur;
   
     integer8                        longueur_effective;      integer8                        longueur_effective;
     integer8                        longueur_enregistrement;      integer8                        longueur_enregistrement;
     integer8                        longueur_questure;      integer8                        longueur_questure;
Line 863  instruction_read(struct_processus *s_eta Line 865  instruction_read(struct_processus *s_eta
     integer8                        position_finale;      integer8                        position_finale;
     integer8                        position_initiale;      integer8                        position_initiale;
   
       logical1                        device;
     logical1                        format_degenere;      logical1                        format_degenere;
     logical1                        indicateur_48;      logical1                        indicateur_48;
     logical1                        presence_chaine;      logical1                        presence_chaine;
     logical1                        presence_indicateur;      logical1                        presence_indicateur;
     logical1                        trame_complete;      logical1                        trame_complete;
   
     long                            longueur;  
   
     socklen_t                       longueur_adresse;      socklen_t                       longueur_adresse;
   
     sqlite3_stmt                    *ppStmt;      sqlite3_stmt                    *ppStmt;
Line 883  instruction_read(struct_processus *s_eta Line 884  instruction_read(struct_processus *s_eta
     struct sockaddr_in6             adresse_ipv6;      struct sockaddr_in6             adresse_ipv6;
 #   endif  #   endif
   
     struct pollfd                   poll_fd;  
   
     struct timespec                 attente;      struct timespec                 attente;
   
     struct_descripteur_fichier      *descripteur;      struct_descripteur_fichier      *descripteur;
Line 1053  instruction_read(struct_processus *s_eta Line 1052  instruction_read(struct_processus *s_eta
   
                 longueur_questure = 4096;                  longueur_questure = 4096;
   
                 if ((tampon_lecture = malloc(longueur_questure *                  if ((tampon_lecture = malloc(((size_t) longueur_questure) *
                         sizeof(unsigned char))) == NULL)                          sizeof(unsigned char))) == NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 1072  instruction_read(struct_processus *s_eta Line 1071  instruction_read(struct_processus *s_eta
   
                 do                  do
                 {                  {
                     longueur_effective = fread(tampon_lecture,                      longueur_effective = (integer8) fread(tampon_lecture,
                             (size_t) sizeof(unsigned char), longueur_questure,                              sizeof(unsigned char), (size_t) longueur_questure,
                             (*descripteur).descripteur_c);                              (*descripteur).descripteur_c);
   
                     pointeur = 0;                      pointeur = 0;
Line 1111  instruction_read(struct_processus *s_eta Line 1110  instruction_read(struct_processus *s_eta
                 presence_chaine = d_faux;                  presence_chaine = d_faux;
                 niveau = 1;                  niveau = 1;
   
                 if (fseek((*descripteur).descripteur_c, position_finale,                  if (fseek((*descripteur).descripteur_c, (long) position_finale,
                         SEEK_SET) != 0)                          SEEK_SET) != 0)
                 {                  {
                     liberation(s_etat_processus, s_objet_argument_1);                      liberation(s_etat_processus, s_objet_argument_1);
Line 1123  instruction_read(struct_processus *s_eta Line 1122  instruction_read(struct_processus *s_eta
   
                 do                  do
                 {                  {
                     longueur_effective = fread(tampon_lecture,                      longueur_effective = (integer8) fread(tampon_lecture,
                             (size_t) sizeof(unsigned char), longueur_questure,                              sizeof(unsigned char), (size_t) longueur_questure,
                             (*descripteur).descripteur_c);                              (*descripteur).descripteur_c);
   
                     pointeur = 0;                      pointeur = 0;
Line 1192  instruction_read(struct_processus *s_eta Line 1191  instruction_read(struct_processus *s_eta
                 free(tampon_lecture);                  free(tampon_lecture);
                 longueur_enregistrement = position_finale - position_initiale;                  longueur_enregistrement = position_finale - position_initiale;
   
                 if ((tampon_lecture = malloc((longueur_enregistrement + 1) *                  if ((tampon_lecture = malloc(((size_t)
                           (longueur_enregistrement + 1)) *
                         sizeof(unsigned char))) == NULL)                          sizeof(unsigned char))) == NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 1200  instruction_read(struct_processus *s_eta Line 1200  instruction_read(struct_processus *s_eta
                     return;                      return;
                 }                  }
   
                 if (fseek((*descripteur).descripteur_c, position_initiale,                  if (fseek((*descripteur).descripteur_c,
                         SEEK_SET) != 0)                          (long) position_initiale, SEEK_SET) != 0)
                 {                  {
                     liberation(s_etat_processus, s_objet_argument_1);                      liberation(s_etat_processus, s_objet_argument_1);
                     free(tampon_lecture);                      free(tampon_lecture);
Line 1210  instruction_read(struct_processus *s_eta Line 1210  instruction_read(struct_processus *s_eta
                     return;                      return;
                 }                  }
   
                 longueur_effective = fread(tampon_lecture,                  longueur_effective = (integer8) fread(tampon_lecture,
                         (size_t) sizeof(unsigned char),                          sizeof(unsigned char), (size_t) longueur_enregistrement,
                         (size_t) longueur_enregistrement,  
                         (*descripteur).descripteur_c);                          (*descripteur).descripteur_c);
   
                 if (longueur_effective != longueur_enregistrement)                  if (longueur_effective != longueur_enregistrement)
Line 1302  instruction_read(struct_processus *s_eta Line 1301  instruction_read(struct_processus *s_eta
                 }                  }
   
                 if (sqlite3_prepare_v2((*descripteur).descripteur_sqlite,                  if (sqlite3_prepare_v2((*descripteur).descripteur_sqlite,
                         commande, strlen(commande), &ppStmt, &queue)                          commande, (int) strlen(commande), &ppStmt, &queue)
                         != SQLITE_OK)                          != SQLITE_OK)
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;                      (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
Line 1473  instruction_read(struct_processus *s_eta Line 1472  instruction_read(struct_processus *s_eta
                 }                  }
   
                 if (sqlite3_prepare_v2((*descripteur).descripteur_sqlite,                  if (sqlite3_prepare_v2((*descripteur).descripteur_sqlite,
                         commande, strlen(commande), &ppStmt, &queue)                          commande, (int) strlen(commande), &ppStmt, &queue)
                         != SQLITE_OK)                          != SQLITE_OK)
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;                      (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
Line 1547  instruction_read(struct_processus *s_eta Line 1546  instruction_read(struct_processus *s_eta
                 }                  }
   
                 if (sqlite3_prepare_v2((*descripteur).descripteur_sqlite,                  if (sqlite3_prepare_v2((*descripteur).descripteur_sqlite,
                         commande, strlen(commande), &ppStmt, &queue)                          commande, (int) strlen(commande), &ppStmt, &queue)
                         != SQLITE_OK)                          != SQLITE_OK)
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;                      (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
Line 1640  instruction_read(struct_processus *s_eta Line 1639  instruction_read(struct_processus *s_eta
                 }                  }
   
                 if (sqlite3_prepare_v2((*descripteur).descripteur_sqlite,                  if (sqlite3_prepare_v2((*descripteur).descripteur_sqlite,
                         commande, strlen(commande), &ppStmt, &queue)                          commande, (int) strlen(commande), &ppStmt, &queue)
                         != SQLITE_OK)                          != SQLITE_OK)
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;                      (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
Line 1975  instruction_read(struct_processus *s_eta Line 1974  instruction_read(struct_processus *s_eta
   
                 BUG(((*descripteur).type != 'C'), uprintf("Bad filtype !\n"));                  BUG(((*descripteur).type != 'C'), uprintf("Bad filtype !\n"));
                 longueur_enregistrement = 0;                  longueur_enregistrement = 0;
                   device = d_faux;
   
                 if ((position_initiale = ftell((*descripteur).descripteur_c))                  if ((position_initiale = ftell((*descripteur).descripteur_c))
                         == -1)                          == -1)
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;                      if (errno == ESPIPE)
                     return;                      {
                           device = d_vrai;
                       }
                       else
                       {
                           (*s_etat_processus).erreur_systeme =
                                   d_es_erreur_fichier;
                           return;
                       }
                 }                  }
   
                 l_element_courant_format = (struct_liste_chainee *)                  l_element_courant_format = (struct_liste_chainee *)
Line 2028  instruction_read(struct_processus *s_eta Line 2036  instruction_read(struct_processus *s_eta
                         return;                          return;
                     }                      }
   
                     longueur = strlen(format_chaine);                      longueur = (integer8) strlen(format_chaine);
   
                     if (format_chaine[longueur - 1] != ')')                      if (format_chaine[longueur - 1] != ')')
                     {                      {
Line 2052  instruction_read(struct_processus *s_eta Line 2060  instruction_read(struct_processus *s_eta
                         // Détermination de la longueur                          // Détermination de la longueur
                         format_degenere = d_faux;                          format_degenere = d_faux;
   
                         if (sscanf(&(format_chaine[8]), "%ld", &longueur) != 1)                          if (sscanf(&(format_chaine[8]), "%lld", &longueur) != 1)
                         {                          {
                             liberation(s_etat_processus, s_objet_argument_1);                              liberation(s_etat_processus, s_objet_argument_1);
                             liberation(s_etat_processus, s_objet_resultat);                              liberation(s_etat_processus, s_objet_resultat);
Line 2074  instruction_read(struct_processus *s_eta Line 2082  instruction_read(struct_processus *s_eta
                             longueur_enregistrement++;                              longueur_enregistrement++;
                         } while((c != '\n') && (c != EOF));                          } while((c != '\n') && (c != EOF));
   
                         if (fseek((*descripteur).descripteur_c,                          if (device == d_faux)
                                 position_initiale, SEEK_SET) != 0)  
                         {                          {
                             liberation(s_etat_processus, s_objet_argument_1);                              if (fseek((*descripteur).descripteur_c,
                             liberation(s_etat_processus, s_objet_resultat);                                      (long) position_initiale, SEEK_SET) != 0)
                               {
                                   liberation(s_etat_processus,
                                           s_objet_argument_1);
                                   liberation(s_etat_processus, s_objet_resultat);
   
                             (*s_etat_processus).erreur_systeme =                                  (*s_etat_processus).erreur_systeme =
                                     d_es_erreur_fichier;                                          d_es_erreur_fichier;
                             return;                                  return;
                               }
                         }                          }
                     }                      }
                     else                      else
Line 2090  instruction_read(struct_processus *s_eta Line 2102  instruction_read(struct_processus *s_eta
                         longueur_enregistrement = longueur;                          longueur_enregistrement = longueur;
                     }                      }
   
                     if ((tampon_lecture = malloc((longueur_enregistrement)                      if ((tampon_lecture = malloc(((size_t)
                             * sizeof(unsigned char))) == NULL)                              longueur_enregistrement) * sizeof(unsigned char)))
                               == NULL)
                     {                      {
                         (*s_etat_processus).erreur_systeme =                          (*s_etat_processus).erreur_systeme =
                                 d_es_allocation_memoire;                                  d_es_allocation_memoire;
                         return;                          return;
                     }                      }
   
                     longueur_effective = fread(tampon_lecture,                      longueur_effective = (integer8) fread(tampon_lecture,
                             (size_t) sizeof(unsigned char),                              sizeof(unsigned char),
                             (size_t) longueur_enregistrement,                              (size_t) longueur_enregistrement,
                             (*descripteur).descripteur_c);                              (*descripteur).descripteur_c);
   
Line 2233  instruction_read(struct_processus *s_eta Line 2246  instruction_read(struct_processus *s_eta
                 presence_indicateur = d_faux;                  presence_indicateur = d_faux;
   
                 if ((tampon_lecture = realloc(tampon_lecture,                  if ((tampon_lecture = realloc(tampon_lecture,
                         (longueur_effective + longueur_questure + 1)                          ((size_t) (longueur_effective + longueur_questure + 1))
                         * sizeof(unsigned char))) == NULL)                          * sizeof(unsigned char))) == NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 2258  instruction_read(struct_processus *s_eta Line 2271  instruction_read(struct_processus *s_eta
   
                     do                      do
                     {                      {
                         ios = recvfrom((*((struct_socket *)                          ios = (int) recvfrom((*((struct_socket *)
                                 (*s_objet_argument_1).objet)).socket,                                  (*s_objet_argument_1).objet)).socket,
                                 tampon_lecture,                                  tampon_lecture, (size_t) (longueur_effective +
                                 longueur_effective + longueur_questure,                                  longueur_questure),
                                 MSG_PEEK | MSG_DONTWAIT, (struct sockaddr *)                                  MSG_PEEK | MSG_DONTWAIT, (struct sockaddr *)
                                 &adresse_unix, &longueur_adresse);                                  &adresse_unix, &longueur_adresse);
                     } while((ios == -1) && (errno == EINTR));                      } while((ios == -1) && (errno == EINTR));
Line 2273  instruction_read(struct_processus *s_eta Line 2286  instruction_read(struct_processus *s_eta
   
                     do                      do
                     {                      {
                         ios = recvfrom((*((struct_socket *)                          ios = (int) recvfrom((*((struct_socket *)
                                 (*s_objet_argument_1).objet)).socket,                                  (*s_objet_argument_1).objet)).socket,
                                 tampon_lecture,                                  tampon_lecture, (size_t) (longueur_effective +
                                 longueur_effective + longueur_questure,                                  longueur_questure),
                                 MSG_PEEK | MSG_DONTWAIT, (struct sockaddr *)                                  MSG_PEEK | MSG_DONTWAIT, (struct sockaddr *)
                                 &adresse_ipv4, &longueur_adresse);                                  &adresse_ipv4, &longueur_adresse);
                     } while((ios == -1) && (errno == EINTR));                      } while((ios == -1) && (errno == EINTR));
Line 2289  instruction_read(struct_processus *s_eta Line 2302  instruction_read(struct_processus *s_eta
                                           
                     do                      do
                     {                      {
                         ios = recvfrom((*((struct_socket *)                          ios = (int) recvfrom((*((struct_socket *)
                                 (*s_objet_argument_1).objet)).socket,                                  (*s_objet_argument_1).objet)).socket,
                                 tampon_lecture,                                  tampon_lecture, (size_t) (longueur_effective +
                                 longueur_effective + longueur_questure,                                  longueur_questure),
                                 MSG_PEEK | MSG_DONTWAIT, (struct sockaddr *)                                  MSG_PEEK | MSG_DONTWAIT, (struct sockaddr *)
                                 &adresse_ipv6, &longueur_adresse);                                  &adresse_ipv6, &longueur_adresse);
                     } while((ios == -1) && (errno == EINTR));                      } while((ios == -1) && (errno == EINTR));
Line 2444  instruction_read(struct_processus *s_eta Line 2457  instruction_read(struct_processus *s_eta
                                 longueur_adresse = sizeof(adresse_unix);                                  longueur_adresse = sizeof(adresse_unix);
                                 recvfrom((*((struct_socket *)                                  recvfrom((*((struct_socket *)
                                         (*s_objet_argument_1).objet)).socket,                                          (*s_objet_argument_1).objet)).socket,
                                         tampon_lecture, longueur_effective,                                          tampon_lecture,
                                           (size_t) longueur_effective,
                                         0, (struct sockaddr *)                                          0, (struct sockaddr *)
                                         &adresse_unix, &longueur_adresse);                                          &adresse_unix, &longueur_adresse);
                             } while((ios == -1) && (errno == EINTR));                              } while((ios == -1) && (errno == EINTR));
Line 2457  instruction_read(struct_processus *s_eta Line 2471  instruction_read(struct_processus *s_eta
                                 longueur_adresse = sizeof(adresse_ipv4);                                  longueur_adresse = sizeof(adresse_ipv4);
                                 recvfrom((*((struct_socket *)                                  recvfrom((*((struct_socket *)
                                         (*s_objet_argument_1).objet)).socket,                                          (*s_objet_argument_1).objet)).socket,
                                         tampon_lecture, longueur_effective,                                          tampon_lecture,
                                           (size_t) longueur_effective,
                                         0, (struct sockaddr *)                                          0, (struct sockaddr *)
                                         &adresse_ipv4, &longueur_adresse);                                          &adresse_ipv4, &longueur_adresse);
                             } while((ios == -1) && (errno == EINTR));                              } while((ios == -1) && (errno == EINTR));
Line 2471  instruction_read(struct_processus *s_eta Line 2486  instruction_read(struct_processus *s_eta
                                 longueur_adresse = sizeof(adresse_ipv6);                                  longueur_adresse = sizeof(adresse_ipv6);
                                 recvfrom((*((struct_socket *)                                  recvfrom((*((struct_socket *)
                                         (*s_objet_argument_1).objet)).socket,                                          (*s_objet_argument_1).objet)).socket,
                                         tampon_lecture, longueur_effective,                                          tampon_lecture,
                                           (size_t) longueur_effective,
                                         0, (struct sockaddr *)                                          0, (struct sockaddr *)
                                         &adresse_ipv6, &longueur_adresse);                                          &adresse_ipv6, &longueur_adresse);
                             } while((ios == -1) && (errno == EINTR));                              } while((ios == -1) && (errno == EINTR));
Line 2494  instruction_read(struct_processus *s_eta Line 2510  instruction_read(struct_processus *s_eta
                     }                      }
                     else                      else
                     {                      {
                         // Installation d'un timeout pour sortir de                          // Si on a lu toute une trame et qu'on n'a pas
                         // l'instruction dans le cas où la transmission serait                          // réussi à en trouver la structure, on remonte
                         // invalide et que la trame reçue serait erronée.                          // une erreur de syntaxe.
   
                         poll_fd.fd = (*((struct_socket *)                          if (longueur_effective == ios)
                                 (*s_objet_argument_1).objet)).socket;  
                         poll_fd.events = POLLIN;  
   
                         while((ios = poll(&poll_fd, 1, 10000)) <= 0)  
                         {                          {
                             // La fin de la trame n'est pas atteinte.                              if ((*((struct_socket *) (*s_objet_argument_1)
                                       .objet)).domaine == PF_UNIX)
                             switch(ios)  
                             {                              {
                                 case EINTR:                                  do
                                 {                                  {
                                     if ((*s_etat_processus)                                      longueur_adresse = sizeof(adresse_unix);
                                             .var_volatile_requete_arret == -1)                                      recvfrom((*((struct_socket *)
                                     {                                              (*s_objet_argument_1).objet))
                                         liberation(s_etat_processus,                                              .socket, tampon_lecture,
                                                 s_objet_argument_1);                                              (size_t) longueur_effective,
                                         free(tampon_lecture);                                              0, (struct sockaddr *)
                                         return;                                              &adresse_unix, &longueur_adresse);
                                     }                                  } while((ios == -1) && (errno == EINTR));
                               }
                                     break;                              else if ((*((struct_socket *) (*s_objet_argument_1)
                                       .objet)).domaine == PF_INET)
                               {
                                   do
                                   {
                                       longueur_adresse = sizeof(adresse_ipv4);
                                       recvfrom((*((struct_socket *)
                                               (*s_objet_argument_1).objet))
                                               .socket, tampon_lecture,
                                               (size_t) longueur_effective,
                                               0, (struct sockaddr *)
                                               &adresse_ipv4, &longueur_adresse);
                                   } while((ios == -1) && (errno == EINTR));
                               }
                               else if ((*((struct_socket *) (*s_objet_argument_1)
                                       .objet)) .domaine == PF_INET6)
                               {
   #                               ifdef IPV6
                                   do
                                   {
                                       longueur_adresse = sizeof(adresse_ipv6);
                                       recvfrom((*((struct_socket *)
                                               (*s_objet_argument_1).objet))
                                               .socket, tampon_lecture,
                                               (size_t) longueur_effective,
                                               0, (struct sockaddr *)
                                               &adresse_ipv6, &longueur_adresse);
                                   } while((ios == -1) && (errno == EINTR));
   #                               else
                                   if ((*s_etat_processus).langue == 'F')
                                   {
                                       printf("+++Attention : Support du protocole"
                                               " IPv6 indisponible\n");
                                 }                                  }
                                   else
                                 case 0:  
                                 {                                  {
                                     liberation(s_etat_processus,                                      printf("+++Warning : IPv6 support "
                                             s_objet_argument_1);                                              "unavailable\n");
                                     free(tampon_lecture);  
   
                                     (*s_etat_processus).erreur_execution =  
                                             d_ex_fin_de_fichier_atteinte;  
                                     return;  
                                 }                                  }
   
   #                               endif
                             }                              }
   
                               liberation(s_etat_processus, s_objet_argument_1);
                               free(tampon_lecture);
   
                               (*s_etat_processus).erreur_execution = d_ex_syntaxe;
                               return;
                         }                          }
                     }                      }
                 }                  }
Line 2836  instruction_read(struct_processus *s_eta Line 2881  instruction_read(struct_processus *s_eta
                 longueur_adresse = 0;                  longueur_adresse = 0;
                 recvfrom((*((struct_socket *)                  recvfrom((*((struct_socket *)
                         (*s_objet_argument_1).objet)).socket, tampon_lecture,                          (*s_objet_argument_1).objet)).socket, tampon_lecture,
                         position_finale, MSG_DONTWAIT,                          (size_t) position_finale, MSG_DONTWAIT,
                         NULL, &longueur_adresse);                          NULL, &longueur_adresse);
             }              }
   
Line 2867  instruction_read(struct_processus *s_eta Line 2912  instruction_read(struct_processus *s_eta
                 presence_indicateur = d_faux;                  presence_indicateur = d_faux;
   
                 if ((tampon_lecture = realloc(tampon_lecture,                  if ((tampon_lecture = realloc(tampon_lecture,
                         (longueur_effective + longueur_questure + 1)                          ((size_t) (longueur_effective + longueur_questure) + 1)
                         * sizeof(unsigned char))) == NULL)                          * sizeof(unsigned char))) == NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 2892  instruction_read(struct_processus *s_eta Line 2937  instruction_read(struct_processus *s_eta
   
                     do                      do
                     {                      {
                         ios = recvfrom((*((struct_socket *)                          ios = (int) recvfrom((*((struct_socket *)
                                 (*s_objet_argument_1).objet)).socket,                                  (*s_objet_argument_1).objet)).socket,
                                 tampon_lecture,                                  tampon_lecture, (size_t)
                                 longueur_effective + longueur_questure,                                  (longueur_effective + longueur_questure),
                                 MSG_PEEK | MSG_DONTWAIT, (struct sockaddr *)                                  MSG_PEEK | MSG_DONTWAIT, (struct sockaddr *)
                                 &adresse_unix, &longueur_adresse);                                  &adresse_unix, &longueur_adresse);
                     } while((ios == -1) && (errno == EINTR));                      } while((ios == -1) && (errno == EINTR));
Line 2907  instruction_read(struct_processus *s_eta Line 2952  instruction_read(struct_processus *s_eta
   
                     do                      do
                     {                      {
                         ios = recvfrom((*((struct_socket *)                          ios = (int) recvfrom((*((struct_socket *)
                                 (*s_objet_argument_1).objet)).socket,                                  (*s_objet_argument_1).objet)).socket,
                                 tampon_lecture,                                  tampon_lecture, (size_t)
                                 longueur_effective + longueur_questure,                                  (longueur_effective + longueur_questure),
                                 MSG_PEEK | MSG_DONTWAIT, (struct sockaddr *)                                  MSG_PEEK | MSG_DONTWAIT, (struct sockaddr *)
                                 &adresse_ipv4, &longueur_adresse);                                  &adresse_ipv4, &longueur_adresse);
                     } while((ios == -1) && (errno == EINTR));                      } while((ios == -1) && (errno == EINTR));
Line 2923  instruction_read(struct_processus *s_eta Line 2968  instruction_read(struct_processus *s_eta
                                           
                     do                      do
                     {                      {
                         ios = recvfrom((*((struct_socket *)                          ios = (int) recvfrom((*((struct_socket *)
                                 (*s_objet_argument_1).objet)).socket,                                  (*s_objet_argument_1).objet)).socket,
                                 tampon_lecture,                                  tampon_lecture, (size_t)
                                 longueur_effective + longueur_questure,                                  (longueur_effective + longueur_questure),
                                 MSG_PEEK | MSG_DONTWAIT, (struct sockaddr *)                                  MSG_PEEK | MSG_DONTWAIT, (struct sockaddr *)
                                 &adresse_ipv6, &longueur_adresse);                                  &adresse_ipv6, &longueur_adresse);
                     } while((ios == -1) && (errno == EINTR));                      } while((ios == -1) && (errno == EINTR));
Line 3012  instruction_read(struct_processus *s_eta Line 3057  instruction_read(struct_processus *s_eta
                             longueur_adresse = sizeof(adresse_unix);                              longueur_adresse = sizeof(adresse_unix);
                             recvfrom((*((struct_socket *)                              recvfrom((*((struct_socket *)
                                     (*s_objet_argument_1).objet)).socket,                                      (*s_objet_argument_1).objet)).socket,
                                     tampon_lecture, longueur_effective,                                      tampon_lecture, (size_t) longueur_effective,
                                     0, (struct sockaddr *)                                      0, (struct sockaddr *)
                                     &adresse_unix, &longueur_adresse);                                      &adresse_unix, &longueur_adresse);
                         } while((ios == -1) && (errno == EINTR));                          } while((ios == -1) && (errno == EINTR));
Line 3025  instruction_read(struct_processus *s_eta Line 3070  instruction_read(struct_processus *s_eta
                             longueur_adresse = sizeof(adresse_ipv4);                              longueur_adresse = sizeof(adresse_ipv4);
                             recvfrom((*((struct_socket *)                              recvfrom((*((struct_socket *)
                                     (*s_objet_argument_1).objet)).socket,                                      (*s_objet_argument_1).objet)).socket,
                                     tampon_lecture, longueur_effective,                                      tampon_lecture, (size_t) longueur_effective,
                                     0, (struct sockaddr *)                                      0, (struct sockaddr *)
                                     &adresse_ipv4, &longueur_adresse);                                      &adresse_ipv4, &longueur_adresse);
                         } while((ios == -1) && (errno == EINTR));                          } while((ios == -1) && (errno == EINTR));
Line 3039  instruction_read(struct_processus *s_eta Line 3084  instruction_read(struct_processus *s_eta
                             longueur_adresse = sizeof(adresse_ipv6);                              longueur_adresse = sizeof(adresse_ipv6);
                             recvfrom((*((struct_socket *)                              recvfrom((*((struct_socket *)
                                     (*s_objet_argument_1).objet)).socket,                                      (*s_objet_argument_1).objet)).socket,
                                     tampon_lecture, longueur_effective,                                      tampon_lecture, (size_t) longueur_effective,
                                     0, (struct sockaddr *)                                      0, (struct sockaddr *)
                                     &adresse_ipv6, &longueur_adresse);                                      &adresse_ipv6, &longueur_adresse);
                         } while((ios == -1) && (errno == EINTR));                          } while((ios == -1) && (errno == EINTR));
Line 3321  instruction_read(struct_processus *s_eta Line 3366  instruction_read(struct_processus *s_eta
                 longueur_adresse = 0;                  longueur_adresse = 0;
                 recvfrom((*((struct_socket *)                  recvfrom((*((struct_socket *)
                         (*s_objet_argument_1).objet)).socket, tampon_lecture,                          (*s_objet_argument_1).objet)).socket, tampon_lecture,
                         position_finale, MSG_DONTWAIT,                          (size_t) position_finale, MSG_DONTWAIT,
                         NULL, &longueur_adresse);                          NULL, &longueur_adresse);
             }              }
   

Removed from v.1.75  
changed lines
  Added in v.1.82


CVSweb interface <joel.bertrand@systella.fr>