Diff for /rpl/src/instructions_o1.c between versions 1.6 and 1.19

version 1.6, 2010/03/06 18:29:07 version 1.19, 2010/08/09 13:51:47
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.12    RPL/2 (R) version 4.0.18
   Copyright (C) 1989-2010 Dr. BERTRAND Joël    Copyright (C) 1989-2010 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
Line 20 Line 20
 */  */
   
   
 #include "rpl.conv.h"  #include "rpl-conv.h"
   
   
 /*  /*
Line 934  instruction_open(struct_processus *s_eta Line 934  instruction_open(struct_processus *s_eta
   
     struct sockaddr_un          socket_unix;      struct sockaddr_un          socket_unix;
     struct sockaddr_in          socket_ipv4;      struct sockaddr_in          socket_ipv4;
   #   ifdef IPV6
     struct sockaddr_in6         socket_ipv6;      struct sockaddr_in6         socket_ipv6;
   #   endif
   
     struct_objet                *s_objet_argument;      struct_objet                *s_objet_argument;
     struct_objet                *s_objet_resultat;      struct_objet                *s_objet_resultat;
Line 1017  instruction_open(struct_processus *s_eta Line 1019  instruction_open(struct_processus *s_eta
                 "\"file name\" } \"protection\" } OPEN\n");                  "\"file name\" } \"protection\" } OPEN\n");
         printf("    { \"sockettype\" { \"name\" \"local name\" } } OPEN\n");          printf("    { \"sockettype\" { \"name\" \"local name\" } } OPEN\n");
         printf("    { \"sockettype\" \"socketdomain\" \"protection\" } OPEN\n");          printf("    { \"sockettype\" \"socketdomain\" \"protection\" } OPEN\n");
           printf("    \"/semaphore\" OPEN\n");
   
         printf("    File type       : NEW/OLD/REPLACE/UNKNOWN/SCRATCH\n");          printf("    File type       : NEW/OLD/REPLACE/UNKNOWN/SCRATCH\n");
         printf("    File access     : SEQUENTIAL/DIRECT/KEYED\n");          printf("    File access     : SEQUENTIAL/DIRECT/KEYED\n");
Line 2649  instruction_open(struct_processus *s_eta Line 2652  instruction_open(struct_processus *s_eta
             }              }
   
             if (((type_acces != 'I') && (position_clef != 0)) ||              if (((type_acces != 'I') && (position_clef != 0)) ||
                     ((type_acces == 'I') && (position_clef == 0)))                      ((type_acces == 'I') && (position_clef == 0) &&
                       ((type_ouverture == 'N') || (type_ouverture == 'R') ||
                       (type_ouverture == 'S'))))
             {              {
                 liberation(s_etat_processus, s_objet_argument);                  liberation(s_etat_processus, s_objet_argument);
   
Line 2820  instruction_open(struct_processus *s_eta Line 2825  instruction_open(struct_processus *s_eta
                         }                          }
                         else                          else
                         {                          {
                               if (position_clef == 0)
                               {
                                   free(nom);
   
                                   liberation(s_etat_processus, s_objet_argument);
                                   liberation(s_etat_processus, s_objet_resultat);
   
                                   (*s_etat_processus).erreur_execution =
                                           d_ex_erreur_parametre_fichier;
                                   return;
                               }
   
                             if (initialisation_fichier_acces_indexe(                              if (initialisation_fichier_acces_indexe(
                                     s_etat_processus, sqlite,                                      s_etat_processus, sqlite, position_clef,
                                     (format == 'N') ? d_faux : d_vrai)                                      (format == 'N') ? d_faux : d_vrai)
                                     != d_absence_erreur)                                      != d_absence_erreur)
                             {                              {
Line 3056  instruction_open(struct_processus *s_eta Line 3073  instruction_open(struct_processus *s_eta
                         }                          }
                         else                          else
                         {                          {
                               if (position_clef == 0)
                               {
                                   free(nom);
   
                                   liberation(s_etat_processus, s_objet_argument);
                                   liberation(s_etat_processus, s_objet_resultat);
   
                                   (*s_etat_processus).erreur_execution =
                                           d_ex_erreur_parametre_fichier;
                                   return;
                               }
   
                             if (initialisation_fichier_acces_indexe(                              if (initialisation_fichier_acces_indexe(
                                     s_etat_processus, sqlite,                                      s_etat_processus, sqlite, position_clef,
                                     (format == 'N') ? d_faux : d_vrai)                                      (format == 'N') ? d_faux : d_vrai)
                                     != d_absence_erreur)                                      != d_absence_erreur)
                             {                              {
Line 3154  instruction_open(struct_processus *s_eta Line 3183  instruction_open(struct_processus *s_eta
                             }                              }
                             else                              else
                             {                              {
                                   if (position_clef == 0)
                                   {
                                       free(nom);
   
                                       liberation(s_etat_processus,
                                               s_objet_argument);
                                       liberation(s_etat_processus,
                                               s_objet_resultat);
   
                                       (*s_etat_processus).erreur_execution =
                                               d_ex_erreur_parametre_fichier;
                                       return;
                                   }
   
                                 if (initialisation_fichier_acces_indexe(                                  if (initialisation_fichier_acces_indexe(
                                         s_etat_processus, sqlite,                                          s_etat_processus, sqlite, position_clef,
                                         (format == 'N') ? d_faux : d_vrai)                                          (format == 'N') ? d_faux : d_vrai)
                                         != d_absence_erreur)                                          != d_absence_erreur)
                                 {                                  {
Line 3309  instruction_open(struct_processus *s_eta Line 3352  instruction_open(struct_processus *s_eta
                             }                              }
                         }                          }
                         else                          else
                         {                          { 
                               if (position_clef == 0)
                               {
                                   free(nom);
   
                                   liberation(s_etat_processus, s_objet_argument);
                                   liberation(s_etat_processus, s_objet_resultat);
   
                                   (*s_etat_processus).erreur_execution =
                                           d_ex_erreur_parametre_fichier;
                                   return;
                               }
   
                             if (initialisation_fichier_acces_indexe(                              if (initialisation_fichier_acces_indexe(
                                     s_etat_processus, sqlite,                                      s_etat_processus, sqlite, position_clef,
                                     (format == 'N') ? d_faux : d_vrai)                                      (format == 'N') ? d_faux : d_vrai)
                                     != d_absence_erreur)                                      != d_absence_erreur)
                             {                              {
Line 4029  instruction_open(struct_processus *s_eta Line 4084  instruction_open(struct_processus *s_eta
                     strcpy((*((struct_socket *) (*s_objet_resultat).objet)).                      strcpy((*((struct_socket *) (*s_objet_resultat).objet)).
                             type, "ROBUST DATAGRAM");                              type, "ROBUST DATAGRAM");
                     break;                      break;
   
                   default :
                       BUG(1, printf("type_socket=%c\n", type_socket));
                       break;
             }              }
   
             if ((protection != 'N') && ((type_socket != 'S') &&              if ((protection != 'N') && ((type_socket != 'S') &&
Line 4282  instruction_open(struct_processus *s_eta Line 4341  instruction_open(struct_processus *s_eta
                         }                          }
                         else                          else
                         { // Accès en IPv6                          { // Accès en IPv6
   #                           ifdef IPV6
                             resolution_courante = resolution;                              resolution_courante = resolution;
   
                             while(resolution_courante != NULL)                              while(resolution_courante != NULL)
Line 4379  instruction_open(struct_processus *s_eta Line 4439  instruction_open(struct_processus *s_eta
                                         (*resolution_courante).ai_addr))                                          (*resolution_courante).ai_addr))
                                         .sin6_addr.s6_addr[i]);                                          .sin6_addr.s6_addr[i]);
                             }                              }
   #                           else
                               if ((*s_etat_processus).langue == 'F')
                               {
                                   printf("+++Attention : Support du protocole"
                                           " IPv6 indisponble\n");
                               }
                               else
                               {
                                   printf("+++Attention : IPv6 support "
                                           "unavailable\n");
                               }
   #                           endif
                         }                          }
   
                         freeaddrinfo(resolution);                          freeaddrinfo(resolution);
Line 4466  instruction_open(struct_processus *s_eta Line 4538  instruction_open(struct_processus *s_eta
                         }                          }
                         else                          else
                         { // Accès en IPv6                          { // Accès en IPv6
   #                           ifdef IPV6
                             if (((*((struct_socket *) (*s_objet_resultat)                              if (((*((struct_socket *) (*s_objet_resultat)
                                     .objet)).adresse = malloc(55 *                                      .objet)).adresse = malloc(55 *
                                     sizeof(unsigned char))) == NULL)                                      sizeof(unsigned char))) == NULL)
Line 4536  instruction_open(struct_processus *s_eta Line 4609  instruction_open(struct_processus *s_eta
                                         d_ex_erreur_acces_fichier;                                          d_ex_erreur_acces_fichier;
                                 return;                                  return;
                             }                              }
   #                           else
                               if ((*s_etat_processus).langue == 'F')
                               {
                                   printf("+++Attention : Support du protocole"
                                           " IPv6 indisponble\n");
                               }
                               else
                               {
                                   printf("+++Attention : IPv6 support "
                                           "unavailable\n");
                               }
   #                           endif
                         }                          }
                     }                      }
   
Line 4794  instruction_open(struct_processus *s_eta Line 4879  instruction_open(struct_processus *s_eta
                         }                          }
                         else                          else
                         { // Accès en IPv6                          { // Accès en IPv6
   #                           ifdef IPV6
                             resolution_courante = resolution;                              resolution_courante = resolution;
   
                             while(resolution_courante != NULL)                              while(resolution_courante != NULL)
Line 4893  instruction_open(struct_processus *s_eta Line 4979  instruction_open(struct_processus *s_eta
                                         (*resolution_courante).ai_addr))                                          (*resolution_courante).ai_addr))
                                         .sin6_addr.s6_addr[i]);                                          .sin6_addr.s6_addr[i]);
                             }                              }
   #                           else
                               if ((*s_etat_processus).langue == 'F')
                               {
                                   printf("+++Attention : Support du protocole"
                                           " IPv6 indisponble\n");
                               }
                               else
                               {
                                   printf("+++Attention : IPv6 support "
                                           "unavailable\n");
                               }
   #                           endif
                         }                          }
   
                         freeaddrinfo(resolution);                          freeaddrinfo(resolution);
Line 5001  instruction_open(struct_processus *s_eta Line 5099  instruction_open(struct_processus *s_eta
                         }                          }
                         else if (strcmp(protocole, "IPV6") == 0)                          else if (strcmp(protocole, "IPV6") == 0)
                         { // Accès en IPv6                          { // Accès en IPv6
   #                           ifdef IPV6
                             if (type_adresse == '6')                              if (type_adresse == '6')
                             {                              {
                                 if (((*((struct_socket *) (*s_objet_resultat)                                  if (((*((struct_socket *) (*s_objet_resultat)
Line 5092  instruction_open(struct_processus *s_eta Line 5191  instruction_open(struct_processus *s_eta
                                 (*((struct_socket *) (*s_objet_resultat).objet))                                  (*((struct_socket *) (*s_objet_resultat).objet))
                                         .socket_en_ecoute = 'N';                                          .socket_en_ecoute = 'N';
                             }                              }
   #                           else
                               if ((*s_etat_processus).langue == 'F')
                               {
                                   printf("+++Attention : Support du protocole"
                                           " IPv6 indisponble\n");
                               }
                               else
                               {
                                   printf("+++Attention : IPv6 support "
                                           "unavailable\n");
                               }
   #                           endif
                         }                          }
                         else                          else
                         { // Socket UNIX                          { // Socket UNIX
Line 5208  instruction_open(struct_processus *s_eta Line 5319  instruction_open(struct_processus *s_eta
                 (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;                  (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                 return;                  return;
             }              }
   
               liberation(s_etat_processus, s_objet_argument);
         }          }
         else          else
         {          {

Removed from v.1.6  
changed lines
  Added in v.1.19


CVSweb interface <joel.bertrand@systella.fr>