vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Sat Nov 17 21:48:28 2018 +0200| [80b494b30f6732e5460b9d472a186d3fb0929d61] | committer: Rémi Denis-Courmont
network: use vlc_tls_GetPolLFD() > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=80b494b30f6732e5460b9d472a186d3fb0929d61 --- src/network/stream.c | 4 ++-- src/network/tls.c | 9 +++++---- test/modules/misc/tls.c | 7 ++++--- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/network/stream.c b/src/network/stream.c index 33d27d06aa..6e015d5c4e 100644 --- a/src/network/stream.c +++ b/src/network/stream.c @@ -56,8 +56,8 @@ ssize_t vlc_tls_Read(vlc_tls_t *session, void *buf, size_t len, bool waitall) struct pollfd ufd; struct iovec iov; - ufd.fd = vlc_tls_GetFD(session); ufd.events = POLLIN; + ufd.fd = vlc_tls_GetPollFD(session, &ufd.events); iov.iov_base = buf; iov.iov_len = len; @@ -97,8 +97,8 @@ ssize_t vlc_tls_Write(vlc_tls_t *session, const void *buf, size_t len) struct pollfd ufd; struct iovec iov; - ufd.fd = vlc_tls_GetFD(session); ufd.events = POLLOUT; + ufd.fd = vlc_tls_GetPollFD(session, &ufd.events); iov.iov_base = (void *)buf; iov.iov_len = len; diff --git a/src/network/tls.c b/src/network/tls.c index 00193eeec8..7767932b4d 100644 --- a/src/network/tls.c +++ b/src/network/tls.c @@ -170,12 +170,11 @@ vlc_tls_t *vlc_tls_ClientSessionCreate(vlc_tls_creds_t *crd, vlc_tls_t *sock, vlc_tick_t deadline = vlc_tick_now (); deadline += VLC_TICK_FROM_MS( var_InheritInteger (crd, "ipv4-timeout") ); - struct pollfd ufd[1]; - ufd[0].fd = vlc_tls_GetFD(sock); - vlc_cleanup_push (cleanup_tls, session); while ((val = crd->handshake(crd, session, host, service, alp)) != 0) { + struct pollfd ufd[1]; + if (val < 0 || vlc_killed() ) { if (val < 0) @@ -191,7 +190,9 @@ error: now = deadline; assert (val <= 2); - ufd[0] .events = (val == 1) ? POLLIN : POLLOUT; + + ufd[0].events = (val == 1) ? POLLIN : POLLOUT; + ufd[0].fd = vlc_tls_GetPollFD(sock, &ufd->events); vlc_restorecancel(canc); val = vlc_poll_i11e(ufd, 1, MS_FROM_VLC_TICK(deadline - now)); diff --git a/test/modules/misc/tls.c b/test/modules/misc/tls.c index 4259151ad8..9ade43560b 100644 --- a/test/modules/misc/tls.c +++ b/test/modules/misc/tls.c @@ -47,20 +47,21 @@ static vlc_tls_creds_t *client_creds; static void *tls_echo(void *data) { vlc_tls_t *tls = data; - struct pollfd ufd; ssize_t val; char buf[256]; - ufd.fd = vlc_tls_GetFD(tls); - while ((val = vlc_tls_SessionHandshake(server_creds, tls)) > 0) { + struct pollfd ufd; + switch (val) { case 1: ufd.events = POLLIN; break; case 2: ufd.events = POLLOUT; break; default: vlc_assert_unreachable(); } + + ufd.fd = vlc_tls_GetPollFD(tls, &ufd.events); poll(&ufd, 1, -1); } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
