version 1.73, 2018/05/30 09:27:33
|
version 1.86, 2024/10/28 14:56:58
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.29 |
RPL/2 (R) version 4.1.36 |
Copyright (C) 1989-2018 Dr. BERTRAND Joël |
Copyright (C) 1989-2024 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
|
|
Line 664 instruction_close(struct_processus *s_et
|
Line 664 instruction_close(struct_processus *s_et
|
|
|
struct_objet *s_objet_argument; |
struct_objet *s_objet_argument; |
|
|
|
unsigned char socket_en_ecoute; |
|
|
(*s_etat_processus).erreur_execution = d_ex; |
(*s_etat_processus).erreur_execution = d_ex; |
|
|
if ((*s_etat_processus).affichage_arguments == 'Y') |
if ((*s_etat_processus).affichage_arguments == 'Y') |
Line 778 instruction_close(struct_processus *s_et
|
Line 780 instruction_close(struct_processus *s_et
|
* Fermeture du fichier |
* Fermeture du fichier |
*/ |
*/ |
|
|
if (fclose((*descripteur).descripteur_c) != 0) |
|
{ |
|
free(descripteur); |
|
liberation(s_etat_processus, s_objet_argument); |
|
|
|
(*s_etat_processus).erreur_systeme = d_es_erreur_fichier; |
|
return; |
|
} |
|
|
|
if ((*descripteur).type != 'C') |
if ((*descripteur).type != 'C') |
{ |
{ |
if (sqlite3_prepare_v2((*descripteur).descripteur_sqlite, |
if (sqlite3_prepare_v2((*descripteur).descripteur_sqlite, |
Line 828 instruction_close(struct_processus *s_et
|
Line 821 instruction_close(struct_processus *s_et
|
|
|
free(descripteur); |
free(descripteur); |
} |
} |
|
else |
|
{ |
|
if (fclose((*descripteur).descripteur_c) != 0) |
|
{ |
|
free(descripteur); |
|
liberation(s_etat_processus, s_objet_argument); |
|
|
|
(*s_etat_processus).erreur_systeme = d_es_erreur_fichier; |
|
return; |
|
} |
|
} |
|
|
if ((*((struct_fichier *) (*s_objet_argument).objet)).ouverture == 'S') |
if ((*((struct_fichier *) (*s_objet_argument).objet)).ouverture == 'S') |
{ |
{ |
Line 852 instruction_close(struct_processus *s_et
|
Line 856 instruction_close(struct_processus *s_et
|
|
|
socket = -1; |
socket = -1; |
socket_connectee = d_faux; |
socket_connectee = d_faux; |
|
socket_en_ecoute = 'Y'; |
|
|
while(l_element_courant != NULL) |
while(l_element_courant != NULL) |
{ |
{ |
Line 863 instruction_close(struct_processus *s_et
|
Line 868 instruction_close(struct_processus *s_et
|
(*(*l_element_courant).donnee).objet)).socket; |
(*(*l_element_courant).donnee).objet)).socket; |
socket_connectee = (*((struct_socket *) |
socket_connectee = (*((struct_socket *) |
(*(*l_element_courant).donnee).objet)).socket_connectee; |
(*(*l_element_courant).donnee).objet)).socket_connectee; |
|
socket_en_ecoute = (*((struct_socket *) |
|
(*(*l_element_courant).donnee).objet)).socket_en_ecoute; |
|
|
if (l_element_precedent == NULL) |
if (l_element_precedent == NULL) |
{ |
{ |
Line 903 instruction_close(struct_processus *s_et
|
Line 910 instruction_close(struct_processus *s_et
|
|
|
if (socket_connectee == d_vrai) |
if (socket_connectee == d_vrai) |
{ |
{ |
shutdown(socket, SHUT_RDWR); |
if (socket_en_ecoute == 'N') |
|
{ |
|
shutdown(socket, SHUT_RDWR); |
|
} |
} |
} |
|
|
if (close(socket) != 0) |
if (close(socket) != 0) |