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