Diff for /rpl/src/instructions_w1.c between versions 1.119 and 1.127

version 1.119, 2019/10/31 15:40:22 version 1.127, 2023/11/24 08:10:19
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.32    RPL/2 (R) version 4.1.35
   Copyright (C) 1989-2019 Dr. BERTRAND Joël    Copyright (C) 1989-2023 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 1361  instruction_write(struct_processus *s_et Line 1361  instruction_write(struct_processus *s_et
                     return;                      return;
                 }                  }
   
                 if (fwrite(chaine, sizeof(unsigned char),                  if (write(fileno((*descripteur).descripteur_c),
                         (size_t) longueur_effective,                          chaine, (size_t) longueur_effective) !=
                         (*descripteur).descripteur_c) !=                          (ssize_t) longueur_effective)
                         (size_t) longueur_effective)  
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;                      (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
                     return;                      return;
Line 1584  instruction_write(struct_processus *s_et Line 1583  instruction_write(struct_processus *s_et
                     if ((format_degenere == d_vrai) ||                      if ((format_degenere == d_vrai) ||
                             (longueur_effective < longueur))                              (longueur_effective < longueur))
                     {                      {
                         if (fwrite(chaine, sizeof(unsigned char),                          if (write(fileno((*descripteur).descripteur_c),
                                 (size_t) longueur_effective,                                  chaine, (size_t) longueur_effective)
                                 (*descripteur).descripteur_c) !=                                  != (ssize_t) longueur_effective)
                                 (size_t) longueur_effective)  
                         {                          {
                             (*s_etat_processus).erreur_systeme =                              (*s_etat_processus).erreur_systeme =
                                     d_es_erreur_fichier;                                      d_es_erreur_fichier;
Line 1596  instruction_write(struct_processus *s_et Line 1594  instruction_write(struct_processus *s_et
                     }                      }
                     else                      else
                     {                      {
                         if (fwrite(chaine, sizeof(unsigned char),                          if (write(fileno((*descripteur).descripteur_c),
                                 (size_t) longueur_effective,                                  chaine, (size_t) longueur_effective)
                                 (*descripteur).descripteur_c) !=                                  != (ssize_t) longueur)
                                 (size_t) longueur)  
                         {                          {
                             (*s_etat_processus).erreur_systeme =                              (*s_etat_processus).erreur_systeme =
                                     d_es_erreur_fichier;                                      d_es_erreur_fichier;
Line 1611  instruction_write(struct_processus *s_et Line 1608  instruction_write(struct_processus *s_et
   
                     if (format_oriente_ligne == d_vrai)                      if (format_oriente_ligne == d_vrai)
                     {                      {
                         if (fwrite("\n", 1, 1, (*descripteur).descripteur_c)                          if (write(fileno((*descripteur).descripteur_c),
                                 != 1)                                  "\n", 1) != 1)
                         {                          {
                             (*s_etat_processus).erreur_systeme =                              (*s_etat_processus).erreur_systeme =
                                     d_es_erreur_fichier;                                      d_es_erreur_fichier;
Line 3105  instruction_wfdata(struct_processus *s_e Line 3102  instruction_wfdata(struct_processus *s_e
 static inline logical1  static inline logical1
 options_sockets(struct_processus *s_etat_processus, struct_socket *s_socket)  options_sockets(struct_processus *s_etat_processus, struct_socket *s_socket)
 {  {
     int                         drapeau;  
   
     if (((*s_socket).options & (1 << d_BROADCAST)) != 0)      if (((*s_socket).options & (1 << d_BROADCAST)) != 0)
     {      {
         if (setsockopt((*s_socket).socket, SOL_SOCKET, SO_BROADCAST, &drapeau,          if (setsockopt((*s_socket).socket, SOL_SOCKET, SO_BROADCAST, NULL, 0)
                 sizeof(drapeau)) != 0)                  != 0)
         {          {
             return(d_erreur);              return(d_erreur);
         }          }
Line 3118  options_sockets(struct_processus *s_etat Line 3113  options_sockets(struct_processus *s_etat
   
     if (((*s_socket).options & (1 << d_DONT_ROUTE)) != 0)      if (((*s_socket).options & (1 << d_DONT_ROUTE)) != 0)
     {      {
         if (setsockopt((*s_socket).socket, SOL_SOCKET, SO_DONTROUTE, &drapeau,          if (setsockopt((*s_socket).socket, SOL_SOCKET, SO_DONTROUTE, NULL, 0)
                 sizeof(drapeau)) != 0)                  != 0)
         {          {
             return(d_erreur);              return(d_erreur);
         }          }
Line 3127  options_sockets(struct_processus *s_etat Line 3122  options_sockets(struct_processus *s_etat
   
     if (((*s_socket).options & (1 << d_KEEP_ALIVE)) != 0)      if (((*s_socket).options & (1 << d_KEEP_ALIVE)) != 0)
     {      {
         if (setsockopt((*s_socket).socket, SOL_SOCKET, SO_KEEPALIVE, &drapeau,          if (setsockopt((*s_socket).socket, SOL_SOCKET, SO_KEEPALIVE, NULL, 0)
                 sizeof(drapeau)) != 0)                  != 0)
         {          {
             return(d_erreur);              return(d_erreur);
         }          }
Line 3285  instruction_wfsock(struct_processus *s_e Line 3280  instruction_wfsock(struct_processus *s_e
                 (*s_objet_argument).objet)).type, "SEQUENTIAL DATAGRAM") != 0))                  (*s_objet_argument).objet)).type, "SEQUENTIAL DATAGRAM") != 0))
         {          {
             // Mode non connecté : l'attente se fait sur un poll()              // Mode non connecté : l'attente se fait sur un poll()
   #define DEBUG_RETURN
             if ((s_objet_resultat = copie_objet(s_etat_processus,              if ((s_objet_resultat = copie_objet(s_etat_processus,
                     s_objet_argument, 'P')) == NULL)                      s_objet_argument, 'P')) == NULL)
             {              {
Line 3487  instruction_wfsock(struct_processus *s_e Line 3482  instruction_wfsock(struct_processus *s_e
                     }                      }
                 } while(drapeau == d_faux);                  } while(drapeau == d_faux);
   
   printf("socket: %d\n", (*((struct_socket *) (*s_objet_resultat).objet)).socket);
                 if (((*((struct_socket *) (*s_objet_resultat).objet))                  if (((*((struct_socket *) (*s_objet_resultat).objet))
                         .adresse_distante = malloc(22 *                          .adresse_distante = malloc(22 *
                         sizeof(unsigned char))) == NULL)                          sizeof(unsigned char))) == NULL)

Removed from v.1.119  
changed lines
  Added in v.1.127


CVSweb interface <joel.bertrand@systella.fr>