The function mark_presentity_for_delete() is responsible for flagging
a record in the presentity table for later removal.
Previously, this was done by overwriting the etag field with a fixed, hardcoded string:
static str str_offline_etag_val = str_init("*#-OFFLINE-#*");
However, the etag is intended to uniquely identify each PUBLISH message.
Overwriting it with a constant value violates the following MySQL uniqueness constraint:
UNIQUE KEY presentity_idx (username, domain, event, etag)
For example, when handling multiple PUBLISH messages (e.g., for legA and legB of the same call),
the fields:
- username
- domain
- event
are identical, and uniqueness is ensured solely by the etag.
Replacing it with a fixed string may cause key collisions and trigger MySQL errors.
To address this without altering the database schema or indexes,
str_offline_etag_val is now appended to etag to retain its uniqueness.
Change-Id: Icfff5da5dbaae1c47b4a0f33904a64f3b98ea957
This field tells dpkg-buildpackage that no debian/rules target needs
to run as root-like (usually via fakeroot), and can be built with no
privileges (real or faked ones). This should make the build either
faster as there will be no interposed libc calls via an LD_PRELOAD
library like fakeroot does, and more robust as fakeroot needs to keep
up with implementation details from the system libc; or more secure if
the build was being done via real root.
The full documentation can be found with «man deb-src-control» and
at «/usr/share/doc/dpkg/spec/rootless-builds.txt».
We no longer need to build the package as (fake)root. A rebuild before
and after this change produces the same file list (except for a renamed
debug symbol file due to file contents change) and permissions.
Change-Id: If60eb03b8a7c3813fcd2dd2bab70a36b9ac7a888
Always use to-tag for NG message with rtpp-flags,
if presented. This change is caused by the processing
logic being moved to rtpengine with rtpp-flags.
Change-Id: Ib656fdccbd366053bab37ef04c48659a6fd3acc1
We are seeing a lot of error messages like:
> ERROR: pua [pua_db.c:895]: get_record_puadb(): Too many rows found (2)
After some investigation I come up with a couple of fixes:
* pua: improve the query to support caller|callee with same pres_id (same dialog)
* pua_dialoginfo: support uuid to generate pres_id to improve randomness
Change-Id: I43d5c58fe20c776b03af217f644443d800c9453e