desallouer mem allouée par un membre - C++ - Programmation
MarshPosté le 10-03-2011 à 14:06:02
Bonjour, J'utilise OpenSSL pour programmer une couche sécurisée entre TCP et une application. j'initialise la couche avec sec_initialize( ) et termine la couche avec un sec_terminate( ); 1) sec_initialize( ) doit initialiser entre autres : a) la méthode utilisée pour l'échange ( TLSv1_method( ), SSLv23_method( ), etc. ) b) et un contexte SSL : SSL_CTX 2) sec_terminate( ) doit desallouer les mémoires allouées dans sec_initialize( ). entre autre b)
J'ai crée une classe sslconfig contenant a) et b)
Code :
class sslconfig {
SSL_method *meth;
SSL_CTX *ctx;
sslconfig( ){
meth = SSL_meth( );
ctx = SSL_CTX_new(meht);
}
~sslconfig( ){
SSL_free(ctx)
}
}
Tous les membres / fonction commensant par SSL_ sont des objets d'openSSL.
dans sec_terminate( ) je dois desallouer la mémoire occupée par SSL_CTX.
Mes questions : Q1) Est-ce que la manière de définir le destructeur dans la classe est correcte ? est ce que j'ai le droit de faire cela ? Est-ce une manière propre de desallouer la mémoire. Ou bien : Q2) Est ce que je dois ne rien mettre dans ~sslconfig càd : ~sslconfig( ){ } ? Dans ce cas, je dois appeler explicitement SSL_free(ctx) dans sec_terminate( ) càd : gsslconfig->SSL_free(ctx) ?
Marsh Posté le 10-03-2011 à 14:06:02
Bonjour,
J'utilise OpenSSL pour programmer une couche sécurisée entre TCP et une application.
j'initialise la couche avec sec_initialize( ) et termine la couche avec un sec_terminate( );
1) sec_initialize( ) doit initialiser entre autres :
a) la méthode utilisée pour l'échange ( TLSv1_method( ), SSLv23_method( ), etc. )
b) et un contexte SSL : SSL_CTX
2) sec_terminate( ) doit desallouer les mémoires allouées dans sec_initialize( ). entre autre b)
J'ai crée une classe sslconfig contenant a) et b)
Tous les membres / fonction commensant par SSL_ sont des objets d'openSSL.
dans sec_terminate( ) je dois desallouer la mémoire occupée par SSL_CTX.
Mes questions :
Q1) Est-ce que la manière de définir le destructeur dans la classe est correcte ? est ce que j'ai le droit de faire cela ? Est-ce une manière propre de desallouer la mémoire. Ou bien :
Q2) Est ce que je dois ne rien mettre dans ~sslconfig càd : ~sslconfig( ){ } ? Dans ce cas, je dois appeler explicitement SSL_free(ctx) dans sec_terminate( ) càd :
gsslconfig->SSL_free(ctx) ?
Merci d'avance.