version 1.83, 2015/06/08 14:11:38
|
version 1.93, 2018/05/30 09:27:36
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.22 |
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 |