From a2e0dd6b3323a572290779eca8ca6ea88405a810 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Fri, 5 Jul 2019 13:09:55 -0400 Subject: [PATCH] TT#62300 kernelise stream even if address doesn't match if possible Change-Id: If0756aa5ac5ce3ddf29d3ca1cb87410d7d57c89b --- daemon/media_socket.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/daemon/media_socket.c b/daemon/media_socket.c index bb12b7cb8..dffc70792 100644 --- a/daemon/media_socket.c +++ b/daemon/media_socket.c @@ -1165,7 +1165,8 @@ void __unkernelize(struct packet_stream *p) { void __stream_unconfirm(struct packet_stream *ps) { __unkernelize(ps); - PS_CLEAR(ps, CONFIRMED); + if (!MEDIA_ISSET(ps->media, ASYMMETRIC)) + PS_CLEAR(ps, CONFIRMED); ps->handler = NULL; } static void stream_unconfirm(struct packet_stream *ps) { @@ -1567,7 +1568,6 @@ static int media_packet_address_check(struct packet_handler_ctx *phc) phc->mp.stream->endpoint.port)); atomic64_inc(&phc->mp.stream->stats.errors); ret = -1; - goto out; } } phc->kernelize = 1; @@ -1631,6 +1631,9 @@ static void media_packet_kernel_check(struct packet_handler_ctx *phc) { return; } + if (MEDIA_ISSET(phc->sink->media, ASYMMETRIC)) + PS_SET(phc->sink, CONFIRMED); + if (!PS_ISSET(phc->sink, CONFIRMED)) { __C_DBG("sink not CONFIRMED for stream %s:%d", sockaddr_print_buf(&phc->mp.stream->endpoint.address), @@ -1785,12 +1788,10 @@ static int stream_packet(struct packet_handler_ctx *phc) { int address_check = media_packet_address_check(phc); - if (address_check) - goto drop; - if (phc->kernelize) media_packet_kernel_check(phc); - + if (address_check) + goto drop; mutex_lock(&phc->sink->out_lock);