vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Fri Dec 18 23:03:28 2015 +0200| [0ac1b96be0d643ed6a0e11db70d58e20eee2fab2] | committer: Rémi Denis-Courmont
tls: document vlc_tls_SessionDelete() > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=0ac1b96be0d643ed6a0e11db70d58e20eee2fab2 --- include/vlc_tls.h | 10 ++++++++++ src/network/tls.c | 5 ++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/include/vlc_tls.h b/include/vlc_tls.h index f2a44ae..af9bc0c 100644 --- a/include/vlc_tls.h +++ b/include/vlc_tls.h @@ -72,6 +72,16 @@ VLC_API vlc_tls_t *vlc_tls_ClientSessionCreate (vlc_tls_creds_t *, int fd, vlc_tls_t *vlc_tls_SessionCreate (vlc_tls_creds_t *, int fd, const char *host, const char *const *alpn); + +/** + * Shuts a TLS session down. + * + * Shuts a TLS session down (if it was succesfully established) and releases + * all resources. The underlying connection is preserved. Use vlc_tls_Close() + * instead to shut it down at the same. + * + * This function is non-blocking and is not a cancellation point. + */ VLC_API void vlc_tls_SessionDelete (vlc_tls_t *); VLC_API int vlc_tls_Read(vlc_tls_t *, void *buf, size_t len, bool waitall); diff --git a/src/network/tls.c b/src/network/tls.c index 9120a27..1c926ab 100644 --- a/src/network/tls.c +++ b/src/network/tls.c @@ -149,7 +149,10 @@ vlc_tls_t *vlc_tls_SessionCreate (vlc_tls_creds_t *crd, int fd, void vlc_tls_SessionDelete (vlc_tls_t *session) { - session->close (session); + int canc = vlc_savecancel(); + session->close(session); + vlc_restorecancel(canc); + free(session); } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
