]> git.ipfire.org Git - thirdparty/asterisk.git/commit
db.c: Remove limit on family/key length
authorGeorge Joseph <gjoseph@sangoma.com>
Wed, 11 Sep 2024 16:06:17 +0000 (10:06 -0600)
committerAsterisk Development Team <asteriskteam@digium.com>
Thu, 14 Nov 2024 20:00:45 +0000 (20:00 +0000)
commit2ddeea3842b07add83af68058bd48f24ba29c446
treeed66976acde2555c990fd3491dad15dda3fb75e1
parent7977e17a2d725efd97c4a53f38919cc2e9d97895
db.c: Remove limit on family/key length

Consumers like media_cache have been running into issues with
the previous astdb "/family/key" limit of 253 bytes when needing
to store things like long URIs.  An Amazon S3 URI is a good example
of this.  Now, instead of using a static 256 byte buffer for
"/family/key", we use ast_asprintf() to dynamically create it.

Both test_db.c and test_media_cache.c were also updated to use
keys/URIs over the old 253 character limit.

Resolves: #881

UserNote: The `ast_db_*()` APIs have had the 253 byte limit on
"/family/key" removed and will now accept families and keys with a
total length of up to SQLITE_MAX_LENGTH (currently 1e9!).  This
affects the `DB*` dialplan applications, dialplan functions,
manager actions and `databse` CLI commands.  Since the
media_cache also uses the `ast_db_*()` APIs, you can now store
resources with URIs longer than 253 bytes.

(cherry picked from commit 01aa84e42f4f7497617ca3bb71634b70590b9a72)
main/db.c
tests/test_db.c
tests/test_media_cache.c