From 8a0477a7f91f9fb0e36ebca8dce3c201f582a036 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= Date: Sat, 9 May 2015 18:00:50 +0300 Subject: [PATCH] tls: keep track of the underlying file descriptor --- include/vlc_tls.h | 1 + src/network/tls.c | 11 +++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/include/vlc_tls.h b/include/vlc_tls.h index 8b55ee833d..9386d9adef 100644 --- a/include/vlc_tls.h +++ b/include/vlc_tls.h @@ -38,6 +38,7 @@ struct vlc_tls VLC_COMMON_MEMBERS void *sys; + int fd; struct virtual_socket_t sock; }; diff --git a/src/network/tls.c b/src/network/tls.c index c9c99c7fba..b740bf8bd9 100644 --- a/src/network/tls.c +++ b/src/network/tls.c @@ -151,10 +151,13 @@ vlc_tls_t *vlc_tls_SessionCreate (vlc_tls_creds_t *crd, int fd, vlc_tls_t *session = vlc_custom_create (crd, sizeof (*session), "tls session"); int val = crd->open (crd, session, fd, host, alpn); - if (val == VLC_SUCCESS) - return session; - vlc_object_release (session); - return NULL; + if (val != VLC_SUCCESS) + { + vlc_object_release (session); + return NULL; + } + session->fd = fd; + return session; } int vlc_tls_SessionHandshake (vlc_tls_t *session, const char *host,