An endpoint switching protocols is normally passed through to the peer,
but in an answer that is usually not desirable. Change the default
behaviour to stick to the original protocol that was offered even if the
answerer changes protocols.
Change-Id: Ib288549f4b1c9ab57a6333c6b7dd511537af96f7
(cherry picked from commit 12ac8846de)
(cherry picked from commit 35d9a52c1b)
(cherry picked from commit 4d9856bf90)
The previous approach causes problems during re-invites with updated
port (or address) information. The UA might delay actually using the new
endpoint until after the answer is seen, in which case rtpengine would
erroneously immediately latch on to the old endpoint. We need to
reinstate the endpoint learning delay in all cases, and make sure
previously learned endpoints are forgotten whenever a new signal is
seen.
Change-Id: If42ed13c43710616c02cdf018b36a4543d7f6bfe
(cherry picked from commit 112e57f9fe)
The hash table cannot be used for storage any more as entries can be
removed on demand (64e56d7) but can be cached in packet->handler at the
same time.
Possibly fixes#915
Change-Id: Ic74703b1a57294bfd704b6cddcd666d6063f510a
fix cleanup being skipped on redis slaves
fixes an SDES related Redis mem leak
adds a hash for the ports free list to avoid duplicate entries
fixes#898
Change-Id: I34aad67290ff5ef8824142682aac03cb600d0ecb
stun.c: In function ‘stun_error_len’:
stun.c:388:62: warning: taking address of packed member of ‘struct header’ may result in an unaligned pointer value [-Waddress-of-packed-member]
388 | output_init(&mh, iov, &hdr, STUN_BINDING_ERROR_RESPONSE, req->transaction);
| ~~~^~~~~~~~~~~~~
stun.c: In function ‘stun_binding_success’:
stun.c:479:64: warning: taking address of packed member of ‘struct header’ may result in an unaligned pointer value [-Waddress-of-packed-member]
479 | output_init(&mh, iov, &hdr, STUN_BINDING_SUCCESS_RESPONSE, req->transaction);
| ~~~^~~~~~~~~~~~~
stun.c: In function ‘__stun_success’:
stun.c:540:42: warning: taking address of packed member of ‘struct header’ may result in an unaligned pointer value [-Waddress-of-packed-member]
540 | return ice_response(sfd, sin, attrs, req->transaction);
| ~~~^~~~~~~~~~~~~
stun.c: In function ‘__stun_error’:
stun.c:545:42: warning: taking address of packed member of ‘struct header’ may result in an unaligned pointer value [-Waddress-of-packed-member]
545 | return ice_response(sfd, sin, attrs, req->transaction);
| ~~~^~~~~~~~~~~~~
redis.c: In function ‘redis_hash_get_sdes_params.isra.0’:
redis.c:1095:39: warning: ‘_tag’ directive output may be truncated writing 4 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
1095 | snprintf(tagkey, sizeof(tagkey), "%s_tag", kk);
| ^~~~
In file included from /usr/include/stdio.h:867,
from ../lib/str.h:9,
from ../lib/compat.h:16,
from ../include/redis.h:8,
from redis.c:1:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:67:10: note: ‘__builtin___snprintf_chk’ output between 5 and 36 bytes into a destination of size 32
67 | return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68 | __bos (__s), __fmt, __va_arg_pack ());
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Change-Id: I214458fd3f596e565b1bba9d88808b7c99f9c876