version 1.82, 2015/06/08 07:15:31
|
version 1.94, 2018/12/21 10:56:17
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.21 |
RPL/2 (R) version 4.1.29 |
Copyright (C) 1989-2015 Dr. BERTRAND Joël |
Copyright (C) 1989-2018 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
|
|
Line 870 instruction_or(struct_processus *s_etat_
|
Line 870 instruction_or(struct_processus *s_etat_
|
*/ |
*/ |
|
|
|
|
#define d_BIND_TO_DEVICE 0 |
|
#define d_BROADCAST 1 |
|
#define d_DONT_ROUTE 2 |
|
#define d_KEEP_ALIVE 3 |
|
#define d_PRIORITY 4 |
|
#define d_RECEIVE_BUFFER 5 |
|
#define d_FORCE_RECEIVE_BUFFER 6 |
|
#define d_SEND_BUFFER 7 |
|
#define d_FORCE_SEND_BUFFER 8 |
|
#define d_RECEIVING_TIMEOUT 9 |
|
#define d_SENDING_TIMEOUT 10 |
|
#define d_REUSE_ADDRESS 11 |
|
|
|
static inline logical1 |
static inline logical1 |
options_socket(struct_processus *s_etat_processus, |
options_socket(struct_processus *s_etat_processus, |
struct_objet *s_objet_resultat, unsigned char *options, |
struct_objet *s_objet_resultat, unsigned char *options, |
Line 916 options_socket(struct_processus *s_etat_
|
Line 903 options_socket(struct_processus *s_etat_
|
d_ex_erreur_parametre_fichier; |
d_ex_erreur_parametre_fichier; |
return(d_erreur); |
return(d_erreur); |
} |
} |
|
|
|
(*((struct_socket *) (*s_objet_resultat).objet)).options |= |
|
((integer8) 1) << d_BIND_TO_DEVICE; |
# else |
# else |
WARNING("BIND TO DEVICE"); |
WARNING("BIND TO DEVICE"); |
# endif |
# endif |
Line 930 options_socket(struct_processus *s_etat_
|
Line 920 options_socket(struct_processus *s_etat_
|
d_ex_erreur_parametre_fichier; |
d_ex_erreur_parametre_fichier; |
return(d_erreur); |
return(d_erreur); |
} |
} |
|
|
|
(*((struct_socket *) (*s_objet_resultat).objet)).options |= |
|
((integer8) 1) << d_BROADCAST; |
} |
} |
|
|
if (options[d_DONT_ROUTE] == 'Y') |
if (options[d_DONT_ROUTE] == 'Y') |
Line 941 options_socket(struct_processus *s_etat_
|
Line 934 options_socket(struct_processus *s_etat_
|
d_ex_erreur_parametre_fichier; |
d_ex_erreur_parametre_fichier; |
return(d_erreur); |
return(d_erreur); |
} |
} |
|
|
|
(*((struct_socket *) (*s_objet_resultat).objet)).options |= |
|
((integer8) 1) << d_DONT_ROUTE; |
} |
} |
|
|
if (options[d_KEEP_ALIVE] == 'Y') |
if (options[d_KEEP_ALIVE] == 'Y') |
Line 965 options_socket(struct_processus *s_etat_
|
Line 961 options_socket(struct_processus *s_etat_
|
d_ex_erreur_parametre_fichier; |
d_ex_erreur_parametre_fichier; |
return(d_erreur); |
return(d_erreur); |
} |
} |
|
|
|
(*((struct_socket *) (*s_objet_resultat).objet)).options |= |
|
((integer8) 1) << d_PRIORITY; |
|
(*((struct_socket *) (*s_objet_resultat).objet)).priorite = |
|
(*priorite); |
# else |
# else |
WARNING("PRIORITY"); |
WARNING("PRIORITY"); |
# endif |
# endif |
Line 980 options_socket(struct_processus *s_etat_
|
Line 981 options_socket(struct_processus *s_etat_
|
d_ex_erreur_parametre_fichier; |
d_ex_erreur_parametre_fichier; |
return(d_erreur); |
return(d_erreur); |
} |
} |
|
|
|
(*((struct_socket *) (*s_objet_resultat).objet)).options |= |
|
((integer8) 1) << d_RECEIVE_BUFFER; |
|
(*((struct_socket *) (*s_objet_resultat).objet)).buffer_reception = |
|
(*buffer_reception); |
} |
} |
|
|
if (options[d_FORCE_RECEIVE_BUFFER] == 'Y') |
if (options[d_FORCE_RECEIVE_BUFFER] == 'Y') |
Line 993 options_socket(struct_processus *s_etat_
|
Line 999 options_socket(struct_processus *s_etat_
|
d_ex_erreur_parametre_fichier; |
d_ex_erreur_parametre_fichier; |
return(d_erreur); |
return(d_erreur); |
} |
} |
|
|
|
(*((struct_socket *) (*s_objet_resultat).objet)).options |= |
|
((integer8) 1) << d_FORCE_RECEIVE_BUFFER; |
|
(*((struct_socket *) (*s_objet_resultat).objet)).buffer_reception = |
|
(*buffer_reception); |
# else |
# else |
WARNING("FORCE_RECEIVE_BUFFER"); |
WARNING("FORCE_RECEIVE_BUFFER"); |
# endif |
# endif |
Line 1008 options_socket(struct_processus *s_etat_
|
Line 1019 options_socket(struct_processus *s_etat_
|
d_ex_erreur_parametre_fichier; |
d_ex_erreur_parametre_fichier; |
return(d_erreur); |
return(d_erreur); |
} |
} |
|
|
|
(*((struct_socket *) (*s_objet_resultat).objet)).options |= |
|
((integer8) 1) << d_SEND_BUFFER; |
|
(*((struct_socket *) (*s_objet_resultat).objet)).buffer_emission = |
|
(*buffer_emission); |
} |
} |
|
|
if (options[d_FORCE_SEND_BUFFER] == 'Y') |
if (options[d_FORCE_SEND_BUFFER] == 'Y') |
Line 1021 options_socket(struct_processus *s_etat_
|
Line 1037 options_socket(struct_processus *s_etat_
|
d_ex_erreur_parametre_fichier; |
d_ex_erreur_parametre_fichier; |
return(d_erreur); |
return(d_erreur); |
} |
} |
|
|
|
(*((struct_socket *) (*s_objet_resultat).objet)).options |= |
|
((integer8) 1) << d_FORCE_SEND_BUFFER; |
|
(*((struct_socket *) (*s_objet_resultat).objet)).buffer_emission = |
|
(*buffer_emission); |
# else |
# else |
WARNING("FORCE_SEND_BUFFER"); |
WARNING("FORCE_SEND_BUFFER"); |
# endif |
# endif |
Line 1036 options_socket(struct_processus *s_etat_
|
Line 1057 options_socket(struct_processus *s_etat_
|
d_ex_erreur_parametre_fichier; |
d_ex_erreur_parametre_fichier; |
return(d_erreur); |
return(d_erreur); |
} |
} |
|
|
|
(*((struct_socket *) (*s_objet_resultat).objet)).options |= |
|
((integer8) 1) << d_RECEIVING_TIMEOUT; |
|
(*((struct_socket *) (*s_objet_resultat).objet)).timeout_reception = |
|
(*timeout_reception); |
} |
} |
|
|
if (options[d_SENDING_TIMEOUT] == 'Y') |
if (options[d_SENDING_TIMEOUT] == 'Y') |
Line 1048 options_socket(struct_processus *s_etat_
|
Line 1074 options_socket(struct_processus *s_etat_
|
d_ex_erreur_parametre_fichier; |
d_ex_erreur_parametre_fichier; |
return(d_erreur); |
return(d_erreur); |
} |
} |
|
|
|
(*((struct_socket *) (*s_objet_resultat).objet)).options |= |
|
((integer8) 1) << d_SENDING_TIMEOUT; |
|
(*((struct_socket *) (*s_objet_resultat).objet)).timeout_emission = |
|
(*timeout_emission); |
} |
} |
|
|
if (options[d_REUSE_ADDRESS] == 'Y') |
if (options[d_REUSE_ADDRESS] == 'Y') |
Line 1059 options_socket(struct_processus *s_etat_
|
Line 1090 options_socket(struct_processus *s_etat_
|
d_ex_erreur_parametre_fichier; |
d_ex_erreur_parametre_fichier; |
return(d_erreur); |
return(d_erreur); |
} |
} |
|
|
|
(*((struct_socket *) (*s_objet_resultat).objet)).options |= |
|
((integer8) 1) << d_REUSE_ADDRESS; |
} |
} |
|
|
return(d_absence_erreur); |
return(d_absence_erreur); |
Line 2327 instruction_open(struct_processus *s_eta
|
Line 2361 instruction_open(struct_processus *s_eta
|
{ |
{ |
type_arguments = 'S'; |
type_arguments = 'S'; |
} |
} |
|
else if (type_arguments == 'F') |
{ |
{ |
liberation(s_etat_processus, |
liberation(s_etat_processus, |
s_objet_argument); |
s_objet_argument); |
Line 4841 instruction_open(struct_processus *s_eta
|
Line 4876 instruction_open(struct_processus *s_eta
|
= 'Y'; |
= 'Y'; |
(*((struct_socket *) (*s_objet_resultat).objet)).socket_connectee |
(*((struct_socket *) (*s_objet_resultat).objet)).socket_connectee |
= d_faux; |
= d_faux; |
|
(*((struct_socket *) (*s_objet_resultat).objet)).options = 0; |
|
|
if (type_domaine == 'L') |
if (type_domaine == 'L') |
{ // Socket serveur |
{ // Socket serveur |
Line 5019 instruction_open(struct_processus *s_eta
|
Line 5055 instruction_open(struct_processus *s_eta
|
.objet)).adresse); |
.objet)).adresse); |
|
|
if (((*((struct_socket *) (*s_objet_resultat) |
if (((*((struct_socket *) (*s_objet_resultat) |
.objet)).adresse = malloc(22 * |
.objet)).adresse = malloc(23 * |
sizeof(unsigned char))) == NULL) |
sizeof(unsigned char))) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = |
(*s_etat_processus).erreur_systeme = |
Line 5028 instruction_open(struct_processus *s_eta
|
Line 5064 instruction_open(struct_processus *s_eta
|
} |
} |
|
|
sprintf((*((struct_socket *) (*s_objet_resultat) |
sprintf((*((struct_socket *) (*s_objet_resultat) |
.objet)).adresse, "%d.%d.%d.%d", |
.objet)).adresse, "%d.%d.%d.%d(%u)", |
(ntohl((*((struct sockaddr_in *) |
(ntohl((*((struct sockaddr_in *) |
(*resolution_courante).ai_addr)).sin_addr |
(*resolution_courante).ai_addr)).sin_addr |
.s_addr) >> 24) & 0xFF, |
.s_addr) >> 24) & 0xFF, |
Line 5040 instruction_open(struct_processus *s_eta
|
Line 5076 instruction_open(struct_processus *s_eta
|
.s_addr) >> 8) & 0xFF, |
.s_addr) >> 8) & 0xFF, |
ntohl((*((struct sockaddr_in *) |
ntohl((*((struct sockaddr_in *) |
(*resolution_courante).ai_addr)).sin_addr |
(*resolution_courante).ai_addr)).sin_addr |
.s_addr) & 0xFF); |
.s_addr) & 0xFF, |
|
(unsigned int) port); |
} |
} |
else |
else |
{ // Accès en IPv6 |
{ // Accès en IPv6 |
Line 5130 instruction_open(struct_processus *s_eta
|
Line 5167 instruction_open(struct_processus *s_eta
|
free((*((struct_socket *) (*s_objet_resultat) |
free((*((struct_socket *) (*s_objet_resultat) |
.objet)).adresse); |
.objet)).adresse); |
|
|
|
/* |
|
* Longueur de la chaîne : |
|
* Adresse IPv6 : 16 octets soit 128 bits. |
|
* => 32 chiffres en hexadécimal |
|
* Par groupe de 4, 8 groupes |
|
* => 7 ":" |
|
* Port : (%u) |
|
* => 7 |
|
* ==> 32 + 7 + 7 + 1 = 47 |
|
*/ |
|
|
if (((*((struct_socket *) (*s_objet_resultat) |
if (((*((struct_socket *) (*s_objet_resultat) |
.objet)).adresse = malloc(55 * |
.objet)).adresse = malloc(47 * |
sizeof(unsigned char))) == NULL) |
sizeof(unsigned char))) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = |
(*s_etat_processus).erreur_systeme = |
Line 5139 instruction_open(struct_processus *s_eta
|
Line 5187 instruction_open(struct_processus *s_eta
|
return; |
return; |
} |
} |
|
|
for(i = 0; i < 16; i++) |
sprintf((*((struct_socket *) (*s_objet_resultat) |
{ |
.objet)).adresse, |
sprintf((*((struct_socket *) (*s_objet_resultat) |
"%02X%02X:%02X%02X:%02X%02X:%02X%02X:" |
.objet)).adresse, |
"%02X%02X:%02X%02X:%02X%02X:%02X%02X(%u)", |
(i == 0) ? "%s%X" : "%s:%X", |
(*((struct sockaddr_in6 *) |
(*((struct_socket *) (*s_objet_resultat) |
(*resolution_courante).ai_addr)).sin6_addr |
.objet)).adresse, |
.s6_addr[0], |
(*((struct sockaddr_in6 *) |
(*((struct sockaddr_in6 *) |
(*resolution_courante).ai_addr)) |
(*resolution_courante).ai_addr)).sin6_addr |
.sin6_addr.s6_addr[i]); |
.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], |
|
(unsigned int) port); |
# else |
# else |
if ((*s_etat_processus).langue == 'F') |
if ((*s_etat_processus).langue == 'F') |
{ |
{ |
Line 5174 instruction_open(struct_processus *s_eta
|
Line 5264 instruction_open(struct_processus *s_eta
|
} |
} |
|
|
freeaddrinfo(resolution); |
freeaddrinfo(resolution); |
|
|
sprintf((*((struct_socket *) (*s_objet_resultat) |
|
.objet)).adresse, "%s(%u)", |
|
(*((struct_socket *) (*s_objet_resultat) |
|
.objet)).adresse, (unsigned int) port); |
|
} |
} |
else |
else |
{ // Hôte défini par une adresse |
{ // Hôte défini par une adresse |
Line 5188 instruction_open(struct_processus *s_eta
|
Line 5273 instruction_open(struct_processus *s_eta
|
.objet)).adresse); |
.objet)).adresse); |
|
|
if (((*((struct_socket *) (*s_objet_resultat) |
if (((*((struct_socket *) (*s_objet_resultat) |
.objet)).adresse = malloc(22 * |
.objet)).adresse = malloc(23 * |
sizeof(unsigned char))) == NULL) |
sizeof(unsigned char))) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = |
(*s_etat_processus).erreur_systeme = |
Line 5196 instruction_open(struct_processus *s_eta
|
Line 5281 instruction_open(struct_processus *s_eta
|
return; |
return; |
} |
} |
|
|
(*((struct_socket *) (*s_objet_resultat).objet)) |
|
.adresse[0] = d_code_fin_chaine; |
|
|
|
for(i = 0; i < 4; i++) |
|
{ |
|
sprintf((*((struct_socket *) (*s_objet_resultat) |
|
.objet)).adresse, |
|
(i == 0) ? "%s%d" : "%s.%d", |
|
(*((struct_socket *) (*s_objet_resultat) |
|
.objet)).adresse, (int) adresse[i]); |
|
} |
|
|
|
sprintf((*((struct_socket *) (*s_objet_resultat) |
sprintf((*((struct_socket *) (*s_objet_resultat) |
.objet)).adresse, "%s(%u)", |
.objet)).adresse, "%d.%d.%d.%d(%u)", |
(*((struct_socket *) (*s_objet_resultat) |
(int) adresse[0], (int) adresse[1], |
.objet)).adresse, (unsigned int) port); |
(int) adresse[2], (int) adresse[3], |
|
(unsigned int) port); |
|
|
if (((*((struct_socket *) |
if (((*((struct_socket *) |
(*s_objet_resultat).objet)) |
(*s_objet_resultat).objet)) |
Line 5272 instruction_open(struct_processus *s_eta
|
Line 5346 instruction_open(struct_processus *s_eta
|
.objet)).adresse); |
.objet)).adresse); |
|
|
if (((*((struct_socket *) (*s_objet_resultat) |
if (((*((struct_socket *) (*s_objet_resultat) |
.objet)).adresse = malloc(55 * |
.objet)).adresse = malloc(47 * |
sizeof(unsigned char))) == NULL) |
sizeof(unsigned char))) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = |
(*s_etat_processus).erreur_systeme = |
Line 5280 instruction_open(struct_processus *s_eta
|
Line 5354 instruction_open(struct_processus *s_eta
|
return; |
return; |
} |
} |
|
|
(*((struct_socket *) (*s_objet_resultat).objet)) |
|
.adresse[0] = d_code_fin_chaine; |
|
|
|
for(i = 0; i < 16; i++) |
|
{ |
|
sprintf((*((struct_socket *) (*s_objet_resultat) |
|
.objet)).adresse, |
|
(i == 0) ? "%s%X" : "%s:%X", |
|
(*((struct_socket *) (*s_objet_resultat) |
|
.objet)).adresse, (unsigned int) |
|
adresse[i]); |
|
} |
|
|
|
sprintf((*((struct_socket *) (*s_objet_resultat) |
sprintf((*((struct_socket *) (*s_objet_resultat) |
.objet)).adresse, "%s(%u)", |
.objet)).adresse, |
(*((struct_socket *) (*s_objet_resultat) |
"%02X%02X:%02X%02X:%02X%02X:%02X%02X:" |
.objet)).adresse, (unsigned int) port); |
"%02X%02X:%02X%02X:%02X%02X:%02X%02X(%u)", |
|
(unsigned int) adresse[0], |
|
(unsigned int) adresse[1], |
|
(unsigned int) adresse[2], |
|
(unsigned int) adresse[3], |
|
(unsigned int) adresse[4], |
|
(unsigned int) adresse[5], |
|
(unsigned int) adresse[6], |
|
(unsigned int) adresse[7], |
|
(unsigned int) adresse[8], |
|
(unsigned int) adresse[9], |
|
(unsigned int) adresse[10], |
|
(unsigned int) adresse[11], |
|
(unsigned int) adresse[12], |
|
(unsigned int) adresse[13], |
|
(unsigned int) adresse[14], |
|
(unsigned int) adresse[15], |
|
(unsigned int) port); |
|
|
if (((*((struct_socket *) |
if (((*((struct_socket *) |
(*s_objet_resultat).objet)) |
(*s_objet_resultat).objet)) |
Line 5601 instruction_open(struct_processus *s_eta
|
Line 5679 instruction_open(struct_processus *s_eta
|
.objet)).adresse); |
.objet)).adresse); |
|
|
if (((*((struct_socket *) (*s_objet_resultat) |
if (((*((struct_socket *) (*s_objet_resultat) |
.objet)).adresse = malloc(22 * |
.objet)).adresse = malloc(23 * |
sizeof(unsigned char))) == NULL) |
sizeof(unsigned char))) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = |
(*s_etat_processus).erreur_systeme = |
Line 5610 instruction_open(struct_processus *s_eta
|
Line 5688 instruction_open(struct_processus *s_eta
|
} |
} |
|
|
sprintf((*((struct_socket *) (*s_objet_resultat) |
sprintf((*((struct_socket *) (*s_objet_resultat) |
.objet)).adresse, "%d.%d.%d.%d", |
.objet)).adresse, "%d.%d.%d.%d(%u)", |
(ntohl((*((struct sockaddr_in *) |
(ntohl((*((struct sockaddr_in *) |
(*resolution_courante).ai_addr)).sin_addr |
(*resolution_courante).ai_addr)).sin_addr |
.s_addr) >> 24) & 0xFF, |
.s_addr) >> 24) & 0xFF, |
Line 5622 instruction_open(struct_processus *s_eta
|
Line 5700 instruction_open(struct_processus *s_eta
|
.s_addr) >> 8) & 0xFF, |
.s_addr) >> 8) & 0xFF, |
ntohl((*((struct sockaddr_in *) |
ntohl((*((struct sockaddr_in *) |
(*resolution_courante).ai_addr)).sin_addr |
(*resolution_courante).ai_addr)).sin_addr |
.s_addr) & 0xFF); |
.s_addr) & 0xFF, |
|
(unsigned int) port); |
} |
} |
else |
else |
{ // Accès en IPv6 |
{ // Accès en IPv6 |
Line 5710 instruction_open(struct_processus *s_eta
|
Line 5789 instruction_open(struct_processus *s_eta
|
.objet)).adresse); |
.objet)).adresse); |
|
|
if (((*((struct_socket *) (*s_objet_resultat) |
if (((*((struct_socket *) (*s_objet_resultat) |
.objet)).adresse = malloc(55 * |
.objet)).adresse = malloc(47 * |
sizeof(unsigned char))) == NULL) |
sizeof(unsigned char))) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = |
(*s_etat_processus).erreur_systeme = |
Line 5718 instruction_open(struct_processus *s_eta
|
Line 5797 instruction_open(struct_processus *s_eta
|
return; |
return; |
} |
} |
|
|
for(i = 0; i < 16; i++) |
sprintf((*((struct_socket *) (*s_objet_resultat) |
{ |
.objet)).adresse, |
sprintf((*((struct_socket *) (*s_objet_resultat) |
"%02X%02X:%02X%02X:%02X%02X:%02X%02X:" |
.objet)).adresse, |
"%02X%02X:%02X%02X:%02X%02X:%02X%02X(%u)", |
(i == 0) ? "%s%X" : "%s:%X", |
(*((struct sockaddr_in6 *) |
(*((struct_socket *) (*s_objet_resultat) |
(*resolution_courante).ai_addr)).sin6_addr |
.objet)).adresse, |
.s6_addr[0], |
(*((struct sockaddr_in6 *) |
(*((struct sockaddr_in6 *) |
(*resolution_courante).ai_addr)) |
(*resolution_courante).ai_addr)).sin6_addr |
.sin6_addr.s6_addr[i]); |
.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], |
|
(unsigned int) port); |
# else |
# else |
if ((*s_etat_processus).langue == 'F') |
if ((*s_etat_processus).langue == 'F') |
{ |
{ |
Line 5753 instruction_open(struct_processus *s_eta
|
Line 5874 instruction_open(struct_processus *s_eta
|
} |
} |
|
|
freeaddrinfo(resolution); |
freeaddrinfo(resolution); |
|
|
sprintf((*((struct_socket *) (*s_objet_resultat) |
|
.objet)).adresse, "%s(%u)", |
|
(*((struct_socket *) (*s_objet_resultat) |
|
.objet)).adresse, (unsigned int) port); |
|
} |
} |
else |
else |
{ // Hôte défini par une adresse |
{ // Hôte défini par une adresse |
Line 5769 instruction_open(struct_processus *s_eta
|
Line 5885 instruction_open(struct_processus *s_eta
|
.objet)).adresse); |
.objet)).adresse); |
|
|
if (((*((struct_socket *) (*s_objet_resultat) |
if (((*((struct_socket *) (*s_objet_resultat) |
.objet)).adresse = malloc(22 * |
.objet)).adresse = malloc(23 * |
sizeof(unsigned char))) == NULL) |
sizeof(unsigned char))) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = |
(*s_etat_processus).erreur_systeme = |
Line 5777 instruction_open(struct_processus *s_eta
|
Line 5893 instruction_open(struct_processus *s_eta
|
return; |
return; |
} |
} |
|
|
(*((struct_socket *) (*s_objet_resultat).objet)) |
|
.adresse[0] = d_code_fin_chaine; |
|
|
|
for(i = 0; i < 4; i++) |
|
{ |
|
sprintf((*((struct_socket *) |
|
(*s_objet_resultat).objet)).adresse, |
|
(i == 0) ? "%s%d" : "%s.%d", |
|
(*((struct_socket *) |
|
(*s_objet_resultat) |
|
.objet)).adresse, (int) adresse[i]); |
|
} |
|
|
|
sprintf((*((struct_socket *) (*s_objet_resultat) |
sprintf((*((struct_socket *) (*s_objet_resultat) |
.objet)).adresse, "%s(%u)", |
.objet)).adresse, "%d.%d.%d.%d(%u)", |
(*((struct_socket *) (*s_objet_resultat) |
(int) adresse[0], (int) adresse[1], |
.objet)).adresse, (unsigned int) port); |
(int) adresse[2], (int) adresse[3], |
|
(unsigned int) port); |
} |
} |
else |
else |
{ |
{ |
Line 5872 instruction_open(struct_processus *s_eta
|
Line 5976 instruction_open(struct_processus *s_eta
|
.objet)).adresse); |
.objet)).adresse); |
|
|
if (((*((struct_socket *) (*s_objet_resultat) |
if (((*((struct_socket *) (*s_objet_resultat) |
.objet)).adresse = malloc(55 * |
.objet)).adresse = malloc(47 * |
sizeof(unsigned char))) == NULL) |
sizeof(unsigned char))) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = |
(*s_etat_processus).erreur_systeme = |
Line 5880 instruction_open(struct_processus *s_eta
|
Line 5984 instruction_open(struct_processus *s_eta
|
return; |
return; |
} |
} |
|
|
(*((struct_socket *) (*s_objet_resultat).objet)) |
|
.adresse[0] = d_code_fin_chaine; |
|
|
|
for(i = 0; i < 16; i++) |
|
{ |
|
sprintf((*((struct_socket *) |
|
(*s_objet_resultat).objet)).adresse, |
|
(i == 0) ? "%s%X" : "%s:%X", |
|
(*((struct_socket *) |
|
(*s_objet_resultat) |
|
.objet)).adresse, (unsigned int) |
|
adresse[i]); |
|
} |
|
|
|
sprintf((*((struct_socket *) (*s_objet_resultat) |
sprintf((*((struct_socket *) (*s_objet_resultat) |
.objet)).adresse, "%s(%u)", |
.objet)).adresse, |
(*((struct_socket *) (*s_objet_resultat) |
"%02X%02X:%02X%02X:%02X%02X:%02X%02X:" |
.objet)).adresse, (unsigned int) port); |
"%02X%02X:%02X%02X:%02X%02X:%02X%02X" |
|
"(%u)", |
|
(unsigned int) adresse[0], |
|
(unsigned int) adresse[1], |
|
(unsigned int) adresse[2], |
|
(unsigned int) adresse[3], |
|
(unsigned int) adresse[4], |
|
(unsigned int) adresse[5], |
|
(unsigned int) adresse[6], |
|
(unsigned int) adresse[7], |
|
(unsigned int) adresse[8], |
|
(unsigned int) adresse[9], |
|
(unsigned int) adresse[10], |
|
(unsigned int) adresse[11], |
|
(unsigned int) adresse[12], |
|
(unsigned int) adresse[13], |
|
(unsigned int) adresse[14], |
|
(unsigned int) adresse[15], |
|
(unsigned int) port); |
} |
} |
else |
else |
{ |
{ |