|
|
|
|
@ -3162,10 +3162,9 @@ static bool media_packet_address_check(struct packet_handler_ctx *phc)
|
|
|
|
|
if (phc->mp.sfd->confirmed) {
|
|
|
|
|
/* see if we need to compare the source address with the known endpoint */
|
|
|
|
|
if (PS_ISSET2(phc->mp.stream, STRICT_SOURCE, MEDIA_HANDOVER)) {
|
|
|
|
|
endpoint_t endpoint = phc->mp.fsin;
|
|
|
|
|
bool matched = memcmp(&phc->mp.fsin, update_endpoint, sizeof(phc->mp.fsin)) == 0;
|
|
|
|
|
|
|
|
|
|
int tmp = memcmp(&endpoint, update_endpoint, sizeof(endpoint));
|
|
|
|
|
if (tmp && PS_ISSET(phc->mp.stream, MEDIA_HANDOVER)) {
|
|
|
|
|
if (!matched && PS_ISSET(phc->mp.stream, MEDIA_HANDOVER)) {
|
|
|
|
|
/* out_lock remains locked */
|
|
|
|
|
ilog(LOG_INFO | LOG_FLAG_LIMIT, "Peer address changed to %s%s%s",
|
|
|
|
|
FMT_M(endpoint_print_buf(&phc->mp.fsin)));
|
|
|
|
|
@ -3176,11 +3175,11 @@ static bool media_packet_address_check(struct packet_handler_ctx *phc)
|
|
|
|
|
goto update_addr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (tmp && PS_ISSET(phc->mp.stream, STRICT_SOURCE)) {
|
|
|
|
|
if (!matched && PS_ISSET(phc->mp.stream, STRICT_SOURCE)) {
|
|
|
|
|
ilog(LOG_INFO | LOG_FLAG_LIMIT, "Drop due to strict-source attribute; "
|
|
|
|
|
"got %s%s%s, "
|
|
|
|
|
"expected %s%s%s",
|
|
|
|
|
FMT_M(endpoint_print_buf(&endpoint)),
|
|
|
|
|
FMT_M(endpoint_print_buf(&phc->mp.fsin)),
|
|
|
|
|
FMT_M(endpoint_print_buf(update_endpoint)));
|
|
|
|
|
atomic64_inc_na(&phc->mp.stream->stats_in->errors);
|
|
|
|
|
atomic64_inc_na(&phc->mp.sfd->local_intf->stats->in.errors);
|
|
|
|
|
|