|
|
|
@ -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); |
|
|
|
|
|
|
|
|