version 1.4, 2010/03/04 10:17:53
|
version 1.73, 2019/01/01 09:03:11
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.0.12 |
RPL/2 (R) version 4.1.30 |
Copyright (C) 1989-2010 Dr. BERTRAND Joël |
Copyright (C) 1989-2019 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 44 instruction_trn(struct_processus *s_etat
|
Line 44 instruction_trn(struct_processus *s_etat
|
logical1 argument_nom; |
logical1 argument_nom; |
logical1 variable_partagee; |
logical1 variable_partagee; |
|
|
unsigned long i; |
integer8 i; |
unsigned long j; |
integer8 j; |
|
|
(*s_etat_processus).erreur_execution = d_ex; |
(*s_etat_processus).erreur_execution = d_ex; |
|
|
Line 109 instruction_trn(struct_processus *s_etat
|
Line 109 instruction_trn(struct_processus *s_etat
|
|
|
liberation(s_etat_processus, s_objet_argument); |
liberation(s_etat_processus, s_objet_argument); |
|
|
if ((*s_etat_processus).s_liste_variables[(*s_etat_processus) |
if ((*(*s_etat_processus).pointeur_variable_courante) |
.position_variable_courante].variable_verrouillee == d_vrai) |
.variable_verrouillee == d_vrai) |
{ |
{ |
(*s_etat_processus).erreur_execution = d_ex_variable_verrouillee; |
(*s_etat_processus).erreur_execution = d_ex_variable_verrouillee; |
return; |
return; |
} |
} |
|
|
if ((*s_etat_processus).s_liste_variables |
if ((*(*s_etat_processus).pointeur_variable_courante).objet != NULL) |
[(*s_etat_processus).position_variable_courante].objet != NULL) |
|
{ |
{ |
s_objet_argument = (*s_etat_processus).s_liste_variables |
s_objet_argument = (*(*s_etat_processus).pointeur_variable_courante) |
[(*s_etat_processus).position_variable_courante].objet; |
.objet; |
} |
} |
else |
else |
{ |
{ |
if (pthread_mutex_lock(&((*(*s_etat_processus) |
|
.s_liste_variables_partagees).mutex)) != 0) |
|
{ |
|
(*s_etat_processus).erreur_systeme = d_es_processus; |
|
return; |
|
} |
|
|
|
if (recherche_variable_partagee(s_etat_processus, |
if (recherche_variable_partagee(s_etat_processus, |
(*s_etat_processus).s_liste_variables |
(*(*s_etat_processus).pointeur_variable_courante).nom, |
[(*s_etat_processus).position_variable_courante].nom, |
(*(*s_etat_processus).pointeur_variable_courante) |
(*s_etat_processus).s_liste_variables |
.variable_partagee, (*(*s_etat_processus) |
[(*s_etat_processus).position_variable_courante] |
.pointeur_variable_courante).origine) == NULL) |
.variable_partagee, (*s_etat_processus).s_liste_variables |
|
[(*s_etat_processus).position_variable_courante].origine) |
|
== d_faux) |
|
{ |
{ |
if (pthread_mutex_unlock(&((*(*s_etat_processus) |
|
.s_liste_variables_partagees).mutex)) != 0) |
|
{ |
|
(*s_etat_processus).erreur_systeme = d_es_processus; |
|
return; |
|
} |
|
|
|
(*s_etat_processus).erreur_systeme = d_es; |
(*s_etat_processus).erreur_systeme = d_es; |
(*s_etat_processus).erreur_execution = |
(*s_etat_processus).erreur_execution = |
d_ex_variable_non_definie; |
d_ex_variable_non_definie; |
Line 177 instruction_trn(struct_processus *s_etat
|
Line 159 instruction_trn(struct_processus *s_etat
|
if (variable_partagee == d_vrai) |
if (variable_partagee == d_vrai) |
{ |
{ |
if (pthread_mutex_unlock(&((*(*s_etat_processus) |
if (pthread_mutex_unlock(&((*(*s_etat_processus) |
.s_liste_variables_partagees).mutex)) != 0) |
.pointeur_variable_partagee_courante).mutex)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 196 instruction_trn(struct_processus *s_etat
|
Line 178 instruction_trn(struct_processus *s_etat
|
.nombre_lignes; |
.nombre_lignes; |
|
|
if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau = |
if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau = |
malloc((*((struct_matrice *) (*s_objet_resultat).objet)) |
malloc(((size_t) (*((struct_matrice *) (*s_objet_resultat) |
.nombre_lignes * sizeof(integer8 *))) == NULL) |
.objet)).nombre_lignes) * sizeof(integer8 *))) == NULL) |
{ |
{ |
if (variable_partagee == d_vrai) |
if (variable_partagee == d_vrai) |
{ |
{ |
if (pthread_mutex_unlock(&((*(*s_etat_processus) |
if (pthread_mutex_unlock(&((*(*s_etat_processus) |
.s_liste_variables_partagees).mutex)) != 0) |
.pointeur_variable_partagee_courante).mutex)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 217 instruction_trn(struct_processus *s_etat
|
Line 199 instruction_trn(struct_processus *s_etat
|
.nombre_lignes; i++) |
.nombre_lignes; i++) |
{ |
{ |
if ((((integer8 **) (*((struct_matrice *) (*s_objet_resultat) |
if ((((integer8 **) (*((struct_matrice *) (*s_objet_resultat) |
.objet)).tableau)[i] = |
.objet)).tableau)[i] = malloc(((size_t) |
malloc((*((struct_matrice *) (*s_objet_resultat).objet)) |
(*((struct_matrice *) (*s_objet_resultat).objet)) |
.nombre_colonnes * sizeof(integer8))) == NULL) |
.nombre_colonnes) * sizeof(integer8))) == NULL) |
{ |
{ |
if (variable_partagee == d_vrai) |
if (variable_partagee == d_vrai) |
{ |
{ |
if (pthread_mutex_unlock(&((*(*s_etat_processus) |
if (pthread_mutex_unlock(&((*(*s_etat_processus) |
.s_liste_variables_partagees).mutex)) != 0) |
.pointeur_variable_partagee_courante).mutex)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 259 instruction_trn(struct_processus *s_etat
|
Line 241 instruction_trn(struct_processus *s_etat
|
if (variable_partagee == d_vrai) |
if (variable_partagee == d_vrai) |
{ |
{ |
if (pthread_mutex_unlock(&((*(*s_etat_processus) |
if (pthread_mutex_unlock(&((*(*s_etat_processus) |
.s_liste_variables_partagees).mutex)) != 0) |
.pointeur_variable_partagee_courante).mutex)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 278 instruction_trn(struct_processus *s_etat
|
Line 260 instruction_trn(struct_processus *s_etat
|
.nombre_lignes; |
.nombre_lignes; |
|
|
if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau = |
if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau = |
malloc((*((struct_matrice *) (*s_objet_resultat).objet)) |
malloc(((size_t) (*((struct_matrice *) (*s_objet_resultat) |
.nombre_lignes * sizeof(real8 *))) == NULL) |
.objet)).nombre_lignes) * sizeof(real8 *))) == NULL) |
{ |
{ |
if (variable_partagee == d_vrai) |
if (variable_partagee == d_vrai) |
{ |
{ |
if (pthread_mutex_unlock(&((*(*s_etat_processus) |
if (pthread_mutex_unlock(&((*(*s_etat_processus) |
.s_liste_variables_partagees).mutex)) != 0) |
.pointeur_variable_partagee_courante).mutex)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 299 instruction_trn(struct_processus *s_etat
|
Line 281 instruction_trn(struct_processus *s_etat
|
.nombre_lignes; i++) |
.nombre_lignes; i++) |
{ |
{ |
if ((((real8 **) (*((struct_matrice *) (*s_objet_resultat) |
if ((((real8 **) (*((struct_matrice *) (*s_objet_resultat) |
.objet)).tableau)[i] = |
.objet)).tableau)[i] = malloc(((size_t) |
malloc((*((struct_matrice *) (*s_objet_resultat).objet)) |
(*((struct_matrice *) (*s_objet_resultat).objet)) |
.nombre_colonnes * sizeof(real8))) == NULL) |
.nombre_colonnes) * sizeof(real8))) == NULL) |
{ |
{ |
if (variable_partagee == d_vrai) |
if (variable_partagee == d_vrai) |
{ |
{ |
if (pthread_mutex_unlock(&((*(*s_etat_processus) |
if (pthread_mutex_unlock(&((*(*s_etat_processus) |
.s_liste_variables_partagees).mutex)) != 0) |
.pointeur_variable_partagee_courante).mutex)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 341 instruction_trn(struct_processus *s_etat
|
Line 323 instruction_trn(struct_processus *s_etat
|
if (variable_partagee == d_vrai) |
if (variable_partagee == d_vrai) |
{ |
{ |
if (pthread_mutex_unlock(&((*(*s_etat_processus) |
if (pthread_mutex_unlock(&((*(*s_etat_processus) |
.s_liste_variables_partagees).mutex)) != 0) |
.pointeur_variable_partagee_courante).mutex)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 360 instruction_trn(struct_processus *s_etat
|
Line 342 instruction_trn(struct_processus *s_etat
|
.nombre_lignes; |
.nombre_lignes; |
|
|
if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau = |
if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau = |
malloc((*((struct_matrice *) (*s_objet_resultat).objet)) |
malloc(((size_t) (*((struct_matrice *) (*s_objet_resultat) |
.nombre_lignes * sizeof(struct_complexe16 *))) == NULL) |
.objet)).nombre_lignes) * sizeof(struct_complexe16 *))) == NULL) |
{ |
{ |
if (variable_partagee == d_vrai) |
if (variable_partagee == d_vrai) |
{ |
{ |
if (pthread_mutex_unlock(&((*(*s_etat_processus) |
if (pthread_mutex_unlock(&((*(*s_etat_processus) |
.s_liste_variables_partagees).mutex)) != 0) |
.pointeur_variable_partagee_courante).mutex)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 382 instruction_trn(struct_processus *s_etat
|
Line 364 instruction_trn(struct_processus *s_etat
|
{ |
{ |
if ((((struct_complexe16 **) (*((struct_matrice *) |
if ((((struct_complexe16 **) (*((struct_matrice *) |
(*s_objet_resultat).objet)).tableau)[i] = |
(*s_objet_resultat).objet)).tableau)[i] = |
malloc((*((struct_matrice *) |
malloc(((size_t) (*((struct_matrice *) |
(*s_objet_resultat).objet)).nombre_colonnes * |
(*s_objet_resultat).objet)).nombre_colonnes) * |
sizeof(struct_complexe16))) == NULL) |
sizeof(struct_complexe16))) == NULL) |
{ |
{ |
if (variable_partagee == d_vrai) |
if (variable_partagee == d_vrai) |
{ |
{ |
if (pthread_mutex_unlock(&((*(*s_etat_processus) |
if (pthread_mutex_unlock(&((*(*s_etat_processus) |
.s_liste_variables_partagees).mutex)) != 0) |
.pointeur_variable_partagee_courante).mutex)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 435 instruction_trn(struct_processus *s_etat
|
Line 417 instruction_trn(struct_processus *s_etat
|
if (variable_partagee == d_vrai) |
if (variable_partagee == d_vrai) |
{ |
{ |
if (pthread_mutex_unlock(&((*(*s_etat_processus) |
if (pthread_mutex_unlock(&((*(*s_etat_processus) |
.s_liste_variables_partagees).mutex)) != 0) |
.pointeur_variable_partagee_courante).mutex)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 460 instruction_trn(struct_processus *s_etat
|
Line 442 instruction_trn(struct_processus *s_etat
|
{ |
{ |
if (variable_partagee == d_vrai) |
if (variable_partagee == d_vrai) |
{ |
{ |
(*(*s_etat_processus).s_liste_variables_partagees).table |
(*(*s_etat_processus).pointeur_variable_partagee_courante).objet = |
[(*(*s_etat_processus).s_liste_variables_partagees) |
s_objet_resultat; |
.position_variable].objet = s_objet_resultat; |
|
|
|
if (pthread_mutex_unlock(&((*(*s_etat_processus) |
if (pthread_mutex_unlock(&((*(*s_etat_processus) |
.s_liste_variables_partagees).mutex)) != 0) |
.pointeur_variable_partagee_courante).mutex)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 473 instruction_trn(struct_processus *s_etat
|
Line 454 instruction_trn(struct_processus *s_etat
|
} |
} |
else |
else |
{ |
{ |
(*s_etat_processus).s_liste_variables |
(*(*s_etat_processus).pointeur_variable_courante).objet = |
[(*s_etat_processus).position_variable_courante].objet = |
|
s_objet_resultat; |
s_objet_resultat; |
} |
} |
} |
} |
Line 498 instruction_trn(struct_processus *s_etat
|
Line 478 instruction_trn(struct_processus *s_etat
|
void |
void |
instruction_tot(struct_processus *s_etat_processus) |
instruction_tot(struct_processus *s_etat_processus) |
{ |
{ |
logical1 presence_variable; |
|
|
|
long i; |
|
|
|
struct_objet *s_objet_statistique; |
struct_objet *s_objet_statistique; |
struct_objet *s_objet_resultat; |
struct_objet *s_objet_resultat; |
struct_objet *s_objet_temporaire; |
struct_objet *s_objet_temporaire; |
|
|
unsigned long nombre_colonnes; |
integer8 nombre_colonnes; |
|
|
(*s_etat_processus).erreur_execution = d_ex; |
(*s_etat_processus).erreur_execution = d_ex; |
|
|
Line 545 instruction_tot(struct_processus *s_etat
|
Line 521 instruction_tot(struct_processus *s_etat
|
* Recherche d'une variable globale référencée par SIGMA |
* Recherche d'une variable globale référencée par SIGMA |
*/ |
*/ |
|
|
if (recherche_variable(s_etat_processus, ds_sdat) == d_faux) |
if (recherche_variable_globale(s_etat_processus, ds_sdat) == d_faux) |
{ |
{ |
/* |
/* |
* Aucune variable SIGMA |
* Aucune variable SIGMA |
*/ |
*/ |
|
|
(*s_etat_processus).erreur_systeme = d_es; |
(*s_etat_processus).erreur_systeme = d_es; |
(*s_etat_processus).erreur_execution = d_ex_absence_observations; |
|
return; |
|
} |
|
else |
|
{ |
|
/* |
|
* Il existe une variable locale SIGMA. Reste à vérifier l'existence |
|
* d'une variable SIGMA globale... |
|
*/ |
|
|
|
i = (*s_etat_processus).position_variable_courante; |
|
presence_variable = d_faux; |
|
|
|
while(i >= 0) |
if ((*s_etat_processus).erreur_execution == d_ex) |
{ |
{ |
if ((strcmp((*s_etat_processus).s_liste_variables[i].nom, |
(*s_etat_processus).erreur_execution = d_ex_absence_observations; |
ds_sdat) == 0) && ((*s_etat_processus) |
|
.s_liste_variables[i].niveau == 1)) |
|
{ |
|
presence_variable = d_vrai; |
|
break; |
|
} |
|
|
|
i--; |
|
} |
} |
|
|
if (presence_variable == d_faux) |
return; |
|
} |
|
else |
|
{ |
|
if (((*(*(*s_etat_processus).pointeur_variable_courante).objet) |
|
.type != MIN) && ((*(*(*s_etat_processus) |
|
.pointeur_variable_courante).objet).type != MRL)) |
{ |
{ |
(*s_etat_processus).erreur_execution = d_ex_absence_observations; |
(*s_etat_processus).erreur_execution = |
|
d_ex_matrice_statistique_invalide; |
return; |
return; |
} |
} |
else |
|
{ |
|
(*s_etat_processus).position_variable_courante = i; |
|
|
|
if ((*s_etat_processus).s_liste_variables[i].objet == NULL) |
|
{ |
|
(*s_etat_processus).erreur_execution = d_ex_variable_partagee; |
|
return; |
|
} |
|
|
|
if (((*((*s_etat_processus).s_liste_variables |
nombre_colonnes = (*((struct_matrice *) (*(*(*s_etat_processus) |
[(*s_etat_processus).position_variable_courante].objet)) |
.pointeur_variable_courante).objet).objet)).nombre_colonnes; |
.type != MIN) && ((*((*s_etat_processus) |
|
.s_liste_variables[(*s_etat_processus) |
|
.position_variable_courante].objet)).type != MRL)) |
|
{ |
|
(*s_etat_processus).erreur_execution = |
|
d_ex_matrice_statistique_invalide; |
|
return; |
|
} |
|
|
|
nombre_colonnes = (*((struct_matrice *) (*((*s_etat_processus) |
|
.s_liste_variables[(*s_etat_processus) |
|
.position_variable_courante].objet)).objet)) |
|
.nombre_colonnes; |
|
} |
|
} |
} |
|
|
if (nombre_colonnes == 0) |
if (nombre_colonnes == 0) |
Line 618 instruction_tot(struct_processus *s_etat
|
Line 558 instruction_tot(struct_processus *s_etat
|
return; |
return; |
} |
} |
|
|
s_objet_statistique = ((*s_etat_processus).s_liste_variables |
s_objet_statistique = (*(*s_etat_processus).pointeur_variable_courante) |
[(*s_etat_processus).position_variable_courante]).objet; |
.objet; |
|
|
if (((*s_objet_statistique).type == MIN) || |
if (((*s_objet_statistique).type == MIN) || |
((*s_objet_statistique).type == MRL)) |
((*s_objet_statistique).type == MRL)) |
Line 631 instruction_tot(struct_processus *s_etat
|
Line 571 instruction_tot(struct_processus *s_etat
|
} |
} |
|
|
if (((*s_objet_resultat).objet = sommation_statistique( |
if (((*s_objet_resultat).objet = sommation_statistique( |
|
s_etat_processus, |
(struct_matrice *) (*s_objet_statistique).objet)) == NULL) |
(struct_matrice *) (*s_objet_statistique).objet)) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
Line 857 instruction_time(struct_processus *s_eta
|
Line 798 instruction_time(struct_processus *s_eta
|
* Lecture des différents temps |
* Lecture des différents temps |
*/ |
*/ |
|
|
|
# ifndef OS2 |
if ((getrusage(RUSAGE_SELF, &s_usage_processus_pere)) != 0) |
if ((getrusage(RUSAGE_SELF, &s_usage_processus_pere)) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
Line 868 instruction_time(struct_processus *s_eta
|
Line 810 instruction_time(struct_processus *s_eta
|
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
} |
} |
|
# else |
|
s_usage_processus_pere.ru_utime.tv_sec = 0; |
|
s_usage_processus_pere.ru_utime.tv_usec = 0; |
|
s_usage_processus_pere.ru_stime.tv_sec = 0; |
|
s_usage_processus_pere.ru_stime.tv_usec = 0; |
|
s_usage_processus_fils.ru_utime.tv_sec = 0; |
|
s_usage_processus_fils.ru_utime.tv_usec = 0; |
|
s_usage_processus_fils.ru_stime.tv_sec = 0; |
|
s_usage_processus_fils.ru_stime.tv_usec = 0; |
|
# endif |
|
|
/* |
/* |
* Initialisation de la liste |
* Initialisation de la liste |
Line 899 instruction_time(struct_processus *s_eta
|
Line 851 instruction_time(struct_processus *s_eta
|
} |
} |
|
|
(*((real8 *) (*(*l_element_courant).donnee).objet)) = |
(*((real8 *) (*(*l_element_courant).donnee).objet)) = |
s_usage_processus_pere.ru_utime.tv_sec + |
((real8) s_usage_processus_pere.ru_utime.tv_sec) + |
(((real8) s_usage_processus_pere.ru_utime.tv_usec) / |
(((real8) s_usage_processus_pere.ru_utime.tv_usec) / |
((real8) 1E6)); |
((real8) 1E6)); |
|
|
Line 924 instruction_time(struct_processus *s_eta
|
Line 876 instruction_time(struct_processus *s_eta
|
} |
} |
|
|
(*((real8 *) (*(*l_element_courant).donnee).objet)) = |
(*((real8 *) (*(*l_element_courant).donnee).objet)) = |
s_usage_processus_pere.ru_stime.tv_sec + |
((real8) s_usage_processus_pere.ru_stime.tv_sec) + |
(((real8) s_usage_processus_pere.ru_stime.tv_usec) / |
(((real8) s_usage_processus_pere.ru_stime.tv_usec) / |
((real8) 1E6)); |
((real8) 1E6)); |
|
|
Line 949 instruction_time(struct_processus *s_eta
|
Line 901 instruction_time(struct_processus *s_eta
|
} |
} |
|
|
(*((real8 *) (*(*l_element_courant).donnee).objet)) = |
(*((real8 *) (*(*l_element_courant).donnee).objet)) = |
s_usage_processus_fils.ru_utime.tv_sec + |
((real8) s_usage_processus_fils.ru_utime.tv_sec) + |
(((real8) s_usage_processus_fils.ru_utime.tv_usec) / |
(((real8) s_usage_processus_fils.ru_utime.tv_usec) / |
((real8) 1E6)); |
((real8) 1E6)); |
|
|
Line 974 instruction_time(struct_processus *s_eta
|
Line 926 instruction_time(struct_processus *s_eta
|
} |
} |
|
|
(*((real8 *) (*(*l_element_courant).donnee).objet)) = |
(*((real8 *) (*(*l_element_courant).donnee).objet)) = |
s_usage_processus_fils.ru_stime.tv_sec + |
((real8) s_usage_processus_fils.ru_stime.tv_sec) + |
(((real8) s_usage_processus_fils.ru_stime.tv_usec) / |
(((real8) s_usage_processus_fils.ru_stime.tv_usec) / |
((real8) 1E6)); |
((real8) 1E6)); |
|
|
Line 1914 instruction_target(struct_processus *s_e
|
Line 1866 instruction_target(struct_processus *s_e
|
.adresse_distante); |
.adresse_distante); |
|
|
if (((*((struct_socket *) (*s_objet_argument_1).objet)) |
if (((*((struct_socket *) (*s_objet_argument_1).objet)) |
.adresse_distante = malloc((strlen((unsigned char *) |
.adresse_distante = transliteration(s_etat_processus, |
(*s_objet_argument_2).objet) + 1) * sizeof(unsigned char))) |
(unsigned char *) (*s_objet_argument_2).objet, |
== NULL) |
d_locale, "UTF-8")) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
liberation(s_etat_processus, s_objet_argument_1); |
|
liberation(s_etat_processus, s_objet_argument_2); |
|
|
return; |
return; |
} |
} |
|
|
strcpy((*((struct_socket *) (*s_objet_argument_1).objet)) |
|
.adresse_distante, (unsigned char *) |
|
(*s_objet_argument_2).objet); |
|
} |
} |
else if ((*s_objet_argument_2).type == LST) |
else if ((*s_objet_argument_2).type == LST) |
{ |
{ |
Line 1971 instruction_target(struct_processus *s_e
|
Line 1921 instruction_target(struct_processus *s_e
|
.adresse_distante); |
.adresse_distante); |
|
|
if (((*((struct_socket *) (*s_objet_argument_1) |
if (((*((struct_socket *) (*s_objet_argument_1) |
.objet)).adresse_distante = malloc(22 * |
.objet)).adresse_distante = malloc(23 * |
sizeof(unsigned char))) == NULL) |
sizeof(unsigned char))) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = |
(*s_etat_processus).erreur_systeme = |
Line 1979 instruction_target(struct_processus *s_e
|
Line 1929 instruction_target(struct_processus *s_e
|
return; |
return; |
} |
} |
|
|
(*((struct_socket *) (*s_objet_argument_1).objet)) |
|
.adresse_distante[0] = d_code_fin_chaine; |
|
|
|
for(i = 0; i < 4; i++) |
for(i = 0; i < 4; i++) |
{ |
{ |
if ((((integer8 *) (*((struct_vecteur *) |
if ((((integer8 *) (*((struct_vecteur *) |
Line 1990 instruction_target(struct_processus *s_e
|
Line 1937 instruction_target(struct_processus *s_e
|
(*((struct_vecteur *) (*(*l_element_courant) |
(*((struct_vecteur *) (*(*l_element_courant) |
.donnee).objet)).tableau)[i] <= 255)) |
.donnee).objet)).tableau)[i] <= 255)) |
{ |
{ |
sprintf((*((struct_socket *) (*s_objet_argument_1) |
|
.objet)).adresse_distante, |
|
(i == 0) ? "%s%d" : "%s.%d", |
|
(*((struct_socket *) (*s_objet_argument_1) |
|
.objet)).adresse_distante, (int) |
|
((integer8 *) (*((struct_vecteur *) |
|
(*(*l_element_courant).donnee).objet)) |
|
.tableau)[i]); |
|
} |
} |
else |
else |
{ |
{ |
Line 2009 instruction_target(struct_processus *s_e
|
Line 1948 instruction_target(struct_processus *s_e
|
return; |
return; |
} |
} |
} |
} |
|
|
|
sprintf((*((struct_socket *) (*s_objet_argument_1) |
|
.objet)).adresse_distante, "%d.%d.%d.%d", |
|
(int) ((integer8 *) (*((struct_vecteur *) |
|
(*(*l_element_courant).donnee).objet)) |
|
.tableau)[0], |
|
(int) ((integer8 *) (*((struct_vecteur *) |
|
(*(*l_element_courant).donnee).objet)) |
|
.tableau)[1], |
|
(int) ((integer8 *) (*((struct_vecteur *) |
|
(*(*l_element_courant).donnee).objet)) |
|
.tableau)[2], |
|
(int) ((integer8 *) (*((struct_vecteur *) |
|
(*(*l_element_courant).donnee).objet)) |
|
.tableau)[3]); |
} |
} |
else if ((*((struct_vecteur *) (*(*l_element_courant).donnee) |
else if ((*((struct_vecteur *) (*(*l_element_courant).donnee) |
.objet)).taille == 16) |
.objet)).taille == 16) |
Line 2028 instruction_target(struct_processus *s_e
|
Line 1982 instruction_target(struct_processus *s_e
|
.adresse_distante); |
.adresse_distante); |
|
|
if (((*((struct_socket *) (*s_objet_argument_1) |
if (((*((struct_socket *) (*s_objet_argument_1) |
.objet)).adresse_distante = malloc(55 * |
.objet)).adresse_distante = malloc(47 * |
sizeof(unsigned char))) == NULL) |
sizeof(unsigned char))) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = |
(*s_etat_processus).erreur_systeme = |
Line 2036 instruction_target(struct_processus *s_e
|
Line 1990 instruction_target(struct_processus *s_e
|
return; |
return; |
} |
} |
|
|
(*((struct_socket *) (*s_objet_argument_1).objet)) |
|
.adresse_distante[0] = d_code_fin_chaine; |
|
|
|
for(i = 0; i < 16; i++) |
for(i = 0; i < 16; i++) |
{ |
{ |
if ((((integer8 *) (*((struct_vecteur *) |
if ((((integer8 *) (*((struct_vecteur *) |
Line 2047 instruction_target(struct_processus *s_e
|
Line 1998 instruction_target(struct_processus *s_e
|
(*((struct_vecteur *) (*(*l_element_courant) |
(*((struct_vecteur *) (*(*l_element_courant) |
.donnee).objet)).tableau)[i] <= 255)) |
.donnee).objet)).tableau)[i] <= 255)) |
{ |
{ |
sprintf((*((struct_socket *) (*s_objet_argument_1) |
|
.objet)).adresse_distante, |
|
(i == 0) ? "%s%d" : "%s:%X", |
|
(*((struct_socket *) (*s_objet_argument_1) |
|
.objet)).adresse_distante, (int) |
|
((integer8 *) (*((struct_vecteur *) |
|
(*(*l_element_courant).donnee).objet)) |
|
.tableau)[i]); |
|
} |
} |
else |
else |
{ |
{ |
Line 2066 instruction_target(struct_processus *s_e
|
Line 2009 instruction_target(struct_processus *s_e
|
return; |
return; |
} |
} |
} |
} |
|
|
|
sprintf((*((struct_socket *) (*s_objet_argument_1) |
|
.objet)).adresse_distante, |
|
"%02X%02X:%02X%02X:%02X%02X:%02X%02X:" |
|
"%02X%02X:%02X%02X:%02X%02X:%02X%02X", |
|
(int) ((integer8 *) (*((struct_vecteur *) |
|
(*(*l_element_courant).donnee).objet)) |
|
.tableau)[0], |
|
(int) ((integer8 *) (*((struct_vecteur *) |
|
(*(*l_element_courant).donnee).objet)) |
|
.tableau)[1], |
|
(int) ((integer8 *) (*((struct_vecteur *) |
|
(*(*l_element_courant).donnee).objet)) |
|
.tableau)[2], |
|
(int) ((integer8 *) (*((struct_vecteur *) |
|
(*(*l_element_courant).donnee).objet)) |
|
.tableau)[3], |
|
(int) ((integer8 *) (*((struct_vecteur *) |
|
(*(*l_element_courant).donnee).objet)) |
|
.tableau)[4], |
|
(int) ((integer8 *) (*((struct_vecteur *) |
|
(*(*l_element_courant).donnee).objet)) |
|
.tableau)[5], |
|
(int) ((integer8 *) (*((struct_vecteur *) |
|
(*(*l_element_courant).donnee).objet)) |
|
.tableau)[6], |
|
(int) ((integer8 *) (*((struct_vecteur *) |
|
(*(*l_element_courant).donnee).objet)) |
|
.tableau)[7], |
|
(int) ((integer8 *) (*((struct_vecteur *) |
|
(*(*l_element_courant).donnee).objet)) |
|
.tableau)[8], |
|
(int) ((integer8 *) (*((struct_vecteur *) |
|
(*(*l_element_courant).donnee).objet)) |
|
.tableau)[9], |
|
(int) ((integer8 *) (*((struct_vecteur *) |
|
(*(*l_element_courant).donnee).objet)) |
|
.tableau)[10], |
|
(int) ((integer8 *) (*((struct_vecteur *) |
|
(*(*l_element_courant).donnee).objet)) |
|
.tableau)[11], |
|
(int) ((integer8 *) (*((struct_vecteur *) |
|
(*(*l_element_courant).donnee).objet)) |
|
.tableau)[12], |
|
(int) ((integer8 *) (*((struct_vecteur *) |
|
(*(*l_element_courant).donnee).objet)) |
|
.tableau)[13], |
|
(int) ((integer8 *) (*((struct_vecteur *) |
|
(*(*l_element_courant).donnee).objet)) |
|
.tableau)[14], |
|
(int) ((integer8 *) (*((struct_vecteur *) |
|
(*(*l_element_courant).donnee).objet)) |
|
.tableau)[15]); |
} |
} |
else |
else |
{ |
{ |
Line 2128 instruction_target(struct_processus *s_e
|
Line 2124 instruction_target(struct_processus *s_e
|
.adresse_distante); |
.adresse_distante); |
|
|
if (((*((struct_socket *) (*s_objet_argument_1) |
if (((*((struct_socket *) (*s_objet_argument_1) |
.objet)).adresse_distante = malloc(22 * |
.objet)).adresse_distante = malloc(23 * |
sizeof(unsigned char))) == NULL) |
sizeof(unsigned char))) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = |
(*s_etat_processus).erreur_systeme = |
Line 2154 instruction_target(struct_processus *s_e
|
Line 2150 instruction_target(struct_processus *s_e
|
else if ((*((struct_socket *) (*s_objet_argument_1).objet)) |
else if ((*((struct_socket *) (*s_objet_argument_1).objet)) |
.domaine == PF_INET6) |
.domaine == PF_INET6) |
{ // Résolution du nom en IPv6 |
{ // Résolution du nom en IPv6 |
|
# ifdef IPV6 |
resolution_courante = resolution; |
resolution_courante = resolution; |
|
|
while(resolution_courante != NULL) |
while(resolution_courante != NULL) |
Line 2179 instruction_target(struct_processus *s_e
|
Line 2176 instruction_target(struct_processus *s_e
|
} |
} |
|
|
if (((*((struct_socket *) (*s_objet_argument_1) |
if (((*((struct_socket *) (*s_objet_argument_1) |
.objet)).adresse_distante = malloc(55 * |
.objet)).adresse_distante = malloc(47 * |
sizeof(unsigned char))) == NULL) |
sizeof(unsigned char))) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = |
(*s_etat_processus).erreur_systeme = |
Line 2187 instruction_target(struct_processus *s_e
|
Line 2184 instruction_target(struct_processus *s_e
|
return; |
return; |
} |
} |
|
|
(*((struct_socket *) (*s_objet_argument_1).objet)) |
sprintf((*((struct_socket *) (*s_objet_argument_1) |
.adresse_distante[0] = d_code_fin_chaine; |
.objet)).adresse_distante, |
|
"%02X%02X:%02X%02X:%02X%02X:%02X%02X:" |
for(i = 0; i < 16; i++) |
"%02X%02X:%02X%02X:%02X%02X:%02X%02X", |
|
(*((struct sockaddr_in6 *) (*resolution_courante) |
|
.ai_addr)).sin6_addr.s6_addr[0], |
|
(*((struct sockaddr_in6 *) (*resolution_courante) |
|
.ai_addr)).sin6_addr.s6_addr[1], |
|
(*((struct sockaddr_in6 *) (*resolution_courante) |
|
.ai_addr)).sin6_addr.s6_addr[2], |
|
(*((struct sockaddr_in6 *) (*resolution_courante) |
|
.ai_addr)).sin6_addr.s6_addr[3], |
|
(*((struct sockaddr_in6 *) (*resolution_courante) |
|
.ai_addr)).sin6_addr.s6_addr[4], |
|
(*((struct sockaddr_in6 *) (*resolution_courante) |
|
.ai_addr)).sin6_addr.s6_addr[5], |
|
(*((struct sockaddr_in6 *) (*resolution_courante) |
|
.ai_addr)).sin6_addr.s6_addr[6], |
|
(*((struct sockaddr_in6 *) (*resolution_courante) |
|
.ai_addr)).sin6_addr.s6_addr[7], |
|
(*((struct sockaddr_in6 *) (*resolution_courante) |
|
.ai_addr)).sin6_addr.s6_addr[8], |
|
(*((struct sockaddr_in6 *) (*resolution_courante) |
|
.ai_addr)).sin6_addr.s6_addr[9], |
|
(*((struct sockaddr_in6 *) (*resolution_courante) |
|
.ai_addr)).sin6_addr.s6_addr[10], |
|
(*((struct sockaddr_in6 *) (*resolution_courante) |
|
.ai_addr)).sin6_addr.s6_addr[11], |
|
(*((struct sockaddr_in6 *) (*resolution_courante) |
|
.ai_addr)).sin6_addr.s6_addr[12], |
|
(*((struct sockaddr_in6 *) (*resolution_courante) |
|
.ai_addr)).sin6_addr.s6_addr[13], |
|
(*((struct sockaddr_in6 *) (*resolution_courante) |
|
.ai_addr)).sin6_addr.s6_addr[14], |
|
(*((struct sockaddr_in6 *) (*resolution_courante) |
|
.ai_addr)).sin6_addr.s6_addr[15]); |
|
# else |
|
if ((*s_etat_processus).langue == 'F') |
|
{ |
|
printf("+++Attention : Support du protocole" |
|
" IPv6 indisponible\n"); |
|
} |
|
else |
{ |
{ |
sprintf((*((struct_socket *) (*s_objet_argument_1) |
printf("+++Warning : IPv6 support " |
.objet)).adresse_distante, |
"unavailable\n"); |
(i == 0) ? "%s%X" : "%s:%X", |
|
(*((struct_socket *) (*s_objet_argument_1) |
|
.objet)).adresse_distante, |
|
(*((struct sockaddr_in6 *) |
|
(*resolution_courante).ai_addr)).sin6_addr |
|
.s6_addr[i]); |
|
} |
} |
|
# endif |
} |
} |
else |
else |
{ |
{ |
Line 2235 instruction_target(struct_processus *s_e
|
Line 2266 instruction_target(struct_processus *s_e
|
.donnee).objet)) <= 65535)) |
.donnee).objet)) <= 65535)) |
{ |
{ |
sprintf((*((struct_socket *) (*s_objet_argument_1) |
sprintf((*((struct_socket *) (*s_objet_argument_1) |
.objet)).adresse_distante, "%s(%u)", |
.objet)).adresse_distante + |
(*((struct_socket *) (*s_objet_argument_1) |
strlen((*((struct_socket *) (*s_objet_argument_1) |
.objet)).adresse_distante, (unsigned int) |
.objet)).adresse_distante), "(%u)", (unsigned int) |
(*((integer8 *) (*(*l_element_courant).donnee) |
(*((integer8 *) (*(*l_element_courant).donnee) |
.objet))); |
.objet))); |
} |
} |