vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Sun Nov 18 14:07:00 2018 +0200| [75170221fc77365919c157824636709096a3ea6b] | committer: Rémi Denis-Courmont
gnutls: use destroy callback > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=75170221fc77365919c157824636709096a3ea6b --- modules/misc/gnutls.c | 43 +++++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/modules/misc/gnutls.c b/modules/misc/gnutls.c index 294f6bea5b..99eebcf686 100644 --- a/modules/misc/gnutls.c +++ b/modules/misc/gnutls.c @@ -542,6 +542,13 @@ error: return -1; } +static void gnutls_ClientDestroy(vlc_tls_creds_t *crd) +{ + gnutls_certificate_credentials_t x509 = crd->sys; + + gnutls_certificate_free_credentials(x509); +} + /** * Initializes a client-side TLS credentials. */ @@ -588,17 +595,11 @@ static int OpenClient (vlc_tls_creds_t *crd) crd->sys = x509; crd->open = gnutls_ClientSessionOpen; crd->handshake = gnutls_ClientHandshake; + crd->destroy = gnutls_ClientDestroy; return VLC_SUCCESS; } -static void CloseClient (vlc_tls_creds_t *crd) -{ - gnutls_certificate_credentials_t x509 = crd->sys; - - gnutls_certificate_free_credentials (x509); -} - #ifdef ENABLE_SOUT /** * Server-side TLS credentials private data @@ -634,6 +635,16 @@ static int gnutls_ServerHandshake(vlc_tls_t *tls, return gnutls_ContinueHandshake(priv, alp); } +static void gnutls_ServerDestroy(vlc_tls_creds_t *crd) +{ + vlc_tls_creds_sys_t *sys = crd->sys; + + /* all sessions depending on the server are now deinitialized */ + gnutls_certificate_free_credentials(sys->x509_cred); + gnutls_dh_params_deinit(sys->dh_params); + free(sys); +} + /** * Allocates a whole server's TLS credentials. */ @@ -717,6 +728,7 @@ static int OpenServer (vlc_tls_creds_t *crd, const char *cert, const char *key) crd->sys = sys; crd->open = gnutls_ServerSessionOpen; crd->handshake = gnutls_ServerHandshake; + crd->destroy = gnutls_ServerDestroy; return VLC_SUCCESS; @@ -725,19 +737,6 @@ error: free (sys); return VLC_EGENERIC; } - -/** - * Destroys a TLS server object. - */ -static void CloseServer (vlc_tls_creds_t *crd) -{ - vlc_tls_creds_sys_t *sys = crd->sys; - - /* all sessions depending on the server are now deinitialized */ - gnutls_certificate_free_credentials (sys->x509_cred); - gnutls_dh_params_deinit (sys->dh_params); - free (sys); -} #endif #define SYSTEM_TRUST_TEXT N_("Use system trust database") @@ -773,7 +772,7 @@ vlc_module_begin () set_shortname( "GNU TLS" ) set_description( N_("GNU TLS transport layer security") ) set_capability( "tls client", 1 ) - set_callbacks( OpenClient, CloseClient ) + set_callbacks(OpenClient, NULL) set_category( CAT_ADVANCED ) set_subcategory( SUBCAT_ADVANCED_NETWORK ) add_bool("gnutls-system-trust", true, SYSTEM_TRUST_TEXT, @@ -789,6 +788,6 @@ vlc_module_begin () set_capability( "tls server", 1 ) set_category( CAT_ADVANCED ) set_subcategory( SUBCAT_ADVANCED_NETWORK ) - set_callbacks( OpenServer, CloseServer ) + set_callbacks(OpenServer, NULL) #endif vlc_module_end () _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
