For the use case with a separate base chain, we want to preempt other
firewall rules by default and insert our immediate jump rule at the
beginning, rather than at the end. Add an option to provide the other
behaviour.
Change-Id: I16171f7c028c89b94823ecc99387771be3ba9443
If we're not using a separate base chain, create the target rule with
the UDP filter in place, same as the "immediate" rule in the case with a
base chain.
Reported in #1732
Change-Id: I0e67a88f5f51e21ba9537c87e2955f910dd6ec2c
If we're updating the handlers for one particular source -> sink flow,
only stop/reset the handlers matching this flow.
Change-Id: I1d046f47f8d26cac47c5d0f4318498eacb6c5677
Fix all instances of argument-less function signatures.
Fix all instances of auto-cleanup variables declared after they need to
be in scope.
Change-Id: I3a005df03ede971e08d4f62d7c7711a1913fda5e
This is a fix for the following found defect:
*** CID 1568540: Null pointer dereferences (REVERSE_INULL)
/daemon/sdp.c: 2065 in insert_codec_parameters()
2059 pt->payload_type,
2060 STR_FMT(&pt->format_parameters));
2061 }
2062 if (s_dst->len) {
2063 /* append to the chop->output */
2064 append_attr_to_gstring(s, s_dst->str, NULL, flags,
>>> CID 1568540: Null pointer dereferences (REVERSE_INULL)
>>> Null-checking "cm" suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
2065 (cm ? cm->type_id : MT_UNKNOWN));
2066 }
2067 g_string_free(s_dst, TRUE);
2068 }
2069
2070 /* rtcp-fb */
Change-Id: I309fd6268b889ceaf32a58d2fbe17a8c891a95d6
Move processing of removal and substitution
attribute manipulations to the bottom,
after all fixed (well known to rtpengine)
attributes are skipped already.
This is done for media and session level attributes:
- `process_media_attributes()`
- `process_session_attributes()`
This is to add an efficiency to the current processing,
and not do double work.
Change-Id: Idd933f9d85aef5e9a5d597f8825d21e45f43ef37
Add media attributes substitution support to
the following functions:
- `append_attr_to_gstring()`
- `append_attr_int_to_gstring()`
First functions check, if the attribute has to be
removed (by the manipulations profile), if not
then it checks out whether we have to substitute it.
If neither of manipulations have to be applied,
then the given attribute gets attached to the chopper.
This gives support of substitution for
such media level attributes like:
- `mid`
- `label`
- `ptime`
- `ice-ufrag`
- `ice-pwd`
- `ice-options`
etc.
Change-Id: I35a1ad71f1031d986a79446522da2a557c09ddcc
Setting the target info of an `expr` object doesn't result on the data
being copied by libnftnl (unlike other objects). Use static storage to
fix invalid pointer usage.
Reported in #984Closes#1731
Change-Id: Ic5c156a83504a24fb618d770ba53cd1ec4fb2435
Because the attribute parts variables are declared in
one signle row, these (popping up) commentaries in other
code parts, show only the first code comment for all of the
variables, which makes the code reading confusing.
In order to fix that, declare each one separately, that
gives own code (popping up) commentary per variable.
Change-Id: Iddb94b989844b997055be70a526cca59ab2fddf3
Ignore `a=` during sdp attribute level manipulations
during lookups with the `sdp_manipulate_remove()` and
`sdp_manipulations_subst()`. This is only in:
- `append_attr_int_to_gstring()`
- `append_attr_to_gstring()`
This is required for a proper `str` matching in ht.
Then explicitely add `a=` to the resulting `GString *s`.
Change-Id: I569a356e9a01cffb0068a87a9c6d5a568fe85ecc
In order to be able to remove or substitute `fmtp` parameters,
we have to take care of that in `insert_codec_parameters()`,
since `fmtp` are additionally being printed already after
execution of `process_media_attributes()`.
Change-Id: I78547be13939e161b193beecd8693e22c534fd18
With the "foreign" flag now stored in call_flags, restoring a call from
Redis restores this flag as well, overwriting the desired flag as we had
set it through call_get_or_create().
Reverse the flag setting by taking it out of call_get_or_create() (where
it's always false anyway, except when coming from Redis) and setting it
explicitly with call_make_own_foreign() after restorting call and its
flags.
Change-Id: Ib68be2aeedfa988b7555e426fa337657e1062245
Start using media subscriptions instead of call subscriptions
in the `call_block_silence_media()`, because older concept
gets deprecated.
Change-Id: I0ac0378a99d69017d34f8f949d7f3228bfa5b07a
Start using media subscriptions instead of call subscriptions
in the `codec_update_all_handlers()`, because older concept
gets deprecated.
Change-Id: I1cbd5379855e557099894f4b9a508a65ca78214c
Stop using call subscriptions for lookups based on
the `__sub_is_transcoding()` and use media subscriptions instead.
Change-Id: I545daca19f5ce433fd660a5a7d60181ac4ed1d8b
Part 1.
Deprecate usage of the call subscriptions for updating
transcoding attributes, use media subscriptions instead.
Change-Id: Iadde906189c9634d7691d823556f2c0dfd61a655
Stop using call subscription in the `monologue_offer_answer()`,
which is used here to update transcoding related attributes and
use media subscriptions model instead.
Change-Id: I27abfe23ed2f3f532c3899e5d483cb302e43a142
Move linking of the media to its monologue, from the `json_link_medias()`
to the `json_medias()`. This is required, becase the `json_link_medias()`
already needs to operate on medias list, which is fully linked
to their monologues. Otherwise it can happen, that during the
linking of media to media in `json_link_medias()` (subscribing them)
the monologue for the other media is still not linked.
Change-Id: Ifc4dd8dff27f65e664b4fd21332a1d296d07759b
Start using the media subscriptions model
(based on newly introduced `media_subscription` objects)
in scope of:
- `redis_encode_json()`
- `json_link_medias()`
- `rbl_subs_cb()`
Change-Id: I3f7267ab156b361d7e7bec4ff91a8976a7be02ee
Start using the media subscriptions model
(based on newly introduced `media_subscription` objects)
in scope of `__find_subscriber()`
Change-Id: Ief3e9d0785ad53884be347ca21d6766c3ad2b275