diff --git a/ChangeLog b/ChangeLog index ac50b0d5e..154f76a77 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,819 @@ +===================== 2025-01-23 Version 5.8.5 Released ===================== + +===================== Changes Since Version 5.8.4 =========================== + + +commit 7c2db662b81ede6256a871a783146320a03904c6 +Author: Daniel-Constantin Mierla +Date: Thu Jan 23 09:08:43 2025 +0100 + + Makefile.defs: version set to 5.8.5 + +commit 13ef1a559a57087279ea5c0920ad7253e65b7c98 +Author: Daniel-Constantin Mierla +Date: Thu Jan 23 09:04:34 2025 +0100 + + core: extended logs for subst lumps + + (cherry picked from commit d307fee57b7a8a7e0b5ccf0956464a159e156b73) + +commit 2f7ff72109cb4097c095d86bc5d57d00b3024d7d +Author: Daniel-Constantin Mierla +Date: Thu Jan 23 08:31:59 2025 +0100 + + pkg/kamailio/deb: set version to 5.8.5 + +commit dbb7696bee3c43da69c4a12a9dc0bdf91b71460f +Author: Daniel-Constantin Mierla +Date: Thu Jan 23 08:30:04 2025 +0100 + + pkg/kamailio: version set 5.8.5 for rpms and alpine + +commit 6fd7fd2acf7d76e4e8ba7669c170dc837a84848d +Author: Daniel-Constantin Mierla +Date: Tue Jan 21 21:43:06 2025 +0100 + + core: reworked how rport, received and extra params are added to first via of generated replies + + (cherry picked from commit d613f30214782d47ed0aab8bf2fb55329d87862a) + +commit 8eff811614b72fbf80af6d546d65c65e6b59c1a5 +Author: Daniel-Constantin Mierla +Date: Tue Jan 21 21:22:38 2025 +0100 + + core: add extra params to first via only for generated replies + + (cherry picked from commit 9045c8d537b8960a18451f870effe2255cb4861d) + +commit b6360f4d8549c18efad507bc37ef599d9e3316d7 +Author: Daniel-Constantin Mierla +Date: Tue Jan 21 19:45:20 2025 +0100 + + core: add rport to generated replies after first via branch when no incoming rport + + (cherry picked from commit 09d1ba87f4d37c3e13153229c63698f09ca195bc) + +commit 132e5324bf9f794ea82df0f12ef094f6c12ee178 +Author: Daniel-Constantin Mierla +Date: Tue Jan 21 18:15:19 2025 +0100 + + etc/kamailio.org: do record route for REFER + + - it creates a subscription dialog + - https://datatracker.ietf.org/doc/html/rfc3515#section-2 + + (cherry picked from commit cfc9d69435b4bbc53dbe6748e0d22603760c48fd) + +commit 76ffc6d3d4053bc43b81c3363e837c10360b0089 +Author: Daniel-Constantin Mierla +Date: Mon Jan 20 17:10:05 2025 +0100 + + core: parser/sdp - check if still before end of the value + + (cherry picked from commit b96bc11a54f11ec688429c057bf5a90c40c147b3) + +commit 9b26093fa5cdf05cf664fa3a03619634ed226a47 +Author: Daniel-Constantin Mierla +Date: Mon Jan 20 12:58:18 2025 +0100 + + core: socket info - set receive timeout for netlink socket + + - GH #4098 + + (cherry picked from commit 6750e2e2f1d6c10f6b5e66897d38657a576a9732) + +commit 59a6a469d1627de069abb8b7755776a8e87c9008 +Author: Daniel-Constantin Mierla +Date: Fri Jan 17 09:29:45 2025 +0100 + + parser/sdp: more details in logs for setting fmtp payload + + (cherry picked from commit 81b84ef83f59981b6e5f199055e9ab6a94c58b38) + +commit f499cb1fffb0ec8ef7b659ecde90de303fde0553 +Author: Daniel-Constantin Mierla +Date: Thu Jan 16 10:47:25 2025 +0100 + + core: tcp - remove level and function name from log message + + (cherry picked from commit 5fe61ec6dbcd9d2dde3f2bd978dad5130ac5bff9) + +commit 50e69e9a269e5d5dba0251f893abc34907a12970 +Author: Daniel-Constantin Mierla +Date: Wed Jan 15 07:24:29 2025 +0100 + + sanity: log as debug when Content-Length is missing for datagram protocols + + - the header is optional for datagram protocols (RFC3261, 20.14) + + (cherry picked from commit e38c7f8bac1aef9890d266fa466cea1561346732) + +commit 1d79bd109bd5f1563a23189cfab9ed8e9bb821c9 +Author: Daniel-Constantin Mierla +Date: Tue Jan 14 13:16:12 2025 +0100 + + siputils: declare iterator out if for loop for C99 compiler + + - for sip_generate_charging_vector() + - variables declared at the begining of blocks + + (cherry picked from commit 6b0b8cb84b7d0e965d50bdf0dfa5423004879f55) + +commit 3772cdfda5c23d5267bac7059ace198418ef3986 +Author: Kamailio Dev +Date: Tue Jan 14 09:46:23 2025 +0100 + + modules: readme files regenerated - modules ... [skip ci] + +commit 8ef52b885212c21f5606c9a00abf6a532da57121 +Author: drTr0jan +Date: Fri Jan 10 10:53:19 2025 +0300 + + influxdbc: support for FreeBSD build + + (cherry picked from commit abcafe75de7adc524b4a5a3df103f427565f9627) + +commit 42aeb526d02ff4414504b28dd7803a27e3553840 +Author: drTr0jan +Date: Fri Jan 10 10:52:33 2025 +0300 + + Makefile.defs: support for FreeBSD build + + (cherry picked from commit 141f19a95bd0d97f1bd325291aafb844f46c7fd3) + +commit e6ceae072f462497584cafe5574298ee52a85538 +Author: Alexander Bakker +Date: Thu Jan 2 14:50:03 2025 +0100 + + core: parser - set URI type to TELS_URI_T for user=phone SIPS R-URI + + Fixes an issue where setting the ``$rU`` for a SIPS R-URI containing + ``user=phone`` would overwrite the scheme to ``sip``. + + (cherry picked from commit 8801cf72c77e9233c789a9a0a1536ac524d5abf6) + +commit b69b914ff514b9da92108636cdf206e2f64e7ffa +Author: Bastian Triller +Date: Wed Dec 18 17:13:13 2024 +0100 + + htable: Fix de-/increment w/ auto expire + + Update item expiration value during de-/incrementation for htables that + are configured with autoexpire and updateexpire disabled. + Otherwise an item cannot be used until timer cleaned it up. + + (cherry picked from commit b8062321572e1523bb9478fd2421c5a8bc8314af) + +commit c1850aa5a1eb13a1005c077ae538ba27844c73a1 +Author: Daniel-Constantin Mierla +Date: Fri Jan 3 12:11:22 2025 +0100 + + core: socket info - let the kernet to set nl_pid value inside nl_bound_sock() + + - GH #4094 + + (cherry picked from commit 1a6102098f78855283064f82a9075630b92412f3) + +commit 7e13eba5399329384ca79df972dbe2ca722092c0 +Author: Daniel-Constantin Mierla +Date: Fri Dec 20 09:41:14 2024 +0100 + + siprepo: docs - small typo + + (cherry picked from commit ed61054f3b4064523888897bb22ae4d53b84d949) + +commit 1520c3b1f05effa331bf4187d2cd7db3d0c87005 +Author: Daniel-Constantin Mierla +Date: Fri Dec 20 08:53:04 2024 +0100 + + htable: get current time once for pv counting items + + (cherry picked from commit 9abe414a186e2a6e9041dd03a1a8968f0efa954d) + +commit 7c35a85878e0923fcd354dab21b5a347ca8b3e19 +Author: Daniel-Constantin Mierla +Date: Fri Dec 20 08:19:14 2024 +0100 + + htable: skip expired items for pv counting them + + - GH #4080 + + (cherry picked from commit d92a990a4040279ed7ee4d71debf2a13fd4d6782) + +commit 59bf38394f97c1ed1ed6cfee862d9263791af95c +Author: Daniel-Constantin Mierla +Date: Thu Dec 19 09:24:41 2024 +0100 + + core: info log when no r-uri or branches found for print_dset() + + (cherry picked from commit f0095466c2847c996440c45a8f728adc16f09579) + +commit 57f18cfdaf9cd338eae9c69b8a4f88bf73c386db +Author: Daniel-Constantin Mierla +Date: Mon Dec 16 09:32:12 2024 +0100 + + auth: export pv_www/proxy_authenticate(...) to kemi + + - GH #4067 + + (cherry picked from commit fb1f6397cd58b8186558bfb719f73d9765281ff2) + +commit eb865d759f1b4274f602fbfa5bd85e21d3901d8a +Author: Victor Seva +Date: Thu Dec 12 12:06:38 2024 +0100 + + ims_diameter_server: fix retrieval ``$diameter_response`` value + + ``current_msg_id_repl is only`` changed if ``$diameter_reponse`` + is changed by via ``pv_set_response()``. The event_route is + executed with a ``fake_msg`` so it will not match if is setted + outside anyways. + + (cherry picked from commit 7c365f76560b18aca49096121ea55791ce8f3623) + +commit ca809718bc64779ecb4371c04c15e1d98af04cc3 +Author: Kilian Wöber +Date: Tue Oct 29 14:43:01 2024 +0100 + + ims_isc: bugfix: firstflag incorrect in isc_match_filter + + (cherry picked from commit 2bd70ed7ab8ec4cf59e12be3d561c735d84f2dea) + +commit 533f8ef3406a6fe299c2184cfd31098266a2a1fd +Author: Daniel-Constantin Mierla +Date: Thu Dec 12 12:23:41 2024 +0100 + + pua_dialoginfo: rename short global variable + + (cherry picked from commit 92f899f3689f0f0b291590e82e61751b76b2539c) + +commit 828b666ba577f812de8ed472d5775d9c506cabab +Author: Daniel-Constantin Mierla +Date: Thu Dec 12 10:22:27 2024 +0100 + + core: use one strlen for mod_path + + (cherry picked from commit f385148ff68e2125a2111d9c506022519f17d1c9) + +commit e00d184a6ccdb8c34f52aaf96a0481b997dce0cc +Author: Daniel-Constantin Mierla +Date: Thu Dec 12 09:18:17 2024 +0100 + + tm: check the type of contacts xavp value + + - GH #4063 + + (cherry picked from commit 3eb9e1d34988ebeba9d4526da8f4d804846a7316) + +commit 2ca1c47e066800323dd72daed8a47cfa61fa2d5a +Author: Daniel-Constantin Mierla +Date: Mon Dec 9 19:04:25 2024 +0100 + + lib/srdb1: new and free connection callbacks expect one parameter + + - new connection is executetd with a database id and free connection + with a pool con + - compiler warnings: + src/lib/srdb1/db.c:322:23: warning: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] + 322 | con = new_connection(id); + src/lib/srdb1/db.c:361:18: warning: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] + 361 | free_connection(con); + + (cherry picked from commit 8e398b8675079e1baac7c7575e70283175cdebe2) + +commit 538d8b756594aa6a03aea34f5afd624b2a6ae56f +Author: Matthias Urlichs +Date: Fri Nov 29 17:01:45 2024 +0100 + + app_python3s: fix exception handling + + Python's C interface contract states that C code must *either* + raise an exception and return NULL, *or* return a Python object. + + (cherry picked from commit ef73fb876f527c3bde4b425e3ec70d3f613fcb87) + +commit b5aceff9d75876908665516d847cf1e7292d850e +Author: Matthias Urlichs +Date: Fri Nov 29 17:01:45 2024 +0100 + + app_python3: fix exception handling + + Python's C interface contract states that C code must *either* + raise an exception and return NULL, *or* return a Python object. + + (cherry picked from commit 91dc75e65bb2a6643b8b322024416c420caf5d64) + +commit 42241e6c054d6d92f6710210ed57425091206437 +Author: Daniel-Constantin Mierla +Date: Sun Dec 8 21:28:48 2024 +0100 + + tm: small updates about timer avp params and compatibility modes + + (cherry picked from commit 5e0bc1a5c9764ce472354a0aa242b7469d79eb7f) + +commit 158d1feb8f5ebe4b8a4af34e85c71c11cb144cea +Author: Curt J. Sampson +Date: Wed Dec 4 15:53:36 2024 +0900 + + misc: examples/ims/scscf/README - fix typo in .sql filename [skip ci] + + (cherry picked from commit ee81e1e017c62063a5b1fd20ac61c5783ee4eab4) + +commit 68e3447e04c06059d47e1f001ae0b34e7f88b2f5 +Author: Daniel-Constantin Mierla +Date: Tue Dec 3 08:03:57 2024 +0100 + + xlog: evaluate prefix for kemi functions + + (cherry picked from commit 76e18d0d13a41e93094f9084ac44e0809f91b109) + +commit 98f20996606a200f025dd78f96fbb50cd426f756 +Author: Daniel-Constantin Mierla +Date: Mon Dec 2 20:19:45 2024 +0100 + + xlog: use crit level with prefix for kemi xcrit() and xlog() + + - GH #4048 + + (cherry picked from commit a493e2e0006f89d2f8b5e903134407109ef587da) + +commit 1ad61f8238ce5966bb68c5d48667ca5800e94dad +Author: Daniel-Constantin Mierla +Date: Mon Dec 2 12:39:17 2024 +0100 + + ims_ipsec_pcscf: clang format + + (cherry picked from commit c7bb0965bde055aaf76cad526eae248ae2165280) + +commit 0363fe3f334840ff028b8a14bba932fa3274a2bd +Author: Lennart Rosam +Date: Tue Nov 19 23:42:04 2024 +0100 + + ims_ipsec_pcscf: Add error logging + + Currently the module initialization fails when the ipsec listen + interfaces cannot be bound and it does not produce a helpful log message + for the user. This commit addresses that. + + Co-authored-by: Alexander Couzens + (cherry picked from commit 785659417bcc1984f12d5ebe35c134b15d614483) + +commit b359bd6c7adf1a287637892c0be0c9897c477d4d +Author: Lennart Rosam +Date: Tue Nov 19 22:00:07 2024 +0100 + + ims_scscf: Add more logging to ipsec_create() + + Currently there are scenarios where ipsec_create() fails with no more + information in the logs. This should make debugging issues a bit easier. + + Co-authored-by: Alexander Couzens + (cherry picked from commit 353b788bb3c78a4c0e8c390decdc420322b4927c) + +commit 0259f3a6c8c97121f9f691441c1a600ce3d4a782 +Author: souradeep.bera +Date: Sun Nov 24 14:29:57 2024 +0530 + + topoh: improve debug info for topoh crash + + - print entire socket address for ease of debugging with empty mask ip + + (cherry picked from commit c6a485b04c2ed14b77e8747ffcd822f0743d56dd) + +commit 85d1278034303c597fba4d2db21a9cd227c1730d +Author: Daniel-Constantin Mierla +Date: Sun Dec 1 09:02:12 2024 +0100 + + db_mongodb: use STR_VTOZ() macro + + (cherry picked from commit dca29a87467fd074bcb63a5f20b6834a87fadc5f) + +commit 076fb25f515c76a734281094e1b8a0fa095b0d65 +Author: Daniel-Constantin Mierla +Date: Sat Nov 30 10:39:20 2024 +0100 + + ndb_mongodb: mongoc_collection_command_with_opts() for mongodb_cmd() + + - mongoc_collection_command() is deprecated with lib v1.29.0 + - GH #4037 + + (cherry picked from commit 3991350b1acdcd8b3cd575cdbc8932b4f8540e13) + +commit 871dc9bbc13cea3a328afba0e40cf77862a89d8b +Author: Daniel-Constantin Mierla +Date: Fri Nov 29 09:33:58 2024 +0100 + + lost: removed use of deprecated xmlKeepBlanksDefault() + + - XML_PARSE_NOBLANKS seems to be used, which is suggested in deprecation + message + - GH #4038 + + (cherry picked from commit 784f55cdb31de9eda6971e04ee12c2cb88556835) + +commit 6f78cc028b0418a20c2b73f97a4fc4af72c7106f +Author: Daniel-Constantin Mierla +Date: Fri Nov 29 09:15:59 2024 +0100 + + lost: clang format + + (cherry picked from commit 4a9bb81a69fbef11d92d294fa1db0711ff8e78db) + +commit 264e23e830072ef3804c974ffa6d85fb4b981370 +Author: Daniel-Constantin Mierla +Date: Fri Nov 29 09:13:49 2024 +0100 + + lost: use buffer size for snprintf + + (cherry picked from commit be2d3bfe537a692efa8cdc2bd4e4441eed5d0840) + +commit d816c822dbd4ee4c910e53a757003bf2a306d02d +Author: Daniel-Constantin Mierla +Date: Fri Nov 29 07:53:31 2024 +0100 + + ndb_mongodb: fix for deprecated bson_as_json() from v1.29.0 + + - GH #4037 + + (cherry picked from commit 8e6a8e0baf8a700f36c81d3f808391f03a37c9d1) + +commit 9266c0051158b9c65ae49bf9ab478dd94b55d7e5 +Author: Daniel-Constantin Mierla +Date: Fri Nov 29 07:33:58 2024 +0100 + + db_mongodb: fix for deprecated bson_as_json() from v1.29.0 + + - GH #4037 + + (cherry picked from commit a4a86bd1a84ee16630660873486ec7d870a4e361) + +commit a45daead40a07a4f6e3d9913ba27f9e6cd5f8bde +Author: Daniel-Constantin Mierla +Date: Thu Nov 28 14:38:08 2024 +0100 + + lib/ims: libxml2 is not needed - removed from makefile + + (cherry picked from commit 5eac8fd5356cc424d87cac4b4102c99e97054414) + +commit 40a9c5a96d837e35ecdc166f10476386c3c7e7a6 +Author: Daniel-Constantin Mierla +Date: Thu Nov 28 10:51:56 2024 +0100 + + http_async_client: remove unnecessary str len + + (cherry picked from commit c36dd7e9c8b01aae5f35e8c576188cd34b1f8aa6) + +commit 738cd9d4b7c1b14ec77fe2e7fa6422b814c97836 +Author: Daniel-Constantin Mierla +Date: Thu Nov 28 10:39:44 2024 +0100 + + keepalive: use memcpy for coping data + + (cherry picked from commit eab6682e4d8bebaf97f85c55b0863ad435e1d133) + +commit 7e0310160d1a934e573733b563a5464630881a2e +Author: Daniel-Constantin Mierla +Date: Thu Nov 28 10:36:47 2024 +0100 + + core: removed unnecessary use of strlen + + (cherry picked from commit 926988487358e1ae3ba79ca999629c452e2d32df) + +commit ce55b7d9ee5ee33d4cf9dc60328d6c55e42950e1 +Author: Daniel-Constantin Mierla +Date: Thu Nov 28 10:35:19 2024 +0100 + + core: modparam - use memcpy for data cloning + + (cherry picked from commit c2ff02b6d07c0f84dcbe5d0d47de3f12ed791e3a) + +commit fab2b2bb1e20e700756dec38a70f6d35393bdfec +Author: Daniel-Constantin Mierla +Date: Thu Nov 28 08:33:14 2024 +0100 + + async: fixed typo in log message + + (cherry picked from commit 78f272da156ff7796dd84697bbf04522b7a08009) + +commit b512a9e809a658dc9ac731a359afce8fa8acd049 +Author: Daniel-Constantin Mierla +Date: Wed Nov 27 15:36:33 2024 +0100 + + corez: set sndinfo attributes for corex_sip_reply_out() + + (cherry picked from commit b003a7184a02da5fd6dfe27def8d928d363e36ce) + +commit 76bb3b687a171bdbec77a4f7d121f9ac8a690e80 +Author: Daniel-Constantin Mierla +Date: Tue Nov 26 15:41:44 2024 +0100 + + jsonrpcs: docs - example for jsonrpc_exec() with rpc params + + (cherry picked from commit 5437ad1a1dd691707e6ea1774e5c8ff6a72d30a7) + +commit f026dab48d17e2f9b4391f2a2dd1bbb2fde8e72b +Author: Dragos Vingarzan +Date: Tue Nov 19 14:08:33 2024 +0100 + + cdp: fixed issues discovered during static code analysis + + This fixes: + - 4-bytes (typically uint32_t) used for time_t storage (Y2K38) + - print of time_t with %d instead of %ld + - reuse of same loop index variable in a sub-loop + - use of random(), when kam_rand() could theoretically be better + - copy-paste mistake in sp2/sp parameter, where sp2 was meant and sp is probably NULL + + (cherry picked from commit 1ceeba7364b745b6ca2840e830d006a37460d10e) + +commit ea08d49c50d31ed5fc5cdeb786db474a9f069607 +Author: Daniel-Constantin Mierla +Date: Mon Nov 25 10:27:11 2024 +0100 + + core: tcp read - convert ips to different buffers for log messages + + (cherry picked from commit e58dc89324b30f09853a7430620e632ec5efaad5) + +commit e7cb341eb09cc4e59f8cc2da85d2baa8d4eb32d0 +Author: Daniel-Constantin Mierla +Date: Mon Nov 25 10:16:07 2024 +0100 + + core: helper functions to convert ip to string using a pool of buffers + + (cherry picked from commit c82aa6e92d3475bb56db761ba65abb64e8f712fd) + +commit c2c3e8f8430f53738192eec996b5506680ae7ec1 +Author: Daniel-Constantin Mierla +Date: Thu Nov 21 19:59:05 2024 +0100 + + core: ppcfg - use define for size of the buffer for core defined values + + (cherry picked from commit 26d6a518c974cfe509d23e41fe9db6b02f357930) + +commit 5766583c17792d64c579599412a3defb1bc4da2c +Author: Daniel-Constantin Mierla +Date: Thu Nov 21 16:55:45 2024 +0100 + + core: use defines for tls threads mode values + + (cherry picked from commit 81450df0c1b247bbd7582c47e00f358f8e20317c) + +commit f608b218da40449dd67ebfb83747550c222279d4 +Author: Victor Seva +Date: Wed Nov 6 19:10:01 2024 +0100 + + cnxcc: fix possible mem leaks on errors + + (cherry picked from commit 1bbb1472d8d940814e4658ac0adcdf809ac7f5ab) + +commit b7607abc683949d64d01bbf0481fd7aa4f2b2a80 +Author: PertsevRoman +Date: Wed Nov 20 09:11:14 2024 +0100 + + db_redis: fix: hiredis-cluster build fix + + - fixed preprocessing issues if WITH_HIREDIS_CLUSTER specified + - GH #4015 + + (cherry picked from commit b14044fac93ef4b43584dd0e14f2b985d41745d6) + +commit 1b40c22489d057675259163088a838f473aa7047 +Author: Daniel-Constantin Mierla +Date: Tue Nov 19 16:20:46 2024 +0100 + + rtpengine: doc - fix quote tag + + (cherry picked from commit cc4e51c45d23b4450d082ba606445b515788ba61) + +commit 5e4b7044f147d3efbe03b52fc03203e567e47b51 +Author: Daniel-Constantin Mierla +Date: Tue Nov 19 16:18:01 2024 +0100 + + pv: made is_uri_enclosed() condition function inline + + (cherry picked from commit d93e0bc19f577114ef7e07afad3ce329c399a488) + +commit 6367a41f64ed165792ffe71ea310fd917947ccba +Author: Xenofon Karamanos <22965395+xkaraman@users.noreply.github.com> +Date: Wed Aug 7 16:07:56 2024 +0000 + + pv: Ensure URI enclosed in <> when changing Display Name + + (cherry picked from commit 75e17db22afa92929054ccf36c8ca9b5daafccd8) + +commit f8ec60e717ba27ab187bf9a0800b46736b000f86 +Author: Remco van Vugt +Date: Fri Oct 18 14:02:40 2024 +0000 + + kazoo: fixed segfault when using kazoo_query + + - Refactored parts of the code to be more readable and DRY + - Split up functions for 3/4/5 arguments passed to avoid segfault + - Fixed pseudovar allocation for returning results + - Tested in 8.5.2 + + (cherry picked from commit 5a4b91e92b03160e13ef83ad486fb64fdae71c7f) + +commit f465639c69074342b863978417210a75c30502d1 +Author: Anton Yabchinskiy +Date: Mon Oct 7 15:32:49 2024 +0200 + + modules/snmpstats: exit with ksr_exit() instead of standard exit() + + The former respects the `--atexit=no` from Kamailio command line. + + See note on `atexit` in TLS module "Overview". + + (cherry picked from commit ed5899b8213a28eb5659edfd5b1b9740ba6a5ab5) + +commit df933053216b91d83233b12f08c7d1d04a5f1634 +Author: Ihor Olkhovskyi +Date: Fri Oct 11 11:30:25 2024 +0200 + + rtpengine: update doc + + - explicit mention of label= flag + - add explanations regarding mos_A/B_label_pv parameters + - typo fixes + + (cherry picked from commit 43f4c0f9455d57f5b4e4963358fe214c85532bc6) + +commit 22351aeb5b2a6db5112493da1c29fe7fcafc33fa +Author: Kent +Date: Fri Oct 25 14:44:03 2024 -0500 + + lib/srdb1: Allow '/' in database URL passwords + + - Modify parsing of a database URL so that a '/' character is accepted + as a valid character in the password part of the URL. + + (cherry picked from commit 91abfdf6ebf942cbb0234be36812a9513f92f96b) + +commit 4291c952360e9607387a60cb807f4f5ea97f4042 +Author: Eik Rentzow +Date: Fri Nov 15 14:06:34 2024 +0100 + + siputils: generated icid-value too short + + - icid-value is only 17 charaters and not unique + - Re-parsing of generated PCV with icid-generated is 2 characters too short, + cutting generated-by value or creating false warning + + (cherry picked from commit 66350831872370a5a06f2ee44e8609ceb0164592) + +commit fed058976c845a9f6a96a06f074ea23f2a6162fc +Author: Daniel-Constantin Mierla +Date: Mon Nov 18 14:19:38 2024 +0100 + + core: socket info - relocate ip address conversion for log message + + (cherry picked from commit 5957ba50c8da1c543272643994190ba015221432) + +commit 1aa14dba39125d3736f4f41d6080e2ed1905debb +Author: Daniel-Constantin Mierla +Date: Sun Nov 17 02:18:29 2024 +0100 + + tm: exports get/set t/branch functions to intermodule api + + (cherry picked from commit da33e5bdefb45730f9b0536ec86d0ef7abc8e3d8) + +commit 8025e8f1cee8cf24c615a2aa8be7255fca3e0a05 +Author: Daniel-Constantin Mierla +Date: Fri Nov 15 09:44:54 2024 +0100 + + tm: backup/restor current T/branch for rpc reply commands + + (cherry picked from commit db2672636a9f029f624059eb6ef69db86a559ff1) + +commit b202ab5c1472edd98ee5bfc600d12e9339113eff +Author: Daniel-Constantin Mierla +Date: Fri Nov 15 09:36:32 2024 +0100 + + tm: rpc_cancel() switch to get/set T/branch helpers + + (cherry picked from commit ec30f5831ed3b6684715103b0242ed220e0159be) + +commit 366f33b341d30cd3bc52ad63e1ce918999e34077 +Author: Daniel-Constantin Mierla +Date: Fri Nov 15 09:33:52 2024 +0100 + + tm: small helper functions to get/set current T and branch + + - pair for coherent naming + + (cherry picked from commit 027ca1b2e1d0857ac039ff8fee9fecadd88bbda0) + +commit 2c37d7927769f316d33b3e0e9ecab9ae45799ea4 +Author: Daniel-Constantin Mierla +Date: Thu Nov 14 10:51:58 2024 +0100 + + tm: backup and restore existing T-references for rpc tm.cancel + + - GH #4011 + + (cherry picked from commit 879e074c4517cdda7bbdad343191dcfc9dedcb3c) + +commit 348f7118f86421bc4aaac8cc7d353be1f18d7ec6 +Author: Daniel-Constantin Mierla +Date: Thu Nov 14 09:57:52 2024 +0100 + + jwt: use JWT_VALIDATION_SUCCESS for validate check + + (cherry picked from commit 76b250c8b4c2b5bd81b5e776e9e726350bb65b7b) + +commit bda9e15d85dce8468a78858ca632749e9f4be9c9 +Author: Daniel-Constantin Mierla +Date: Wed Nov 13 14:58:16 2024 +0100 + + topoh: check if socket name is set for building sockets strings + + (cherry picked from commit 85456e17df760b3d716aa1207a59ef0c3a29b4b4) + +commit 143f96074618572829dae46bb59d08a704e34125 +Author: Victor Seva +Date: Thu Jan 9 19:54:43 2025 +0100 + + pkg/kamailio/deb: refresh files to include new kamailio@.service template + +commit 183c4d1168f10d73e16ba605f202077128dbbb95 +Author: Xenofon Karamanos <22965395+xkaraman@users.noreply.github.com> +Date: Wed Jul 3 15:32:13 2024 +0000 + + pkg: Add systemd template for starting multiple kamailio services + + (cherry picked from commit a8cb23903b271a1b78456fed5da8e10474aee405) + +commit f65cfc6d6de1c44a0e53bb28f3c38d0b490f7e1c +Author: Victor Seva +Date: Tue Jan 7 18:37:52 2025 +0100 + + db_redis: stop searching for keys if scan_key is set + + (cherry picked from commit 73914396c127529e7e0d58f3e92170891840cbc2) + +commit 1e6738e7f2c554ffa16e11125673c7ea4e092935 +Author: S-P Chan +Date: Fri Dec 20 09:02:49 2024 +0800 + + tls_wolfssl: update internal submodule to v5.7.4-stable tag + +commit 5981059909f6d767fcad60d639dbeff5f54bfe3f +Author: Nikolay Ivanuschak +Date: Mon Nov 4 22:58:44 2024 +0300 + + http_async_client: fixed crash on curl callback + +commit d01fbe59b386ad025466bd13d71495f4c765f85d +Author: Sergey Safarov +Date: Fri Dec 6 15:05:52 2024 +0200 + + pkg/kamailio/obs: added systemd template to start multiple kamailio services + + GH#3904 + + (cherry picked from commit b4ec854c0822a61790ea4fa1bc6387cddce4cf35) + +commit d33e4bc5fc8b8f482b740bb4fc63ff4c3d7e29ef +Author: Sergey Safarov +Date: Thu Nov 14 17:47:10 2024 +0200 + + pkg/kamailio: packaged jwt module [skip ci] + + (cherry picked from commit 2d745d21764485c725e2beea91b67cbda83c96f3) + +commit 6816f992696fe894b3a47cd511a59e1b5a0ed89b +Author: Victor Seva +Date: Fri Nov 15 11:09:34 2024 +0100 + + doc: update manpage with missing -B option [skip ci] + + (cherry picked from commit 77f03aabd871dbf86c5106a93eb32ce67d7762bf) + +commit 701ebefaf630cb7f6039f0030f66f736f384af69 +Author: Xenofon Karamanos +Date: Thu Nov 14 16:10:38 2024 +0000 + + tm: Fix log level + + (cherry picked from commit af0f0000c4755d01f668570bc6db71f2f534a5c0) + +commit 67c09d2e470797deb0ac1b28f38293afe3f8c074 +Author: Xenofon Karamanos <22965395+xkaraman@users.noreply.github.com> +Date: Wed Sep 18 12:04:10 2024 +0000 + + tm: move local-request event route to the right location to access CANCEL + + (cherry picked from commit ccc106922802213253f03f181d10fe83aa93da94) + +commit c08bade8f570e0505a2498131faded9785c7fae0 +Author: Xenofon Karamanos <22965395+xkaraman@users.noreply.github.com> +Date: Tue Aug 27 13:59:31 2024 +0000 + + tm: Emit request event when cancel is called + + (cherry picked from commit faca8e7a20255d90a4786fd4043005ead9dfc5df) + + ===================== 2024-11-12 Version 5.8.4 Released ===================== ===================== Changes Since Version 5.8.3 =========================== @@ -26,9 +842,9 @@ Author: anmartan Date: Thu Jul 4 09:30:02 2024 +0200 core: Improved URN parsing according to RFC8141 - + - Improved URN parsing to allow consuming URNs that contain 3 or more colons. Previosly URI parser treated some of the colons as separator between host and port causing the URN parsing to fail. - + (cherry picked from commit 6cdd56bb85e1a10ebbb29c2633fb47bf7b56585e) commit 4d7baba092a0b84ed91171af90ceaee71d0e1e05 @@ -42,7 +858,7 @@ Author: Henning Westerholt Date: Tue Nov 5 16:46:11 2024 +0000 sst: use proper name for ims dialog module in docs - + (cherry picked from commit 3b3c60f94dd93e460d5bda40c73b2052a4f1bf33) commit b292837507dd60f45ebc1cca8317b6c0d8c3d369 @@ -50,7 +866,7 @@ Author: Henning Westerholt Date: Tue Nov 5 16:45:50 2024 +0000 snmpstats: use proper name for ims module in docs - + (cherry picked from commit 6c408ff8c7b558a725d67898d5f1a8dc3d717c61) commit a52fe973b064e288d9f150a6c36cb35eecb4a161 @@ -58,7 +874,7 @@ Author: Daniel-Constantin Mierla Date: Sun Nov 3 19:38:46 2024 +0100 timer: docs - updates to examples - + (cherry picked from commit 21c7066842a034d8674e5fac2b7c6fd38b0073e8) commit 351157cad257986a014dc659231ae0ee48a8d538 @@ -66,7 +882,7 @@ Author: Daniel-Constantin Mierla Date: Tue Oct 29 08:20:44 2024 +0100 core: parser sdp - check body end for extract_ice_option() - + (cherry picked from commit 79d7fae0f26f577356f017cfff5e00c348cf259c) commit e233bc60092242e886a0336104435cd412c6ddd9 @@ -74,9 +890,9 @@ Author: Daniel-Constantin Mierla Date: Mon Oct 28 20:52:19 2024 +0100 timer: export timer_enable(...) to kemi - + - GH #4008 - + (cherry picked from commit ad919796b24d0c38af136cbad2563e6f98df4b74) commit 08b4a6d280f851389252f4016e9032533a82e12d @@ -84,7 +900,7 @@ Author: Daniel-Constantin Mierla Date: Sun Oct 27 19:45:07 2024 +0100 timer: formatted exported structures - + (cherry picked from commit 8e2541ec6126b5665e92cde5eaf17f5a4970cb8d) commit 72f08c6fff97d3a2498498eb01ce6c11a8e9f41c @@ -92,7 +908,7 @@ Author: Daniel-Constantin Mierla Date: Sat Oct 26 19:33:26 2024 +0200 topos: deal with BYE without contact header for mode 1 - + (cherry picked from commit a4f0ee5da93ad64d449c7a95ecad2f3d70aeb975) commit 18dad74a091e693a0bf939dddf144348409e6402 @@ -100,7 +916,7 @@ Author: Daniel-Constantin Mierla Date: Fri Oct 25 20:45:59 2024 +0200 core: parser sdp - check len gor extracting fmtp - + (cherry picked from commit d10257fbfdbb3e3e73c0fe60a224585822bdd7b3) commit fa9965d33cec01fd503bb89f2076b93aa173fd18 @@ -108,7 +924,7 @@ Author: Daniel-Constantin Mierla Date: Thu Oct 24 17:40:04 2024 +0200 dispatcher: debug messages for checking active destinations - + (cherry picked from commit 3e5f8deced0cb05710e631601e9098505f1d230a) commit 19729e29b24915b84079831a37e9ade5b3a9d473 @@ -116,9 +932,9 @@ Author: Daniel-Constantin Mierla Date: Wed Oct 23 08:21:16 2024 +0200 topos: extended error log message - + - ensure headers are parsed for storage record - + (cherry picked from commit a6b924be7fd7d4ce6a92ad5a0247077b09a29474) commit 61d3cc66f97f283c78bec77244bc61610a191ee2 @@ -126,7 +942,7 @@ Author: Daniel-Constantin Mierla Date: Wed Oct 23 07:48:34 2024 +0200 topos: catch ACK without contact that needs no storage updates - + (cherry picked from commit 824e81319b60054feb81c37b3a8be80523f8c95d) commit ac908d6a4cee146c35c28210fa937aa55f1cda70 @@ -134,7 +950,7 @@ Author: Victor Seva Date: Tue Oct 22 16:29:58 2024 +0200 lrkproxy: use core str comparison functions and macros - + (cherry picked from commit c67d8fa0b1015d73b34430f6f8a6afe22ca10cbe) commit 466c5419634a7cb9c9f3cf38b15f36d603bdc1da @@ -142,7 +958,7 @@ Author: Victor Seva Date: Tue Oct 22 16:17:35 2024 +0200 pipelimit: use core str comparison functions - + (cherry picked from commit 9ee189883549faffb21d3ae113dafd7ad95757af) commit af963c81775b9c93d37428fe86264cb96b357f05 @@ -150,7 +966,7 @@ Author: Victor Seva Date: Tue Oct 22 16:12:42 2024 +0200 ratelimit: use core str comparison functions - + (cherry picked from commit c44a349964081d397ab9efa3504737bf369f8cf5) commit cfb143196d0b727f16add51590bc007badde41cf @@ -158,7 +974,7 @@ Author: Xenofon Karamanos <22965395+xkaraman@users.noreply.github.com> Date: Thu Oct 3 08:28:50 2024 +0000 db_schema: Add ims_icscf db schema - + (cherry picked from commit e2ea727988828a9683ef112637e25ee4d58032f7) commit a97199e0114b9cfc0804c3d8f73471f58aec3432 @@ -166,7 +982,7 @@ Author: Dragos Vingarzan Date: Wed Oct 2 14:47:43 2024 +0200 ims_registrar_scscf: fixing em_max_expires - + (cherry picked from commit 3f38206d88af0fae4c64ee3072eb78ea68f813cb) commit 0408c2cb412f0df0a17b70aa4d15026a9ef3a9a7 @@ -174,7 +990,7 @@ Author: Daniel-Constantin Mierla Date: Tue Oct 22 07:41:08 2024 +0200 core: parser sdp - check length for rtpmap extract - + (cherry picked from commit c823f41350ab9186a323707e9be32e31922bec17) commit 255db278f078c8868f28e6451d92b808fc3b6687 @@ -182,7 +998,7 @@ Author: Daniel-Constantin Mierla Date: Tue Oct 22 07:34:29 2024 +0200 jwt: print decode result in error log message - + (cherry picked from commit 0cbb2eb035c7d2a29ae707cde94a2c0573e0ffd5) commit a688b24ac777cb93306a1a777e687de625d6e4d0 @@ -190,7 +1006,7 @@ Author: Daniel-Constantin Mierla Date: Thu Oct 17 08:21:43 2024 +0200 core: parser sdp - check if body is enough for rtpmap - + (cherry picked from commit c7f89e81504c425a83f3423bc4b4d9d1a8a48909) commit ba194c482f72618a896864d5a9738def33813050 @@ -198,7 +1014,7 @@ Author: Daniel-Constantin Mierla Date: Wed Oct 16 11:46:37 2024 +0200 async: docs updates for async_sleep() - + (cherry picked from commit cce29af41120cf30c4c22979e772d1ca666408c6) commit 98032a98eaf764140825c4a2c0eb64a927a55c3d @@ -206,7 +1022,7 @@ Author: Daniel-Constantin Mierla Date: Wed Oct 16 10:49:16 2024 +0200 core: socket info - skip ipv6 link local on interface discovery - + (cherry picked from commit a5b1099c9061551a0b31db8ef88efb2e376b290c) commit 8c3eb992e07bbb0f0f9a123c124b23d510250c9b @@ -214,7 +1030,7 @@ Author: Eik Rentzow Date: Tue Oct 8 09:11:53 2024 +0200 siputils: bug fix for sip_p_charging_vector - + - Bug fix for #3929 and further improvements. - New buffer usage for P-Charging-Vector handling. - Added $pcv(status) pseudo-var. @@ -224,7 +1040,7 @@ Date: Tue Oct 8 09:11:53 2024 +0200 The icid-generated-at parameter should carry the ip adress of the egress interface and not of the interface where the message was received. This is in accordance with other SBC solutions. - + (cherry picked from commit d7c8bc5c58f672004894733d0e6d2a7cb00efe7a) commit 13579e6d39898afbe6064c645d5a0f8ec7a69b62 @@ -232,10 +1048,10 @@ Author: Eik Rentzow Date: Tue Oct 8 07:16:55 2024 +0000 siputils/doc: updated pcv documentation [skip ci] - + - Updated documentation to reflect the changes to the $pcv pseudo-var and the sip_p_charging_vector() function. - + (cherry picked from commit 05a30ed53fc5657a2d86e1c1bdb9277571a8d17e) commit e650ace5948c76ea2d8eb7eaeebb5c349970447d @@ -243,7 +1059,7 @@ Author: Daniel-Constantin Mierla Date: Fri Oct 11 12:37:08 2024 +0200 core: parser sdp - check field length when extracting the value - + (cherry picked from commit e802f9187383feb7fdd96c4ded44fda403da4535) commit eb058dba967bb772c8413356163ec6c13533ab6b @@ -251,7 +1067,7 @@ Author: Daniel-Constantin Mierla Date: Fri Oct 11 12:00:53 2024 +0200 core: parse sdp - check for body limit on mixed content - + (cherry picked from commit d4bbde619bbf808edebb31e131b3783ba2a4b34d) commit 0ba1666fec15ed292e7fe1764bfa985ef282d84e @@ -259,7 +1075,7 @@ Author: Daniel-Constantin Mierla Date: Fri Oct 11 11:41:02 2024 +0200 core: parser sdp - check for length of sendrecv attribute - + (cherry picked from commit fc4817064f81ef9a82b1b1468b1b8a4ae352c1f2) commit a1e79755f4d2827a68f092dea1f138d02ff51f0b @@ -267,7 +1083,7 @@ Author: Daniel-Constantin Mierla Date: Fri Oct 11 11:02:35 2024 +0200 siptrace: docs for data_mode param - + (cherry picked from commit 337c06b6b43606536f1d37ebfd6e4240aab9cf5a) commit 9a24032160de4205585a890c2195c3f587247c2f @@ -275,9 +1091,9 @@ Author: Daniel-Constantin Mierla Date: Fri Oct 11 10:57:05 2024 +0200 siptrace: added parameter data_mode - + - control if bind address of advertised address are used - + (cherry picked from commit 9d8432f3ffb1f9d07874452e23140be21e75c530) commit faf27cef7118a35bfab4aed5185148df6b16769b @@ -285,7 +1101,7 @@ Author: Daniel-Constantin Mierla Date: Wed Oct 9 19:50:48 2024 +0200 siptrace: use advertise address if set for trace mode 1 callbacks - + (cherry picked from commit 9fb15e2ef93a0d606fa4c6d695a2f13a4b0a8031) commit fab08023dc425919c77dc960b0944eb876650092 @@ -293,7 +1109,7 @@ Author: aelezovic Date: Wed Oct 9 12:17:54 2024 +0200 mongodb: fix cursor error resulting empty result set - + (cherry picked from commit afebe6b2e597755ae37fd37bdf011fbb2fbbf8fe) commit 66243e19149d3f4324089f4f54bf86089b8b72b9 @@ -301,7 +1117,7 @@ Author: Victor Seva Date: Tue Oct 8 15:03:55 2024 +0200 http_async_client: fix warning deprecated-non-prototype - + > Warning: ./http_multi.h:64:5: warning: a function declaration without a prototype is deprecated in all versions of C and is treated as a zero-parameter prototype in C23, conflicting with a subsequent definition [-Wdeprecated-non-prototype] > 64 | int init_http_multi(); > | ^ @@ -309,7 +1125,7 @@ Date: Tue Oct 8 15:03:55 2024 +0200 > 403 | int init_http_multi(struct event_base *evbase, struct http_m_global *wg) > | ^ > 1 warning generated. - + (cherry picked from commit 2737bb19a363be7c0d67749b75f11c7e9d2d09f3) commit 844a7a072abf5fad466a20bcae33e1d85844d1f4 @@ -317,12 +1133,12 @@ Author: Victor Seva Date: Tue Oct 8 14:58:40 2024 +0200 sms: fix warning and remove old logic - + > Warning: libsms_getsms.c:107:25: warning: implicit conversion from 'int' to 'char' changes value from 183 to -73 [-Wconstant-conversion] > 107 | ascii[charcounter] = 183; > | ~ ^~~ > 1 warning generated. - + (cherry picked from commit ee052fd0a7e7dc703a186a01926a8e64c635d636) commit 8db46badd40606e910350e4ea3c28f816d3c02b6 @@ -330,13 +1146,13 @@ Author: Victor Seva Date: Tue Oct 8 14:27:03 2024 +0200 kazoo: fix deprecation warning - + fixes #3466 - + From https://github.com/alanxz/rabbitmq-c/blob/c3e4176659aac7d0e497da90a46c08c63b98282a/include/rabbitmq-c/ssl_socket.h#L250 > * \deprecated Since v0.13.0 this is a no-op. OpenSSL automatically manages > * library initialization and uninitialization. - + > Warning: kz_amqp.c:857:3: warning: 'amqp_set_initialize_ssl_library' is deprecated [-Wdeprecated-declarations] > amqp_set_initialize_ssl_library(1); > ^ @@ -350,7 +1166,7 @@ Date: Tue Oct 8 14:27:03 2024 +0200 > # define AMQP_DEPRECATED __attribute__ ((__deprecated__)) > ^ > 1 warning generated. - + (cherry picked from commit eeb17678d77548073a59b54c0a08ebdb48b25fa2) commit 02efd2aad688b2eec0bff7b743ce4b97128f0db1 @@ -358,11 +1174,11 @@ Author: Victor Seva Date: Tue Oct 8 14:17:34 2024 +0200 rabbitmq: remove deprecation warning - + From https://github.com/alanxz/rabbitmq-c/blob/c3e4176659aac7d0e497da90a46c08c63b98282a/include/rabbitmq-c/ssl_socket.h#L250 > * \deprecated Since v0.13.0 this is a no-op. OpenSSL automatically manages > * library initialization and uninitialization. - + > Warning: rabbitmq.c:574:3: warning: 'amqp_set_initialize_ssl_library' is deprecated [-Wdeprecated-declarations] > amqp_set_initialize_ssl_library(1); > ^ @@ -376,7 +1192,7 @@ Date: Tue Oct 8 14:17:34 2024 +0200 > # define AMQP_DEPRECATED __attribute__ ((__deprecated__)) > ^ > 1 warning generated. - + (cherry picked from commit a2f7147dded679d025a902aa12beb048ee714c32) commit 2ad5b019f6c2a2afee8f0d575f92a02d375c0b54 @@ -384,7 +1200,7 @@ Author: Victor Seva Date: Tue Oct 8 13:26:32 2024 +0200 ims_usrloc_pcscf: fix warning deprecated-non-prototype - + > In file included from usrloc_db.c:12: > Warning: ./usrloc_db.h:131:5: warning: a function declaration without a prototype is deprecated in all versions of C and is treated as a zero-parameter prototype in C2x, conflicting with a subsequent definition [-Wdeprecated-non-prototype] > int use_location_pcscf_table(); @@ -393,7 +1209,7 @@ Date: Tue Oct 8 13:26:32 2024 +0200 > int use_location_pcscf_table(str *domain) > ^ > 1 warning generated. - + (cherry picked from commit 35a87c98f4e84b65f82376dfb57050f43d0f355f) commit b55acf4ce764da70f7bd78e05598b681ef92775c @@ -401,7 +1217,7 @@ Author: Victor Seva Date: Tue Oct 8 13:20:18 2024 +0200 ims_usrloc_pcscf: fix warnings deprecated-non-prototype - + > In file included from pcontact.c:46: > Warning: ./pcontact.h:63:5: warning: a function declaration without a prototype is deprecated in all versions of C and is treated as a zero-parameter prototype in C2x, conflicting with a subsequent definition [-Wdeprecated-non-prototype] > int new_pcontact( @@ -410,12 +1226,12 @@ Date: Tue Oct 8 13:20:18 2024 +0200 > int new_pcontact(struct udomain *_d, str *_contact, struct pcontact_info *_ci, > ^ > 1 warning generated. - + > Warning: udomain.c:232:17: warning: passing arguments to 'new_pcontact' without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] > if(new_pcontact(_d->name, _contact, _ci, _c) < 0) { > ^ > 1 warning generated. - + (cherry picked from commit 7dcc8405ccec19132d27516426137e35e464d4ad) commit 6bec8ed087c308c504da7ad217b55e1b5d81a090 @@ -423,7 +1239,7 @@ Author: Victor Seva Date: Tue Oct 8 13:10:57 2024 +0200 cdp: fix warning deprecated-non-prototype - + > Warning: peerstatemachine.c:120:19: warning: passing arguments to 'log_peer_list' without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] > log_peer_list(L_INFO); > ^ @@ -446,7 +1262,7 @@ Date: Tue Oct 8 13:10:57 2024 +0200 > log_peer_list(L_INFO); > ^ > 7 warnings generated. - + (cherry picked from commit f49012d15a06b27875cf6bca211ad953968b5217) commit fa959e8cfda491612b7a13d1a18772400ddb8b96 @@ -454,7 +1270,7 @@ Author: Victor Seva Date: Tue Oct 8 13:07:37 2024 +0200 presence: fix warning conflicting prototype - + > Warning: presence_dmq.c:38:5: warning: a function declaration without a prototype is deprecated in all versions of C and is treated as a zero-parameter prototype in C2x, conflicting with a subsequent definition [-Wdeprecated-non-prototype] > int pres_dmq_send_all_presentities(); > ^ @@ -462,7 +1278,7 @@ Date: Tue Oct 8 13:07:37 2024 +0200 > int pres_dmq_send_all_presentities(dmq_node_t *dmq_node) > ^ > 1 warning generated. - + (cherry picked from commit 03e49d4e1d806f39ee6aadaedd183a6578108d96) commit 170d35f1f14f71f69bdfa6586997def8ddbdfd11 @@ -470,7 +1286,7 @@ Author: Victor Seva Date: Tue Oct 8 13:01:03 2024 +0200 tm: fix warning uninitialized variable - + > Warning: t_fwd.c:1919:46: warning: variable 'port' is uninitialized when used here [-Wuninitialized] > ret = forward_request_uac(p_msg, &host, port, &dst); > ^~~~ @@ -479,7 +1295,7 @@ Date: Tue Oct 8 13:01:03 2024 +0200 > ^ > = 0 > 1 warning generated. - + (cherry picked from commit ce4107a6f654a4bc4462efb90f3cc5e8c73bf9ed) commit b553882d8d87d3891f387832fe2d56223ef03624 @@ -487,13 +1303,13 @@ Author: Victor Seva Date: Tue Oct 8 10:59:16 2024 +0200 core/rand: fix -Wdeprecated-non-prototype - + > Warning: core/rand/isaac/rand.c:28:6: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] > void isaac(ctx) randctx *ctx; > ^ > Warning: core/rand/isaac/rand.c:81:6: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] > void randinit(ctx, flag) randctx *ctx; - + (cherry picked from commit 9475837b209c91366e8bb40416552b02c13aaf3a) commit 1d216f8764ebb0e8f78764e3778f34ab1cb3fa23 @@ -501,11 +1317,11 @@ Author: Daniel-Constantin Mierla Date: Mon Sep 30 15:40:47 2024 +0200 core: socket info - do not use interface index as internal array index - + - there are cases when the interface number is high, even if there are only a few real network interfaces, which can result in inability to listen on them - + (cherry picked from commit 7acfe7723b4772ca45ce31ae98bf3d0b6948f50a) commit f3d510f6f1f59bb33ff6e3df08863f6a81d67d5d @@ -513,7 +1329,7 @@ Author: Daniel-Constantin Mierla Date: Mon Sep 30 12:54:11 2024 +0200 core: socket info - relocate check for index to get more debugging details - + (cherry picked from commit b7dcbc37aceaefecf9a0f7367526a331d42269ea) commit 004e0e056178dfbaa1aca6e8d7364417dd115bb4 @@ -521,9 +1337,9 @@ Author: Daniel-Constantin Mierla Date: Wed Sep 25 10:07:44 2024 +0200 core: print errno on tcp bind failure - + - log message with value of sr_bind_ipv6_link_local - + (cherry picked from commit 621f3132708405939d3a40fb98ae57b793cd246e) commit 95371808084c547e01daf3ecdc7124c70dde78f5 @@ -531,7 +1347,7 @@ Author: Daniel-Constantin Mierla Date: Wed Sep 18 19:22:53 2024 +0200 core: reqorked check for incompatible modes of bind_ipv6_link_local - + (cherry picked from commit f7045d1c08d37e91ee7e96e415c06b218aee98fd) commit 8331cb1f87b31f66f87a90e7fbaa2553ea3f2728 @@ -539,7 +1355,7 @@ Author: Thomas <1258170+ThomasSevestre@users.noreply.github.com> Date: Mon Sep 2 20:27:26 2024 +0200 topos_redis : show redis error for post mortem analysis - + (cherry picked from commit 72889e945041b6475a43c371aa4e20e99f5d1240) commit 24651787d54746647614be111ee5cb583e3da430 @@ -547,7 +1363,7 @@ Author: Daniel-Constantin Mierla Date: Wed Sep 18 09:52:32 2024 +0200 core: use advertise port only when set for via header - + (cherry picked from commit abaf42a735b00af8cbfec90888d2ef3397e5040d) commit 96ebad5d1a3650961ca6e3cd22d4da0dec0929a6 @@ -555,12 +1371,12 @@ Author: Victor Seva Date: Mon Sep 16 19:37:03 2024 +0200 app_jsdt: add support for loong64 - + From: liuxiang > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1060901 - + fixes #3976 - + (cherry picked from commit 5746db1c5a99eaeaf7f97d520232f014548c912d) commit 1cd3b749e699f2b83752a5b6c1b29f16084820d0 @@ -568,7 +1384,7 @@ Author: Daniel-Constantin Mierla Date: Mon Sep 16 15:27:42 2024 +0200 core: proper condition for bind_ipv6_link_local modes - + (cherry picked from commit 99710daa8b05a0a37ef3bb35e2ffd723908037f4) commit c62a1b6efd10f5c46cf87a9ea33ee4fff2bfdabb @@ -576,7 +1392,7 @@ Author: Daniel-Constantin Mierla Date: Mon Sep 16 12:18:54 2024 +0200 core: use macro to check send_port_str value - + (cherry picked from commit 15d81a0151aa46a20f95fb8c6dc2665d03e741aa) commit af0ec5445393939288c86e976eba8f530a4100b1 @@ -584,7 +1400,7 @@ Author: Daniel-Constantin Mierla Date: Mon Sep 16 10:42:19 2024 +0200 core: use advertised port for recv socket only when set - + (cherry picked from commit c09a29369f03f6c5e621a94b5b853047490568aa) commit e3969c489b24490c667eb4680ee452f191da9577 @@ -592,9 +1408,9 @@ Author: Daniel-Constantin Mierla Date: Mon Sep 16 09:15:40 2024 +0200 core: use advertised port only when explicitely set - + - do not fallback to socket port - + (cherry picked from commit 0f423f97607416edcff8d0f1612fad7af29b6064) commit 240b66b8d9ea9bf58e897bf9b35c4d91beb5c5ca @@ -602,7 +1418,7 @@ Author: Daniel-Constantin Mierla Date: Sat Sep 14 22:07:35 2024 +0200 core: skip interfaces with index over max iface limit - + (cherry picked from commit fa17af660dc754cd46c747ec8c3216ef52fd4fcc) commit 499be2dcbefe30be2ed616064a04bc0b6ee42b29 @@ -610,13 +1426,13 @@ Author: Victor Seva Date: Fri Sep 13 22:07:26 2024 +0200 ldap: remove unused variable in child_init - + fixes #3974 - + > ldap_mod.c: In function ‘child_init’: > ldap_mod.c:156:13: warning: unused variable ‘ret’ [-Wunused-variable] > 156 | int ret = 0; - + (cherry picked from commit a078f14050b6d31bfbcd3562306923c0c4ad73e3) commit 54c6ac01e98866905c8654a42873f023c4e1ec7a @@ -624,9 +1440,9 @@ Author: Daniel-Constantin Mierla Date: Fri Sep 13 08:50:35 2024 +0200 core: check for incompatible modes for bind_ipv6_link_local - + - a few more debug messages - + (cherry picked from commit 86770d203bde6859284ec8862be66d78efd2715a) commit 9947b5a548ff1802de70acccc1d8306d1b6ed76d @@ -634,9 +1450,9 @@ Author: Daniel-Constantin Mierla Date: Thu Sep 12 16:23:02 2024 +0200 core: socket info - set address also for link local items - + - updates to log messages - + (cherry picked from commit fd95b95035a7da088a94888132326d463191da83) commit 4647ecd9c20a79967a8beed14262ad74dfdba661 @@ -644,9 +1460,9 @@ Author: Daniel-Constantin Mierla Date: Thu Sep 12 10:34:55 2024 +0200 core: check for items with emtpy address when discovering the network interfaces - + - it may be returned on some OSes, preventing to start - + (cherry picked from commit bd4c068ee9c8e18dc76f8154d3fa4c438972b79c) commit 081e17b925a019c9971bf1296bc9a70d8df9d8ae @@ -654,9 +1470,9 @@ Author: Daniel-Constantin Mierla Date: Thu Sep 12 10:10:33 2024 +0200 core: log message about interface flags made info - + - small updates to a couple of error messages - + (cherry picked from commit 15823c3eda3a332d22d9132a873d755aa024892f) commit 62a76d2fe3547ef6701e8b86f195396158f15660 @@ -664,9 +1480,9 @@ Author: Daniel-Constantin Mierla Date: Tue Sep 10 18:01:57 2024 +0200 core: option to skip auto-bind on ipv6 local link - + - set bind_ipv6_link_local=2 - + (cherry picked from commit 2bcd29a7a2981670baea0b7fb2e8454b5ad9f4d7) commit 4cb602385b4bb7b9df5cff9aac60ea0fa4f02f8f @@ -674,9 +1490,9 @@ Author: Lucian Balaceanu Date: Wed Sep 4 11:55:57 2024 +0300 core: parser - use sip_parser_log - + Silencing messages that tend to appear when processing HEP. - + (cherry picked from commit e6a3b3554af01e5141ba063df408a06b28261927) commit f6b6aeb9297b6782655199de9bcb82cc79de50a8 @@ -684,9 +1500,9 @@ Author: Daniel-Constantin Mierla Date: Thu Sep 5 11:28:08 2024 +0200 registrar: safety check for uri and remove duplicated aor extract - + - follow up of changes from previous commit - + (cherry picked from commit 60165196ad3144597c24eb9f7bb7fb0cd56f8c25) commit 32987e68f85500e2b37134c7a542ab7cefce5384 @@ -694,10 +1510,10 @@ Author: Daniel-Constantin Mierla Date: Thu Sep 5 09:01:52 2024 +0200 core: try to lookup connection for WSS when TCPCONN_MATCH_STRICT is set - + - URIs have always transport ws, but most likely the connection is wss - GH #3969 - + (cherry picked from commit aa794581ecf105b5313d2f5b8bcfe516ab337936) commit 065e0514144f4e4f160ae15b515948c83711ff57 @@ -705,9 +1521,9 @@ Author: Daniel-Constantin Mierla Date: Wed Sep 4 13:02:19 2024 +0200 registrar: use parsed uri parameter when provided for save() - + - instead of to-uri, aor being built from uri parameter - + (cherry picked from commit 21e2d96672ccbe65eebdf64f839a1ce465a11b7c) commit 6c88ef7c6abc45f72571aaa713f1d0dfb2d626e6 @@ -715,7 +1531,7 @@ Author: Daniel-Constantin Mierla Date: Wed Sep 4 12:43:59 2024 +0200 auth_xkey: use memcpy() instead of strncpy() - + (cherry picked from commit 29686758e1ce51abb8d8dd5bebb0d7fa1a019dc6) commit d5f13655909632a4f6e58ebb6ea2a13655511270 @@ -723,9 +1539,9 @@ Author: Daniel-Constantin Mierla Date: Tue Sep 3 23:24:49 2024 +0200 registrar: when provided, use host part from uri parameter - + - instread of the To URI, which can be different - + (cherry picked from commit 1c2cb9980082a6a1a8e3986330d9b80c49ef7801) commit 113ff4b080546a7cd7c06f1ebc1ba303e329b309 @@ -739,7 +1555,7 @@ Author: Daniel-Constantin Mierla Date: Thu Sep 19 08:54:32 2024 +0200 tm: remove extra + used before MAXFWD_HEADER_LEN - + (cherry picked from commit 307d6db88c218ffd5dc9d6e7de6425ac4ef24748) commit ab3530e753dece24e7b2851b0943fa23154d62ef @@ -747,7 +1563,7 @@ Author: Sergey Safarov Date: Fri Sep 13 22:08:17 2024 +0300 pkg/kamailio: fixed python module build on RHEL based dists - + (cherry picked from commit b1c9dac2c382a98997d5771921af5aa3235876c0) commit 98e094331d09b573985e98a54ff442166bc86594 @@ -755,7 +1571,7 @@ Author: S-P Chan Date: Thu Aug 29 16:11:22 2024 +0800 app_python3: bump to 3.12 for el8/el9 - + (cherry picked from commit 4d87f29248d36d873784827204f272116050343d) commit be1fe948b188ba84ec542e5622377d3772463e5b @@ -763,10 +1579,10 @@ Author: Daniel-Constantin Mierla Date: Wed Sep 4 19:36:34 2024 +0200 nathelper: add_contact_alias() with parameters to enclose ipv6 in square brackets - + - the add_contact_alias() without parameters was doing it already - discovered while investigating GH #3968 - + (cherry picked from commit 744e5ac9678c0c9ef07bfb0de44c7c478a2debdc) commit 3c89405ed74152fd59365ad7dacb144092f5516a @@ -774,9 +1590,9 @@ Author: Daniel-Constantin Mierla Date: Wed Sep 4 18:54:22 2024 +0200 nathelper: check if alias ipv6 has already square brackets - + - GH #3968 - + (cherry picked from commit 6e01172a138d395fa3f7c3f25238647934137dba) @@ -807,7 +1623,7 @@ Author: Daniel-Constantin Mierla Date: Tue Sep 3 18:08:44 2024 +0200 secsipid: docs update about libsecsipid installation - + (cherry picked from commit 7abbc93d8db807077ca2afc10b026be0835f4b65) commit 60423dbe90d3603fa98e0aaf161b7bef7f8b2a23 @@ -815,7 +1631,7 @@ Author: Victor Seva Date: Fri Aug 30 12:52:46 2024 +0200 http_client: clang-format - + (cherry picked from commit fde8bd21dca9c8b45b314b04b21f742363f028b1) commit 6ee9bc2f34f9b20b576510e2e81a96bbfcc5a3be @@ -823,7 +1639,7 @@ Author: Daniel-Constantin Mierla Date: Fri Aug 30 11:36:29 2024 +0200 sca: remove function name from log message - + (cherry picked from commit 4a57efa0f7ed2560420e10d0fe70037a14a12c12) commit d86350ea9078b89677323ac86053b0f37b7d1722 @@ -837,10 +1653,10 @@ Author: Michel Pelletier Date: Wed Aug 28 12:49:46 2024 -0600 app_python3: Fixes Kemi TypeError thrown when latency_limit_action is exceeded. - + Replace PyBytes_AsString(..) calls with calls to PyUnicode_AsUTF8(..) in the PY_VERSION_HEX >= 0x030B0000 block of apy_kemi.c. The PyBytes_AsString expects a Bytes value but receives a Unicode value instead, thus causing the TypeError exception. - + (cherry picked from commit 6cae3661419d8d79fc8fb0463f6787b06911fa9d) commit 661b2670168530c21ee4dd23fcb29abf8b5bc3ba @@ -848,9 +1664,9 @@ Author: Daniel-Constantin Mierla Date: Wed Aug 28 10:51:44 2024 +0200 usrloc: mark contacts with keepalive sent - + - properly detect if the contact record has to be expired or not - + (cherry picked from commit 6502872d35d9bd7043bf54cd1d640dd64ae87115) commit 2dbc8b5bf3353fdd3b05f265075e6a3cac8c02d4 @@ -858,7 +1674,7 @@ Author: Daniel-Constantin Mierla Date: Tue Aug 27 14:30:17 2024 +0200 core: use defined type for flags inside build_req_buf_from_sip_req() - + - partial backport from 9ff1080cc6452343e6bc2de00350b2f7bcecf6d2 commit a9769ca3692f11fe36e86b29af37d94f9f0fc4c6 @@ -866,11 +1682,11 @@ Author: Andrii Pogrebennyk Date: Wed Aug 21 11:17:40 2024 +0200 pua_reginfo: free pkg memory after getting the content of each XML attribute - + - free the memory from the state XML attribute that was returned and immediately used in another function call without freeing leaving one small mem leak; - add comments but keep the dead code regarding parsed but unused attrs. - + (cherry picked from commit ed6730aa64e0e7c1580584d6f808e76a665e5882) commit 6a22677e281de00dc0088ad23d7c7a5ca6e69f84 @@ -878,7 +1694,7 @@ Author: Victor Seva Date: Thu Aug 22 11:20:17 2024 +0200 pua_dialoginfo: reformat exported structures more human friendly - + (cherry picked from commit 748da56717800c36c43bb6fe3739011f3d3105e0) commit b2bfdd8eb6b40b1e70a2876cee46890813a0c699 @@ -886,7 +1702,7 @@ Author: Victor Seva Date: Thu Aug 22 11:06:47 2024 +0200 pua_dialoginfo: add section ID's to documentation - + (cherry picked from commit aba56a5aa3b8fa4f07d0c52cd7fd2d56103ca56c) commit f32d67f1b4b08a8cc8dbae917e1a2d0c08adeb93 @@ -894,7 +1710,7 @@ Author: Daniel-Constantin Mierla Date: Sat Aug 17 17:08:31 2024 +0200 msilo: removed duplicatred exported function - + (cherry picked from commit b712ddc4db9a9c1bb30b236a0a86082108b23f07) commit ee5853b4eab6553821113ff64e9eed24a5c9d6b7 @@ -902,7 +1718,7 @@ Author: Daniel-Constantin Mierla Date: Sat Aug 17 16:30:21 2024 +0200 msilo: added fixup free functions to exports structure - + (cherry picked from commit b6dea98ada293a3bbad004aa1b194d4bf44a60ab) commit e9d5d37271e03cdec6cf87647e488c3b4f175258 @@ -910,7 +1726,7 @@ Author: Daniel-Constantin Mierla Date: Wed Aug 14 18:37:06 2024 +0200 phonenum: add fixup free functions to exports structure - + (cherry picked from commit 7d2fd09103680454aaaba30f5e46f83b362513eb) commit 92e999228eb75856911386d280ab48389aeb7d3f @@ -918,7 +1734,7 @@ Author: Daniel-Constantin Mierla Date: Tue Aug 13 21:01:51 2024 +0200 phonenum: export match_cn() to kemi - + (cherry picked from commit e9dd041ce6af9ee4b9cc2e29b4417787a8056776) commit 57b9c66cb7811c045caceb2f61047e07a108aabc @@ -926,7 +1742,7 @@ Author: Morten Tryfoss Date: Mon Aug 5 12:14:04 2024 +0200 cdp: Error log caused crash - + (cherry picked from commit 4aaaca60ef2207100dd3f4e16ae63428aadc7dc5) commit a024fb3c028b8df18a9b855fff99bcddc3a61ef2 @@ -934,7 +1750,7 @@ Author: Daniel-Constantin Mierla Date: Tue Jul 30 09:07:36 2024 +0200 corex: switch to unsigned long long for iflag lookup - + (cherry picked from commit 072c44330297c653675b5078fb0facdc399a5ab4) commit d102f40856512d2c51707bf5ec5a6c949c550890 @@ -942,7 +1758,7 @@ Author: Daniel-Constantin Mierla Date: Tue Jul 30 08:55:08 2024 +0200 corex: proper check for iflag lookup return code - + (cherry picked from commit fdb0ef987ca2b013104b06ece006f67bf8ae07d3) commit e14522cab01eba9c5fa636a7c0f6ed40200c6871 @@ -950,7 +1766,7 @@ Author: Daniel-Constantin Mierla Date: Tue Jul 30 08:44:03 2024 +0200 corex: small formatting of iflag list - + (cherry picked from commit 70606e3ea575228b3ccc662d6f9048aa0eb899ce) commit 2e4920fd292b6f1d064a75503dd3be3ca27fdeb5 @@ -958,7 +1774,7 @@ Author: Daniel-Constantin Mierla Date: Mon Jul 29 10:07:43 2024 +0200 cplc: use long long constants for operations - + (cherry picked from commit 49a9c0a0f391c2e9fc45dff7c37a087dde0f7ba3) commit bc8ea1022718c94fbdf9bb93c35759e1a6ce3cde @@ -966,7 +1782,7 @@ Author: Daniel-Constantin Mierla Date: Sun Jul 28 18:44:45 2024 +0200 core: tcp - use long long constants for operations - + (cherry picked from commit fc2f34e8bab022b0c99e8313aee3e4a87c1f2e52) commit 1eb7db2f18724b91d18c6b30b529b51117d176b0 @@ -974,7 +1790,7 @@ Author: Daniel-Constantin Mierla Date: Sat Jul 27 18:16:40 2024 +0200 db_berkeley: buffer size set to the argument of strftime() - + (cherry picked from commit e86d6ee30227a3fc5cff98e7983d4a80f0c42c4b) commit dfc2531cf7db70e315613b3242d1b5b41ac20857 @@ -982,7 +1798,7 @@ Author: Daniel-Constantin Mierla Date: Fri Jul 26 19:49:57 2024 +0200 core: cfg select - check res when getting the variable - + (cherry picked from commit 3333611a3ef9078cbcb9867db88921f0c48fce1b) commit bbfb24d3cb841b37e6e1b84892b68daf6c237c46 @@ -990,7 +1806,7 @@ Author: Daniel-Constantin Mierla Date: Fri Jul 26 19:00:29 2024 +0200 xprint: return on mod init error case - + (cherry picked from commit 660a019263b81d318700c205531bf4e042c912cf) commit f8201e6d4848081a2dd564e0d5b216fca47ef3f0 @@ -998,7 +1814,7 @@ Author: Daniel-Constantin Mierla Date: Thu Jul 25 10:58:40 2024 +0200 janssonrpcc: free new servers list on error - + (cherry picked from commit b4efe7725728392d0c8921c006d6fbc6455e9b8f) commit 61eb4fe44e66a952ba14e39e1c664878ef52919d @@ -1006,7 +1822,7 @@ Author: Daniel-Constantin Mierla Date: Thu Jul 25 08:44:15 2024 +0200 core: cfg select - check res before initializing - + (cherry picked from commit a6c415713bb209b03ff110d4ae891173d04ac471) commit 5baf49a179194ba0eaa5e7f4caba613c72859b0c @@ -1014,7 +1830,7 @@ Author: Daniel-Constantin Mierla Date: Wed Jul 24 10:43:18 2024 +0200 jsonrpcc: declare variables are the beginning of function - + (cherry picked from commit 7ba313f6f96ffa6042c163027c0c7bb65106fef7) commit c447bf60d528d8fdc1f5aee52a796ed5f77b2f5a @@ -1022,7 +1838,7 @@ Author: Daniel-Constantin Mierla Date: Wed Jul 24 10:37:21 2024 +0200 jsonrpcc: free allocated pkg buffer on error - + (cherry picked from commit 796bcc038d7885e01dbad34abc68bf612062c533) commit f57accd1820b26b40f14d420465402188cb13df1 @@ -1030,7 +1846,7 @@ Author: Daniel-Constantin Mierla Date: Tue Jul 23 11:57:48 2024 +0200 erlang: init xavps for safety destroy on error - + (cherry picked from commit 29510872607deb3238411b358c422d004fb307b7) commit e016d1ada08edca0adacd42ffa67ffd3c8c2c384 @@ -1038,7 +1854,7 @@ Author: Daniel-Constantin Mierla Date: Mon Jul 22 11:01:16 2024 +0200 utils: jump to error on pkg allocation failure - + (cherry picked from commit 34749ab13b31504358761c964f794b283931394c) commit dd4d5e44a60a658772e8288d94193596f7a982a7 @@ -1046,7 +1862,7 @@ Author: Daniel-Constantin Mierla Date: Sun Jul 21 22:41:45 2024 +0200 tls: check lenght when parsing pv alt name - + (cherry picked from commit 79a668b8bdb0e085adb3581d718e5fd5ae73e2e4) commit 4732a4a88df9f4cbd2260564b94269157b3c0647 @@ -1054,7 +1870,7 @@ Author: Daniel-Constantin Mierla Date: Sun Jul 21 22:23:29 2024 +0200 tls: remove uselss pv format parsing in pv_parse_alt_name() - + (cherry picked from commit 7c06997a1b6e77ae0642d369f532219dc35ef8e0) commit e006c2c53d6b013253f6a95b96c0f81f016bc440 @@ -1062,7 +1878,7 @@ Author: Daniel-Constantin Mierla Date: Sat Jul 20 20:02:07 2024 +0200 xprint: check to avoid double free - + (cherry picked from commit 5a1f80f266069dbc453b44a856f225c254e7c050) commit fa8f0a401980f5dccdfe35983fb5b55040ef9e9c @@ -1070,7 +1886,7 @@ Author: Daniel-Constantin Mierla Date: Fri Jul 19 19:59:20 2024 +0200 topoh: 0-init alocated structures - + (cherry picked from commit dc71c0a5791ebc1306648b5ed338613050e32f5c) commit 39d4d48abf9e3e2e1edd2f22780fb1bf233c9697 @@ -1078,7 +1894,7 @@ Author: Daniel-Constantin Mierla Date: Fri Jul 19 19:53:47 2024 +0200 core: removed unnecessary destroy - + (cherry picked from commit 20f2096d314253e7e74688da664de2830289a276) commit 445659c38bd54e26d085d8c5b07bfb8edba7762e @@ -1086,9 +1902,9 @@ Author: Dennis Yurasov Date: Thu Jul 18 13:48:42 2024 +0300 tcpops: fix memory leak in $tcp(conid) - + - reference counter to tcp session not decremented, so shm for session never free - + (cherry picked from commit acf50d86b502af36e3635d61745feaa5c577231d) commit 7ca33c475b52703216f7d8d4e6c78530a8d7e723 @@ -1096,7 +1912,7 @@ Author: Daniel-Constantin Mierla Date: Thu Jul 18 12:29:05 2024 +0200 core: remove unnecessary check after using the structure - + (cherry picked from commit 84ea36b4b79c07c4fc0a8c9e119184433353764e) commit d69e65fa4e9448701729ac8f41b069dad294a51e @@ -1104,7 +1920,7 @@ Author: Daniel-Constantin Mierla Date: Thu Jul 18 12:17:10 2024 +0200 core: set digit 0 in the md5 buffer in case of error inside char_msg_val() - + (cherry picked from commit 15b2a5467f11e009ae4efad1ee29af860326095f) commit 92a3cc4549073d70b1b229149b29017e3a9cf06f @@ -1112,7 +1928,7 @@ Author: Daniel-Constantin Mierla Date: Thu Jul 18 12:00:47 2024 +0200 core: init res inside select_cfg_var() - + (cherry picked from commit a471d34d6162387a1427f5d0c5b3c6079a2b0bdc) commit b307c7eb8e58b43dca41deb3493b0888ec7e9aa4 @@ -1120,11 +1936,11 @@ Author: emvondo <106535097+emvondo@users.noreply.github.com> Date: Thu Jul 18 09:10:33 2024 +0100 siprepo: fix int params and wrong copy data in siprepo_msg_async_pull (#3919) - + * siprepo: fix int params and wrong copy data in siprepo_msg_async_pull - + --------- - + Co-authored-by: emvondo (cherry picked from commit a3a63655dbcbf1bc8067f34c36f4a7295b2a1745) @@ -1133,7 +1949,7 @@ Author: Daniel-Constantin Mierla Date: Wed Jul 17 13:56:30 2024 +0200 dispatcher: remove reference to MI in comments - + (cherry picked from commit 8c3b5ab3818c86b90b02e20aa4631654e0b51745) commit fc29c81bbc6e3fb0709e3367e2f1d803b2bf0669 @@ -1141,7 +1957,7 @@ Author: Daniel-Constantin Mierla Date: Tue Jul 16 08:27:42 2024 +0200 core: remove unnecessary cleanup when locating a module - + (cherry picked from commit eda03789f693bb72ec4ee05a8b2b4723e5080504) commit 89339b1fa6f08024a44d898ed9877f08911e4f68 @@ -1149,7 +1965,7 @@ Author: Dragos Vingarzan Date: Fri Jul 12 13:30:41 2024 +0200 nathelper: fixed handle_ruri_alias() for alias being an IPv6 - + (cherry picked from commit 52ab6f3dcf5ad8d967be8bdecaa64ef31cbfbe33) commit 743ebe918b89a42ce94b10fb9dc2fe2a807eb88b @@ -1157,7 +1973,7 @@ Author: Daniel-Constantin Mierla Date: Sun Jul 14 09:00:01 2024 +0200 evrexec: remove unnecessary safety exit loop - + (cherry picked from commit d5076b557728b3f9d80df391ae71e2eab2c896dc) commit ffa4eeded62507f15e4e9b26aa5b3ba519fa6513 @@ -1165,7 +1981,7 @@ Author: Daniel-Constantin Mierla Date: Fri Jul 12 12:05:40 2024 +0200 pua: use long for time value diff operation - + (cherry picked from commit fc8bee5b87e95e43bda2635e65457b2025eab6f9) commit a3f40f3c407d34b25717416b3ac500e61f9300cb @@ -1173,7 +1989,7 @@ Author: Daniel-Constantin Mierla Date: Fri Jul 12 11:49:10 2024 +0200 rls: remove unnecessary assignment - + (cherry picked from commit c97145862119e9001874cd07de9b20ad8e96ff54) commit e11c132cbf57ea1ae6289e734f601104ba83fc25 @@ -1181,7 +1997,7 @@ Author: Daniel-Constantin Mierla Date: Fri Jul 12 08:06:36 2024 +0200 stun: check message len for response - + (cherry picked from commit 87e1a4a7f5d565a59a362f22e9372697f2f2f2af) commit 164d1ecca7e94beba24013f31276bdc1f2ee04a1 @@ -1189,9 +2005,9 @@ Author: Victor Seva Date: Thu Jul 18 17:26:33 2024 +0200 sipcapture: add missing headers for inet_ntop() - + fixes #3927 - + (cherry picked from commit fe505c9654541ec60f14e5a50896bb11751e61e4) commit 685f45c4adf911ac41c14b55ad36dd4b8b51897c @@ -1199,9 +2015,9 @@ Author: Victor Seva Date: Thu Jul 18 13:40:24 2024 +0200 dialplan: remove pcre2_free() warning - + related to #3851 - + (cherry picked from commit 70563ca0629a8de5aa5427b003f441e6c3a40c6a) commit 64a01ebec255ece59be3683bab421b35505d745d @@ -1209,9 +2025,9 @@ Author: Victor Seva Date: Thu Jul 18 13:38:10 2024 +0200 lcr: remove pcre2_free() warning - + related to #3851 - + (cherry picked from commit 310b631007082f553117d126b6b9bd915be596ac) commit 1946e35c4d144fba3067d3fee5d1bd030dc4a609 @@ -1219,9 +2035,9 @@ Author: Victor Seva Date: Thu Jul 18 13:36:09 2024 +0200 regex: remove pcre2_free() warning - + related to #3851 - + (cherry picked from commit b86030cfbd66ba95f33f312595edae29e2b5cde0) commit dbe51dc4ee53f6e4f00450745db709a9d741c481 @@ -1229,12 +2045,12 @@ Author: S-P Chan Date: Tue Jul 9 10:53:07 2024 +0800 db_mysql: fix check for enum MYSQL_OPT_SSL_CA for CentOS 7/5.5.x - + - MYSQL_OPT_SSL_CA is an enum not a macro - base check on MYSQL_VERSION_ID - 50568 used in CentOS 7 - + Addresses #3910 - + (cherry-picked from commit 92cfedaaffb034db536f3bcf68695b433db92706) commit 3161964efba19e5e7bd730bf656d019cac2c6ed8 @@ -1248,10 +2064,10 @@ Author: Daniel-Constantin Mierla Date: Thu Jun 27 10:07:11 2024 +0200 cnxcc: check if final pulse is 0 - + - avoid dividing with it in such case - GH #3859 - + (cherry picked from commit 7061a79fe64066dd5a6598e38d714bd40bf2eabc) commit f59f980d03b884f2494892eb4d007293b7ad4e34 @@ -1259,7 +2075,7 @@ Author: Daniel-Constantin Mierla Date: Wed Jun 26 07:22:38 2024 +0200 core: dns cache - check warnings made debug - + (cherry picked from commit 754f9ae28c9a731fc0bfd6d08411bf0913a7dbfc) commit 4fa5fc10370d81d534d75b034322a6250c7e2557 @@ -1267,7 +2083,7 @@ Author: Daniel-Constantin Mierla Date: Mon Jun 24 10:22:25 2024 +0200 core: removed duplicated break - + (cherry picked from commit 588b9c710b6555371bc8bbee21e474466bb099dd) commit 70cf3ebd2b52c341a90c9b9b6149985667a6b96c @@ -1275,7 +2091,7 @@ Author: Daniel-Constantin Mierla Date: Sat Jun 22 17:52:34 2024 +0200 textopsx: docs - note about @hf_value2 select - + (cherry picked from commit d13c741d90c3887cdf144a9094a78c0c7cb9856d) commit 7bf787d00f9f7ed8a2d758219d6d1413b2b5c975 @@ -1283,9 +2099,9 @@ Author: Dragos Vingarzan Date: Fri Jun 21 10:54:36 2024 +0200 textopx/doc: fixed hard-to-read documentation for textopsx - + - was missing line-wraps in examples list, hence very hard to read - + (cherry picked from commit 48d97c1941f660aa396b5ef100584611cf92ad21) commit 4c75991aa662bddc1bbe65c83f7861cb72a65a61 @@ -1293,9 +2109,9 @@ Author: Victor Seva Date: Wed Jun 19 15:00:12 2024 +0200 db_mysql: switch warn to dbg for log messages for opt_ssl_ca option - + fixes #3884 - + (cherry picked from commit be5172a84b02a1ab4fc7e97e7dc0813056302bdd) commit ec27c0207a364fd4f563707b740877ab77bfb5a5 @@ -1303,9 +2119,9 @@ Author: Victor Seva Date: Wed Jun 19 10:12:10 2024 +0200 rabbitmq: don't try to use ssl_socket functions to a tcp_socket - + fixes #3883 - + (cherry picked from commit 3a803770d4fb80347ba70dac94625b0e9aeab44d) commit e430a7b5eac9311cde1ea6a4d6f9fddacebe7302 @@ -1319,9 +2135,9 @@ Author: Daniel-Constantin Mierla Date: Wed Jun 19 10:43:12 2024 +0200 db_mysql: switch warn to dbg for log messages for opt_ssl_mode - + - GH #3884 - + (cherry picked from commit 8f98317e92da61160a1c416e0da45938a205d358) commit 1a6907f11b1c8455c14cd24f3a55aff7a3aa0184 @@ -1329,9 +2145,9 @@ Author: H.Yavari Date: Tue Jun 11 13:21:32 2024 -0700 ims_usrloc_pcscf: Update the module document - + - Fixing the db_url param value from int to string in admin document. - + (cherry picked from commit 04e065af3d46e4b0def5ed3de6502442466f04bc) commit 9cbe3176f5c8c298956ed2d4b83818ceb64af528 @@ -1339,10 +2155,10 @@ Author: H.Yavari Date: Tue Jun 11 13:05:00 2024 -0700 ims_icscf: add missing documents for database params - + - Adding missing ims_icscf database parameters to admin documents. - Change the default value for ims_icscf db_url to Kamailio default db_url value. - + (cherry picked from commit 57087e42f1b1cae86132c558aa9497f4839af7e0) commit c73ea949c046697916fd86eaf614b59075264b73 @@ -1350,7 +2166,7 @@ Author: herlesupreeth Date: Tue Jun 4 10:44:34 2024 +0200 ims_ipsec_pcscf: update security params of newly created ipsec tunnel in contact - + (cherry picked from commit bf863877f666dd8350e855bf933270b2fd8ad0fd) commit f861301003d96fec599bef936c2e1f181b170d9f @@ -1358,7 +2174,7 @@ Author: herlesupreeth Date: Tue Jun 4 10:43:52 2024 +0200 ims_registrar_pcscf: fix typo in comments - + (cherry picked from commit d17b97a864585782e03eedada6d226550630f7bb) commit 2606c4e07e598ea41cb5a8814e3587bf49f94c1e @@ -1366,9 +2182,9 @@ Author: Dennis Yurasov Date: Thu May 2 12:28:11 2024 +0300 siptrace: add SND_F_FORCE_SOCKET flag if send_sock_name/send_sock_address config parameters are used - + - send_sock_name/send_sock_address is ineffective for tcp based transports if SND_F_FORCE_SOCKET flag is not set - + (cherry picked from commit 1b97a0271b27794263b3eff61f4acfa81e66069f) commit be76a51422df3294c533accae1b6a621ee9d3a7d @@ -1376,10 +2192,10 @@ Author: Victor Seva Date: Wed Jun 12 10:13:56 2024 +0200 tls: remove confusing error message when trying to print socket for server - + > CRITICAL: [core/ip_addr.c:232]: ip_addr2sbuf(): unknown address family 0 > NOTICE: tls [tls_domain.c:1176]: ksr_tls_fix_domain(): registered server_name callback handler for socket [:0], server_name='' ... - + (cherry picked from commit 87c8290ab934fd27f8baebabaf66d1fb4168ba72) commit bdb3f32991f756b852d4bc695dc44e634e5ffc6c @@ -1393,11 +2209,11 @@ Author: Victor Seva Date: Thu Jun 13 17:01:36 2024 +0200 pkg/kamailio/deb: fix tls_wolfssl packaging - + * packages can't have '_' in name * distinguish grp module and deb module name '_' => '-' so tls_wolfssl => tls-wolfssl - + (cherry picked from commit 1d82805ef084d90e5ea14e4894f3e5076e29e2f3) commit 8a027b99cf8dc4f7e889aa7644f1f7699c7cb08e @@ -1405,9 +2221,9 @@ Author: Daniel-Constantin Mierla Date: Wed Jun 12 16:21:34 2024 +0200 core: tcp - change log levels for failing to set source for tcp connections - + - it is not possible always and it can fill the logs - + (cherry picked from commit 15403a543d83e337ee578ad37dc1d84316e4cf16) @@ -1444,7 +2260,7 @@ Author: Xenofon Karamanos <22965395+xkaraman@users.noreply.github.com> Date: Fri Jun 7 14:00:43 2024 +0000 pua_dialoginfo: Fix ruri length - + (cherry picked from commit 2c7c2d215ec9277fa706053579a38f058f15ae85) commit ed0cdf3a3c85a8d05aacec8917fe35a24dcdd62e @@ -1452,7 +2268,7 @@ Author: Bastian Triller Date: Fri Jun 7 13:24:17 2024 +0200 ims_ipsec_pcscf: Fix typo - + (cherry picked from commit 16e1b38fcc1593ad09eb03d86cd056ab8ff7f7f7) commit 5571ea0ff8877a8a19b3fb76030af19b59f141db @@ -1460,7 +2276,7 @@ Author: Daniel-Constantin Mierla Date: Tue Jun 4 16:29:50 2024 +0200 dmq_usrloc: reformat exported structures - + (cherry picked from commit e94812149c6f2867a5b23f1218a9af139590bf51) commit e8dc8506dbc4d8964e02c3be175d7f18f5fe69a4 @@ -1468,7 +2284,7 @@ Author: Xenofon Karamanos <22965395+xkaraman@users.noreply.github.com> Date: Tue Jun 4 09:37:01 2024 +0000 nathelper: remove magic constant - + (cherry picked from commit 3d187336f22e30800acefd28e4d0f98e0f677a49) commit eb4ec6f9305e334d9749e1fd56ad195c383cef77 @@ -1476,7 +2292,7 @@ Author: codenot Date: Wed May 29 10:10:28 2024 +0800 nathelper: fixed handle_ruri_alias_mode(1) cannot proper handle multi alias - + (cherry picked from commit 8e0b2e4b6450fa50bd573fa013dc888aaaccd2bf) commit 5999529be9ac2187dad465518bea3dee1b06d0f7 @@ -1484,7 +2300,7 @@ Author: Xenofon Karamanos <22965395+xkaraman@users.noreply.github.com> Date: Fri May 24 08:03:49 2024 +0000 core/resolve: Check dns_cache_init and choose appropriate functions - + (cherry picked from commit 06d583e356351ae9d8a559c9f5de3e57fb128a38) commit eb4a8e326b10d0c3e922cc524d8f46d2ba7e6eff @@ -1492,9 +2308,9 @@ Author: Daniel-Constantin Mierla Date: Sun Jun 2 21:28:19 2024 +0200 iims_registrar_scscf: include header for common c functions - + - GH #3855 - + (cherry picked from commit b508ef253cf996a5efd8bf13ded0c804f3557ada) commit 54f9adb03ebbacf35eb0785dc46b55ce5dd00deb @@ -1502,11 +2318,11 @@ Author: Bastian Triller Date: Mon Jun 3 08:48:40 2024 +0200 geoip2: Reload database before accessing it - + Re-add reloading of database. - + GH #3861 - + Fixes: 293193c55c ("geoip2: clang format module file") (cherry picked from commit 51dcab019a42e5b1f3b81247ca71ffcaf46180de) @@ -1515,7 +2331,7 @@ Author: Daniel-Constantin Mierla Date: Sun Jun 2 04:58:23 2024 +0200 geoip2: clang format module file - + (cherry picked from commit 293193c55caaf5d0c39dc456babe92f574b58b3b) commit 45f2e2670a3eac768b97b58eeec228b06273050a @@ -1523,11 +2339,11 @@ Author: Daniel-Constantin Mierla Date: Sun Jun 2 04:51:33 2024 +0200 geoip2: keep global structure per process - + - parsing db file allocates private memory - reworked reload to rely on a global counter - GH #3861 - + (cherry picked from commit baccbe0298f9fa46db285505bc4386f997de5a47) commit ae3be6af4ea8d50c29fe8e523c9548217956849a @@ -1535,7 +2351,7 @@ Author: Daniel-Constantin Mierla Date: Sat Jun 1 07:50:45 2024 +0200 geoip2: rename global lock variable - + (cherry picked from commit 4bd619d3517f129362de3ce50eed2620d5002b42) commit 2cc901e8be63791432a49f87d434eeb009e48d28 @@ -1543,9 +2359,9 @@ Author: Daniel-Constantin Mierla Date: Sat Jun 1 07:39:54 2024 +0200 geoip2: do not close global MMDB_s on destroy - + - GH #3861 - + (cherry picked from commit e066613cac308d1129baebc47d7c245b36eba4b0) commit 614b5601170578c2d0eb79e7e5c64e68d80d885b @@ -1553,7 +2369,7 @@ Author: Daniel-Constantin Mierla Date: Fri May 31 19:23:41 2024 +0200 geoip2: init MMDB_s global pointer and check on destroy - + (cherry picked from commit 8ba4ee4e00798ca015adc48542d0e4de8ed9daad) commit 5c9c13080be2b15252492dca388777d06915045c @@ -1561,13 +2377,13 @@ Author: Victor Seva Date: Thu May 30 16:24:03 2024 +0200 regex: fix pcre2 migration - + instead of reserving an array in pkg_mem and later copy the pointers to shm_mem just use shm_mem in the first place. - + fixes #3812 - + (cherry picked from commit d89333748662c0e7c72e3579d41fd14ef05c0fee) commit ebc8acef7617a69dcc06b163c47e88a99d835f9e @@ -1575,9 +2391,9 @@ Author: Daniel-Constantin Mierla Date: Wed May 29 10:18:44 2024 +0200 siputils: free head of params list for get_uri_param() - + - GH #3857 - + (cherry picked from commit 8363208fff7c101a2779ff64783e5b7dbf8ffd7c) commit 833b93563f43fa95e4bfdd175b144670b66a11cd @@ -1585,9 +2401,9 @@ Author: Daniel-Constantin Mierla Date: Wed May 29 10:15:21 2024 +0200 siputils: free head of params list for get_uri_param() - + - GH #3857 - + (cherry picked from commit d72a3fbc903da02ae3b26f3aae2ea228c9f8b255) commit f4eea76a15b220b15337b60a77f7978b0694b0fd @@ -1595,7 +2411,7 @@ Author: Bastian Triller Date: Tue May 28 14:17:58 2024 +0200 rtpengine: Fix extra process in pkg.stats - + When DTMF events socket is not configured, pkg.stats RPC method returns an empty entry. { @@ -1609,7 +2425,7 @@ Date: Tue May 28 14:17:58 2024 +0200 total_frags: 0 desc: } - + Fixes: 26f6e57c8f ("Register a new worker process for dtmf event listener") (cherry picked from commit e67f6048f4883d446df2d88fe7a7d7f2ff6daf8c) @@ -1618,7 +2434,7 @@ Author: Daniel-Constantin Mierla Date: Tue May 28 11:45:37 2024 +0200 htable: error on not finding htable in pv get - + (cherry picked from commit 24b27214231166366cceb88fcb3724298cc53b32) commit 9a7e3e54f1c52ee69c68b1165de115894c2afc55 @@ -1626,7 +2442,7 @@ Author: Daniel-Constantin Mierla Date: Mon May 27 09:11:48 2024 +0200 htable: error on not finding htable in pv set - + (cherry picked from commit 82cfea317fd8d02a6c94347bc1be18c8a06e580f) commit deb11ee814e1591698d120a113630aa7a9791ad7 @@ -1634,10 +2450,10 @@ Author: Rick Barenthin Date: Thu Apr 25 19:16:58 2024 +0200 usrloc: delete location_attrs in db_only mode on delete_urecord - + When calling delete_urecord in DB_ONLY mode the location_attrs are not deleted. This fix makes sure to delete location_attrs when calling db_delete_urecord is called. - + (cherry picked from commit 6b8f6d3b5d563d91234b8d4b7e155b7e74b9d313) commit d53843c75da9115a9c3cb6b1b909fd3827b6c437 @@ -1645,7 +2461,7 @@ Author: Sergey Safarov Date: Sat May 11 17:45:08 2024 +0300 db_mysql: fixed build on CentOS 7 - + (cherry picked from commit 767b3faee3af450d6482b919c81431ea6d707807) commit 5c4f687d0ed06d6c7a5696917982b1cf03f9c8bd @@ -1653,9 +2469,9 @@ Author: Daniel-Constantin Mierla Date: Fri May 10 12:45:25 2024 +0200 sipcapture: use local static buffers for ip address and port - + - GH #3835 - + (cherry picked from commit d1f377ff23f491bfd5162cb7bf510759440dd8e5) commit f9bd2c5a4341913ac3e887e0324a19d5cd071a12 @@ -1663,7 +2479,7 @@ Author: Daniel-Constantin Mierla Date: Thu May 9 08:17:15 2024 +0200 tcpops: reformat exported structures - + (cherry picked from commit 9b087fd618ab6c5cbd6a29c352b09c7198f1b594) commit c8e4fe87985a413dfe6871463c31375750d3a6f2 @@ -1671,9 +2487,9 @@ Author: Victor Seva Date: Thu May 30 14:59:05 2024 +0200 dialplan: don't call free on empty pcre pointer - + fixes #3851 - + (cherry picked from commit 630a6f2c11c10c4f3be3570553d86486942d60fe) commit c1c8c066b29798189a50dd9b4f27c5af574d991d @@ -1681,7 +2497,7 @@ Author: Xenofon Karamanos <22965395+xkaraman@users.noreply.github.com> Date: Mon Apr 29 13:37:24 2024 +0000 db_cluster: Update log levels - + (cherry picked from commit 467dbf3e1be16d5a760178d0801834ac67bad888) commit 3a34b468ad93904c507bd0fc7ef592b25321807f @@ -1707,7 +2523,7 @@ Author: Henning Westerholt Date: Tue May 7 16:14:46 2024 +0000 sipcapture: fix default DB URL docs - + (cherry picked from commit aeeeb0c2f46c2575639dd725bef78fac64219a07) commit c3f424bd6c0f8b9a2557cd58a3e3f5ac586d8c99 @@ -1721,7 +2537,7 @@ Author: Daniel-Constantin Mierla Date: Tue May 7 19:32:39 2024 +0200 tcpops: note about execution of event routes by TCP main process - + (cherry picked from commit be9af338e3afdab1045cdd7c30a72a9ecddcb680) commit 1ee553a6f406af5eb4838a8c46a992c4099dd30b @@ -1735,9 +2551,9 @@ Author: Daniel-Constantin Mierla Date: Tue May 7 16:55:24 2024 +0200 ctl: info log on ECONNRESET (connection reset by peer) - + - not a type of error that can be controlled by kamailio - + (cherry picked from commit 446c75e0e2194b6e42d768d2e3c79b5f0222905f) commit 24e43d27544bdfa1acfce7ebb8b6e3ba7841fc13 @@ -1745,7 +2561,7 @@ Author: Daniel-Constantin Mierla Date: Tue May 7 16:49:49 2024 +0200 ctl: removed level and function names from log messages - + (cherry picked from commit 65bafaffd6bcfebc508b774cfbb78120e68bb3f0) commit 11f0cfec4d2fc6043d282cdb2258520559f0fcd1 @@ -1753,7 +2569,7 @@ Author: Daniel-Constantin Mierla Date: Sat May 4 20:18:18 2024 +0200 core: parse/contact: jump to error on too many contacts - + (cherry picked from commit f69b22d44cb5abc803c2b58790dd33f2310c1c59) commit d75dba611808322356fc8d1ebc9f8c30b4124a15 @@ -1761,7 +2577,7 @@ Author: Daniel-Constantin Mierla Date: Fri May 3 14:57:47 2024 +0200 core: parser/contact - basic validation tests for contact uri - + (cherry picked from commit fc52a54370c085d6fa951da876eee99580677922) commit 5b97d29f1bbac2656eba506c7fd94b412dfb9b7f @@ -1769,9 +2585,9 @@ Author: Daniel-Constantin Mierla Date: Fri May 3 14:36:29 2024 +0200 core: parser/contact - add limit for max number of contacts - + - defined to 256 - + (cherry picked from commit d6b0beb5a219ae57a62e9e7201a6ec1fe66e5a96) commit 244319c67a191cf1f093b2220fa1a8579179d734 @@ -1779,7 +2595,7 @@ Author: Daniel-Constantin Mierla Date: Thu May 2 09:27:41 2024 +0200 pua: check if local requests are dropped and free the param - + (cherry picked from commit 53e1a29c265df1489c9bd91deddc0719f8ca2092) commit 46c8e1a5b0e11162eee2c0b201bb535529397a0a @@ -1787,7 +2603,7 @@ Author: Daniel-Constantin Mierla Date: Wed May 1 07:00:58 2024 +0200 uac: check if local requests are dropped and free the param - + (cherry picked from commit 00aac8d48370fac356eecff535835d918c631cc5) commit 965a02ba4aca9283e4f43f8153ebeb81721835f1 @@ -1795,10 +2611,10 @@ Author: Daniel-Constantin Mierla Date: Wed May 1 06:20:43 2024 +0200 presence: check if the local notify was dropped in event route - + - free tm cb parameter on drop - related to GH #3403 - + (cherry picked from commit d12fc31056cb37aac347ec05f9ada7bafa5f52de) commit e54b03fc41bc55486430b09d9a4839bcd52278fa @@ -1806,7 +2622,7 @@ Author: Daniel-Constantin Mierla Date: Wed May 1 06:08:28 2024 +0200 pv_headers: print also the new TMCB_LOCAL_REQUEST_DROP in debug function - + (cherry picked from commit 68624c2da093ab789d4e8d35df65ef1bce024bca) commit a86d7d2bad119fc4cccf5c19719b4457ab066a04 @@ -1814,7 +2630,7 @@ Author: Daniel-Constantin Mierla Date: Wed May 1 06:07:26 2024 +0200 tm: cb_flags made unsigned for uac_req - + (cherry picked from commit ebd1c6c75a1b832ce85d576aad134b99d47b5738) commit f9ca6854d88e4fcc161e1083a953f47142fca90d @@ -1822,7 +2638,7 @@ Author: Daniel-Constantin Mierla Date: Wed May 1 05:57:46 2024 +0200 tm: cb flag to mark local uac on request drop - + (cherry picked from commit f5da773c5fa29edbf9d0e65a83a62f495928ddec) commit fc54fdcd67e244ad075c54b5f24bb6442998b4cb @@ -1830,9 +2646,9 @@ Author: Daniel-Constantin Mierla Date: Wed May 1 05:28:18 2024 +0200 tm: free new buffer on drop for local requests - + - GH #3403 - + (cherry picked from commit ee06666c43d96029315dae7618e10d381265a85a) commit 3aac0c7379577480fb09902bfb31b9aed49e7f88 @@ -1840,7 +2656,7 @@ Author: Jannik <40364587+volkland@users.noreply.github.com> Date: Tue Apr 30 12:28:20 2024 +0200 sipcapture: docs - fix default value for parameter - + (cherry picked from commit 265c948286f2df5136179c95fbb1d7f1255e4c71) commit 4e98a4ae06ec0bbff408af211680c97e1f41ca11 @@ -1848,7 +2664,7 @@ Author: Daniel-Constantin Mierla Date: Tue Apr 30 10:19:35 2024 +0200 ims_ipsec_pcscf: cascade on options to get the uri for fill_contact() - + (cherry picked from commit 60d2ab6464657abf38136a771c297c6f5536e27a) commit 4b3620d0f0d7d636bf1d9e4c2b19bf50b8ac9da0 @@ -1856,9 +2672,9 @@ Author: Alexander Couzens Date: Mon Mar 4 17:33:50 2024 +0100 ims_registrar_scscf: free_uint_fixup: fix memleak/freeing the wrong parameter - + The free_uint_fixup() freed the wrong parameter in the past. - + (cherry picked from commit c3e6c1edc7531406208efe2965243e6e81506127) commit 569662043b656063be97d0ea0e22dd8f6082320e @@ -1866,7 +2682,7 @@ Author: Alexander Couzens Date: Mon Mar 4 17:32:00 2024 +0100 ims_registrar_scscf: fix typo in function name uint_fixup - + (cherry picked from commit 6f908f05d4691abcb1b3a745048d3cc2a9996676) commit 8bb9f0601eb94597f3bfab4ede97971de83cc1e7 @@ -1874,10 +2690,10 @@ Author: Alexander Couzens Date: Mon Mar 4 17:21:25 2024 +0100 ims_registrar_scscf: refactor save_fixup4 - + Rename function to match argument number. Use assign_save_fixup3_async instead of the code copy - + (cherry picked from commit 82a6d7ea6edbaca60879a38c5e74e40920e89342) commit 4aa0920b2e573661959d5c9149ee04177cae8264 @@ -1885,7 +2701,7 @@ Author: Alexander Couzens Date: Fri Mar 1 17:38:21 2024 +0100 ims_registrar_scscf: fix uninitialized arguments in save() - + The script "save" command can be used with different arguments: 2, 3 and 4. But internally for all save() calls the exact same function is use, w_save(). @@ -1895,9 +2711,9 @@ Date: Fri Mar 1 17:38:21 2024 +0100 is called with 2 uninitialized arguments *mode, *c_flags. mode is unused, seems a legacy argument. c_flags is referenced resulting in a crash if not null. - + Use separate wrapper functions to handle different argument number. - + Fixes: a627c9a04a74 ("ims_registrar_scscf: Extend save() with optional flag") (cherry picked from commit 20a75004d53a06da0f22b11804a4d83496ad8919) @@ -1906,7 +2722,7 @@ Author: Daniel-Constantin Mierla Date: Mon Apr 29 10:08:29 2024 +0200 ims_ipsec_pcscf: handle tls for replies - + (cherry picked from commit 48dab490965fa7f2f7200d95edd7dbb1407b2536) commit 9493dc0c895d1dde50239c903fd976c8c6e0325f @@ -1914,7 +2730,7 @@ Author: Daniel-Constantin Mierla Date: Mon Apr 29 06:49:47 2024 +0200 ims_ipsec_pcscf: updated comments for ipsec_forward() flags - + (cherry picked from commit f7f93828993b5975dfe5f26ad63ba6c489aa69f7) commit 7e202ec38593462559e81db7b0f97e46567f379d @@ -1922,7 +2738,7 @@ Author: Daniel-Constantin Mierla Date: Mon Apr 29 06:46:56 2024 +0200 ims_ipsec_pcscf: docs updated for ipsec_forward() flags - + (cherry picked from commit 575b17d23cd5fa060f775bc56b42c735048bc849) commit 1387c32dfa601496c38f9c10d554c490c867d4d7 @@ -1930,12 +2746,12 @@ Author: Daniel-Constantin Mierla Date: Mon Apr 29 06:32:07 2024 +0200 ims_ipsec_pcscf: decouple IPSEC_FORWARD_USEVIA and IPSEC_TCPPORT_UEC for requests - + - both flags should be avaible for use at the same time in ipsec_forward() - for request IPSEC_FORWARD_USEVIA gets the protocol from the next hop address - + (cherry picked from commit ab261540d656ed456bac8876f77f940457a9baf6) commit 8af0605ade36566597ff691a2adc1e524081a6fa @@ -1943,7 +2759,7 @@ Author: Daniel-Constantin Mierla Date: Sun Apr 28 23:28:38 2024 +0200 ims_registrar_scscf: init variable to fix analyzer warning - + (cherry picked from commit 8558947034f16b162c15eda39d18f5f5df4ef562) commit 89343b6031f186c59ecd6707109bd0269762075f @@ -1951,39 +2767,39 @@ Author: Ostap Date: Mon Apr 29 00:15:28 2024 +0300 modules/statsd: ensure statsd failures do not stop execution (#3819) - + * modules/statsd: avoid stopping flow when sending statsd metric fails - + Currently statsd functions return bool: `true` or `false` depending when the function succeeds or fails respectively. - + This value gets implicitly converted to `int`: `true` -> `1`, `false` -> `0`. - + For Kamailio `1` means succesfull execution, but `0` means to stop processing messages, which is not what we want as statsd should not impact flow execution. Instead we want to return `-1` which signifies error, but the flow continues. - + * modules/statsd: do not fail module initilization when statsd init fails - + statsd_init executes `statsd_connect` which tries to connect to statd server. - + If connection fails then kamailio fails to start. This is not the desired behaviour as: 1. Kamailio should continue working even if statsd server is down, metrics should not impact runtime. 2. `statsd_connect` is also re-executed each time we try to send the metric https://github.com/salemove/kamailio/blame/master/src/modules/statsd/lib_statsd.c#L76, so it's initial result is not essential. - + Note, that before 5.8 the result of init was already ignored due to implicit conversion of `false` to `0` until after https://github.com/kamailio/kamailio/commit/0186246fce8f0e4bb46b30c05174983cd957a3ba was introduced (which could be considered a breaking change even if it seemingly fixes a bug in conversion). - + (cherry picked from commit 5e66ba23851f115bcb88d7e3f71f78ab33fc1e30) commit 620aa3f2a0faf3a4d54908bac0aa3ffcd8376ab5 @@ -1991,7 +2807,7 @@ Author: Daniel-Constantin Mierla Date: Fri Apr 26 14:35:22 2024 +0200 ims_usrloc_scscf: enclose examples in dotted lines for better visibility - + (cherry picked from commit 8506a6fe781e6e0b0b1418f4087db50480db6b57) commit 1dd7c4038eb9a0c7eec506994a58a56d04e6cee5 @@ -1999,7 +2815,7 @@ Author: Daniel-Constantin Mierla Date: Fri Apr 26 14:24:16 2024 +0200 ims_usrloc_scscf: reformat exported structures - + (cherry picked from commit 15d859e1e96552fca2708cf56047021beae29711) commit b2352bc1c6f3eff3aba85a087107f4ca29cedc22 @@ -2007,7 +2823,7 @@ Author: Henning Westerholt Date: Fri Apr 26 05:54:27 2024 +0000 uid_auth_db: spelling fix in documentation - + (cherry picked from commit 9f28450312749dfbc021a8cbc23472c8a39d3fef) commit 0bf03aa1987b9cff2fc0d776605620e26c163609 @@ -2015,7 +2831,7 @@ Author: Henning Westerholt Date: Fri Apr 26 05:53:30 2024 +0000 core: spelling fix in comment and log message - + (cherry picked from commit db176a4918c0b500f5f051cad16fd8d442450ab7) commit cafe437dcb637b0e571a2d2ffd04d911584404d9 @@ -2023,13 +2839,13 @@ Author: S-P Chan Date: Mon Apr 29 09:24:16 2024 +0200 tls: clear thread-local variables up to tls_pthreads_key_mark - + - other libraries may set thread-locals via pthread_setspecific - assume that tls_pthreads_key_mark demarcates libssl's values - only clean thread-local values up to tls_pthreads_key_mark - + Currently only used by app_python[s] - + (cherry picked from commit fe6f4fcde2fa06a3c00479cef169c27dc32ae490) commit 03ff5051b640d2478dd68ea89ad74d516752ab0f @@ -2043,7 +2859,7 @@ Author: Daniel-Constantin Mierla Date: Thu Apr 25 13:49:58 2024 +0200 tcpops: removed unused variable introduced recently - + (cherry picked from commit fe8f052c29528b656062927626f9784b32b7c8f6) commit 3ff024fd0057d3a9d045d3f20df5d1d7f7c9c7aa @@ -2051,7 +2867,7 @@ Author: Daniel-Constantin Mierla Date: Wed Apr 24 21:34:28 2024 +0200 regex: reformat exported structures - + (cherry picked from commit 0ebfddd20b43396d602b4c68a88f7c2bc58ed211) commit c8f685359c411ac43000dd77cbc2e4f95b6cb3f4 @@ -2059,9 +2875,9 @@ Author: Daniel-Constantin Mierla Date: Tue Apr 23 12:08:30 2024 +0200 regex: allocate pcres array - + - GH #3812 - + (cherry picked from commit 2cc62133db4f6875f55e73e044f37dafbb2274c2) commit eaacc171adbcd84fb2b95b4c182cd1e954624e2b @@ -2069,7 +2885,7 @@ Author: Daniel-Constantin Mierla Date: Tue Apr 23 11:49:23 2024 +0200 regex: init globals for safer shutdown on failure - + (cherry picked from commit 84517c14ca38a8371c67b858077a42019c2217a8) commit 794c2edeaffe059bf8de6ab1d3df5db003ed4cb0 @@ -2077,9 +2893,9 @@ Author: Daniel-Constantin Mierla Date: Tue Apr 23 11:19:30 2024 +0200 core: fmsg - parse loopback ip when initializing faked msg structure - + - GH #3817 - + (cherry picked from commit 66b3c04a9653425b1602c82dd2456a7eb7cf59d1) commit 7e987d8937349246f2abfa041679f568344ff402 @@ -2087,7 +2903,7 @@ Author: Daniel-Constantin Mierla Date: Tue Apr 23 10:42:02 2024 +0200 pv: use global tcp connection callback for event route on $conid - + (cherry picked from commit f5c05a68ae72881ab0691bb8488112356fc67c79) commit 069de99576b5f8bff002176331ed2f545afe8158 @@ -2095,7 +2911,7 @@ Author: Daniel-Constantin Mierla Date: Tue Apr 23 10:36:35 2024 +0200 core: tcp - set a global shortcut to tcp connection for event route - + (cherry picked from commit d114d11724dc4157e7e5809504531d26da6bcc57) commit c9fe59d6cd73179aa75e21b3b215bc0465b182aa @@ -2103,7 +2919,7 @@ Author: Daniel-Constantin Mierla Date: Tue Apr 23 10:21:20 2024 +0200 tcpops: reworked some debug messages - + (cherry picked from commit 27e3b7f3f82957c6dc80f2ff89c40bdd87cecb81) commit db2e96ec2aacde1bd50b65ea6357388bad39e86f @@ -2111,7 +2927,7 @@ Author: Daniel-Constantin Mierla Date: Tue Apr 23 10:19:29 2024 +0200 core: tcp - keep connection id on event route cb structure - + (cherry picked from commit 11e7d71e5c2ee9428298658ed3b9a0f625d40f00) commit 28bbcd5a50f45b8217125481706180a76323dc44 @@ -2119,15 +2935,15 @@ Author: Rick Barenthin Date: Wed Apr 17 13:02:02 2024 +0200 usrloc: check on db delete the return value of memchr - + When inserting into the database the AOR is split at the @ sign and if there is no @ sign in the AOR only the domain part is filled and the user part is left empty. - + But for deleting this is not done and the query failed to be executed and the AOR is not deleted. This PR add this behaviour of only comparing against the domain part if the AOR doesn't contain a @ sign. - + (cherry picked from commit 49276a1f43b1a3bf4a8d681888df964000360c79) commit 3052565e3ce14d5d3c45d790877a562185085548 @@ -2135,7 +2951,7 @@ Author: Xenofon Karamanos <22965395+xkaraman@users.noreply.github.com> Date: Wed Apr 10 11:14:45 2024 +0000 tcp_main: Match wss protocol - + (cherry picked from commit 175d755c40bc50b78b2cf4f18ad22429289af90d) commit 7d103cf3887401fca32d95f7ea7ee10f28e9e127 @@ -2143,7 +2959,7 @@ Author: Xenofon Karamanos <22965395+xkaraman@users.noreply.github.com> Date: Wed Apr 10 11:13:32 2024 +0000 core/forward: Match protocol when forwarding - + (cherry picked from commit d81e5113884b933251499630d112ec5b1150b8a4) commit a19e6e0e49d9881ab990d23ad31a95773fe1a00b @@ -2151,7 +2967,7 @@ Author: Xenofon Karamanos <22965395+xkaraman@users.noreply.github.com> Date: Mon Apr 8 09:42:49 2024 +0000 tcp_main: Update comment docs - + (cherry picked from commit 0a28a93c6e060081267dc686e342d45ef03358e7) commit 0c070443b585c597d2d6249ac6ac32490d9c7f48 @@ -2159,7 +2975,7 @@ Author: Xenofon Karamanos <22965395+xkaraman@users.noreply.github.com> Date: Mon Apr 8 09:29:57 2024 +0000 tcp_main: Add proto argument to tcpconn_exists function - + (cherry picked from commit 6779efd430178adff0ae438d178e38c003e4e05c) commit 2661594bf7f31558e6ac7524f33ebb358aefce21 @@ -2167,7 +2983,7 @@ Author: Xenofon Karamanos <22965395+xkaraman@users.noreply.github.com> Date: Fri Apr 5 13:23:56 2024 +0000 tcp_main: Add protocol argument for searching tcp/tls connections - + (cherry picked from commit 4a40b16d4f9bef9bc75d3272c83878e6348aa0b8) commit d2cf78f5c70977639f3b7f66b852350b764e4b13 @@ -2176,7 +2992,7 @@ Date: Sat Apr 13 01:26:13 2024 +0530 rtpengine: fix pkg mem leak in send_rtpp_command() - freed request.s after sending request to websocket - + (cherry picked from commit b4753ae4216b0c960ac094f4be8232fb4d0147b0) commit 595d3f472179402dce7a51672c2dbfbcf3b54bd5 @@ -2184,7 +3000,7 @@ Author: Xenofon Karamanos <22965395+xkaraman@users.noreply.github.com> Date: Thu Apr 11 10:47:11 2024 +0000 corex: Fix unknown af in list_sockets - + (cherry picked from commit 8bc64a9e6820243336387d9cd9acf81f24d89993) commit 800ed174b9402d1b253b2cb4ab04b5fb7030dc8d @@ -2192,7 +3008,7 @@ Author: Daniel-Constantin Mierla Date: Fri Apr 5 21:41:21 2024 +0200 ims_ipsec_pcscf: log error message made info - + (cherry picked from commit 92d3573b500374d100639484e5a84cb640dc6b1d) commit 8d312ded02559b325cdd691bde61c54148b077a5 @@ -2200,7 +3016,7 @@ Author: Daniel-Constantin Mierla Date: Fri Apr 5 16:19:42 2024 +0200 siputils: tel2sip2() - memset to 0 pkg allocs and recompute len of new uri - + (cherry picked from commit d1118064d04bb77c818540e68edf1766db1d560a) commit 7295607e680ad1dd5290b15dab7fed77c65bfb88 @@ -2208,7 +3024,7 @@ Author: Daniel-Constantin Mierla Date: Fri Apr 5 07:54:12 2024 +0200 core: parser/sdp - rename parameter to suggest better its role - + (cherry picked from commit b03ec73589c12e566b11ce2c653401daa915c805) commit 855c76780c4399d6d9881ce3c525a7df56e111c4 @@ -2216,7 +3032,7 @@ Author: Daniel-Constantin Mierla Date: Thu Apr 4 13:40:13 2024 +0200 sdpops: reformat the codecs map - + (cherry picked from commit 359a442e14a156b0bcf60dc5b2580cbc57924e34) commit f337f13cdbc7e8805c0130dbae3befaf4b684c7c @@ -2224,15 +3040,15 @@ Author: Jannik Volkland Date: Thu Apr 4 11:06:10 2024 +0200 ndb_redis: docs - refine docs regarding client certificates [skip ci] - + The created ssl context does not use client certificates [1,2] which is against the default in current Redis configurations [3]. The used Redis server therefore needs to be configured to not use tls-auth-clients [3]. - + There is also a small typo in "ac_path" which was fixed to "ca_path". - + [1]: https://github.com/kamailio/kamailio/blob/8047c958b42ea5af2e8f9ede0152f892ac0eea3a/src/modules/db_redis/redis_connection.c#L168 [2]: https://github.com/kamailio/kamailio/blob/8047c958b42ea5af2e8f9ede0152f892ac0eea3a/src/modules/db_redis/redis_connection.c#L212 [3]: https://redis.io/docs/management/security/encryption/#client-certificate-authentication - + (cherry picked from commit 6faa180661e799187eff3a498f8b13e96719fa92) commit bb48da13adfe36716c3d958ed1d9c410424f4d19 @@ -2240,15 +3056,15 @@ Author: Jannik Volkland Date: Thu Apr 4 11:03:32 2024 +0200 db_redis: docs - refine docs regarding client certificates [skip ci] - + The created ssl context does not use client certificates [1,2] which is against the default in current Redis configurations [3]. The used Redis server therefore needs to be configured to not use tls-auth-clients [3]. - + There is also a small typo in "ac_path" which was fixed to "ca_path". - + [1]: https://github.com/kamailio/kamailio/blob/8047c958b42ea5af2e8f9ede0152f892ac0eea3a/src/modules/db_redis/redis_connection.c#L168 [2]: https://github.com/kamailio/kamailio/blob/8047c958b42ea5af2e8f9ede0152f892ac0eea3a/src/modules/db_redis/redis_connection.c#L212 [3]: https://redis.io/docs/management/security/encryption/#client-certificate-authentication - + (cherry picked from commit 40a50243f0bae782b7acd97cf0a9b1138185068b) commit 215af59832efc6e485563b55e3af9d209121d0c5 @@ -2256,7 +3072,7 @@ Author: Stefan-Cristian Mititelu Date: Mon Apr 8 11:35:38 2024 +0300 pdb server: allow carrier id 0 - + (cherry-picked from commit 60ded00a3b574a08457a696334d11d668595cc0b) @@ -2275,7 +3091,7 @@ Author: Daniel-Constantin Mierla Date: Wed Apr 3 12:18:47 2024 +0200 core: msg translator - duplicate reply via xavp params and handle errors - + (cherry picked from commit 5f83d4f9c447f5a7e3de8336dc0e076b10e43833) commit 1caec71aeddb7f65afb93bf05cb9e0aae2a2c0cd @@ -2283,7 +3099,7 @@ Author: Daniel-Constantin Mierla Date: Wed Apr 3 12:16:18 2024 +0200 core: xavp - added missing closing parenthesis in log messages - + (cherry picked from commit 3b09fd343575c56d9658a61efebd4851662de338) commit 4708758f1c428cc94d1abdf9bb706c7c509efebe @@ -2309,7 +3125,7 @@ Author: Daniel-Constantin Mierla Date: Thu Mar 28 08:30:17 2024 +0100 blst: reformat exported structures - + (cherry picked from commit e39557c96d2f419184c826d779f1a3309acc4269) commit c0c8ee05ab25256b9154d2056ee04b07f3f2290a @@ -2317,7 +3133,7 @@ Author: Daniel-Constantin Mierla Date: Wed Mar 27 08:19:03 2024 +0100 smsops: short reference section about variables - + (cherry picked from commit 9a94930ae1168d5df79e3dc1414841cdf23a2eba) commit b21a7aaa467f2b76a52308557657c65274e34087 @@ -2325,7 +3141,7 @@ Author: Daniel-Constantin Mierla Date: Tue Mar 26 19:17:23 2024 +0100 smsops: reformat module exports structures - + (cherry picked from commit 9848d43cb367d6901a0b8c727759feb8a8fad930) commit 3f3c1940788a4713705169f8d96ae9a13ee2bad1 @@ -2333,9 +3149,9 @@ Author: Daniel-Constantin Mierla Date: Mon Mar 25 23:25:19 2024 +0100 db_mysql: right position for define KSR_MYSQL_OPT_RECONNECT - + - follow up of previous commit - + (cherry picked from commit 14dc277e29a170b9ac51e7dda07fa25cbd9be048) commit 557d7e83c01c930df608b9d96791553d8f2bf724 @@ -2343,10 +3159,10 @@ Author: Daniel-Constantin Mierla Date: Mon Mar 25 23:07:55 2024 +0100 db_mysql: MYSQL_OPT_RECONNECT is deprecated by MySQL 8.0.34 - + - https://dev.mysql.com/doc/c-api/8.0/en/c-api-auto-reconnect.html - MariaDB seems to still have it - + (cherry picked from commit da3d6e9a74b63fdb7b1c4063d6be017f1ce42bea) commit c9edb30ffa0c9544a10d0e72aabe84a1b3b2a103 @@ -2354,7 +3170,7 @@ Author: Daniel-Constantin Mierla Date: Sat Mar 23 21:38:00 2024 +0100 keepalive: reformat module exports structures - + (cherry picked from commit dd221a6e5162838b979fd38ffdfb750663aef869) commit 3f44cabcfc0abc83ae1971ac74fbb0bd36829ce4 @@ -2362,7 +3178,7 @@ Author: Elena-Ramona Modroiu Date: Sat Mar 23 09:58:46 2024 +0100 corex: fix conditions for dns_cache modparam srv attributes - + (cherry picked from commit 8114b2016d032484edafe4edd04fb02d52cfd058) commit dbf9208f3a402844c9981fb7ed09493a1338dfdd @@ -2370,7 +3186,7 @@ Author: Elena-Ramona Modroiu Date: Sat Mar 23 09:51:47 2024 +0100 core: resolve/create_srv_pref_list() - insert at correct position in list - + (cherry picked from commit f35cf8904119dcf582ea2451648de5fef095466b) commit 0e00ae1db0242fc01e6f8c332e3920fd9465b3f9 @@ -2378,7 +3194,7 @@ Author: Daniel-Constantin Mierla Date: Fri Mar 22 10:25:48 2024 +0100 core: socket info - parse advertise ip part to get address family - + (cherry picked from commit 5f901c3557f9f875545d82a7ab00f6d0c5c1fe52) commit c48fbea981c7b0bd281cd1fc2abedcda41d92c13 @@ -2386,7 +3202,7 @@ Author: Daniel-Constantin Mierla Date: Wed Mar 20 13:40:28 2024 +0100 gcrypt: docs - module name used for section ids - + (cherry picked from commit 68c69966c38b56775a3966d07c33ff94c2a8ba95) commit 613e2cdfc3ae9242d259bf8b67b6ed715c0c0ad8 @@ -2394,7 +3210,7 @@ Author: Xenofon Karamanos <22965395+xkaraman@users.noreply.github.com> Date: Wed Mar 27 15:48:50 2024 +0000 file_out: FIx ‘for’ loop initial declarations error - + (cherry picked from commit ae04ccac92225a1e7b573a28ded555789e8604cd) commit f4d44a9201a79acf0620a005008f2594ff8d26ee @@ -2402,7 +3218,7 @@ Author: Xenofon Karamanos <22965395+xkaraman@users.noreply.github.com> Date: Wed Mar 27 15:48:25 2024 +0000 tls: Fix ‘for’ loop initial declarations error - + (cherry picked from commit 9f2abc69e27c4b3246628138ec81fced81d7bc7a) commit 3fac5afc42a606391d6a7c0337ef5e4e136d6b80 @@ -2410,7 +3226,7 @@ Author: Xenofon Karamanos <22965395+xkaraman@users.noreply.github.com> Date: Fri Mar 22 10:24:05 2024 +0000 file_out: Cast to correct type of str - + (cherry picked from commit 4ada818099b5b7cb7deff1b1ce93b5aacaa1b84e) commit 028ba8f9d6bc40dcd47e6a0e5b40e5b3e2ea7b17 @@ -2418,7 +3234,7 @@ Author: Daniel-Constantin Mierla Date: Fri Mar 1 11:42:45 2024 +0100 file_out: additional checks for silenting warnings - + (cherry picked from commit 19894425684504e2a19622ae5a9cdfc565f16fd3) commit 814f5bdc9ee5d4594ffb0fd72843bca7b5fa79ea @@ -2426,11 +3242,11 @@ Author: Victor Seva Date: Sat Mar 23 00:00:44 2024 +0100 dmq: fix inter-lock on error - + triggered by intermittent DNS resolution error. dmq workers were getting locked at dmq_notification_callback_f() due to this missing lock_release() - + (cherry picked from commit 0d240e4e0dc3184ef37d338ba6872d295d6b16f2) commit 7bcef8ef487a713f5b6c6fadb7a3166ed41fb136 @@ -2444,7 +3260,7 @@ Author: Daniel-Constantin Mierla Date: Tue Mar 19 17:39:19 2024 +0100 ndb_redis: break on finding a server via sentinel inside redisc_reconnect_server() - + (cherry picked from commit 951ab118bb7d9955f8e69b66bec1f0c107d474a2) commit 86df978bc9842687035d6673ee1b71e542dcbd71 @@ -2452,7 +3268,7 @@ Author: Daniel-Constantin Mierla Date: Tue Mar 19 14:29:11 2024 +0100 ndb_redis: fix index on parsing sentinel address inside redisc_reconnect_server() - + (cherry picked from commit c8f3b496a05ae5bf29341dc7e2630f951d4effc5) commit a0dfa0ac81ed4aec33863fc20cf5cb3ee077a90c @@ -2460,7 +3276,7 @@ Author: Daniel-Constantin Mierla Date: Tue Mar 19 14:26:27 2024 +0100 ndb_redis: clang-format for WITH_SSL code - + (cherry picked from commit e54051d698b059aa168229493dc2d6bf3cdd757c) commit a7d4ce95b383dc26c547ef9ee07b05d51abc50f9 @@ -2468,7 +3284,7 @@ Author: Daniel-Constantin Mierla Date: Tue Mar 19 10:21:51 2024 +0100 keepalive: small formatting updates and comments to the ka dest structure - + (cherry picked from commit cee82c92b06a026b88fea654944f6146eb5cb4d8) commit 0b3aa00775a5c0b4b1dc4990f4c26bc637fc6de5 @@ -2476,9 +3292,9 @@ Author: Daniel-Constantin Mierla Date: Tue Mar 19 09:51:28 2024 +0100 keepalive: proper storing of last up/down timestamps - + - GH #3790 - + (cherry picked from commit 9e2a0ee545646bd4491ecdbe58d7fea770764b54) commit 91b0962679092f28abb5022d1505372356460f7d @@ -2486,7 +3302,7 @@ Author: Daniel-Constantin Mierla Date: Mon Mar 18 11:02:07 2024 +0100 acc: more log messages of failure arsing extra acc string - + (cherry picked from commit 04a73ace6572dd5c95a8f50b39b2ce712f7ebe84) commit 5daadecd248322e5f8eaf15555e46692f3d1c267 @@ -2494,12 +3310,12 @@ Author: Axel Sommerfeldt Date: Fri Mar 8 12:32:07 2024 +0100 ims_ipsec_pcscf: TLS support in ipsec_forward() improved - + This patch was initially done by Herle Supreeth in his fork but isn't present upstream yet: https://github.com/kamailio/kamailio/commit/8b9a2977e111d9adb8595d98ab59f8c8eb033120 - + See also: https://github.com/kamailio/kamailio/issues/3772 - + (cherry picked from commit 3154a0aba5543cab75153429bc8ec617c3484f71) commit 7df7508d7d2b7b9495dafab8b515a5721bd669ee @@ -2508,7 +3324,7 @@ Date: Mon Mar 11 14:22:37 2024 +0300 dispatcher: refine documentation - more clear documentation for the new ds_is_from_list flags - + (cherry picked from commit 761e963c0f7d9bf1b66c1ef18a409756b919ae2c) commit 90f8117f9669069b4dab7e9d747dfa06245ec8a0 @@ -2516,7 +3332,7 @@ Author: Daniel-Constantin Mierla Date: Fri Mar 15 21:24:42 2024 +0100 ctl: handle int input for double storage - + (cherry picked from commit 1380a4a0d18159c7130b70c0216134a253ad83f7) commit 0af55b0eac8c3457db859a9c37fea211ece91b8a @@ -2524,7 +3340,7 @@ Author: Stefan-Cristian Mititelu Date: Tue Mar 5 16:30:01 2024 +0200 pdb server: Return negative carrierid for failures. Clang format - + (cherry-picked from commit 88b698e0f62c39ed60af9f0a4fb3ca2dc6867d8f) commit 6410f375cd6d1e357afeb9e100bd3a3c51321280 @@ -2532,7 +3348,7 @@ Author: Stefan-Cristian Mititelu Date: Tue Mar 5 16:14:11 2024 +0200 pdb: Return negative carrierid for failures - + (cherry-picked from commit bf78b619ae28924361fb2c757a4d09eb1a39f5cd) commit d6cd0859158a8013e998ec779e956a550b493934 @@ -2540,7 +3356,7 @@ Author: Xenofon Karamanos <22965395+xkaraman@users.noreply.github.com> Date: Thu Mar 14 16:47:28 2024 +0000 file_out: Fix var position and initialize - + (cherry picked from commit e36b2232e9b097794845659f71543bc57ef58a35) commit f9b1cca33a45560f06b2708975c624da9728b6f5 @@ -2548,11 +3364,11 @@ Author: Oded Arbel Date: Sun Mar 10 19:55:20 2024 +0200 pkg/kamailio/obs: Allow builders to disable wolfssl module [skip ci] - + Building the WolfSSL module should be optional, even if it is on by default, builders should be able to choose to not need to install 4th party repositories. - + fixes #3781 - + (cherry picked from commit 5392dbf8070abf36734d9c857924df91186bc2dd) commit 45ee72fcf0ae8aeb135196ef8729fe0cea14048e @@ -2560,11 +3376,11 @@ Author: Daniel-Constantin Mierla Date: Sat Mar 9 20:11:07 2024 +0100 topos: properly handle cases of no user in contact for mode 1 - + - contact mode 1 accepted cases with no-user in contact uri but not in r-uri, however, requests within dialog can have one's contact in r-uri and then processing failed - + (cherry picked from commit 24e410f9a20d004f55bcc79cd10fb35cb26e4570) commit 772b464552cff0b9ebb769e57fae718c0357ba11 @@ -2572,10 +3388,10 @@ Author: Daniel-Constantin Mierla Date: Fri Mar 8 19:43:49 2024 +0100 topos: small rearangement by removing else after return in the true block - + - reduce level of indentation - a few wraps in curly braces for clearer view of the if block - + (cherry picked from commit b6fccea258e56b7d3195659245713a6d44acb013) commit 2122afae2a6604c0bc44a43ab37ee274a15a700a @@ -2595,7 +3411,7 @@ Author: Sergey Safarov Date: Thu Mar 7 13:32:22 2024 +0200 pkg/kamailio/obs: packaged README.file_out - + (cherry picked from commit 20edb64247a20a5d6b4b8bfb264b6e31d283b039) @@ -2635,7 +3451,7 @@ Author: Xenofon Karamanos <22965395+xkaraman@users.noreply.github.com> Date: Tue Mar 5 14:34:19 2024 +0000 tls/docs: Update certificate generation docs - + (cherry picked from commit 67785fea8f906236e4a30bc09bb11b3292c46572) commit 6533c42fc0bba6408376a8f8b41b02b97b04ca1b @@ -2643,7 +3459,7 @@ Author: Xenofon Karamanos <22965395+xkaraman@users.noreply.github.com> Date: Tue Mar 5 12:52:51 2024 +0000 tls/docs: Update tls.reload docs - + (cherry picked from commit 4c9cfa7a6a770a693ecb3b840ad042fb201db675) commit a814df7e828db7be0b34738c2eb78b133c22ddef @@ -2651,7 +3467,7 @@ Author: Daniel-Constantin Mierla Date: Tue Mar 5 20:53:47 2024 +0100 presence: docs - remove extra section end tag - + (cherry picked from commit ed32512f4594cc0ddc3437e274bcba5acfc16410) commit 500e5fabf9da31b5fa2949cac90956da99751223 @@ -2659,7 +3475,7 @@ Author: Daniel-Constantin Mierla Date: Mon Mar 4 15:31:18 2024 +0100 core: main - init local variables used for cli param parsing - + (cherry picked from commit 8a2894cd6180f904dd37acb4985db4e4935aa434) commit d45c78eeeaea6a9fc9dcb927436f834392d9d7c9 @@ -2667,9 +3483,9 @@ Author: Daniel-Constantin Mierla Date: Mon Mar 4 13:58:35 2024 +0100 ctl: reset log prefix on reading ctl traffic - + - it may be previously set in process by some event route - + (cherry picked from commit 5b8b2717ee2f57da932132683b27eb33cea3fd59) commit 42282a2c78fc24ff2b3856983a6dbb188a2912e3 @@ -2677,7 +3493,7 @@ Author: Daniel-Constantin Mierla Date: Mon Mar 4 09:07:22 2024 +0100 acc: cdr - do not free static empty string in case of error - + (cherry picked from commit 0fc0cdd791ce5157232dd2139238708403cdde1d) commit 4626cb7f0e0b273153ce0004900a92553783a893 @@ -2685,7 +3501,7 @@ Author: Daniel-Constantin Mierla Date: Sun Mar 3 20:57:45 2024 +0100 core: parser rr - check for rr value before serializing - + (cherry picked from commit 6ee26a3ae3293aaeb4507d5d0b16ad31173cc39a) commit 089bf63178039b13cde0beccfacab1536af76179 @@ -2693,7 +3509,7 @@ Author: Daniel-Constantin Mierla Date: Fri Mar 1 12:46:17 2024 +0100 core: select - handle ws and wss inside select_ip_port() - + (cherry picked from commit d8e0942c9e83c8cad7c182bf41c156ba35bf24d2) commit 4c78a564c5ad8662014cf686428a37238a6d8476 @@ -2701,7 +3517,7 @@ Author: Daniel-Constantin Mierla Date: Fri Mar 1 12:41:13 2024 +0100 core: ppcfg - jump to end when defexp eval does not get a str val - + (cherry picked from commit daac0bdb88f6f732bda7c683af45b90f87fdb7c9) commit 219c21fe62638e7191dd1b5ad32ba098273e2009 @@ -2709,7 +3525,7 @@ Author: Daniel-Constantin Mierla Date: Fri Mar 1 09:55:16 2024 +0100 influxdbc: copy with buffer size limit - + (cherry picked from commit 73c66150c604326c07d454002c12cb221289936a) commit 0747c18d5c4db2e7e8408ad2c7efa120ec76523e @@ -2717,7 +3533,7 @@ Author: Daniel-Constantin Mierla Date: Fri Mar 1 09:37:59 2024 +0100 core: rthreads - init return variable - + (cherry picked from commit 181c602616e13323786335e8e28f182871aa5e9b) commit c06ea12d0fff50569803ea0fef9486726ab428ce @@ -2725,7 +3541,7 @@ Author: herlesupreeth Date: Tue Feb 27 21:01:44 2024 +0100 ims_registrar_pcscf: update registered state to pending registration if contact exists - + (cherry picked from commit 4fb8accc6747ad56fec3dc84d70cb2b8bbd7316e) commit ab981daa54c1afc1017af16afbb67ef55567e6fa @@ -2733,7 +3549,7 @@ Author: herlesupreeth Date: Sun Feb 25 16:16:14 2024 +0100 ims_usrloc: make matching of username in contact conditional - + (cherry picked from commit 17bdbd34b1038de936f14c1a41ce55f571e6402a) commit 8835f04334981b81df7eed6c03e581fcc4070da8 @@ -2741,7 +3557,7 @@ Author: Daniel-Constantin Mierla Date: Tue Feb 27 09:50:05 2024 +0100 tcpops: if connection not found, return attributes from sip msg rcv - + (cherry picked from commit c3d753885b3cd1bc0cb9f46986e5798dfb5f6552) commit c2ac3ffc907ded71bcde59c3c5c0d6b69e997696 @@ -2749,7 +3565,7 @@ Author: Daniel-Constantin Mierla Date: Tue Feb 27 07:57:22 2024 +0100 tcpops: variables to get active connection attributes - + (cherry picked from commit 59230a07b8c6a79c4a574890bae775c3d166c471) commit 50c759030f024dd080c08a3d94127f1d1af544e2 @@ -2757,9 +3573,9 @@ Author: Daniel-Constantin Mierla Date: Mon Feb 26 14:06:38 2024 +0100 ndb_redis: init enabled for tcp-main and postchildinit callbacks - + - GH #3768 - + (cherry picked from commit 19e5bf3d4cfc2b7d47623e307fff7e60e73e8a18) commit 2d2006701f491f732ea07b36a48016f7fbe436bf @@ -2767,7 +3583,7 @@ Author: Daniel-Constantin Mierla Date: Mon Feb 26 13:09:27 2024 +0100 microhttpd: docs - note about variables available in the event route - + (cherry picked from commit 993583015b127b0a83603acd352925c8d6e6db70) commit 3415be29303bbacaf25b646d6c86027e93cf7c7e @@ -2775,7 +3591,7 @@ Author: Daniel-Constantin Mierla Date: Sun Feb 25 19:29:24 2024 +0100 evrexec: reformat exported structures - + (cherry picked from commit 65eef5c5446c1f6870eecf8bbc84d68d12271bc7) commit 15ffdf7c0721fb5d05772d96e133ac74412c0068 @@ -2783,7 +3599,7 @@ Author: Daniel-Constantin Mierla Date: Sun Feb 25 01:15:28 2024 +0100 ndb_redis: reformat exported structures - + (cherry picked from commit fb21f89dc544551b1bb65805303131fa990d2f44) commit dae15377dac1b019f2278baca208162154d5a7ad @@ -2791,7 +3607,7 @@ Author: S-P Chan Date: Tue Mar 5 09:59:41 2024 +0800 tls: NULL safety check - + (cherry picked from commit f6f9d90ada963b53b6552e1a172b8f2fd021c33b) commit 56aeb0723562409aa97098e51c602bcddc8b6789 @@ -2799,7 +3615,7 @@ Author: S-P Chan Date: Tue Mar 5 06:47:24 2024 +0800 etc/kamailio.cfg: document tls_threads_mode = 2 to use atfork handler - + (cherry picked from commit 5b4926b04ba0fcd8f65f5709789abd83181a381a) commit 0ba1ff1d430e5e51c7745d7eb1242dcae2557db9 @@ -2807,10 +3623,10 @@ Author: S-P Chan Date: Mon Mar 4 22:00:14 2024 +0800 tls: new option tls_threads_mode = 2 - + - use pthread_atfork to force all thread-locals to 0x0 after fork() - + (cherry picked from commit 464299c202f3ba963aed821b777075397e843856) commit 0a565d34b98b7ec4de0524a3e216e8d907661181 @@ -2818,7 +3634,7 @@ Author: S-P Chan Date: Mon Mar 4 21:49:10 2024 +0800 core/rthreads.h: add new option tls_threads_mode = 2 - + - add global handling of thread-locals with tls_threads_mode = 2 - this will run a pthread_atfork handler to reset @@ -2826,7 +3642,7 @@ Date: Mon Mar 4 21:49:10 2024 +0800 - alternative solution to running functions in thread executors - requires tls.so to be loaded to be effective - + (cherry picked from commit e7f040f219b46592081a6053b4ed1ae0d0552b1a) commit 3d80bc811c75eb0cbcf0f4aee8929a5082b4de6a @@ -2834,7 +3650,7 @@ Author: S-P Chan Date: Sat Mar 2 20:46:16 2024 +0800 tls: basic OpenSSL 3 support of provider keys (replaces ENGINE) - + - initial support for v3 provider keys (replaces ENGINE from v1.1.1) - can be disabled behind build flag -DOPENSSL_NO_PROVIDER - provider keys start with /uri: e.g @@ -2843,14 +3659,14 @@ Date: Sat Mar 2 20:46:16 2024 +0800 provider_quirks: 0 | 1 - 0 - default - 1 - create a new OSS_LIB_CTX* in the child - + This integration does not load any providers itself and depends on the usual - + export OPENSSL_CONF=my-openssl.cnf - + to configure providers. - + (cherry picked from commit 69883dd381368ca219cc52140e71d571775f95d5) commit 6ee443731a23032fce9a32ce9609ae5b7c6bd171 @@ -2858,7 +3674,7 @@ Author: S-P Chan Date: Sat Mar 2 21:41:11 2024 +0800 tls: remove unused ENGINE define - + (cherry-picked from commit 73e7123c2dd19b82db167ceee93444e43f70f446) commit 8e81774d5a71c06906df84fb4809bcfb73bd532e @@ -2866,9 +3682,9 @@ Author: Daniel-Constantin Mierla Date: Sat Mar 2 08:13:40 2024 +0100 tlsa: removed the map files used in the past for tls engine - + - sync with code of tls module - + (cherry picked from commit d443a1e37d85e0eec6f6c9875bb8e821b34c8d6b) commit 9d42e4aacab4a7bf18192701cd66cba95c2c98dd @@ -2876,11 +3692,11 @@ Author: S-P Chan Date: Sat Mar 2 08:29:31 2024 +0800 tls: clean-up of ENGINE - + - remove tls_map.* - not needed anymore - install an ENGINE in each worker SSL_CTX no need to replicate to all processes - + Cherry-pick from 5933893b91 commit 0ddbd961e91abf3e967285d80cc1c6f8d2aa5cf9 @@ -2888,7 +3704,7 @@ Author: S-P Chan Date: Fri Mar 1 08:06:13 2024 +0800 tls: make explicit ENGINE deprecation in OpenSSL 3 - + Cherry-pick from 0c68a5511e commit f53c6b49e158203ba0783ec6a6fbadd76c5fdde9 @@ -2896,7 +3712,7 @@ Author: S-P Chan Date: Thu Feb 29 19:01:14 2024 +0800 tls: fix OpenSSL 1.1.1 engine keys - + Cherry-pick from e535cc5eb2 commit 59ab58551e5895b710893985d0072c8c510c672c @@ -2904,7 +3720,7 @@ Author: Xenofon Karamanos <22965395+xkaraman@users.noreply.github.com> Date: Tue Feb 27 11:50:54 2024 +0000 file_out: Fix leaks - + (cherry picked from commit 8af509ae280b2ef155f1946acac5a7d977bb5c14) commit 6721fb7aae373d42c4059a630fc79815d2f709b7 @@ -2912,7 +3728,7 @@ Author: Xenofon Karamanos <22965395+xkaraman@users.noreply.github.com> Date: Mon Feb 26 11:17:19 2024 +0000 file_out: Add header guards - + (cherry picked from commit 967fb30b14fb63bcb396956f9e9ed0ca92028682) commit bc4c206999094ed74e77c73f5537e857111d0a30 @@ -2920,7 +3736,7 @@ Author: S-P Chan Date: Tue Feb 27 12:38:09 2024 +0800 http_async_client: libssl refactor thread executors for curl - + Cherry-pick from 6a0c86bba8 commit 533989406d0fa1e57ff007fd8d7f702f5831dacd @@ -2928,7 +3744,7 @@ Author: S-P Chan Date: Tue Feb 27 05:01:45 2024 +0800 xcap_client: libssl thread executor for curl_global_init() - + Cherry-pick from f5164b39c8 commit 49c3290fc6eb50de0b08661c50ff42663ff3de6b @@ -2936,7 +3752,7 @@ Author: S-P Chan Date: Tue Feb 27 05:01:31 2024 +0800 http_client: libssl thread executor for curl_global_init() - + Cherry-pick from f58225950c commit 5d4fae5c24eb4f13d585e1af4cb1753ea5a784c5 @@ -2944,7 +3760,7 @@ Author: S-P Chan Date: Tue Feb 27 05:01:14 2024 +0800 http_async_client: libssl thread executor for curl_global_init() - + Cherry-pick from 514635dc3e commit ce17fee304e9ffa5046194a0827f771742113640 @@ -2952,7 +3768,7 @@ Author: S-P Chan Date: Tue Feb 27 05:00:35 2024 +0800 core/rthreads.h: add thread executor for curl_global_init() - + Cherry-pick from db05449932 commit b1a308801430a5561c4c13c1d4602fe5d5542cf8 @@ -2966,7 +3782,7 @@ Author: S-P Chan Date: Mon Feb 26 10:25:19 2024 +0800 OpenSSL integration: manage curl_global_init(...) used by modules - + - http_client, http_async_client, xcap_client use libcurl - call curl_global_init in a thread executor as it invokes OpenSSL functions on Debian 12 @@ -2989,14 +3805,14 @@ Author: S-P Chan Date: Sun Feb 25 08:03:17 2024 +0800 tls: restore early init for other modules that use TLS - + Client modules (e.g. dispatcher) that require outbound TLS may race if tls init is too late. - + Restore tls init to PROC_INIT with a thread executor. - + Addresses GH #3765 - + Cherry-pick from 706d7b7ff3 commit 5af33b2e0ddc1098919008d44ab91959bc7dfb80 @@ -3022,7 +3838,7 @@ Author: Daniel-Constantin Mierla Date: Fri Feb 23 19:35:27 2024 +0100 Makefile.defs: version set to 5.8.0-rc0 - + - entering the phase to prepare releasing next major version series 5.8.x @@ -3031,7 +3847,7 @@ Author: Daniel-Constantin Mierla Date: Fri Feb 23 19:24:55 2024 +0100 Makefile.defs: version set to 5.8.0-pre1 - + - marking end of first phase of testing commit 7e22636bb2797f6ed9cac677678a7a1bfc4f2537 @@ -3039,7 +3855,7 @@ Author: Daniel-Constantin Mierla Date: Fri Feb 23 12:53:39 2024 +0100 dispatcher: rename interal define to reflect better is a mix of matching - + - rather than a full address matching commit 17536b1064b40c305f28c4c19392504afc0b9701 @@ -3047,7 +3863,7 @@ Author: Dennis Yurasov Date: Thu Jan 4 18:28:56 2024 +0300 dispatcher: added two new flags to mode parameter of ds_is_from_list function for more strictly matching - + - Two new flgs added: DS_MATCH_SOCKET (8) to take in account socket/sockname attribute of gw DS_MATCH_TRY_FULLADDRSOCK (16) try to find the most complete "address/protocol/port/local socket" combination for all dispatcher targets @@ -3081,7 +3897,7 @@ Author: Torrey Searle Date: Wed Feb 21 08:05:10 2024 +0100 tools/kemi: fix bug in mock - + remove stray debug print statement that results in generated code being invalid @@ -3150,10 +3966,10 @@ Author: S-P Chan Date: Wed Feb 14 19:49:10 2024 +0800 db_mysql: libssl thread guard for db_mysql_query (and libmysqlclient) - + This function is observed to call SSL_read() when compiled with libmysqlclient.so.21 (but not libmariadb.so.3). - + Apply a thread executor just in case. commit 87ef83d23f68a43fc5265a81330cbeed6205f922 @@ -3167,9 +3983,9 @@ Author: S-P Chan Date: Wed Feb 14 15:17:26 2024 +0800 db_mysql: fix typos - + The option opt_ssl_ca is a string not integer. - + The comment for ea81e6cb should show the code fix as mysql_options(ptr->con, MYSQL_OPT_SSL_CA, (void *)db_mysql_opt_ssl_ca) @@ -3190,16 +4006,16 @@ Author: S-P Chan Date: Wed Feb 14 14:15:10 2024 +0800 db_mysql: new module param opt_ssl_ca to configure CA certs - + ERROR: db_mysql [km_my_con.c:200]: db_mysql_new_connection(): driver error: SSL connection error: CA certificate is required if ssl-mode is VERIFY_CA or VERIFY_IDENTITY - + When opt_ssl_mode = 4 | 5 libmysqclient requires that the trusted CAs be configured. Fixed with: mysql_options(ptr->con, MYSQL_OPT_SSL_CA, (void *)db_mysql_opt_ssl_mode) - + Note: libmariadb3 doesn't require this setting and uses the system trust store. @@ -3244,7 +4060,7 @@ Author: tsearle Date: Fri Feb 9 10:17:58 2024 +0100 tools/kemi: update kemi_mock for python (#3751) - + fixes code generation when python keywords are uses fixes formating issues of generated code fixes crash from pv.setl reporting parameters as null instead of 'none' @@ -3327,7 +4143,7 @@ Date: Tue Feb 6 21:43:22 2024 +0800 core/rthreads.h: use global ksr_tls_threads_mode to constrain thread wrapping - + - 0: run wrapped function directly - 1: run wrapped function in thread for process#0 else run directly - 2: always run wrapped function in thread @@ -3337,7 +4153,7 @@ Author: Daniel-Constantin Mierla Date: Tue Feb 6 14:24:08 2024 +0100 core: added tls_threads_mode global parameter - + - control how to execute functions that may be using libssl3 behind commit 475b4da798fce232eba6834c3cb05e3c97e12d03 @@ -3405,7 +4221,7 @@ Author: Victor Seva Date: Sat Feb 3 10:53:33 2024 +0100 outbound: fix build on xenial - + > outbound_mod.c: In function 'mod_init': > outbound_mod.c:122:2: error: too many arguments to function 'mod_init_openssl' > mod_init_openssl(NULL); @@ -3419,7 +4235,7 @@ Author: Victor Seva Date: Sat Feb 3 10:41:43 2024 +0100 db_mysql: fix build for stretch - + * mysql_optionsv is not there. We still use the deprecated flavour * MYSQL_OPT_SSL_ENFORCE is not there @@ -3428,9 +4244,9 @@ Author: Victor Seva Date: Sat Feb 3 09:47:46 2024 +0100 Revert "db_mysql: fix build for older releases" - + it doesn't fix anything - + This reverts commit f0e73eabee3be198dbad2e50752d9889e4aa8e5f. commit 80214d2f878b3f2d7547060c9d4bd578a9e1a837 @@ -3456,7 +4272,7 @@ Author: Victor Seva Date: Fri Feb 2 08:33:14 2024 +0100 db_mysql: fix build for older releases - + > km_my_con.c: In function 'db_mysql_new_connection': > km_my_con.c:132:4: warning: implicit declaration of function 'mysql_optionsv' [-Wimplicit-function-declaration] > mysql_optionsv(ptr->con, MYSQL_OPT_SSL_ENFORCE, (void *)&(int){1}); @@ -3478,7 +4294,7 @@ Author: Xenofon Karamanos Date: Fri Feb 2 10:56:41 2024 +0100 core: properly handle drop() action for kemi engines - + - GH #3718 commit a226823910735c315fc31df0e46132710db38def @@ -3492,7 +4308,7 @@ Author: Daniel-Constantin Mierla Date: Fri Feb 2 08:56:52 2024 +0100 Makefile.defs: version set to 5.8.0-pre0 - + - mark start of testing for v5.8.x series commit 8c5e97589fc0fed121ee6e8ca4adbf9ec63ad2eb @@ -3500,7 +4316,7 @@ Author: Daniel-Constantin Mierla Date: Fri Feb 2 08:55:38 2024 +0100 Makefile.defs: version set to 5.8.0-dev3 - + - mark end of development for v5.8.x series commit 03e60c809a0ac26b402bdf1154d6ec7b0476f26a @@ -3520,7 +4336,7 @@ Author: Daniel-Constantin Mierla Date: Thu Feb 1 21:19:11 2024 +0100 rtpengine: optional ping parameter for rpc reload command - + - specify if ping should be done to rtpengines at reload time commit df3d1e5cb80b7a6ac6ce93b582352aaa8e6fd369 @@ -3552,7 +4368,7 @@ Author: Xenofon Karamanos Date: Thu Feb 1 19:15:17 2024 +0200 file_out: Module to log custom strings to files (GH #3741) - + * add new module to log custom strings to files (GH #3741) * support for multiple files and also file balancing * smaller refactorings will be done afterwards (use string in function for names with internal matching, make worker sleep also configurable @@ -3575,7 +4391,7 @@ Author: Stefan-Cristian Mititelu Date: Thu Feb 1 14:00:14 2024 +0200 p_usrloc: Add new modparam 'preload' - + Useful when using kemi with p_usrloc, in order to preload location table. @@ -3650,7 +4466,7 @@ Author: S-P Chan Date: Tue Jan 30 16:49:32 2024 +0800 db_mysql: enable TLS when building with mariadb-connector-c - + - mariadb-connector-c requires at least one non-NULL configuration value to use TLS - emulate MySQL SSL_MODE_XXXX options @@ -3666,18 +4482,18 @@ Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Jan 29 21:22:54 2024 +0000 github: [skip ci]: bump wolletd/clang-format-checker from 1.10 to 1.11 - + Bumps [wolletd/clang-format-checker](https://github.com/wolletd/clang-format-checker) from 1.10 to 1.11. - [Release notes](https://github.com/wolletd/clang-format-checker/releases) - [Commits](https://github.com/wolletd/clang-format-checker/compare/v1.10...v1.11) - + --- updated-dependencies: - dependency-name: wolletd/clang-format-checker dependency-type: direct:production update-type: version-update:semver-minor ... - + Signed-off-by: dependabot[bot] commit 520b9dce03d695cd1d95432e6bf52ed47d046cd4 @@ -3685,18 +4501,18 @@ Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Jan 29 21:22:56 2024 +0000 github: [skip ci]: bump ammaraskar/gcc-problem-matcher - + Bumps [ammaraskar/gcc-problem-matcher](https://github.com/ammaraskar/gcc-problem-matcher) from 0.2.0 to 0.3.0. - [Release notes](https://github.com/ammaraskar/gcc-problem-matcher/releases) - [Commits](https://github.com/ammaraskar/gcc-problem-matcher/compare/0.2.0...0.3.0) - + --- updated-dependencies: - dependency-name: ammaraskar/gcc-problem-matcher dependency-type: direct:production update-type: version-update:semver-minor ... - + Signed-off-by: dependabot[bot] commit 3426b153d02d9d8d3e909eff9d18cb14108072ca @@ -3746,7 +4562,7 @@ Author: Daniel-Constantin Mierla Date: Sat Jan 27 09:57:24 2024 +0100 sdpops: added sdp line interator functions and variables - + - walk sdb lines in the message body (also for multipart body) - append/insert/remove line of the current iterator - variable to get the value of the curent iterator @@ -3804,7 +4620,7 @@ Author: Victor Seva Date: Fri Jan 26 09:03:37 2024 +0100 pkg/kamailio/deb: restore tls_wolfssl for bookworm and jammy - + fixed build error at 43ec11a7e0a37dfdaead873d555b26cb65589bd1 commit 4db5d7eb3fb34ad1282c9ded9b2d05b3f81fd476 @@ -3812,7 +4628,7 @@ Author: Daniel-Constantin Mierla Date: Thu Jan 25 20:11:19 2024 +0100 core: mem - relocated unfinished memory allocators to archive repository - + - many years without development activity commit 43ec11a7e0a37dfdaead873d555b26cb65589bd1 @@ -3820,7 +4636,7 @@ Author: S-P Chan Date: Thu Jan 25 21:44:07 2024 +0800 tls_wolfssl: allow building with debian libwolfssl35 - + - internal submodule is v5.6.6-stable - libwolfssl35 is at v5.5.4-stable @@ -3829,7 +4645,7 @@ Author: Victor Seva Date: Thu Jan 25 12:23:47 2024 +0100 pkg/kamailio/deb: remove support for tls_wolfssl on bookworm/jammy - + > module expects wolfssl ~ v5.6.6-stable which is equivalent to libwolfssl42(5.6.6-1.2) libwolfssl-dev_5.6.6 commit 5d3c11c5e0854ce74424a10a88b0cca4453cee75 @@ -3849,7 +4665,7 @@ Author: Morten Tryfoss Date: Wed Jan 24 21:16:08 2024 +0100 ims_charging: Add option to get and use P-Access-Network-Info for terminating scenario (#3726) - + Add option to configure node functionality for Ro requests commit ba36c65dfb2a6608dd7d51422a7ed021206bcae3 @@ -3863,7 +4679,7 @@ Author: Daniel-Constantin Mierla Date: Wed Jan 24 17:17:23 2024 +0100 tm: docs - update to use send_reply_error() when t_relay() fails - + - the transaction might be already created and needs a stateful reply commit 76b7beef6d089272b749aa53f29e100711aa4c50 @@ -3901,7 +4717,7 @@ Author: Daniel-Constantin Mierla Date: Tue Jan 23 21:05:41 2024 +0100 tm: release transaction on kill if a final response was sent - + - do not send another final response for error cases commit 0f8f4d6926e53ca5e526a11729f6ee6277b185b9 @@ -3921,7 +4737,7 @@ Author: S-P Chan Date: Sun Jan 21 18:17:37 2024 +0800 tls_wolfssl: refactor custom BIO - + - remove use of custom BIO at the expense of some memory copies commit 88f27e2b89142652ea1b8f133df1ff403f9f61b2 @@ -3935,7 +4751,7 @@ Author: S-P Chan Date: Thu Jan 18 12:38:09 2024 +0800 tls_wolfssl: clean-up OpenSSL compatibility - + - remove unneeded OpenSSL-isms commit 100d96bf3819082ac38f8a4fae1f3c64c8d0c5e1 @@ -3943,19 +4759,19 @@ Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Jan 22 21:58:56 2024 +0000 github: [skip ci]: bump tj-actions/changed-files from 41 to 42 - + Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 41 to 42. - [Release notes](https://github.com/tj-actions/changed-files/releases) - [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md) - [Commits](https://github.com/tj-actions/changed-files/compare/v41...v42) - + --- updated-dependencies: - dependency-name: tj-actions/changed-files dependency-type: direct:production update-type: version-update:semver-major ... - + Signed-off-by: dependabot[bot] commit 569b536404afd855742a42320d7c858a8bb4952b @@ -3963,7 +4779,7 @@ Author: Daniel-Constantin Mierla Date: Mon Jan 22 14:11:29 2024 +0100 tm: mark request with final reply flag - + - send error function checks flag and returns if set to avoid sending more than one final reply in case of failure @@ -3972,7 +4788,7 @@ Author: Daniel-Constantin Mierla Date: Mon Jan 22 14:02:47 2024 +0100 sl: mark request with final reply flag - + - send error function checks flag and returns if set to avoid sending more than one final reply in case of failures @@ -4023,7 +4839,7 @@ Author: Victor Seva Date: Fri Jan 19 15:40:06 2024 +0100 github: remove cleanup workflow [skip ci] - + it's removing untagged images that are layers of the tagged ones commit f59dacf7993da83553cd67de516fc31f493d2a7d @@ -4031,10 +4847,10 @@ Author: Stefan-Cristian Mititelu Date: Fri Jan 19 15:54:15 2024 +0200 p_usrloc: Add missing api function get_udomain() - + When registrar kemi save()/save_uri() function is called, then usrloc api function get_udomain() is called. - + This usrloc api function is missing in p_usrloc module and results in a segfault. @@ -4049,7 +4865,7 @@ Author: Daniel-Constantin Mierla Date: Fri Jan 19 10:18:33 2024 +0100 pv: increase the number of slots for transformations - + - safer handling of chained transformations commit 59104fe7d57bc8c75c835bbb75d5a1b7d01f6bda @@ -4105,7 +4921,7 @@ Author: Daniel-Constantin Mierla Date: Wed Jan 17 17:49:33 2024 +0100 kex: added is_myhost(uri) - check if host part only is local - + - similar to is_myself() but ignores the port and protocol commit 79697b4d565665b696ee39021e27d82e716bc176 @@ -4119,12 +4935,12 @@ Author: S-P Chan Date: Thu Jan 18 06:38:29 2024 +0800 pkg: RPM spec use automatic dependency for wolfssl - + - wolfssl doesn't follow semantic versioning - let RPM figure out the correct runtime library name depending on the -devel package used for building i.e. based on the package used for pkgconfig(wolfssl) - + e.g. if wolfssl35-devel - then libwolfssl.so.35 if wolfssl42-devel - then libwolfssl.so.42 @@ -4139,7 +4955,7 @@ Author: Elena-Ramona Modroiu Date: Tue Jan 16 16:07:43 2024 +0100 tls: set parameter name for tls_h_mod_randctx() - + - without it fails to compile on Unbuntu 22.04 with low latency kernel commit 14828091b06dca86c91659d705a4f58a6fead4d3 @@ -4147,7 +4963,7 @@ Author: Daniel-Constantin Mierla Date: Tue Jan 16 13:10:34 2024 +0100 rtp_media_server: use local user for building contact - + - GH #3380 commit 167d8af9ff1c55804a66cc948670ab1d3069e063 @@ -4179,7 +4995,7 @@ Author: Victor Seva Date: Tue Jan 16 09:33:20 2024 +0100 github: add default registry credentials [skip ci] - + > https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idcontainercredentials commit a752fde2fd2eb3615d16eb8940364ceea2f7d79c @@ -4193,7 +5009,7 @@ Author: Xenofon Karamanos Date: Mon Jan 15 17:22:06 2024 +0000 usrloc: synchronize attributes from DMQ (GH #3679) - + - make ucontact_xavp_store static and add some comments - change order of xavp operations in ucontact_xavp_store to not overwrite DMQ xavp - add logic to receive xavp information from DMQ and save it in the contact @@ -4221,7 +5037,7 @@ Author: Victor Seva Date: Mon Jan 15 15:03:15 2024 +0100 github: use CLEAN_PACKAGES secret at cleanup workflow - + kamailio-sync PAT with delete:packages permissions as described > https://github.com/camargo/delete-untagged-action @@ -4290,7 +5106,7 @@ Author: S-P Chan Date: Sun Jan 14 14:08:03 2024 +0800 tls: remove thread-enablement on EVP_RAND_CTX - + - with late initialisation it is not necessary to enable thread locking on EVP_RAND_CTX - the function remains but is not used in case requirements change @@ -4301,7 +5117,7 @@ Author: Дилян Палаузов Date: Thu Jan 11 08:21:00 2024 +0100 core: keep listen socket even if advertise address does not resolve - + - the core advertise_address parameter works in the same fashion - previously it was starting by skipping the listen, which resulted in unexpected runtime list of sockets @@ -4409,7 +5225,7 @@ Author: Daniel-Constantin Mierla Date: Wed Jan 10 13:07:14 2024 +0100 usrloc: option to randomize when keepalive is sent - + - default adds a range from 0 to 20 seconds to ka_interval commit 03f939e3d1a0dbf56791943f90942984984f2d72 @@ -4429,7 +5245,7 @@ Author: Daniel-Constantin Mierla Date: Wed Jan 10 12:24:39 2024 +0100 usrloc: added keepalive interval to set the step for sending - + - the keepalive is not going to be sent before the interval elapsed - the keepalive is no longer sent on every timer callback - default 40 seconds @@ -4451,7 +5267,7 @@ Author: Daniel-Constantin Mierla Date: Tue Jan 9 14:06:21 2024 +0100 htable: read rpc number value as long - + - remove autoconvert for number, it is only for string values - GH #3674 @@ -4484,7 +5300,7 @@ Author: Daniel-Constantin Mierla Date: Tue Jan 9 11:56:50 2024 +0100 gcrypt: added aes_mode parameter - + - specify AES encryption mode: - 0: ECB (GCRY_CIPHER_MODE_ECB) - default - 1: CBC (GCRY_CIPHER_MODE_CBC) @@ -4506,7 +5322,7 @@ Author: Daniel-Constantin Mierla Date: Tue Jan 9 10:49:48 2024 +0100 gcrypt: added functions to generate random call-id in uuid format - + - alternative to the option offered by crypto module commit db8dd08b5506ac40314b70386b9ea83b509e17b1 @@ -4520,7 +5336,7 @@ Author: Daniel-Constantin Mierla Date: Mon Jan 8 20:00:26 2024 +0100 gcrypt: new module for crypto functions - + - uses the GNU libgcrypt library - implemented AES256 ECB encrypt/decrypt functions @@ -4529,7 +5345,7 @@ Author: Xenofon Karamanos Date: Thu Jan 4 11:43:21 2024 +0000 parser/contact: Change addition order to the end of list - + - Contacts are now added at the end of the list. - hfl(Contact)[index] is now returning in the correct order. @@ -4580,7 +5396,7 @@ Author: Daniel-Constantin Mierla Date: Sat Jan 6 16:35:50 2024 +0100 pdb: pass structure by pointer to debug function - + - avoid copying large parameter value commit 95d8d9374a0e4385fd549078fcf56ecadef424a0 @@ -4606,7 +5422,7 @@ Author: Xenofon Karamanos Date: Thu Jan 4 09:53:29 2024 +0000 pv_core: Fix negative index bug for hfl() - + Before: -1 yielded null and -2 the last element of a header commit 1c70775530b1a3a905e8a983610cb0d092b0d240 @@ -4614,7 +5430,7 @@ Author: S-P Chan Date: Fri Jan 5 08:09:34 2024 +0800 tls: thread-local, revert 1a9b0b6361 as double-layer locking is redundant - + - the 2nd lock was put in place as defensive programming for shm contention - GH #3695: the underlying issue is early init of thread-locals @@ -4630,7 +5446,7 @@ Author: S-P Chan Date: Thu Jan 4 21:56:00 2024 +0800 tls: OpenSSL 1.1.1 thread-local, init libssl in thread - + - no need for RAND workaround; default is OpenSSL 1.1.1 RAND - linux/pthreads will handle forking @@ -4657,7 +5473,7 @@ Author: S-P Chan Date: Thu Jan 4 20:00:09 2024 +0800 tls: OpenSSL 3.x thread-local, init libssl in thread or PROC_SIPINIT - + - avoid initialising ERR_STATE in rank 0(thread#1) commit aef9cec329893f58b0c7df5aec2050b6c3cecc60 @@ -4689,7 +5505,7 @@ Author: Daniel-Constantin Mierla Date: Wed Jan 3 22:18:58 2024 +0100 lcr: added module prefix to db_url global variable - + - safety for symbols overlapping commit f0fbf4d74b8090614469b2a6a16f187275c4f067 @@ -4697,7 +5513,7 @@ Author: Daniel-Constantin Mierla Date: Wed Jan 3 22:14:32 2024 +0100 dmq: rename global variables with short name - + - safety for symbols overlapping commit ae90cb489cd07aac42994fbaa124966a34cd4514 @@ -4723,7 +5539,7 @@ Author: Daniel-Constantin Mierla Date: Mon Jan 1 22:23:07 2024 +0100 uac: global variable made static - + - renamed to avoid symbol conflicts commit 619c7fe6db9c090ef9645ec8a39d43d00ba215bf @@ -4737,7 +5553,7 @@ Author: Daniel-Constantin Mierla Date: Sun Dec 31 09:35:08 2023 +0100 sca: removed if on rc before being set - + - reorder some conditions on range commit 6c129bdc87352d0d883cc46fce0b78444e619084 @@ -4781,13 +5597,13 @@ Author: Daniel-Constantin Mierla Date: Fri Dec 29 09:43:10 2023 +0100 siputils: added tel2sip2() function - + - based on proposal presented at: https://github.com/kamailio/kamailio/issues/1173#issuecomment-315198949 - alternative to tel2sip() which has a simpler approach, but it does not follow all the RFC requirements. This is still kept as it proved to be useful over the years - + Co-authored-by: Donald Carr Co-authored-by: Supreeth Herle @@ -4832,7 +5648,7 @@ Author: Dennis Yurasov Date: Wed Dec 20 16:11:56 2023 +0300 dialog: fixed saving dialogs on shutdown that are already loaded at startup when using db_mode 3 - + - The dialogs that loaded at startup are not saved in DB on shutdown, and so not loaded at restart, fixes issue #3669 @@ -4841,7 +5657,7 @@ Author: Nikolay Ivanuschak Date: Mon Dec 18 22:20:50 2023 +0300 core: fixed haproxy protocol parser - + fixes GH #3683 commit 23a1d06737fa6d2509b6f88574ad171aa32cf275 @@ -4873,7 +5689,7 @@ Author: Daniel-Constantin Mierla Date: Tue Dec 26 17:42:48 2023 +0100 xhttp_prom: renamed global ctx variable - + - avoid short name code scanner warning and shadowing with function parameter @@ -4882,7 +5698,7 @@ Author: Daniel-Constantin Mierla Date: Tue Dec 26 17:11:34 2023 +0100 tm: remove redundant check in if condition - + - else branch is already for >= 200 commit 09318b6d0f224cace31d7db925f792b66cefd469 @@ -4890,7 +5706,7 @@ Author: Daniel-Constantin Mierla Date: Tue Dec 26 14:35:05 2023 +0100 seas: if expression on else not needed - + - evaluation of it is true on else branch commit 440a9955b4ce21b8c3dae9d6159d24a92ec28e7c @@ -4898,7 +5714,7 @@ Author: Daniel-Constantin Mierla Date: Mon Dec 25 22:12:24 2023 +0100 ss7ops: adapt if expression for uint - + - equal 0 or less than 1 is same in this case commit 439d451ab3172c1a22f88fd4ba0756ede2318191 @@ -4906,19 +5722,19 @@ Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Dec 25 21:41:49 2023 +0000 github: [skip ci]: bump tj-actions/changed-files from 40 to 41 - + Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 40 to 41. - [Release notes](https://github.com/tj-actions/changed-files/releases) - [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md) - [Commits](https://github.com/tj-actions/changed-files/compare/v40...v41) - + --- updated-dependencies: - dependency-name: tj-actions/changed-files dependency-type: direct:production update-type: version-update:semver-major ... - + Signed-off-by: dependabot[bot] commit 973803b0a3944b9de7ebdc4366b23e933e66ffbe @@ -4938,7 +5754,7 @@ Author: Daniel-Constantin Mierla Date: Sun Dec 24 17:21:57 2023 +0100 Makefile.groups: removed auth_identity module - + - relocated to kamailio-archive repository commit 5192e5d275761ccd1af49d4bf9dd12e1438947b7 @@ -4952,7 +5768,7 @@ Author: Daniel-Constantin Mierla Date: Sat Dec 23 17:20:40 2023 +0100 auth_identity: module relocated to kamailio-archive repository - + - module is considered obsolete, not maintained - based on precursor specs of stir/shaken, not actually deployed in production by carriers @@ -4970,7 +5786,7 @@ Author: Daniel-Constantin Mierla Date: Fri Dec 22 14:50:59 2023 +0100 tm: make lookup event_route[tm:local-response] only once - + - related to issue #3064 and PR #3687 commit 61efad28eeb84d8b8f80fe7fd38d7bbb634717f4 @@ -4978,7 +5794,7 @@ Author: Victor Seva Date: Fri Dec 22 10:02:45 2023 +0100 seas: fix build warning - + > CC (gcc) [M seas.so] encode_contact.o > encode_allow.c:40: warning: "_GNU_SOURCE" redefined > 40 | #define _GNU_SOURCE @@ -4990,7 +5806,7 @@ Author: Victor Seva Date: Fri Dec 22 10:00:32 2023 +0100 pv: fix build warning - + > CC (gcc) [M pv.so] pv_xavp.o > pv_core.c: In function 'pv_get_cnt': > pv_core.c:2841:61: warning: 'ravp' may be used uninitialized [-Wmaybe-uninitialized] @@ -5005,7 +5821,7 @@ Author: Victor Seva Date: Fri Dec 22 09:58:39 2023 +0100 db_text: fix build warning - + > CC (gcc) [M db_text.so] dbt_raw_query.o > dbt_raw_query.c:23: warning: "_GNU_SOURCE" redefined > 23 | #define _GNU_SOURCE @@ -5017,7 +5833,7 @@ Author: Victor Seva Date: Fri Dec 22 09:57:25 2023 +0100 cfgt: fix build warning - + > CC (gcc) [M cfgt.so] cfgt_mod.o > cfgt_int.c:22: warning: "_GNU_SOURCE" redefined > 22 | #define _GNU_SOURCE @@ -5029,7 +5845,7 @@ Author: Victor Seva Date: Fri Dec 22 09:56:08 2023 +0100 benchmark: fix build warning - + > CC (gcc) [M benchmark.so] benchmark.o > benchmark.c:41: warning: "_GNU_SOURCE" redefined > 41 | #define _GNU_SOURCE @@ -5041,7 +5857,7 @@ Author: Victor Seva Date: Fri Dec 22 09:53:16 2023 +0100 jansson: fix build warning - + > CC (gcc) [M jansson.so] jansson_utils.o > jansson_utils.c:23: warning: "_GNU_SOURCE" redefined > 23 | #define _GNU_SOURCE @@ -5053,7 +5869,7 @@ Author: Victor Seva Date: Fri Dec 22 09:51:28 2023 +0100 auth_identity: fix build warning - + > CC (gcc) [M auth_identity.so] auth_dynstr.o > auth_crypt.c:29: warning: "_GNU_SOURCE" redefined > 29 | #define _GNU_SOURCE @@ -5065,7 +5881,7 @@ Author: Victor Seva Date: Fri Dec 22 09:49:43 2023 +0100 main: fix build warning - + > CC (gcc) [kamailio] core/atomic_ops.o > main.c:34: warning: "_GNU_SOURCE" redefined > 34 | #define _GNU_SOURCE @@ -5077,7 +5893,7 @@ Author: Victor Seva Date: Fri Dec 22 09:32:10 2023 +0100 ims_qos: fix build warning - + > CC (gcc) [M ims_qos.so] rx_avp.o > [...] > /usr/include/fortify/stdio.h:122:16: warning: 'int_port_rctp_a' may be used uninitialized [-Wmaybe-uninitialized] @@ -5089,7 +5905,7 @@ Author: Victor Seva Date: Fri Dec 22 09:19:50 2023 +0100 core: fix build warning - + > core/parser/parse_diversion.c: In function 'parse_diversion_body': core/parser/parse_diversion.c:60:18: warning: the comparison will always evaluate as 'false' for the address of 'uri_b' will never be NULL [-Waddress] > 60 | if(uri_b == NULL) { > | ^~ @@ -5103,7 +5919,7 @@ Author: Victor Seva Date: Fri Dec 22 09:13:28 2023 +0100 pkg/kamailio/alpine: remove app_sqlang module [skip ci] - + module was moved to kamailio-archive repository commit 268147a7a7bcf68689a913a94faecc87128187fb @@ -5111,7 +5927,7 @@ Author: Victor Seva Date: Fri Dec 22 09:00:08 2023 +0100 core: fix build warning - + > CC (gcc) [M jansson.so] jansson_utils.o > jansson_utils.c:23: warning: "_GNU_SOURCE" redefined > 23 | #define _GNU_SOURCE @@ -5123,7 +5939,7 @@ Author: Victor Seva Date: Fri Dec 22 08:51:39 2023 +0100 ndb_redis: replace use of grep -P - + PCRE option is been removed in BusyBox #3686 commit 163028549df3abd3173a7c0ac8a9dc666c0e4879 @@ -5131,7 +5947,7 @@ Author: Victor Seva Date: Fri Dec 22 08:48:21 2023 +0100 db_redis: replace use of grep -P - + PCRE option is been removed in BusyBox #3686 commit 4c93985437122706bc68143b2f96a9d7f35be16d @@ -5151,7 +5967,7 @@ Author: Daniel-Constantin Mierla Date: Thu Dec 21 13:56:28 2023 +0100 sms: define buffer size for name field - + - check size before copy and trucate large messages commit b2045d559ed720789df80f543fc00923a07ada83 @@ -5189,7 +6005,7 @@ Author: Daniel-Constantin Mierla Date: Wed Dec 20 10:04:24 2023 +0100 app_sqlang: module relocated to kamailio-archive repository - + - module is considered obsolete, not maintained - app_jsdt should be considered a better alternative, or app_lua, app_python3/s @@ -5207,7 +6023,7 @@ Author: Daniel-Constantin Mierla Date: Wed Dec 20 09:33:17 2023 +0100 pipelimit: renamed global variable with module prefix - + - avoid overlapping global symbols commit 17e9e3f447867e34b8f320b8b93189f01fbc3f77 @@ -5215,7 +6031,7 @@ Author: Daniel-Constantin Mierla Date: Wed Dec 20 09:30:01 2023 +0100 sipcapture: removed unused global variable - + - renamed local function variable that was conflicting commit 1068bbbf9a7f2bf96d9ee2cefa1b81fbabac9805 @@ -5229,7 +6045,7 @@ Author: Daniel-Constantin Mierla Date: Tue Dec 19 10:50:56 2023 +0100 ims_dialog: refactored kemi get/set profile functions - + - expect final string values in the parameters, not with kamailio-specific variables, they can conflict in the external scripting languages and also leak pkg memory @@ -5251,18 +6067,18 @@ Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Dec 18 21:31:57 2023 +0000 github: [skip ci]: bump actions/upload-artifact from 3 to 4 - + Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v3...v4) - + --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major ... - + Signed-off-by: dependabot[bot] commit b2f1cd6ed2cd5da84fe8ff48db688fc41f129ccb @@ -5270,19 +6086,19 @@ Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Dec 18 21:31:53 2023 +0000 github: [skip ci]: bump github/codeql-action from 2 to 3 - + Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/v2...v3) - + --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-major ... - + Signed-off-by: dependabot[bot] commit 0e5b8178de281db5ddfe30af28244a1ebaf12382 @@ -5428,11 +6244,11 @@ Author: Sean Bright Date: Mon Dec 11 10:21:20 2023 -0500 utils: Prefer `printf` over `echo -e`. - + On Ubuntu, `/bin/sh` defaults to `dash` whose built-in `echo` command does not support the `-e` flag. `printf`, on the other hand, supports backslash escapes by default so we use that instead. - + In passing, also clean up some messy ANSI escape codes. commit 14e763fd15a846d4377214521cac06113ba6888d @@ -5440,19 +6256,19 @@ Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Dec 11 21:04:57 2023 +0000 github: [skip ci]: bump actions/stale from 8 to 9 - + Bumps [actions/stale](https://github.com/actions/stale) from 8 to 9. - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/v8...v9) - + --- updated-dependencies: - dependency-name: actions/stale dependency-type: direct:production update-type: version-update:semver-major ... - + Signed-off-by: dependabot[bot] commit ee2ad77aa71326d355e299625ebbd31f67f8ed20 @@ -5538,7 +6354,7 @@ Author: Daniel-Constantin Mierla Date: Fri Dec 8 12:34:56 2023 +0100 tls: init early the local lock for memory - + - needed to done before mod param init_mode is set - runtime uses the modparam to do lock/unlock - #3668 @@ -5578,7 +6394,7 @@ Author: Xenofon Karamanos Date: Fri Dec 8 11:01:39 2023 +0100 core: parser extended to handle diversion with multiple bodies - + - similar to PAI and PPI commit 6d14b4e439aec3d046addfa776a4be5f471a33f0 @@ -5586,7 +6402,7 @@ Author: Daniel-Constantin Mierla Date: Fri Dec 8 10:20:14 2023 +0100 lib/srdb1: rework store of long long values as number if value fits - + - GH #2106 commit c79f28b11f2683d11aafa72427efb15c95196b8b @@ -5600,7 +6416,7 @@ Author: Péter Barabás Date: Wed Dec 6 21:16:46 2023 +0100 uac: fix socket length settings - + - set _uac_req.s_sock.len value to 0 in pv_set_uac_req() method in case of "all" case - change setting of _uac_req.s_apasswd.len to _uac_req.s_sock.len in pv_set_uac_req() method in case of "sock" case @@ -5609,7 +6425,7 @@ Author: Daniel-Constantin Mierla Date: Thu Dec 7 13:00:50 2023 +0100 tls: rework init mode 1 to set PTHREAD_PROCESS_SHARED - + - pthread mutex set in shm - GH #3635 @@ -5618,7 +6434,7 @@ Author: Victor Seva Date: Thu Dec 7 11:41:44 2023 +0100 pv_headers: rearrange module parameters - + * pvh_ prefix for global variables commit 890dc5f017084481cd2b0f0d759939393fa115bc @@ -5638,7 +6454,7 @@ Author: Victor Seva Date: Wed Dec 6 12:54:50 2023 +0100 cfgt: rearrange mod parameters - + * use _cfgt_ prefix for init_flag commit b7b3f94f949feed3cf9e2e3adf3b4596e6e20eac @@ -5646,7 +6462,7 @@ Author: Daniel-Constantin Mierla Date: Wed Dec 6 08:42:41 2023 +0100 core: xavp - serialize long long values - + - they are printed as unsigned values, same as for long values commit e0909ab1c890b11204dd38b26283cba5fad289c7 @@ -5666,7 +6482,7 @@ Author: Daniel-Constantin Mierla Date: Tue Dec 5 19:30:21 2023 +0100 phonenum: Makefile - option to set C standard version - + - can be set via option CSTDVER - defaults now to c++17 - GH #3659 @@ -5676,7 +6492,7 @@ Author: Daniel-Constantin Mierla Date: Tue Dec 5 15:08:50 2023 +0100 core: remove unnecessary condition on msg - + - the structure is already used before commit 3a02bf42bc182e0eb809e63d8fe828e3ece5f1da @@ -5690,7 +6506,7 @@ Author: Daniel-Constantin Mierla Date: Tue Dec 5 12:18:33 2023 +0100 topoh: reorder conditions for safety of cleaning on error - + - in the part related to the new th_build_socket_strings() internal function commit 0d78a1add4292ff1e10347c0199f0d70d31678ea @@ -5710,7 +6526,7 @@ Author: Daniel-Constantin Mierla Date: Tue Dec 5 10:27:32 2023 +0100 dialog: prevent duplicate of leg1 attributes in json for dmq - + - reported by #3656 commit 2f98aaca9e4b71b8086abce4c2b41c215fb2a26f @@ -5742,10 +6558,10 @@ Author: Daniel-Constantin Mierla Date: Fri Dec 1 13:34:00 2023 +0100 ims_ipsec_pcscf: options for ipsec_forward() to use Via or try TCP - + - option to use Via attributes for routing reply - option to try over TCP if correxponding UDP socket is not found - + Co-authored-by: Supreeth Herle commit 580915bade64db034a2ee25c616addc38220c183 @@ -5753,10 +6569,10 @@ Author: Daniel-Constantin Mierla Date: Thu Nov 30 21:01:45 2023 +0100 ims_ipsec_pcscf: reparse request buffer to get contact when handling reply - + - clone aor in pkg to store the value - trim aor value when the parameters start - + Co-authored-by: Supreeth Herle commit 57794cd14205a16ed6c649fadb4efffca1561986 @@ -5794,7 +6610,7 @@ Author: Daniel-Constantin Mierla Date: Wed Nov 29 15:41:55 2023 +0100 ims_ipsec_pcscf: use core fixup helper functions - + - remove unused parameter for w_destroy_by_contact() commit 279454ff8d4e5804d92a8690c4de3a507efbc44f @@ -5802,7 +6618,7 @@ Author: Supreeth Herle Date: Wed Nov 29 15:39:39 2023 +0100 ims_ipsec_pcscf: new function to destroy IPSec based on Contact and received IP and port - + - the default ipsec_destroy() cannot be used to used destroy IPSec in any route and needed to be used exactly after all the de-registration process was complete. But, as per the kamailio P-CSCF config script, ipsec_destroy() was used in reply route of @@ -5828,7 +6644,7 @@ Author: Supreeth Herle Date: Wed Nov 29 14:09:02 2023 +0100 ims_qos: option to set DLG_MOBILE_ORIGINATING for rx_add_media_component_description_avp() - + - alternative to DLG_MOBILE_REGISTER that can be set with mod param dialog_direction @@ -5843,7 +6659,7 @@ Author: Supreeth Herle Date: Wed Nov 29 13:27:10 2023 +0100 ims_qos: option to use received ip, port and proto from via - + - can help with Rx_AAR_Register when EPC is behind a NAT - there could be an Rx AAR failure due to wrong IP address in Framed IP address field of Rx AAR message when EPC is behind a NAT @@ -5859,7 +6675,7 @@ Author: Supreeth Herle Date: Wed Nov 29 13:08:06 2023 +0100 ims_registrar_pcscf: option to delay record expiration instead of immediate delete - + - new parameter delete_delay commit 3b2bffc92ab0f684f8731c02f080d8df4392de5d @@ -5867,7 +6683,7 @@ Author: Supreeth Herle Date: Wed Nov 29 12:38:53 2023 +0100 ims_usrloc_scscf: improve contact lookup for an IMPU - + - commit e49469c0ce534879a7d366c71374356e7883c6f2 @@ -5881,7 +6697,7 @@ Author: Kristian Hogh Date: Thu Nov 30 06:19:15 2023 +0000 nathelper: add Max-Forwards headers which is mandatory for OPTIONS according to RFC 3261 (GH 3657) - + - add Max-Forwards headers which is mandatory for OPTIONS according to RFC 3261 - similar patch is used from several large customer installations since many years - GH #3657 with small formatting change @@ -5891,7 +6707,7 @@ Author: Victor Seva Date: Wed Nov 29 17:21:59 2023 +0100 Makefile.groups: fix ktls when KTLS_INCLUDE_TLSA is not set - + fix #3660 commit 2b27aba7f4f396e4ebd894255abfa8ce20950313 @@ -5917,7 +6733,7 @@ Author: Daniel-Constantin Mierla Date: Tue Nov 28 10:19:01 2023 +0100 jansson: rename parameter for janssonmod_get_field() - + - more suggestive relation with the meaning of the field name parameter commit 9eeab4396d8ec57781244ab80c4a96539d7338ec @@ -5931,7 +6747,7 @@ Author: Daniel-Constantin Mierla Date: Tue Nov 28 08:01:53 2023 +0100 jansson: use key as field name for jansson_get_field() - + - do no try to evaluate it as json path commit 525dc4523ac411e1154c3ae8af1ec6f8678d1dbc @@ -5981,7 +6797,7 @@ Author: Daniel-Constantin Mierla Date: Mon Nov 27 14:02:25 2023 +0100 topoh: mask_ip initialized again to 127.0.0.8 - + - docs updated - code formatting updated by pre-commit hooks @@ -5996,10 +6812,10 @@ Author: Victor Seva Date: Mon Nov 27 12:53:47 2023 +0100 github: react to PR/issue comments [skip ci] - + ``/notstale`` will remove ``stale`` label ``/notexpired`` will change the status to ``open`` - + > https://github.com/marketplace/actions/github-script commit 8bfe55c68a06492c93a327eff6813fa0da8399dd @@ -6007,9 +6823,9 @@ Author: TorPetterson <32388321+TorPetterson@users.noreply.github.com> Date: Mon Nov 27 13:50:09 2023 +0100 topoh: uses socket IP when no mask_ip is defined (#3341) - + * topoh: uses socket IP when no mask_ip is defined - + If the parameter mask_ip is not defined the module finds the socket IP and uses that as mask IP for the message. If the socket has an advertised IP it is used, otherwise the socket IP is used. @@ -6025,7 +6841,7 @@ Author: Wolfgang Kampichler Date: Sat Nov 25 11:06:21 2023 +0100 lost: support of shape representations (as in RFC5491) and new 3d parameter - + - A Presence Information Data Format Location Object (PIDF-LO) may contain one of the shape types as listed in RFC5491. A LoST findService request currently contains only a profile for @@ -6045,7 +6861,7 @@ Author: Daniel-Constantin Mierla Date: Fri Nov 24 12:14:14 2023 +0100 core: added core parameter mem_add_size - + - default value 0 - to be used to add extra space to allocated chunks for safety purposes when external libraries expose buffer overflows @@ -6055,7 +6871,7 @@ Author: Victor Seva Date: Fri Nov 24 12:49:29 2023 +0100 pkg/kamailio/deb: don't build tlsa for xenial [skip ci] - + We are getting errors on build: > gcc -shared -g -m64 -Wl,-O2 -Wl,-E -Wl,-Bsymbolic-functions -Wl,-z,relro -pthread -rdynamic "-ldl" -Wl,-Bsymbolic-functions tls_domain.o tls_cfg.o tls_init.o tls_verify.o tls_locking.o tls_select.o tls_dump_vf.o tls_bio.o tlsa_mod.o tls_server.o tls_rpc.o tls_ct_wrq.o tls_rand.o tls_map.o tls_util.o tls_config.o -lm /usr/lib/x86_64-linux-gnu/libssl.a /usr/lib/x86_64-linux-gnu/libcrypto.a -o tlsa.so > /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libssl.a(s3_meth.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC @@ -6074,7 +6890,7 @@ Author: Daniel-Constantin Mierla Date: Fri Nov 24 10:38:49 2023 +0100 Makefile.groups: tlsa in packaging group ktls if KTLS_INCLUDE_TLSA=yes - + - if not, then it is in separate group module_group_ktlsa commit 93609b53d70df84788741800fc2b80c5502a3358 @@ -6082,7 +6898,7 @@ Author: Daniel-Constantin Mierla Date: Thu Nov 23 12:35:48 2023 +0100 websocket: use literal module name for stats group - + - prevent conflicts with global exports commit 186ae3eef7f3e1b5ad6222c98a2f35a487deb316 @@ -6090,7 +6906,7 @@ Author: Daniel-Constantin Mierla Date: Thu Nov 23 12:35:47 2023 +0100 usrloc: use literal module name for stats group - + - prevent conflicts with global exports commit a9d29645ab417c9b0f7afc6745e6dd54bdac07b4 @@ -6098,7 +6914,7 @@ Author: Daniel-Constantin Mierla Date: Thu Nov 23 12:35:47 2023 +0100 tsilo: use literal module name for stats group - + - prevent conflicts with global exports commit d4c0e1bbcb0e423a545650aad4fbb4b2da8bb488 @@ -6106,7 +6922,7 @@ Author: Daniel-Constantin Mierla Date: Thu Nov 23 12:35:47 2023 +0100 tmx: use literal module name for stats group - + - prevent conflicts with global exports commit 96bdd69945af9f08e6c89fb725248b8b268ee71a @@ -6114,7 +6930,7 @@ Author: Daniel-Constantin Mierla Date: Thu Nov 23 12:35:47 2023 +0100 sst: use literal module name for stats group - + - prevent conflicts with global exports commit 92cdcb4bd280850743b3a952f1b6003be69daaf2 @@ -6122,7 +6938,7 @@ Author: Daniel-Constantin Mierla Date: Thu Nov 23 12:35:47 2023 +0100 siptrace: use literal module name for stats group - + - prevent conflicts with global exports commit 01abed3ef17f6a5f0f215675a2980f0b9a4267fd @@ -6130,7 +6946,7 @@ Author: Daniel-Constantin Mierla Date: Thu Nov 23 12:35:47 2023 +0100 sipcapture: use literal module name for stats group - + - prevent conflicts with global exports commit 0516fb802628ddb659a130aa2959df5b0b8e0c96 @@ -6138,7 +6954,7 @@ Author: Daniel-Constantin Mierla Date: Thu Nov 23 12:35:47 2023 +0100 registrar: use literal module name for stats group - + - prevent conflicts with global exports commit a951cb44ecbcd0f9cba937176ea5117c6a1d15b6 @@ -6146,7 +6962,7 @@ Author: Daniel-Constantin Mierla Date: Thu Nov 23 12:35:47 2023 +0100 p_usrloc: use literal module name for stats group - + - prevent conflicts with global exports commit f35f327a528670dcca0d7a767643a222f1aebd89 @@ -6154,7 +6970,7 @@ Author: Daniel-Constantin Mierla Date: Thu Nov 23 12:35:47 2023 +0100 nat_traversal: use literal module name for stats group - + - prevent conflicts with global exports commit 609960812c572d2d19ba774b064fdf7e2ac45765 @@ -6162,7 +6978,7 @@ Author: Daniel-Constantin Mierla Date: Thu Nov 23 12:35:47 2023 +0100 msilo: use literal module name for stats group - + - prevent conflicts with global exports commit d29b3d6515f74d4cd7417dc9030d8ca53d57054e @@ -6170,7 +6986,7 @@ Author: Daniel-Constantin Mierla Date: Thu Nov 23 12:35:47 2023 +0100 ims_usrloc_pcscf: use literal module name for stats group - + - prevent conflicts with global exports commit 641d29820f8536247c49d5fb4caa882764dbd9af @@ -6178,7 +6994,7 @@ Author: Daniel-Constantin Mierla Date: Thu Nov 23 12:35:47 2023 +0100 ims_registrar_scscf: use literal module name for stats group - + - prevent conflicts with global exports commit 39514660001b37eabfe3af6818949586fae9a4bf @@ -6186,7 +7002,7 @@ Author: Daniel-Constantin Mierla Date: Thu Nov 23 12:35:47 2023 +0100 ims_icscf: use literal module name for stats group - + - prevent conflicts with global exports commit 524eeca084e0a0e61ad80f349ea79f8b1c3031f6 @@ -6194,7 +7010,7 @@ Author: Daniel-Constantin Mierla Date: Thu Nov 23 12:35:47 2023 +0100 ims_auth: use literal module name for stats group - + - prevent conflicts with global exports commit 407168804cc1806b857c2ce78399e02a81692d1e @@ -6202,7 +7018,7 @@ Author: Daniel-Constantin Mierla Date: Thu Nov 23 12:35:47 2023 +0100 imc: use literal module name for stats group - + - prevent conflicts with global exports commit 40dd9f4e0fbe54046b7786e3572b491103af03d1 @@ -6210,7 +7026,7 @@ Author: Daniel-Constantin Mierla Date: Thu Nov 23 12:35:47 2023 +0100 http_async_client: use literal module name for stats group - + - prevent conflicts with global exports commit d434270933f06b4de43cdf6d4b464bd264a3cb92 @@ -6218,7 +7034,7 @@ Author: Daniel-Constantin Mierla Date: Thu Nov 23 12:35:47 2023 +0100 dialog: use literal module name for stats group - + - prevent conflicts with global exports commit 26d57116abc86e5d10bb1e5fe05c555e70e731c4 @@ -6232,7 +7048,7 @@ Author: Daniel-Constantin Mierla Date: Wed Nov 22 14:52:59 2023 +0100 dialog: do not print module name in log messages - + - it is added automatically commit 463d5b34390e330a2b733deb673c1c77e5be9fcb @@ -6240,7 +7056,7 @@ Author: Daniel-Constantin Mierla Date: Wed Nov 22 14:52:18 2023 +0100 avp: do not print module name in log messages - + - it is added automatically commit 89a95ce1abefd772c0f09054473b07bbfc5426bc @@ -6248,7 +7064,7 @@ Author: Daniel-Constantin Mierla Date: Wed Nov 22 14:26:23 2023 +0100 avpops: do not print module name in log messages - + - it is added automatically commit ba1c0424732f1f2ab01bfd078ee272221a6b3e10 @@ -6256,7 +7072,7 @@ Author: Daniel-Constantin Mierla Date: Wed Nov 22 14:20:13 2023 +0100 textops: do not print module name in log messages - + - it is added automatically commit 145659f9b81a0d489548fa8a0f75c0bd05660e2e @@ -6288,7 +7104,7 @@ Author: Daniel-Constantin Mierla Date: Wed Nov 22 10:06:24 2023 +0100 ims_ipsec_pcscf: do not change msg r-uri with ipsec_destroy() param - + - only changing r-uri shortcut inside sip msg field can have side effects, avoid it by providing the parameter to fill_contact() - use core fixup function for handling config parameter for aor @@ -6316,10 +7132,10 @@ Author: Morten Tryfoss Date: Wed Nov 15 12:50:56 2023 +0100 cdp: Avoid deadlock for callback on diameter timeout - + Callback function might do an operation which creates a new transaction, which will result in a deadlock. - + Fixes #3641 commit e17b554ba918dc33c60f41c2cee50ad2578fbbd3 @@ -6327,7 +7143,7 @@ Author: Morten Tryfoss Date: Tue Nov 14 10:12:16 2023 +0100 ims_charging: Various changes to make module compatible to other charging servers - + - Use origin-host of CCR response as destination-host of subsequent CCR requests, to make sure those requests are routed to the same charging server (when using relay). - use str_dup and str_free from ims_getters instead of locally defined. @@ -6352,7 +7168,7 @@ Author: Morten Tryfoss Date: Fri Nov 10 10:40:59 2023 +0100 cdp: Add support for re-auth on ro sessions initiated from charging server - + - handle missing valid_for in CCA correctly, for chargings server not using it - add AVP_Time_Quota_Threshold AVP, to support server controlled CCR-U threshold @@ -6487,7 +7303,7 @@ Author: Xenofon Karamanos Date: Wed Nov 15 09:44:15 2023 +0000 dmq: Add find dmq node by IP - + - Add find_dmq_node_ip - Add cmp_dmq_node_ip - Add check in notification peer @@ -6515,7 +7331,7 @@ Author: Daniel-Constantin Mierla Date: Mon Nov 20 13:27:33 2023 +0100 rtpproxy: print the ip address directly to local buffer - + - avoid extra copy commit 71969c6126e6885f2ba312c692c9c646d8f870ef @@ -6625,10 +7441,10 @@ Author: SPChan Date: Sat Nov 18 19:21:40 2023 +0800 tls_wolfssl: enable building with external package - + - build with git submodule: make ...WOLFSSL_INTERNAL=yes... - the default - build with external package: make ...WOLFSSL_INTERNAL=no... - + Debian recommended environment is libwolfssl41 5.6.4, libwolfssl-dev 5.6.4 commit 38aa7e5fffcb68979a9bb5771aaa6ef9e14b517d @@ -6656,7 +7472,7 @@ Author: Daniel-Constantin Mierla Date: Thu Nov 16 19:50:13 2023 +0100 core: copy the value between quotes for #!defexps - + - GH #3631 commit 996b61ebfdabcae8729725b5d06f268aefcd33a4 @@ -6670,7 +7486,7 @@ Author: Xenofon Karamanos Date: Thu Nov 16 10:09:18 2023 +0000 kamctl: Fix source order - + - Add check for already sourced rc file in kamctl commit 06ce65a2bbea826b890a3712cf1ac4f8b53e54cd @@ -8658,7 +9474,7 @@ Author: Morten Tryfoss Date: Thu Nov 9 13:16:15 2023 +0100 cdp: Support for diameter routing agent (DRA) / relay - + If an endpoint responds with a CEA indicating support for relaying (application-id 0xffffffff), let this endpoint be used for any application. @@ -8697,7 +9513,7 @@ Author: Daniel-Constantin Mierla Date: Fri Nov 10 14:08:09 2023 +0100 core: qm/fm memory align size can be set with define KSR_MEMORY_ALIGN - + - flexibility to be set at compile time via make or compiler parameter commit 7cc22301b37ae2a214900af9628b148f59dcce21 @@ -8705,7 +9521,7 @@ Author: Daniel-Constantin Mierla Date: Fri Nov 10 08:24:51 2023 +0100 core: mem - fm memory manager updated to align to 16 - + - same as malloc() on linux 64b - https://www.gnu.org/software/libc/manual/html_node/Aligned-Memory-Blocks.html - some libraries (e.g., libwolfssl) expect such alignement for specific optimizations @@ -8724,7 +9540,7 @@ Author: Daniel-Constantin Mierla Date: Fri Nov 10 07:31:38 2023 +0100 app_python3: enable error log mode for some of missing callback functions - + - tm-specific callbacks should trigger error log messages if not found commit eabd1e2c49b3e67455d5d8b13809332832036fa8 @@ -8738,7 +9554,7 @@ Author: Daniel-Constantin Mierla Date: Thu Nov 9 20:33:31 2023 +0100 core: mem - qm memory manager updated to align to 16 - + - same as malloc() on linux 64b - https://www.gnu.org/software/libc/manual/html_node/Aligned-Memory-Blocks.html - some libraries (e.g., libwolfssl) expect such alignement for specific optimizations @@ -8810,7 +9626,7 @@ Author: Victor Seva Date: Wed Nov 8 20:53:53 2023 +0100 dialplan: reformat exported structures more human friendly - + revert to the format it had before 01d0d1de2c8 commit 4642a12c109939f71f91ba7807ded1491e241e26 @@ -8818,7 +9634,7 @@ Author: Victor Seva Date: Wed Nov 8 20:03:49 2023 +0100 debugger: reformat exported structures more human friendly - + revert to the format it had before 656e147c470 commit f0cf082effe6a0fd8893299e49a519d90bfc6151 @@ -8826,7 +9642,7 @@ Author: Victor Seva Date: Wed Nov 8 19:44:38 2023 +0100 dialog: reformat exported structures more human friendly - + revert to the format it had before 783a416f1a5 commit a62d7118a2f86a82fd080ed4a89a0833e8c4d1a2 @@ -8858,7 +9674,7 @@ Author: Victor Seva Date: Wed Nov 8 08:52:11 2023 +0100 github: allow execute issue_management from panel [skip ci] - + * change order since we are hitting operations-per-run > https://github.com/marketplace/actions/close-stale-issues#ascending @@ -8873,7 +9689,7 @@ Author: Victor Seva Date: Tue Nov 7 23:20:33 2023 +0100 github: close-stale-issues - + As discussed at Kamailio developers meeting 2023 commit 4587d46d06fe4fe1d7c754b46b0f68910cbca633 @@ -8887,7 +9703,7 @@ Author: Christian Marangi Date: Mon Nov 6 16:13:55 2023 +0100 kamcmd: Makefile - use CUSTOM_NAME for specifying custom binary name - + - previous use of NAME can clash with environment variable NAME that could be set by OS or by Kamailio modules installation - GH #3628 @@ -8897,7 +9713,7 @@ Author: Daniel-Constantin Mierla Date: Mon Nov 6 14:20:53 2023 +0100 topos: handle NOTIFY during call setup - + - GH #3627 commit 184417a1089397baf47ed91a096660f1a421276c @@ -8911,7 +9727,7 @@ Author: Morten Tryfoss Date: Mon Oct 30 13:14:23 2023 +0100 ims_charging: Implemented restore of Ro sessions from database - + - realtime and shutdown mode support - removed duplicate entry in doc about "ro_auth_expiry" @@ -8968,7 +9784,7 @@ Author: Daniel-Constantin Mierla Date: Fri Nov 3 09:00:14 2023 +0100 sl: added send_reply_error() - + - wrapper around t_reply_error() and sl_reply_error() commit 2097922746d12d332ce923193af9c624429b7f96 @@ -8988,7 +9804,7 @@ Author: Daniel-Constantin Mierla Date: Thu Nov 2 13:15:55 2023 +0100 pdt: return 0 when add_to_tree() detect duplicated prefix with pdt mode 1 - + - GH #3626 commit d9189306f38e8f79c16e3a9ea38a2fe90fc82fb7 @@ -9002,7 +9818,7 @@ Author: Morten Tryfoss Date: Wed Oct 25 08:49:53 2023 +0200 cdp: Fix for undefined symbols when using older/unsupported OpenSSL - + This was originaly fixed in #3601, but that did not handle the change in #3612 very well. commit 02dd4e2c883585601f4dbcea0b63b858b4dd24d6 @@ -9010,15 +9826,15 @@ Author: Benjamin <92934023+tietzsg@users.noreply.github.com> Date: Thu Nov 2 13:09:57 2023 +0100 http_client: add information about parameter loading (#3619) - + * http_client: add information about parameter loading - + - Inform that the order of the parameters is important when httpcon is loaded first - + * http_client: docs - typos from previous commit - + --------- - + Co-authored-by: Daniel-Constantin Mierla commit 370991cfab3bd42fe0ca3cbff7dca7b40319f3f4 @@ -9044,7 +9860,7 @@ Author: Daniel-Constantin Mierla Date: Thu Nov 2 09:25:39 2023 +0100 tm: new function t_reply_error() - + - send stateful reply based on internal error code commit c76444da502325c90eb7ac0cbcc24e7bf16dd5d1 @@ -9082,7 +9898,7 @@ Author: Daniel-Constantin Mierla Date: Tue Oct 31 14:56:27 2023 +0100 secsipid_proc: remove files imported from libsecsipid project - + - they should be found in libsecsipid install folders commit a2468e66f530822094569cf847796d91b17d4be9 @@ -9090,7 +9906,7 @@ Author: Daniel-Constantin Mierla Date: Tue Oct 31 14:54:54 2023 +0100 secsipid_proc: Makefile - look for secsipid include and libs in localbase - + - done when pkg-config cannot find libsecsipid install details commit f4d8235e5da98e7b99fdc1431505b44ee1672f63 @@ -9122,7 +9938,7 @@ Author: Daniel-Constantin Mierla Date: Mon Oct 30 13:03:47 2023 +0100 secsipid_proc: updates for latest libsecsipid API - + - bind SecSIPIDSignJSONHPPrvKey(...) commit 2bc2bdf2ff158510f4f570a1f5abe3f72745234c @@ -9148,7 +9964,7 @@ Author: Daniel-Constantin Mierla Date: Thu Oct 26 13:34:51 2023 +0200 usrloc: new parameter to specify reply codes for keepalive handling - + - comma separated list of reply codes or reply class to be considered valid for keepalive handling @@ -9163,7 +9979,7 @@ Author: Daniel-Constantin Mierla Date: Wed Oct 25 18:06:36 2023 +0200 dmq_usrloc: avoid needless second local socket search - + - remove overwriting local socket string value with received item commit 19a32b863d9a79c0cbaf04a7a9864e0c08a914f7 @@ -9171,7 +9987,7 @@ Author: Victor Seva Date: Mon Oct 23 14:36:49 2023 +0200 pv_headers: pvh_xavi_get_child() fix fallback logic - + * don't fallback to Initial request headers for Replies commit dc42a1892282ffb7a95f731224a9ae88ac16c17d @@ -9185,28 +10001,28 @@ Author: Nicolas C Date: Tue Oct 24 17:10:09 2023 +0200 http_client: Add parameter timeout_mode (timeout in seconds or milliseconds) - + A new parameter timeout_mode is added. This parameter defines if timeouts are enabled, and in which unit timeout values are expressed. - 0 - Timeouts are disabled. - 1 - Timeout values are in seconds (default). - 2 - Timeout values are in milliseconds. - + Implementation detail: - + default global timeout = 0 (unconfigured). - + Parse connections as usual. If they have a timeout configured, use it. - + In mod_init: if global timeout == 0 (unconfigured), and timeout_mode is 1 or 2: if timeout_mode == 1 -> global timeout = 4 (seconds) if timeout_mode == 2 -> global timeout = 4000 (milliseconds) - + for each connection "conn" (fixup): if timeout_mode is not 1 or 2 -> conn.timeout = 0 (to reflect the fact that no timeout will be handled) else if conn.timeout is not configured -> conn.timeout = global timeout (in seconds or milliseconds, depending on timeout_mode). - + When doing Curl requests (curL_request_url): if timeout_mode == 1: set CURLOPT_TIMEOUT if timeout_mode == 2: set CURLOPT_TIMEOUT_MS @@ -9216,7 +10032,7 @@ Author: Xenofon Karamanos Date: Tue Oct 24 21:07:36 2023 +0300 cdp: Add and apply cdp_openssl_clear_errors function (#3612) - + * cdp: Add and apply cdp_openssl_clear_errors function - add new function to clear OpenSSL errors prior to any SSL_* call @@ -9273,7 +10089,7 @@ Author: Victor Seva Date: Mon Oct 23 10:33:51 2023 +0200 github: CODEOWNERS to protect workflows [skip ci] - + > https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners > https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-codeowners-to-monitor-changes @@ -9282,7 +10098,7 @@ Author: Daniel-Constantin Mierla Date: Sat Oct 21 09:05:44 2023 +0200 topos: remove check of th_param_mask_callid() for api callid masking - + - functions are not for topoh internal usage, but for intermodule API - reported as part of GH #3606 @@ -9291,7 +10107,7 @@ Author: Daniel-Constantin Mierla Date: Sat Oct 21 09:03:45 2023 +0200 core: set shm xsetfunc api field - + - fix wrong variable added in previous commit for pkg api commit e4f2cde596387cc81ff0a26d89654d9d0e24ae10 @@ -9317,7 +10133,7 @@ Author: Daniel-Constantin Mierla Date: Fri Oct 20 16:48:33 2023 +0200 corex: rpc corex.list_sockets prints advertise as full socket string - + - new field to print socket string field also for bind address commit 54d8cce28a5c4cbd944d39b1523571fbb5776baa @@ -9337,7 +10153,7 @@ Author: Daniel-Constantin Mierla Date: Fri Oct 20 14:55:53 2023 +0200 corex: rpc corex.list_aliases use now lowercase for field names - + - better coherence with the other rpc commands commit c2e8baad3b39b2e5871c0cdc796b3be48462c2a9 @@ -9369,13 +10185,13 @@ Author: Maksym Sobolyev Date: Tue Oct 10 11:23:49 2023 -0700 rtpproxy: Update rtpproxy module documentation. - + o Correct description of the timeout_socket; - + o Document timeout_tag_pv; - + o Update (c); - + o Remove reference to the ngcp-mediaproxy-ng which does not exist anymore. @@ -9384,11 +10200,11 @@ Author: Maksym Sobolyev Date: Tue Oct 10 11:21:31 2023 -0700 rtpproxy: Make timeout notification feature useable. - + Add an new "timeout_tag_pv" option to set notify tag along with the notification socket path. Both are required by the RTPProxy. - + Reported by: James Lipski commit f27eda6fe3d99d1352d4df86d79e4646b0a4c17a @@ -9396,7 +10212,7 @@ Author: Victor Seva Date: Tue Oct 17 14:12:57 2023 +0200 presence: active_watcher cleanup timer - + related #3074 commit 110ebbafadcc225f4e88749287f06ae29a6cfa2e @@ -9410,7 +10226,7 @@ Author: Juha Heinanen Date: Thu Oct 19 13:36:32 2023 +0200 core: change tcp_check_timer initialization - + - make tcp_check_timer default to depend on tcp_msg_data_timeout and ksr_tcp_msg_read_timeout values, set to half of the minimum of the two, it is not explicitely set @@ -9445,7 +10261,7 @@ Author: Victor Seva Date: Wed Oct 18 09:41:01 2023 +0200 github: disable CodeQL scan for pull requests [skip ci] - + job is failling due to "java.io.IOException: No space left on device" commit 4747f724325e69033a052d078b161186dc2e5c21 @@ -9477,7 +10293,7 @@ Author: Daniel-Constantin Mierla Date: Mon Oct 16 09:09:08 2023 +0200 core: added tcp_accept_iplimit parameter - + - set limit for accepted connections from the same ip address - default 1024 @@ -9486,7 +10302,7 @@ Author: Daniel-Constantin Mierla Date: Mon Oct 16 08:57:32 2023 +0200 core: added tcp_msg_data_timeout parameter - + - duration in seconds for how long to wait till data is received on a new tcp connection - default 20 @@ -9496,7 +10312,7 @@ Author: Daniel-Constantin Mierla Date: Mon Oct 16 08:35:09 2023 +0200 core: added tcp_check_timer parameter - + - set the check interval (in seconds) for tcp connections - default 10 @@ -9505,7 +10321,7 @@ Author: Daniel-Constantin Mierla Date: Sun Oct 15 19:20:13 2023 +0200 core: added tcp_msg_read_timeout parameter - + - specify read timeout for tcp messages commit b56037fab181037d48bfc90802f25b85ae8bee04 @@ -9513,7 +10329,7 @@ Author: Daniel-Constantin Mierla Date: Sat Oct 14 16:49:20 2023 +0200 core: added msg_recv_max_size global parameter - + - set limit for max size of received tcp or upd messages commit a902e4a032a85a7755de32eeadac800a1312e64f @@ -9521,7 +10337,7 @@ Author: Daniel-Constantin Mierla Date: Fri Oct 13 17:33:07 2023 +0200 core: tcp - limit number of accepted connections per src ip - + - default 1024 commit ddfe15f860555048f1ad6884727d4eb52f11910f @@ -9535,7 +10351,7 @@ Author: Daniel-Constantin Mierla Date: Fri Oct 13 16:31:10 2023 +0200 core: tcp - close connection without data traffic at all - + - default timeout: 20sec - cleanup is done on timer, it can take another 10sec @@ -9544,7 +10360,7 @@ Author: Daniel-Constantin Mierla Date: Fri Oct 13 16:02:12 2023 +0200 core: tcp - set limit for reading a message - + - default 10sec - if message is not read, close connection - cleanup is done on timer, it can take an additional 10sec to clean up connection @@ -9578,7 +10394,7 @@ Author: Daniel-Constantin Mierla Date: Thu Oct 12 17:46:00 2023 +0200 core: added proto file to use info structure - + - can be set via socket global parameter structure commit 4045f3d7c0302ae47f0d6c2160160767d56826eb @@ -9658,7 +10474,7 @@ Author: S-P Chan Date: Thu Oct 5 10:55:26 2023 +0800 pkg: RPM - add mock config for EL8/EL9 based on alma+epel-(8|9)-x86_64 - + This mock config can be used to build RPM packages from a kamailio src.rpm. - update pkg/kamailio/obs/README -> README.md to include mock instructions @@ -9670,7 +10486,7 @@ Author: S-P Chan Date: Thu Oct 5 09:45:23 2023 +0800 pkg: add example script to create tarball with submodules instantiated - + In preparation for packaging of tls_wolfssl, add an example script to create source tarball with submodule code. @@ -9679,7 +10495,7 @@ Author: Daniel-Constantin Mierla Date: Fri Oct 6 08:19:18 2023 +0200 kamctl: check if kamctlrc is readable - + - related to GH #3594 commit e01d1cbfb61e0111a4f73e58e36a2bd689a2f91f @@ -9687,7 +10503,7 @@ Author: Victor Seva Date: Fri Oct 6 00:43:23 2023 +0200 github: define DOCKER_REPO at alpine workflow [skip ci] - + > https://github.com/kamailio/kamailio-ci/commit/524fa4769d3b48add204c2bbd8303f60dfde2d61 commit 022f0f4cfd49e7a46efb2b6b4e1b9640c399e535 @@ -9695,7 +10511,7 @@ Author: Daniel-Constantin Mierla Date: Thu Oct 5 18:05:00 2023 +0200 misc/examples/kemi: add the option for using rtpengine in common cfg file - + - updated lua script removing the check of rtpproxy define, not being in the commng cfg file @@ -9716,7 +10532,7 @@ Author: S-P Chan Date: Thu Oct 5 00:58:57 2023 +0800 tls_wolfssl: clean up build - + Allow module to build if user specifies prefix= exec-prefix= on commandline @@ -9749,7 +10565,7 @@ Author: Victor Seva Date: Tue Oct 3 08:39:05 2023 +0200 github: define alpine permissions [skip ci] - + > unauthorized: access token has insufficient scopes commit 6b6c0663d3ae894e8e686eb32288f71387739cc7 @@ -9811,7 +10627,7 @@ Author: Victor Seva Date: Tue Sep 26 23:41:02 2023 +0200 pkg/kamailio/deb: remove ims module from stretch and xenial [skip ci] - + * libssl >= v1.1.1 is required commit d8a35b3b6c837b36779e232b65fce61c3aa93387 @@ -9837,7 +10653,7 @@ Author: Daniel-Constantin Mierla Date: Mon Sep 25 22:04:16 2023 +0200 tm: %llu specifier for printing msg_flags fields - + - GH #3585 commit 4deb3a7f7eb97fc30d42aa578082e496997e45d2 @@ -9857,7 +10673,7 @@ Author: Nikolay Ivanuschak Date: Mon Jul 24 14:09:31 2023 +0300 core: fixed wrong network interface selection. - + fixed incorrect source IP address selection for the SIP messages sending procedure when TCP transport is used or for UDP with the 'mhomed' setting set as 'mhomed=1'. @@ -9873,7 +10689,7 @@ Author: Дилян Палаузов Date: Thu Sep 14 10:40:51 2023 -0400 htable add column packing features - + - add support for changing the column delimeter in a hash table - add support for changing the column null character @@ -9939,7 +10755,7 @@ Author: Daniel-Constantin Mierla Date: Thu Sep 21 14:40:08 2023 +0200 app_lua: proper global parameter for request route callback function - + - fix of previous commit commit b045e5314834a312e6a7b6fa772641cafaa5aab6 @@ -9953,7 +10769,7 @@ Author: Daniel-Constantin Mierla Date: Wed Sep 20 12:05:11 2023 +0200 core: kemi - parameter for request route callback function name - + - it can be set with: kemi.request_route_callback - default: ksr_request_route @@ -9968,18 +10784,18 @@ Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Sep 18 21:47:39 2023 +0000 github: [skip ci]: bump docker/build-push-action from 4 to 5 - + Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4 to 5. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v4...v5) - + --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-major ... - + Signed-off-by: dependabot[bot] commit 4ad01bad433a649116d3b42a811a80fa630d869c @@ -9987,19 +10803,19 @@ Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Sep 18 21:47:32 2023 +0000 github: [skip ci]: bump docker/metadata-action from 4 to 5 - + Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4 to 5. - [Release notes](https://github.com/docker/metadata-action/releases) - [Upgrade guide](https://github.com/docker/metadata-action/blob/master/UPGRADE.md) - [Commits](https://github.com/docker/metadata-action/compare/v4...v5) - + --- updated-dependencies: - dependency-name: docker/metadata-action dependency-type: direct:production update-type: version-update:semver-major ... - + Signed-off-by: dependabot[bot] commit 80c9196e3f5742066268df9a79406f15499145a1 @@ -10007,18 +10823,18 @@ Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Sep 18 21:47:26 2023 +0000 github: [skip ci]: bump docker/setup-buildx-action from 2 to 3 - + Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2 to 3. - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/v2...v3) - + --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-type: direct:production update-type: version-update:semver-major ... - + Signed-off-by: dependabot[bot] commit 29ce9d8868604005fba8a215b6569a33c6478d3c @@ -10026,18 +10842,18 @@ Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Sep 18 21:47:22 2023 +0000 github: [skip ci]: bump docker/login-action from 2 to 3 - + Bumps [docker/login-action](https://github.com/docker/login-action) from 2 to 3. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/v2...v3) - + --- updated-dependencies: - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-major ... - + Signed-off-by: dependabot[bot] commit 2741a16ebe5efd352b485fdfc70644e4c68052f8 @@ -10051,9 +10867,9 @@ Author: Lucian Balaceanu Date: Mon Sep 18 16:37:19 2023 +0300 cdp: add TLS capability (#3548) - + * cdp: adding TLS capability to peer connections - + * cdp: documenting TLS capability related parameters commit a0ef326f4cc8b8463ec58939c20c978f844053b7 @@ -10139,20 +10955,20 @@ Author: Eloy Coto Date: Sun Jul 30 23:53:17 2023 +0200 statsd: Add labels to metrics. - + A user reached me to add a way to add the custom labels into the statsd module, so a better way to report metrics to the observability platform. - + I keep the same old functions and add a new parameter to the statsd modules to both interfaces cfg and kemi. - + The full documentation can be found here: https://docs.datadoghq.com/developers/dogstatsd/datagram_shell/?tab=metrics - + So, each function can be used like this: ``` statsd_set("fooo", 1, "inbound"); statsd_gauge("NotFound", "+1", "outbound,carrierFoo"); statsd_gauge("AuthFailed", "+1", "carrier:foo,priority:10"); ``` - + Signed-off-by: Eloy Coto Tested-by: Alex Antonevych Signed-off-by: Eloy Coto @@ -10174,7 +10990,7 @@ Author: Daniel-Constantin Mierla Date: Tue Sep 12 10:22:32 2023 +0200 pdt: docs for mode parameter - + - GH #3485 commit ad7df67cfd58713fc0993e2d2365a86d9d6068e1 @@ -10224,7 +11040,7 @@ Author: Victor Seva Date: Mon Sep 11 08:46:02 2023 +0200 path: fix prepend_path() - + bug introduced at dd04bceb99ba69bd59c67ba103f3c55d47a31dd6 commit ea2babf79d8b66cbfdccdae51ddf806964b16138 @@ -10250,7 +11066,7 @@ Author: Daniel-Constantin Mierla Date: Mon Sep 11 14:26:30 2023 +0200 textops: new function via_param_rm("name", idx) - + - remove paramter of a via body at a specific index commit d3acf9cc56f0ee73bee3c7cf1210c052d79a4c46 @@ -10276,7 +11092,7 @@ Author: Daniel-Constantin Mierla Date: Fri Sep 8 15:30:03 2023 +0200 core: parser - internal msg flags typedefed to unsigned long long - + - type msg_flags_t - unsigned int size flags were filled @@ -10345,7 +11161,7 @@ Author: Daniel-Constantin Mierla Date: Wed Sep 6 21:09:35 2023 +0200 cores: new function via_reply_add_xavp_params() - + - enable adding parameters to top via of replies from xavp fields commit 439eae7aa2154a25a0d9143345e526e22162b24f @@ -10353,7 +11169,7 @@ Author: Daniel-Constantin Mierla Date: Wed Sep 6 21:08:20 2023 +0200 core: ability to add paramters to top via of generated sip replies - + - parameters and values are taken from xavp specified by xavp_via_reply_params commit cf0e802bbf62ec4a19f26c786c07e7436ba07f0a @@ -10367,7 +11183,7 @@ Author: Daniel-Constantin Mierla Date: Wed Sep 6 21:02:42 2023 +0200 core: config parser extended with xavp_via_reply_params parameter - + - allows to specify xavp name that is going to hold parameters to be added to the top via of replies @@ -10376,7 +11192,7 @@ Author: Daniel-Constantin Mierla Date: Wed Sep 6 15:05:06 2023 +0200 pv: via-related variables can retun oc parameters - + - overload control - rfc7339 commit 062dbc7c7f74ebe705eff711e994c3eec5956e03 @@ -10384,7 +11200,7 @@ Author: Daniel-Constantin Mierla Date: Wed Sep 6 13:00:12 2023 +0200 dispatcher: added pactive and pinactive for $dsg(key) - + - return percent of active/inactive route in the group commit d07eb9e54a075716c6bc96b123c3bbb885466da8 @@ -10422,19 +11238,19 @@ Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Sep 4 21:31:49 2023 +0000 github: [skip ci]: bump actions/checkout from 3 to 4 - + Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) - + --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... - + Signed-off-by: dependabot[bot] commit ff323e8d7166fd781763608434da982e0918c7c9 @@ -10460,7 +11276,7 @@ Author: Daniel-Constantin Mierla Date: Wed Aug 30 17:08:07 2023 +0200 core: parser for overflow control parameters in via header - + - RFC7339 commit b56110aca34a5633029654ae457ff3ed4424e62f @@ -10510,7 +11326,7 @@ Author: Daniel-Constantin Mierla Date: Wed Aug 23 10:55:35 2023 +0200 pv_headers: compare result of pvh_set_xavi() with NULL for error cases - + - the function returns a pointer commit 027c2b30b39a7596c8630c06995ddc49bb42d789 @@ -10536,7 +11352,7 @@ Author: Daniel-Constantin Mierla Date: Tue Aug 22 11:09:56 2023 +0200 tls: updates to revive TLS_MALLOC_DBG - + - it still requires q_malloc to be used - GH #3532 @@ -10545,7 +11361,7 @@ Author: Daniel-Constantin Mierla Date: Tue Aug 22 10:25:53 2023 +0200 core: mem - shm api extended to enable setting func field of the chunk - + - implemented for q_malloc(), being needed for reviving tls extra debug mode commit a92de0dfc809f9257eb230093c93081606ee107e @@ -10571,7 +11387,7 @@ Author: Daniel-Constantin Mierla Date: Mon Aug 21 12:48:39 2023 +0200 tm: docs - note that t_relay() creates transaction if it does not exist - + - removed trailing spaces commit 4bcf0649a86965fc2e5c8ea5f3c6519e2918ba52 @@ -10585,11 +11401,11 @@ Author: Дилян Палаузов Date: Fri Aug 18 08:12:18 2023 -0400 rtpengine: set MIME Content-Length - + For MIME multipart SDPs, the embedded MIME section can contain a Content-Length header. Update this field if preset after rewriting the SDP. @@ -10607,7 +11423,7 @@ Author: Victor Seva Date: Wed Aug 9 15:43:13 2023 +0200 pkg/kamailio/deb: add pcre2 - + * first step for migration to pcre2 until all modules are migrated commit fcdeedb5e84ff31f25daa7ba8ffdb355f909afa9 @@ -10627,7 +11443,7 @@ Author: Daniel-Constantin Mierla Date: Thu Aug 17 18:33:09 2023 +0200 htable: added rpc htable.dmqresync command - + - reset and dmq sync for a specific hash table commit 722a79a9ba8ca2608e699ec14684ce004ae10d60 @@ -10635,9 +11451,9 @@ Author: Rick Barenthin Date: Tue Aug 15 22:30:58 2023 +0200 core: cfg.y typo in parsing XAVPVIAFIELDS - + In the XAVPVIAFIELDS block there is the string written to the wrong variable. - + The string is stored in _ksr_xavp_via_params.s but the lenght is stored in _ksr_xavp_via_fields.len. This breaks XAVPVIAPARAMS and XAVPVIAFIELDS. commit e859169628ed4c3dc1c5a9230e29046c9cb8fc46 @@ -10663,7 +11479,7 @@ Author: Henning Westerholt Date: Tue Aug 15 14:16:07 2023 +0000 ims_ipsec_pcscf: typo in spi_add function definition, GH #3513 - + - fix typo in spi_add function definition - patch from jbipre2, GH #3513 @@ -10714,7 +11530,7 @@ Author: Charles Chance Date: Wed Aug 9 10:22:19 2023 +0100 dispatcher: add option to retain existing latency stats when reloading destinations - + - also retain when adding/removing individual destinations via RPC commit 2fd5d881563126f7425730f798afcbfc2feeac65 @@ -10729,7 +11545,7 @@ Date: Fri Aug 11 13:23:29 2023 +0200 rabbitmq: Enabling rabbitmq_publish for any route and disabling peer verification - + Enabling rabbitmq_publish function on any route so we can send events on reply reception. Also disabling peer verification on the TLS handshake if no CA file is @@ -10752,7 +11568,7 @@ Author: Daniel-Constantin Mierla Date: Fri Aug 11 20:16:37 2023 +0200 http_async_client: docs - dependency on libevent - + - list style for dependencies and links to projects commit 18ae77207409b816d6dffb13b41e3be9c251d62c @@ -10772,7 +11588,7 @@ Author: Victor Seva Date: Thu Jul 13 00:26:58 2023 +0200 ctl: use snprintf() to set boundaries - + > https://github.com/kamailio/kamailio/security/code-scanning/1839 commit d893f3af1444c8c4c5db6cd53fb577703007c90c @@ -10780,7 +11596,7 @@ Author: Walter Schober Date: Mon Jul 31 15:16:31 2023 +0200 core: Add TCP_USER_TIMEOUT socket option on listening socket. - + Use tcp_send_timeout config option also on listening socket to timeout outbound messages sent on passive inbound connections. commit 63445544d994d7876ff76eb66203400c5a3a4b91 @@ -10806,14 +11622,14 @@ Author: Victor Seva Date: Thu Jul 20 14:04:30 2023 +0200 crypto: SHA1_Init deprecated at openssl 3.0 - + From https://www.openssl.org/docs/man3.0/man7/migration_guide.html - + > Use of low-level digest functions such as SHA1_Init(3) have been informally > discouraged from use for a long time. Applications should instead use the > high level EVP APIs EVP_DigestInit_ex(3), EVP_DigestUpdate(3) and > EVP_DigestFinal_ex(3), or the quick one-shot EVP_Q_digest(3). - + related to #3502 commit bad420e9f72c237bbd608a9ff06ae3b63bce9625 @@ -10821,9 +11637,9 @@ Author: Victor Seva Date: Thu Jul 20 10:11:03 2023 +0200 .devcontainer: Initial support for devcontainers [skip ci] - + Allows to develop inside a container using vscode - + > https://code.visualstudio.com/docs/devcontainers/containers commit c2f12479debe7bd5f5819f3c3b332929dd5fe703 @@ -10837,7 +11653,7 @@ Author: Victor Seva Date: Wed Jul 26 15:00:38 2023 +0200 sipcapture: make sure we null terminate the copy of the string - + bug introduced at cbd7810fff3d5145c1ce34c0e362b5590bb92a12 commit 3c1700fb7693c05025be1058e856fe610f4be031 @@ -10845,7 +11661,7 @@ Author: Victor Seva Date: Wed Jul 26 14:53:26 2023 +0200 rtpproxy: make sure we null terminate the copy of the string. - + bug introduced at d00ceda2c04 commit 2750e48b5445e9334cb7a062d7d53a1fb9a0a411 @@ -10853,7 +11669,7 @@ Author: Maksym Sobolyev Date: Tue Jul 25 12:29:02 2023 -0700 rtpproxy: make sure we null terminate the copy of the string. - + Broken in d00ceda2c04. commit 8b1139851d9f88add1fd7da0dbc0b2b56933cdd3 @@ -10885,13 +11701,13 @@ Author: Nir Simionovich Date: Mon Jul 17 11:26:18 2023 -0400 kamctl: add 2 new options to dispatcher management (#3512) - + *kamctl: add support for deleting a gateway or full setid in dispatcher. - + * kamctl: small style fix to help screen after previous change - + --------- - + Co-authored-by: Nir Simionovich commit 78c0275b9081d4ee18a89f702f3931e3c3f83489 @@ -10899,29 +11715,29 @@ Author: joelbax <98022231+joelbax@users.noreply.github.com> Date: Mon Jul 17 17:21:36 2023 +0200 rabbitmq: Adding amqps support (#3511) - + * rabbitmq: Adding amqps support - + Adding support for secure AMQP connections over TLS (amqps). - + * rabbitmq: Adding amqps support - + Adding support for secure AMQP connections over TLS (amqps). - + rabbitmq: Adding amqps support - + Adding support for secure AMQP connections over TLS (amqps). - + rabbitmq: Format fixes - + Some style format fixes - + * rabbitmq: Format fixes - + Fixing some missing spaces - + * rabbitmq: Typo fix - + Fixing inilialized by initialized commit 9f3356de1c769c610112df9dbcfdf6461de9f959 @@ -10983,7 +11799,7 @@ Author: Nikolay Ivanuschak Date: Wed Jun 28 23:29:04 2023 +0300 geoip2: added distance function - + Added distance function which allows to calculate the distance between the geocoordinates of the the IP-address passed as incoming parameter (coordinates for the IP are determined inside @@ -11150,9 +11966,9 @@ Author: Victor Seva Date: Tue Jul 4 18:47:57 2023 +0200 core: modparam use strncpy() for setting boundaries - + * use strncat() - + > https://github.com/kamailio/kamailio/security/code-scanning/1836 > https://github.com/kamailio/kamailio/security/code-scanning/1834 @@ -11161,9 +11977,9 @@ Author: Victor Seva Date: Tue Jun 27 14:20:59 2023 +0200 jsonrcps: use strncpy() for setting boundaries - + * use strncat() - + > https://github.com/kamailio/kamailio/security/code-scanning/2381 > https://github.com/kamailio/kamailio/security/code-scanning/2380 > https://github.com/kamailio/kamailio/security/code-scanning/1843 @@ -11174,7 +11990,7 @@ Author: Victor Seva Date: Tue Jun 27 10:27:47 2023 +0200 core: socket_info use strncpy() for setting boundaries - + > https://github.com/kamailio/kamailio/security/code-scanning/2586 commit 77ca2e93e945fe46783e953d58bc546d9d6d1b81 @@ -11182,7 +11998,7 @@ Author: Victor Seva Date: Tue Jun 27 10:20:57 2023 +0200 permissions: use strncpy() for setting boundaries - + > https://github.com/kamailio/kamailio/security/code-scanning/2616 > https://github.com/kamailio/kamailio/security/code-scanning/1845 @@ -11191,7 +12007,7 @@ Author: Victor Seva Date: Tue Jun 27 09:49:35 2023 +0200 path: use snprintf() instead of sprintf() - + > https://github.com/kamailio/kamailio/security/code-scanning/2612 > https://github.com/kamailio/kamailio/security/code-scanning/2613 > https://github.com/kamailio/kamailio/security/code-scanning/2614 @@ -11202,7 +12018,7 @@ Author: Victor Seva Date: Tue Jun 27 09:23:31 2023 +0200 rtpproxy: use memcpy instead of strcpy for coherence - + > https://github.com/kamailio/kamailio/security/code-scanning/2617 > https://github.com/kamailio/kamailio/security/code-scanning/2618 > https://github.com/kamailio/kamailio/security/code-scanning/2620 @@ -11212,7 +12028,7 @@ Author: Victor Seva Date: Tue Jun 27 08:48:10 2023 +0200 sipcapture: use memcpy instead of strncpy for coherence - + > https://github.com/kamailio/kamailio/security/code-scanning/2620 > https://github.com/kamailio/kamailio/security/code-scanning/2621 @@ -11305,7 +12121,7 @@ Author: Daniel-Constantin Mierla Date: Fri Jul 7 17:41:15 2023 +0200 registrar: increase max size for user and domain building aor - + - renamed max aor lenght define to match the user and domain style commit 883f6b77211a76b35a9df570a8ddbbc344b05472 @@ -11313,7 +12129,7 @@ Author: Daniel-Constantin Mierla Date: Thu Jul 6 21:26:28 2023 +0200 kex: safety checks when iterating stats list - + - GH #3186 commit 498e9f7276459b3f3963544527d9bd2ae5d36e40 @@ -11357,7 +12173,7 @@ Author: Daniel-Constantin Mierla Date: Mon Jul 3 08:26:07 2023 +0200 http_client: use LIBCURL_VERSION_NUM instead of CURL_AT_LEAST_VERSION - + - older distros have compilers that don't cope with the later commit b8cae4fbcd026ffb81e8242500212582d9672ad5 @@ -11407,7 +12223,7 @@ Author: Victor Seva Date: Wed Jun 28 13:59:10 2023 +0200 pkg/kamailio/deb: remove microhttpd from older versions - + > https://kamailio.sipwise.com/job/kamailiodev-nightly-binaries/2442/console commit 4baaba99fa729d4e5aae6f29c614c22cdaca452c @@ -11433,7 +12249,7 @@ Author: Daniel-Constantin Mierla Date: Tue Jun 27 13:05:52 2023 +0200 microhttpd: implemented request handler callback - + - execute event_route[microhttpd:request] when receiving an HTTP request commit 777ecf6bd8735538bf61f4f6e10d46ad7c39981b @@ -11441,7 +12257,7 @@ Author: Victor Seva Date: Tue Jun 27 10:00:26 2023 +0200 github: don't execute codeql for each push [skip ci] - + * set schedule cifuzz and codeql commit 7e94c365359ca24ae7410121a5e4b4f7382b0b79 @@ -11473,18 +12289,18 @@ Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Jun 26 23:36:35 2023 +0000 github: bump actions/upload-artifact from 1 to 3 - + Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 1 to 3. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v1...v3) - + --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major ... - + Signed-off-by: dependabot[bot] commit 549cca07beef76f734e9eafe06a66b5509170b07 @@ -11492,19 +12308,19 @@ Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Jun 26 23:29:55 2023 +0000 github: bump actions/checkout from 2 to 3 - + Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v3) - + --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... - + Signed-off-by: dependabot[bot] commit b306bab6fb87033dadbf7b5eefbfbd233e3dc51a @@ -11518,7 +12334,7 @@ Author: Victor Seva Date: Tue Jun 27 01:28:41 2023 +0200 github: remove updater.yaml [skip ci] - + * we are now using dependabot directly commit f73484df4d75aa8a82f3b3ecece9431a79be88f1 @@ -11532,7 +12348,7 @@ Author: Victor Seva Date: Mon Jun 26 23:36:28 2023 +0200 github: switch to bookworm for builds [skip ci] - + * codeql: add libmicrohttpd-dev dependency build was failing due to missing dependency @@ -11553,7 +12369,7 @@ Author: Victor Seva Date: Fri Jun 23 09:06:43 2023 +0200 utils/kamcmd: fix memory leak - + fixes #3478 commit 82f5fcbf88ee3058bd9da520b528c86393cc422a @@ -11561,7 +12377,7 @@ Author: Victor Seva Date: Thu Jun 22 17:29:48 2023 +0200 tls: fix build for openssl < 1.1.1 - + OPENSSL_INIT_ATFORK was introduced in libssl 1.1.1 error introduced at 9d6bfb96528c49e6aaa39aa47be877ca528c3537 @@ -11570,7 +12386,7 @@ Author: Daniel-Constantin Mierla Date: Thu Jun 22 14:37:18 2023 +0200 http_client: fix depecration of CURLOPT_REDIR_PROTOCOLS - + - GH #3492 commit 81be9e78c3731d45734480285d7afc17f8f9e87a @@ -11590,7 +12406,7 @@ Author: Daniel-Constantin Mierla Date: Wed Jun 21 09:27:28 2023 +0200 http_client: fix depecration of CURLOPT_PROTOCOLS and CURLINFO_SIZE_DOWNLOAD - + - GH #3484 commit 4985bc9cc764699297235d4220ec9a07a9286988 @@ -11610,7 +12426,7 @@ Author: Joey Golan Date: Tue Jun 13 08:16:41 2023 +0300 rtpengine: fix build failed on specific distribution - + Fix clang-format-checker errors commit 17da2e8344fc5f010ae08277a89b4b122dd8c56b @@ -11636,9 +12452,9 @@ Author: Victor Seva Date: Mon Jun 19 20:12:17 2023 +0200 tls: disable tls_rand for openssl >= 3.0 - + From https://www.openssl.org/docs/man3.0/man3/RAND_set_rand_method.html - + > All of the functions described on this page are deprecated. > Applications should instead use RAND_set_DRBG_type(3), EVP_RAND(3) and > EVP_RAND(7). @@ -11648,15 +12464,15 @@ Author: Victor Seva Date: Mon Jun 19 13:36:53 2023 +0200 tls: disable engine for openssl >= 3.0 - + From https://www.openssl.org/docs/man3.0/man7/migration_guide.html - + > The refactoring to support Providers conflicts internally with the APIs > used to support engines, including the ENGINE API and any function that > creates or modifies custom "METHODS" - + From https://www.openssl.org/docs/man3.0/man3/ENGINE_init.html: - + > All of the functions described on this page are deprecated. Applications > should instead use the provider APIs. @@ -11665,9 +12481,9 @@ Author: Victor Seva Date: Tue Jun 13 12:37:21 2023 +0200 tls: OPENSSL_fork_[prepare|parent|child] deprecated at openssl 3.0 - + From https://www.openssl.org/docs/man3.0/man3/OPENSSL_fork_prepare.html: - + > OPENSSL_fork_prepare, OPENSSL_fork_parent, OPENSSL_fork_child have been > deprecated since OpenSSL 3.0. > @@ -11695,7 +12511,7 @@ Author: Daniel-Constantin Mierla Date: Tue Jun 20 11:23:26 2023 +0200 Merge branch 'dilyanpalauzov-typos' - + * dilyanpalauzov-typos: (35 commits) modules: readme files regenerated - db_redis ... [skip ci] ndb_redis: Makefile - updated find command for libhiredis_ssl @@ -11730,7 +12546,7 @@ Author: Daniel-Constantin Mierla Date: Tue Jun 20 11:04:30 2023 +0200 ndb_redis: Makefile - updated find command for libhiredis_ssl - + - silent warnings about not existing directories commit e9cc9fc15b9ebb87d64478be93980e4c7766d941 @@ -11738,7 +12554,7 @@ Author: Daniel-Constantin Mierla Date: Tue Jun 20 11:03:04 2023 +0200 db_redis: Makefile - updated find command for libhiredis_ssl - + - silent warnings about not existing directories commit 279cf4e805838f897c2b71f2ea8c828de1725391 @@ -11746,7 +12562,7 @@ Author: Joel Centelles Date: Fri Jun 16 21:08:40 2023 +0200 ndb_redis: Fixing format - + Fixing some spaces and indentations commit 03ae83161307feeb95f36a60ef4f50d948a877b2 @@ -11754,7 +12570,7 @@ Author: Joel Centelles Date: Fri Jun 16 21:07:29 2023 +0200 db_redis: Format fixes - + Fixing some spaces commit 6c0bc1d276921fae02c06cadc0d96a8ff17b2a2f @@ -11762,7 +12578,7 @@ Author: Joel Centelles Date: Fri Jun 16 20:30:28 2023 +0200 ndb_redis: Searching SSL support in gcc search library path - + Checking libhiredis_ssl.so in gcc --print-search-dirs commit d0e84ab04921a01bfb980aa6ff5fb8df50ccd759 @@ -11770,7 +12586,7 @@ Author: Joel Centelles Date: Fri Jun 16 20:25:48 2023 +0200 db_redis: Searching SSL support in gcc search library path - + Checking libhiredis_ssl.so in gcc --print-search-dirs commit 1cde6d38a5d12950f5c405677ba652248881cd64 @@ -11778,7 +12594,7 @@ Author: Joel Centelles Date: Tue Jun 13 13:34:31 2023 +0200 ndb_redis: Missing uprotected redisSSLContext - + Fixing unprotected redisSSLContext reference in redis_client.h commit 053c65d731ceca121a64f6c599f8b78911636c25 @@ -11786,7 +12602,7 @@ Author: Joel Centelles Date: Mon Jun 12 13:30:39 2023 +0200 ndb_redis: Fixing global variables names - + Adding module name prefixing global variable names to prevent possible conflicts. Also using ca_path info in SSL context creation. @@ -11795,7 +12611,7 @@ Author: Joel Centelles Date: Mon Jun 12 13:24:31 2023 +0200 db_redis: Fixing global variables - + Adding module name prefix to global variables to reduce possible conflicts. commit 52d1959d6ed141ab7c2a96f1f79d8d6fd82cda00 @@ -11803,7 +12619,7 @@ Author: Joel Centelles Date: Fri Jun 9 13:34:15 2023 +0200 db_redis: Fixing Makefile - + Removing unprotected references to libhiredis_ssl.so commit 3162c80ee54eab842ddebef07c3c56792f30423b @@ -11811,7 +12627,7 @@ Author: Joel Centelles Date: Thu Jun 8 16:59:37 2023 +0200 db_redis: Fixing build - + Removing extra declaration outside from WITH_SSL block commit 93bcb36ee013e4ab02f71342fa2e2163dc380b8e @@ -11819,7 +12635,7 @@ Author: Joel Centelles Date: Thu Jun 8 16:57:04 2023 +0200 ndb_redis: Format fixes - + Fixing C formatting issues commit 23a54de62daf07ace22569baf0a52ee851645200 @@ -11827,7 +12643,7 @@ Author: Joel Centelles Date: Thu Jun 8 16:48:21 2023 +0200 db_redis: Missing format fixes - + Removing spaces from line ends. commit 6176c95a17f940c130f6219140593b6f08653e38 @@ -11835,7 +12651,7 @@ Author: Joel Centelles Date: Thu Jun 8 16:45:47 2023 +0200 db_redis: Fixing format - + Fixing malformed C lines commit 5b4d1d9e6160ab7aec8e77ab1a3e53651f2d37cc @@ -11843,7 +12659,7 @@ Author: Joel Centelles Date: Fri Jun 2 18:44:09 2023 +0200 ndb_redis: Adding TLS support - + Checks for the tls parameter in the BD schema and, if it's enabled, creates a temporary TLS conext that is used to initialize the redis context. Adds 1 new parameter: * ca_path: For specifying a folder containing valid certification chains. @@ -11853,13 +12669,13 @@ Author: Joel Centelles Date: Fri Jun 2 18:42:16 2023 +0200 db_redis: Adding TLS support - + Enhancing security options by enabling TLS connections and password definition. Added 3 new parameters: * opt_tls: For enabling TLS connections. * ca_path: For specifying a folder containing valid certification chains. * password: For providing DB access password. - + If opt_tls is provided a temporary SSL context is created to pass it to existing cluster or normal redis context. TLS support is automatically enabled/disabled by checking libhiredis_ssl.so existence. @@ -11874,7 +12690,7 @@ Author: Daniel-Constantin Mierla Date: Tue Jun 20 11:04:30 2023 +0200 ndb_redis: Makefile - updated find command for libhiredis_ssl - + - silent warnings about not existing directories commit d88d60a0f3d67f42e4201d6c871bbf993e6fa87b @@ -11882,7 +12698,7 @@ Author: Daniel-Constantin Mierla Date: Tue Jun 20 11:03:04 2023 +0200 db_redis: Makefile - updated find command for libhiredis_ssl - + - silent warnings about not existing directories commit 043f31ea0314c5d1d60a6ce8ce81e626922223c4 @@ -11890,7 +12706,7 @@ Author: Joel Centelles Date: Fri Jun 16 21:08:40 2023 +0200 ndb_redis: Fixing format - + Fixing some spaces and indentations commit cb96de742f1d729d01bf9c8c255a12aa089d6974 @@ -11898,7 +12714,7 @@ Author: Joel Centelles Date: Fri Jun 16 21:07:29 2023 +0200 db_redis: Format fixes - + Fixing some spaces commit d41924862a1729de186a5d1f4adddcfeb7fb7b7d @@ -11906,7 +12722,7 @@ Author: Joel Centelles Date: Fri Jun 16 20:30:28 2023 +0200 ndb_redis: Searching SSL support in gcc search library path - + Checking libhiredis_ssl.so in gcc --print-search-dirs commit f7a712b36918bd9c01256fb2b283754ad9ed7422 @@ -11914,7 +12730,7 @@ Author: Joel Centelles Date: Fri Jun 16 20:25:48 2023 +0200 db_redis: Searching SSL support in gcc search library path - + Checking libhiredis_ssl.so in gcc --print-search-dirs commit 77e74b974249b3c4e2e67cc074cc8ff26d50fde8 @@ -11922,7 +12738,7 @@ Author: Joel Centelles Date: Tue Jun 13 13:34:31 2023 +0200 ndb_redis: Missing uprotected redisSSLContext - + Fixing unprotected redisSSLContext reference in redis_client.h commit 90f977202af2d132fb63f20f76f9ad696a19656e @@ -11930,7 +12746,7 @@ Author: Joel Centelles Date: Mon Jun 12 13:30:39 2023 +0200 ndb_redis: Fixing global variables names - + Adding module name prefixing global variable names to prevent possible conflicts. Also using ca_path info in SSL context creation. @@ -11939,7 +12755,7 @@ Author: Joel Centelles Date: Mon Jun 12 13:24:31 2023 +0200 db_redis: Fixing global variables - + Adding module name prefix to global variables to reduce possible conflicts. commit 440e8cba9f9e8364e100a68283137da589e6f283 @@ -11947,7 +12763,7 @@ Author: Joel Centelles Date: Fri Jun 9 13:34:15 2023 +0200 db_redis: Fixing Makefile - + Removing unprotected references to libhiredis_ssl.so commit 4cca8c777020e5fea49e37940e3c521d766588f9 @@ -11955,7 +12771,7 @@ Author: Joel Centelles Date: Thu Jun 8 16:59:37 2023 +0200 db_redis: Fixing build - + Removing extra declaration outside from WITH_SSL block commit dd6ee7a7499fce6ce33c59c0dd15af81a140ae4f @@ -11963,7 +12779,7 @@ Author: Joel Centelles Date: Thu Jun 8 16:57:04 2023 +0200 ndb_redis: Format fixes - + Fixing C formatting issues commit 077980a000c37320bfade650c680da55af92154e @@ -11971,7 +12787,7 @@ Author: Joel Centelles Date: Thu Jun 8 16:48:21 2023 +0200 db_redis: Missing format fixes - + Removing spaces from line ends. commit ba080b16353b53c29c147740f3541ceecbe31c1d @@ -11979,7 +12795,7 @@ Author: Joel Centelles Date: Thu Jun 8 16:45:47 2023 +0200 db_redis: Fixing format - + Fixing malformed C lines commit 79d5ab3b86c0a1cc1b06efeee78ef5baa8d084f9 @@ -11987,7 +12803,7 @@ Author: Joel Centelles Date: Fri Jun 2 18:44:09 2023 +0200 ndb_redis: Adding TLS support - + Checks for the tls parameter in the BD schema and, if it's enabled, creates a temporary TLS conext that is used to initialize the redis context. Adds 1 new parameter: * ca_path: For specifying a folder containing valid certification chains. @@ -11997,13 +12813,13 @@ Author: Joel Centelles Date: Fri Jun 2 18:42:16 2023 +0200 db_redis: Adding TLS support - + Enhancing security options by enabling TLS connections and password definition. Added 3 new parameters: * opt_tls: For enabling TLS connections. * ca_path: For specifying a folder containing valid certification chains. * password: For providing DB access password. - + If opt_tls is provided a temporary SSL context is created to pass it to existing cluster or normal redis context. TLS support is automatically enabled/disabled by checking libhiredis_ssl.so existence. @@ -12025,7 +12841,7 @@ Author: Дилян Палаузов Date: Mon Jun 19 13:18:59 2023 +0200 core: kemi - propagate bool as a return value type - + - some scripting languages differentiate bool false|true vs int 0|1 values commit 9580adf9a478f161605a0f663099f4d10c0c93eb @@ -12161,7 +12977,7 @@ Author: Daniel-Constantin Mierla Date: Fri Jun 16 17:24:29 2023 +0200 cdp_avp: reformat code files with macros for code generation - + - clang format is not dealing nicely with such cases, disable formatting for those snippets @@ -12212,7 +13028,7 @@ Author: Victor Seva Date: Mon Aug 29 13:59:38 2022 +0200 pv_headers: rework pvh_remove_header_param, take two - + * pvh_set_xavi changes/removes xavi, so we need the new value * after pvh_remove_header, search for the header again @@ -12221,7 +13037,7 @@ Author: Victor Seva Date: Wed Mar 29 12:12:54 2023 +0200 cfgt: route_log modparam - + If enabled, cfgt will log (WARN) the execution time of routes. commit dd9c891bafe8de5dace630d676f9ea697152a4de @@ -12235,7 +13051,7 @@ Author: Victor Seva Date: Wed Apr 27 15:49:30 2022 +0200 cfgt: skip_unknown modparam - + If enabled, value different from 0, cfgt will not generate the report of any message that doesn't match the callid_prefix. @@ -12244,7 +13060,7 @@ Author: Victor Seva Date: Wed Jun 14 10:53:34 2023 +0200 pua_dialoginfo: fix dlg_var store and retrieval - + * pubruri_calle[e|r]_avp can have more than one value. Store values as comma separate strings at pubruri_calle[e|r]_dlg_var @@ -12293,7 +13109,7 @@ Author: Daniel-Constantin Mierla Date: Tue Jun 13 14:27:02 2023 +0200 cdp: changed function export macro for better list building - + - more readable exports formatting commit 2f23b3ccc2288e5d146aeac807935af24f5923b3 @@ -12307,7 +13123,7 @@ Author: Daniel-Constantin Mierla Date: Tue Jun 13 09:43:00 2023 +0200 cdp: fix always true condition in peer_timer() - + - extended the log message commit 1128df71dcba1cd97898c2970e7cd3221256adb1 @@ -12333,7 +13149,7 @@ Author: Daniel-Constantin Mierla Date: Tue Jun 13 08:40:54 2023 +0200 cdp: remove unnecessary checks inside Send_ASR() - + - updates to log messages commit 6a19434d4b93a8ec6e345b55ff1b83ff6bd38596 @@ -12389,7 +13205,7 @@ Author: Daniel-Constantin Mierla Date: Mon Jun 12 13:47:18 2023 +0200 pdb: use local log level for an info log message - + - new mod param to allow remapping local log level for info - related to GH #3296 @@ -12398,15 +13214,15 @@ Author: Daniel-Constantin Mierla Date: Mon Jun 12 13:43:31 2023 +0200 core: new log macros allowing to use local log levels per module - + - a variable has to be defined inside module like: - + ksr_loglevels_t _ksr_loglevels_MODNAME = KSR_LOGLEVELS_DEFAULTS; - + - for example, for pdb module: - + ksr_loglevels_t _ksr_loglevels_pdb = KSR_LOGLEVELS_DEFAULTS; - + - then use LLM_XYZ() macro instead of LM_XYZ() - for example, use LLM_INFO() instead of LM_INFO() @@ -12439,9 +13255,9 @@ Author: Jake Greene Date: Thu May 18 09:48:24 2023 -0500 presence: Add htable_db_restore RPC command. - + - Introduced `htable_db_restore` RPC command to load updates from the 'presentity' table into the 'publ_cache' specifically for 'publ_cache' modes 1 or 2. - + - update docs for htable_db_restore RPC command commit 90e172bad110c5a27da3908594b45f5bbe035d87 @@ -12491,7 +13307,7 @@ Author: Дилян Палаузов Date: Mon Jun 12 11:16:51 2023 +0200 Makefile: fixed paths for init.d scripts install on debian and centos - + - GH #3476 commit 7b1fe0483b684693c7baea9b62b471b64c6e22a9 @@ -12654,7 +13470,7 @@ Author: Victor Seva Date: Tue May 9 10:18:30 2023 +0200 core: pv_cache_dump - + related to #3440 commit 87ed3d9c3ae3ecfabe6d24f5fd3d656ef1182fac @@ -12674,7 +13490,7 @@ Author: Daniel-Constantin Mierla Date: Tue May 23 09:41:13 2023 +0200 ipops: create container items if not found for srv and naptr functions - + - GH #3419 commit 9c125234cd5bb7ff580e875c82002a8dd69fff82 @@ -12724,7 +13540,7 @@ Author: Victor Seva Date: Fri May 19 00:24:53 2023 +0200 README: remove travis-ci info [skip ci] - + no longer used commit 08fbc4fa8d44c2c0ee596e1f30b95b5b4fcfc823 @@ -14238,7 +15054,7 @@ Author: Victor Seva Date: Wed May 17 12:40:32 2023 +0200 github: add checkout before clang-format-checker [skip ci] - + > https://github.com/WolleTD/clang-format-checker/issues/15 commit 2c36d50ac56663c92bc007c85b18199a1fdff363 @@ -14258,7 +15074,7 @@ Author: Daniel-Constantin Mierla Date: Wed May 17 11:21:08 2023 +0200 Makefile.defs: set LIBSSL_SET_MUTEX_SHARED by default to 1 - + - one can set LIBSSL_SET_MUTEX_SHARED=0 in make command line to switch to detection mode if it is need to set it or not based on libssl version @@ -14269,9 +15085,9 @@ Author: Victor Seva Date: Wed May 17 10:07:56 2023 +0200 github: GitHub Actions Version Updater - + > https://github.com/marketplace/actions/github-actions-version-updater - + * PAT created using kamailio-sync * organization secret WORKFLOW_SECRET created @@ -14280,7 +15096,7 @@ Author: Daniel-Constantin Mierla Date: Wed May 17 09:57:20 2023 +0200 topoh: don't set 0 twice at the end of masked/unmasked call-id - + - fomatting updates commit 991de5e51e799a0110b7aa489eb27f4f01f5dfd2 @@ -14294,7 +15110,7 @@ Author: harish Date: Wed May 17 00:21:21 2023 +0530 topoh: memory leak fix for API call - + th_mask_callid_str & th_unmask_callid_str funtions used for API call to encode/decode call-ID uses static array declaration for callid_mbuf was unable to free callid data lump after use and leads to memory leak. @@ -14308,7 +15124,7 @@ Author: Victor Seva Date: Wed May 17 09:22:10 2023 +0200 siptrace: fix destination target parameter on ki_sip_trace_msg - + fixes #3457 commit bafefbc841eb7a6929baeff0b3fbe185860f4290 @@ -14352,7 +15168,7 @@ Author: harish Date: Fri Jan 27 01:20:59 2023 +0530 Topos: Added CallID Mask Document for Topos - + Added document for Call-ID Mask in Topos Module commit d98ff2aab3d3e379fa27da187fbd069c23fb0fe9 @@ -14360,7 +15176,7 @@ Author: harish Date: Fri Jan 27 01:15:46 2023 +0530 Topos: Added Call ID mask when sending to Downstream - + Added Call-ID mask while sending the request to Downstream and unmasking when receiveing from downstream @@ -14375,7 +15191,7 @@ Author: Daniel-Constantin Mierla Date: Tue May 16 12:45:57 2023 +0200 core: use unsigned long (j) for rpc core.shmmem - + - GH #3450 commit 1d5722e18e04e8935b342d303fe265c5d8f06e8e @@ -14407,7 +15223,7 @@ Author: Victor Seva Date: Mon May 15 22:34:59 2023 +0200 Revert "tls_wolfssl: use wolfssl lib from system if available" - + This reverts commit 14b1f79c29f317c74bbcbba75853ce45c353a865. commit d8a244c6286ea0b96f5466c281aeca37d86bb17f @@ -14415,7 +15231,7 @@ Author: Victor Seva Date: Mon May 15 22:34:47 2023 +0200 Revert "pkg/kamailio/deb: introduce wolftls package" - + This reverts commit 13430c2e8b9fccf7565ddcf38dcab8e516cebef0. commit 091dc9a76bcec5c8a4bc73e863ed10b1b9d76c92 @@ -14477,7 +15293,7 @@ Author: Victor Seva Date: Wed May 10 23:48:23 2023 +0200 pipelimit: fix documentation on default value of plp_limit_column [skip ci] - + fixes #3449 commit eca3bf7570290854561ecd4ef71dc093941e2d72 @@ -14521,7 +15337,7 @@ Author: Victor Seva Date: Tue May 9 23:28:04 2023 +0200 dialplan: fix ki_dp_translate() checks for input/output parameters - + fixes #3447 commit 84dbcdb812fce70d6d470050793125698c06d0fd @@ -14535,7 +15351,7 @@ Author: Stefan Mititelu Date: Fri Apr 28 11:15:36 2023 +0300 tls: Add rpc function to kill session by id - + Note that it may take few seconds for session to be killed. commit 439a1c7471c562b14d482c691107e88aaf694162 @@ -14543,7 +15359,7 @@ Author: Daniel-Constantin Mierla Date: Tue May 9 16:07:41 2023 +0200 registrar: use xavp->val.v.l for tcp connection id - + Co-authored-by: Bastian Triller commit 404ccb00ad294b39da58132772881143bc15fa04 @@ -14557,14 +15373,14 @@ Author: Richard Fuchs Date: Tue May 9 15:05:39 2023 +0200 rtpengine: fix unaligned memory access - + Make sure the pointers we return from our continuous memory buffer is always 64-bit aligned as it's used not only for strings, but also for structs/objects, and such unaligned memory access is undefined on some archs and flagged as such by ASAN. - + From https://github.com/sipwise/rtpengine/commit/ade8100d3b10308f1ff63f8cb06fdf292618edca - + fixes #3444 commit c75e4a087f73a0976e343789593a888524aa752b @@ -14590,7 +15406,7 @@ Author: Daniel-Constantin Mierla Date: Mon Apr 24 20:28:48 2023 +0200 siptrace: reworked sip_trace_msg() to specify source and target addresses - + - implemented for hep mirroring only - prototype: sip_trace_msg(data, saddr, taddr, duri, corrid) @@ -14611,7 +15427,7 @@ Author: Daniel-Constantin Mierla Date: Fri Apr 21 21:51:47 2023 +0200 siptrace: added sip_trace_msg(dst, corlid, vmsg) - + - send sip trace with the message provided as parmameter commit f9cbe7ad01331e97852872c29b612409bf571c8d @@ -14625,9 +15441,9 @@ Author: Victor Seva Date: Thu May 4 20:12:32 2023 +0200 lcr: fix crash be calling load_gw* via KEMI - + move the check of lcr_id to the helper - + fixes #3435 commit 1c924f9bc9d880f9c32fe5cb4d23722f27107be6 @@ -14635,7 +15451,7 @@ Author: Daniel-Constantin Mierla Date: Thu May 4 20:45:00 2023 +0200 Makefile.defs: version set to 5.8.0-dev0 - + - master branch is open for new features to be part of future release series 5.8.x diff --git a/doc/man/kamailio.8 b/doc/man/kamailio.8 index f4fc69ade..05460afbd 100644 --- a/doc/man/kamailio.8 +++ b/doc/man/kamailio.8 @@ -8,7 +8,7 @@ kamailio \- a very fast and configurable SIP server .SH SYNOPSIS .B kamailio [ -.B \-hfcmMdVIhEeblLnvKrRDTNWwtugPGSQOaAxXY +.B \-hfcmMdVIhEebBlLnvKrRDTNWwtugPGSQOaAxXY ] [ .BI \-a " auto\-aliases\-mode" ] [ @@ -16,6 +16,8 @@ kamailio \- a very fast and configurable SIP server ] [ .BI \-b " max_rcv_buf_size" ] [ +.BI \-B " max_snd_buf_size" +] [ .BI \-f " config\-file" ] [ .BI \-g " gid" @@ -68,7 +70,10 @@ default is yes. Add config pre-processor define (e.g., -A WITH_AUTH, -A N=1, -A X='"Y"') .TP .BI \-b " max_rcv_buf_size" -Maximum receive buffer size which will not be exceeded by the auto-probing procedure even if the OS allows. +Maximum OS UDP receive buffer size which will not be exceeded by auto-probing-and-increase procedure even if OS allows. +.TP +.BI \-B " max_snd_buf_size" +Maximum OS UDP send buffer size which will not be exceeded by auto-probing-and-increase procedure even if OS allows. .TP .BI \-c Checks the config file and displays the aliases and listen interface list. diff --git a/etc/kamailio.cfg b/etc/kamailio.cfg index 3f9a5fe79..d0a3d2754 100644 --- a/etc/kamailio.cfg +++ b/etc/kamailio.cfg @@ -561,7 +561,7 @@ request_route { # record routing for dialog forming requests (in case they are routed) # - remove preloaded route headers remove_hf("Route"); - if (is_method("INVITE|SUBSCRIBE")) { + if (is_method("INVITE|SUBSCRIBE|REFER")) { record_route(); } @@ -678,8 +678,8 @@ route[WITHINDLG] { } else if ( is_method("ACK") ) { # ACK is forwarded statelessly route(NATMANAGE); - } else if ( is_method("NOTIFY") ) { - # Add Record-Route for in-dialog NOTIFY as per RFC 6665. + } else if ( is_method("NOTIFY|REFER") ) { + # Add Record-Route for in-dialog NOTIFY and REFER (RFC6665, RFC3515) record_route(); } route(RELAY); diff --git a/misc/examples/ims/scscf/README.md b/misc/examples/ims/scscf/README.md index d28328cb4..beb3c69a7 100644 --- a/misc/examples/ims/scscf/README.md +++ b/misc/examples/ims/scscf/README.md @@ -12,6 +12,6 @@ The following tables (or files) are required: * ims_charging_create.sql * ims_dialog-create.sql - * ms_usrloc_scscf-create.sql + * ims_usrloc_scscf-create.sql * presence-create.sql * standard-create.sql diff --git a/pkg/kamailio/alpine/APKBUILD b/pkg/kamailio/alpine/APKBUILD index 53edff7bd..3a8fe938c 100644 --- a/pkg/kamailio/alpine/APKBUILD +++ b/pkg/kamailio/alpine/APKBUILD @@ -4,7 +4,7 @@ # Maintainer: Nathan Angelacos pkgname=kamailio -pkgver=5.8.4 +pkgver=5.8.5 pkgrel=0 # If building from a git snapshot, specify the gitcommit diff --git a/pkg/kamailio/deb/bionic/changelog b/pkg/kamailio/deb/bionic/changelog index 250e700e4..11564ff94 100644 --- a/pkg/kamailio/deb/bionic/changelog +++ b/pkg/kamailio/deb/bionic/changelog @@ -1,3 +1,9 @@ +kamailio (5.8.5) unstable; urgency=medium + + * version set 5.8.5 + + -- Victor Seva Thu, 23 Jan 2025 08:31:22 +0100 + kamailio (5.8.4) unstable; urgency=medium * version set 5.8.4 diff --git a/pkg/kamailio/deb/bionic/kamailio@.service b/pkg/kamailio/deb/bionic/kamailio@.service new file mode 100644 index 000000000..81c06394d --- /dev/null +++ b/pkg/kamailio/deb/bionic/kamailio@.service @@ -0,0 +1,26 @@ +[Unit] +Description=Kamailio - the Open Source SIP Server (instance %i) +Documentation=man:kamailio(8) +Wants=network-online.target +After=network-online.target + +[Service] +Type=forking +User=kamailio +Group=kamailio +Environment='CFGFILE=/etc/kamailio/kamailio-%i.cfg' +Environment='SHM_MEMORY=64' +Environment='PKG_MEMORY=8' +EnvironmentFile=-/etc/default/kamailio-%i +EnvironmentFile=-/etc/default/kamailio-%i.d/* +# PIDFile requires a full absolute path +PIDFile=/run/kamailio-%i/kamailio.pid +# ExecStart requires a full absolute path +ExecStart=/usr/sbin/kamailio -P /run/kamailio-%i/kamailio.pid -Y /run/kamailio-%i -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY +Restart=on-failure +# /run/kamailio in tmpfs +RuntimeDirectory=kamailio-%i +RuntimeDirectoryMode=0770 + +[Install] +WantedBy=multi-user.target diff --git a/pkg/kamailio/deb/bookworm/changelog b/pkg/kamailio/deb/bookworm/changelog index 250e700e4..11564ff94 100644 --- a/pkg/kamailio/deb/bookworm/changelog +++ b/pkg/kamailio/deb/bookworm/changelog @@ -1,3 +1,9 @@ +kamailio (5.8.5) unstable; urgency=medium + + * version set 5.8.5 + + -- Victor Seva Thu, 23 Jan 2025 08:31:22 +0100 + kamailio (5.8.4) unstable; urgency=medium * version set 5.8.4 diff --git a/pkg/kamailio/deb/bookworm/kamailio@.service b/pkg/kamailio/deb/bookworm/kamailio@.service new file mode 100644 index 000000000..81c06394d --- /dev/null +++ b/pkg/kamailio/deb/bookworm/kamailio@.service @@ -0,0 +1,26 @@ +[Unit] +Description=Kamailio - the Open Source SIP Server (instance %i) +Documentation=man:kamailio(8) +Wants=network-online.target +After=network-online.target + +[Service] +Type=forking +User=kamailio +Group=kamailio +Environment='CFGFILE=/etc/kamailio/kamailio-%i.cfg' +Environment='SHM_MEMORY=64' +Environment='PKG_MEMORY=8' +EnvironmentFile=-/etc/default/kamailio-%i +EnvironmentFile=-/etc/default/kamailio-%i.d/* +# PIDFile requires a full absolute path +PIDFile=/run/kamailio-%i/kamailio.pid +# ExecStart requires a full absolute path +ExecStart=/usr/sbin/kamailio -P /run/kamailio-%i/kamailio.pid -Y /run/kamailio-%i -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY +Restart=on-failure +# /run/kamailio in tmpfs +RuntimeDirectory=kamailio-%i +RuntimeDirectoryMode=0770 + +[Install] +WantedBy=multi-user.target diff --git a/pkg/kamailio/deb/bullseye/changelog b/pkg/kamailio/deb/bullseye/changelog index 250e700e4..11564ff94 100644 --- a/pkg/kamailio/deb/bullseye/changelog +++ b/pkg/kamailio/deb/bullseye/changelog @@ -1,3 +1,9 @@ +kamailio (5.8.5) unstable; urgency=medium + + * version set 5.8.5 + + -- Victor Seva Thu, 23 Jan 2025 08:31:22 +0100 + kamailio (5.8.4) unstable; urgency=medium * version set 5.8.4 diff --git a/pkg/kamailio/deb/bullseye/kamailio@.service b/pkg/kamailio/deb/bullseye/kamailio@.service new file mode 100644 index 000000000..81c06394d --- /dev/null +++ b/pkg/kamailio/deb/bullseye/kamailio@.service @@ -0,0 +1,26 @@ +[Unit] +Description=Kamailio - the Open Source SIP Server (instance %i) +Documentation=man:kamailio(8) +Wants=network-online.target +After=network-online.target + +[Service] +Type=forking +User=kamailio +Group=kamailio +Environment='CFGFILE=/etc/kamailio/kamailio-%i.cfg' +Environment='SHM_MEMORY=64' +Environment='PKG_MEMORY=8' +EnvironmentFile=-/etc/default/kamailio-%i +EnvironmentFile=-/etc/default/kamailio-%i.d/* +# PIDFile requires a full absolute path +PIDFile=/run/kamailio-%i/kamailio.pid +# ExecStart requires a full absolute path +ExecStart=/usr/sbin/kamailio -P /run/kamailio-%i/kamailio.pid -Y /run/kamailio-%i -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY +Restart=on-failure +# /run/kamailio in tmpfs +RuntimeDirectory=kamailio-%i +RuntimeDirectoryMode=0770 + +[Install] +WantedBy=multi-user.target diff --git a/pkg/kamailio/deb/buster/changelog b/pkg/kamailio/deb/buster/changelog index 250e700e4..11564ff94 100644 --- a/pkg/kamailio/deb/buster/changelog +++ b/pkg/kamailio/deb/buster/changelog @@ -1,3 +1,9 @@ +kamailio (5.8.5) unstable; urgency=medium + + * version set 5.8.5 + + -- Victor Seva Thu, 23 Jan 2025 08:31:22 +0100 + kamailio (5.8.4) unstable; urgency=medium * version set 5.8.4 diff --git a/pkg/kamailio/deb/buster/kamailio@.service b/pkg/kamailio/deb/buster/kamailio@.service new file mode 100644 index 000000000..81c06394d --- /dev/null +++ b/pkg/kamailio/deb/buster/kamailio@.service @@ -0,0 +1,26 @@ +[Unit] +Description=Kamailio - the Open Source SIP Server (instance %i) +Documentation=man:kamailio(8) +Wants=network-online.target +After=network-online.target + +[Service] +Type=forking +User=kamailio +Group=kamailio +Environment='CFGFILE=/etc/kamailio/kamailio-%i.cfg' +Environment='SHM_MEMORY=64' +Environment='PKG_MEMORY=8' +EnvironmentFile=-/etc/default/kamailio-%i +EnvironmentFile=-/etc/default/kamailio-%i.d/* +# PIDFile requires a full absolute path +PIDFile=/run/kamailio-%i/kamailio.pid +# ExecStart requires a full absolute path +ExecStart=/usr/sbin/kamailio -P /run/kamailio-%i/kamailio.pid -Y /run/kamailio-%i -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY +Restart=on-failure +# /run/kamailio in tmpfs +RuntimeDirectory=kamailio-%i +RuntimeDirectoryMode=0770 + +[Install] +WantedBy=multi-user.target diff --git a/pkg/kamailio/deb/debian/changelog b/pkg/kamailio/deb/debian/changelog index 250e700e4..11564ff94 100644 --- a/pkg/kamailio/deb/debian/changelog +++ b/pkg/kamailio/deb/debian/changelog @@ -1,3 +1,9 @@ +kamailio (5.8.5) unstable; urgency=medium + + * version set 5.8.5 + + -- Victor Seva Thu, 23 Jan 2025 08:31:22 +0100 + kamailio (5.8.4) unstable; urgency=medium * version set 5.8.4 diff --git a/pkg/kamailio/deb/debian/kamailio@.service b/pkg/kamailio/deb/debian/kamailio@.service new file mode 100644 index 000000000..81c06394d --- /dev/null +++ b/pkg/kamailio/deb/debian/kamailio@.service @@ -0,0 +1,26 @@ +[Unit] +Description=Kamailio - the Open Source SIP Server (instance %i) +Documentation=man:kamailio(8) +Wants=network-online.target +After=network-online.target + +[Service] +Type=forking +User=kamailio +Group=kamailio +Environment='CFGFILE=/etc/kamailio/kamailio-%i.cfg' +Environment='SHM_MEMORY=64' +Environment='PKG_MEMORY=8' +EnvironmentFile=-/etc/default/kamailio-%i +EnvironmentFile=-/etc/default/kamailio-%i.d/* +# PIDFile requires a full absolute path +PIDFile=/run/kamailio-%i/kamailio.pid +# ExecStart requires a full absolute path +ExecStart=/usr/sbin/kamailio -P /run/kamailio-%i/kamailio.pid -Y /run/kamailio-%i -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY +Restart=on-failure +# /run/kamailio in tmpfs +RuntimeDirectory=kamailio-%i +RuntimeDirectoryMode=0770 + +[Install] +WantedBy=multi-user.target diff --git a/pkg/kamailio/deb/focal/changelog b/pkg/kamailio/deb/focal/changelog index 250e700e4..11564ff94 100644 --- a/pkg/kamailio/deb/focal/changelog +++ b/pkg/kamailio/deb/focal/changelog @@ -1,3 +1,9 @@ +kamailio (5.8.5) unstable; urgency=medium + + * version set 5.8.5 + + -- Victor Seva Thu, 23 Jan 2025 08:31:22 +0100 + kamailio (5.8.4) unstable; urgency=medium * version set 5.8.4 diff --git a/pkg/kamailio/deb/focal/kamailio@.service b/pkg/kamailio/deb/focal/kamailio@.service new file mode 100644 index 000000000..81c06394d --- /dev/null +++ b/pkg/kamailio/deb/focal/kamailio@.service @@ -0,0 +1,26 @@ +[Unit] +Description=Kamailio - the Open Source SIP Server (instance %i) +Documentation=man:kamailio(8) +Wants=network-online.target +After=network-online.target + +[Service] +Type=forking +User=kamailio +Group=kamailio +Environment='CFGFILE=/etc/kamailio/kamailio-%i.cfg' +Environment='SHM_MEMORY=64' +Environment='PKG_MEMORY=8' +EnvironmentFile=-/etc/default/kamailio-%i +EnvironmentFile=-/etc/default/kamailio-%i.d/* +# PIDFile requires a full absolute path +PIDFile=/run/kamailio-%i/kamailio.pid +# ExecStart requires a full absolute path +ExecStart=/usr/sbin/kamailio -P /run/kamailio-%i/kamailio.pid -Y /run/kamailio-%i -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY +Restart=on-failure +# /run/kamailio in tmpfs +RuntimeDirectory=kamailio-%i +RuntimeDirectoryMode=0770 + +[Install] +WantedBy=multi-user.target diff --git a/pkg/kamailio/deb/jammy/changelog b/pkg/kamailio/deb/jammy/changelog index 250e700e4..11564ff94 100644 --- a/pkg/kamailio/deb/jammy/changelog +++ b/pkg/kamailio/deb/jammy/changelog @@ -1,3 +1,9 @@ +kamailio (5.8.5) unstable; urgency=medium + + * version set 5.8.5 + + -- Victor Seva Thu, 23 Jan 2025 08:31:22 +0100 + kamailio (5.8.4) unstable; urgency=medium * version set 5.8.4 diff --git a/pkg/kamailio/deb/jammy/kamailio@.service b/pkg/kamailio/deb/jammy/kamailio@.service new file mode 100644 index 000000000..81c06394d --- /dev/null +++ b/pkg/kamailio/deb/jammy/kamailio@.service @@ -0,0 +1,26 @@ +[Unit] +Description=Kamailio - the Open Source SIP Server (instance %i) +Documentation=man:kamailio(8) +Wants=network-online.target +After=network-online.target + +[Service] +Type=forking +User=kamailio +Group=kamailio +Environment='CFGFILE=/etc/kamailio/kamailio-%i.cfg' +Environment='SHM_MEMORY=64' +Environment='PKG_MEMORY=8' +EnvironmentFile=-/etc/default/kamailio-%i +EnvironmentFile=-/etc/default/kamailio-%i.d/* +# PIDFile requires a full absolute path +PIDFile=/run/kamailio-%i/kamailio.pid +# ExecStart requires a full absolute path +ExecStart=/usr/sbin/kamailio -P /run/kamailio-%i/kamailio.pid -Y /run/kamailio-%i -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY +Restart=on-failure +# /run/kamailio in tmpfs +RuntimeDirectory=kamailio-%i +RuntimeDirectoryMode=0770 + +[Install] +WantedBy=multi-user.target diff --git a/pkg/kamailio/deb/jessie/changelog b/pkg/kamailio/deb/jessie/changelog index 250e700e4..11564ff94 100644 --- a/pkg/kamailio/deb/jessie/changelog +++ b/pkg/kamailio/deb/jessie/changelog @@ -1,3 +1,9 @@ +kamailio (5.8.5) unstable; urgency=medium + + * version set 5.8.5 + + -- Victor Seva Thu, 23 Jan 2025 08:31:22 +0100 + kamailio (5.8.4) unstable; urgency=medium * version set 5.8.4 diff --git a/pkg/kamailio/deb/jessie/kamailio@.service b/pkg/kamailio/deb/jessie/kamailio@.service new file mode 100644 index 000000000..81c06394d --- /dev/null +++ b/pkg/kamailio/deb/jessie/kamailio@.service @@ -0,0 +1,26 @@ +[Unit] +Description=Kamailio - the Open Source SIP Server (instance %i) +Documentation=man:kamailio(8) +Wants=network-online.target +After=network-online.target + +[Service] +Type=forking +User=kamailio +Group=kamailio +Environment='CFGFILE=/etc/kamailio/kamailio-%i.cfg' +Environment='SHM_MEMORY=64' +Environment='PKG_MEMORY=8' +EnvironmentFile=-/etc/default/kamailio-%i +EnvironmentFile=-/etc/default/kamailio-%i.d/* +# PIDFile requires a full absolute path +PIDFile=/run/kamailio-%i/kamailio.pid +# ExecStart requires a full absolute path +ExecStart=/usr/sbin/kamailio -P /run/kamailio-%i/kamailio.pid -Y /run/kamailio-%i -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY +Restart=on-failure +# /run/kamailio in tmpfs +RuntimeDirectory=kamailio-%i +RuntimeDirectoryMode=0770 + +[Install] +WantedBy=multi-user.target diff --git a/pkg/kamailio/deb/noble/changelog b/pkg/kamailio/deb/noble/changelog index 250e700e4..11564ff94 100644 --- a/pkg/kamailio/deb/noble/changelog +++ b/pkg/kamailio/deb/noble/changelog @@ -1,3 +1,9 @@ +kamailio (5.8.5) unstable; urgency=medium + + * version set 5.8.5 + + -- Victor Seva Thu, 23 Jan 2025 08:31:22 +0100 + kamailio (5.8.4) unstable; urgency=medium * version set 5.8.4 diff --git a/pkg/kamailio/deb/noble/kamailio@.service b/pkg/kamailio/deb/noble/kamailio@.service new file mode 100644 index 000000000..81c06394d --- /dev/null +++ b/pkg/kamailio/deb/noble/kamailio@.service @@ -0,0 +1,26 @@ +[Unit] +Description=Kamailio - the Open Source SIP Server (instance %i) +Documentation=man:kamailio(8) +Wants=network-online.target +After=network-online.target + +[Service] +Type=forking +User=kamailio +Group=kamailio +Environment='CFGFILE=/etc/kamailio/kamailio-%i.cfg' +Environment='SHM_MEMORY=64' +Environment='PKG_MEMORY=8' +EnvironmentFile=-/etc/default/kamailio-%i +EnvironmentFile=-/etc/default/kamailio-%i.d/* +# PIDFile requires a full absolute path +PIDFile=/run/kamailio-%i/kamailio.pid +# ExecStart requires a full absolute path +ExecStart=/usr/sbin/kamailio -P /run/kamailio-%i/kamailio.pid -Y /run/kamailio-%i -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY +Restart=on-failure +# /run/kamailio in tmpfs +RuntimeDirectory=kamailio-%i +RuntimeDirectoryMode=0770 + +[Install] +WantedBy=multi-user.target diff --git a/pkg/kamailio/deb/precise/changelog b/pkg/kamailio/deb/precise/changelog index 250e700e4..11564ff94 100644 --- a/pkg/kamailio/deb/precise/changelog +++ b/pkg/kamailio/deb/precise/changelog @@ -1,3 +1,9 @@ +kamailio (5.8.5) unstable; urgency=medium + + * version set 5.8.5 + + -- Victor Seva Thu, 23 Jan 2025 08:31:22 +0100 + kamailio (5.8.4) unstable; urgency=medium * version set 5.8.4 diff --git a/pkg/kamailio/deb/precise/kamailio@.service b/pkg/kamailio/deb/precise/kamailio@.service new file mode 100644 index 000000000..81c06394d --- /dev/null +++ b/pkg/kamailio/deb/precise/kamailio@.service @@ -0,0 +1,26 @@ +[Unit] +Description=Kamailio - the Open Source SIP Server (instance %i) +Documentation=man:kamailio(8) +Wants=network-online.target +After=network-online.target + +[Service] +Type=forking +User=kamailio +Group=kamailio +Environment='CFGFILE=/etc/kamailio/kamailio-%i.cfg' +Environment='SHM_MEMORY=64' +Environment='PKG_MEMORY=8' +EnvironmentFile=-/etc/default/kamailio-%i +EnvironmentFile=-/etc/default/kamailio-%i.d/* +# PIDFile requires a full absolute path +PIDFile=/run/kamailio-%i/kamailio.pid +# ExecStart requires a full absolute path +ExecStart=/usr/sbin/kamailio -P /run/kamailio-%i/kamailio.pid -Y /run/kamailio-%i -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY +Restart=on-failure +# /run/kamailio in tmpfs +RuntimeDirectory=kamailio-%i +RuntimeDirectoryMode=0770 + +[Install] +WantedBy=multi-user.target diff --git a/pkg/kamailio/deb/sid/changelog b/pkg/kamailio/deb/sid/changelog index 250e700e4..11564ff94 100644 --- a/pkg/kamailio/deb/sid/changelog +++ b/pkg/kamailio/deb/sid/changelog @@ -1,3 +1,9 @@ +kamailio (5.8.5) unstable; urgency=medium + + * version set 5.8.5 + + -- Victor Seva Thu, 23 Jan 2025 08:31:22 +0100 + kamailio (5.8.4) unstable; urgency=medium * version set 5.8.4 diff --git a/pkg/kamailio/deb/sid/kamailio@.service b/pkg/kamailio/deb/sid/kamailio@.service new file mode 100644 index 000000000..81c06394d --- /dev/null +++ b/pkg/kamailio/deb/sid/kamailio@.service @@ -0,0 +1,26 @@ +[Unit] +Description=Kamailio - the Open Source SIP Server (instance %i) +Documentation=man:kamailio(8) +Wants=network-online.target +After=network-online.target + +[Service] +Type=forking +User=kamailio +Group=kamailio +Environment='CFGFILE=/etc/kamailio/kamailio-%i.cfg' +Environment='SHM_MEMORY=64' +Environment='PKG_MEMORY=8' +EnvironmentFile=-/etc/default/kamailio-%i +EnvironmentFile=-/etc/default/kamailio-%i.d/* +# PIDFile requires a full absolute path +PIDFile=/run/kamailio-%i/kamailio.pid +# ExecStart requires a full absolute path +ExecStart=/usr/sbin/kamailio -P /run/kamailio-%i/kamailio.pid -Y /run/kamailio-%i -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY +Restart=on-failure +# /run/kamailio in tmpfs +RuntimeDirectory=kamailio-%i +RuntimeDirectoryMode=0770 + +[Install] +WantedBy=multi-user.target diff --git a/pkg/kamailio/deb/stretch/changelog b/pkg/kamailio/deb/stretch/changelog index 250e700e4..11564ff94 100644 --- a/pkg/kamailio/deb/stretch/changelog +++ b/pkg/kamailio/deb/stretch/changelog @@ -1,3 +1,9 @@ +kamailio (5.8.5) unstable; urgency=medium + + * version set 5.8.5 + + -- Victor Seva Thu, 23 Jan 2025 08:31:22 +0100 + kamailio (5.8.4) unstable; urgency=medium * version set 5.8.4 diff --git a/pkg/kamailio/deb/stretch/kamailio@.service b/pkg/kamailio/deb/stretch/kamailio@.service new file mode 100644 index 000000000..81c06394d --- /dev/null +++ b/pkg/kamailio/deb/stretch/kamailio@.service @@ -0,0 +1,26 @@ +[Unit] +Description=Kamailio - the Open Source SIP Server (instance %i) +Documentation=man:kamailio(8) +Wants=network-online.target +After=network-online.target + +[Service] +Type=forking +User=kamailio +Group=kamailio +Environment='CFGFILE=/etc/kamailio/kamailio-%i.cfg' +Environment='SHM_MEMORY=64' +Environment='PKG_MEMORY=8' +EnvironmentFile=-/etc/default/kamailio-%i +EnvironmentFile=-/etc/default/kamailio-%i.d/* +# PIDFile requires a full absolute path +PIDFile=/run/kamailio-%i/kamailio.pid +# ExecStart requires a full absolute path +ExecStart=/usr/sbin/kamailio -P /run/kamailio-%i/kamailio.pid -Y /run/kamailio-%i -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY +Restart=on-failure +# /run/kamailio in tmpfs +RuntimeDirectory=kamailio-%i +RuntimeDirectoryMode=0770 + +[Install] +WantedBy=multi-user.target diff --git a/pkg/kamailio/deb/trusty/changelog b/pkg/kamailio/deb/trusty/changelog index 250e700e4..11564ff94 100644 --- a/pkg/kamailio/deb/trusty/changelog +++ b/pkg/kamailio/deb/trusty/changelog @@ -1,3 +1,9 @@ +kamailio (5.8.5) unstable; urgency=medium + + * version set 5.8.5 + + -- Victor Seva Thu, 23 Jan 2025 08:31:22 +0100 + kamailio (5.8.4) unstable; urgency=medium * version set 5.8.4 diff --git a/pkg/kamailio/deb/trusty/kamailio@.service b/pkg/kamailio/deb/trusty/kamailio@.service new file mode 100644 index 000000000..81c06394d --- /dev/null +++ b/pkg/kamailio/deb/trusty/kamailio@.service @@ -0,0 +1,26 @@ +[Unit] +Description=Kamailio - the Open Source SIP Server (instance %i) +Documentation=man:kamailio(8) +Wants=network-online.target +After=network-online.target + +[Service] +Type=forking +User=kamailio +Group=kamailio +Environment='CFGFILE=/etc/kamailio/kamailio-%i.cfg' +Environment='SHM_MEMORY=64' +Environment='PKG_MEMORY=8' +EnvironmentFile=-/etc/default/kamailio-%i +EnvironmentFile=-/etc/default/kamailio-%i.d/* +# PIDFile requires a full absolute path +PIDFile=/run/kamailio-%i/kamailio.pid +# ExecStart requires a full absolute path +ExecStart=/usr/sbin/kamailio -P /run/kamailio-%i/kamailio.pid -Y /run/kamailio-%i -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY +Restart=on-failure +# /run/kamailio in tmpfs +RuntimeDirectory=kamailio-%i +RuntimeDirectoryMode=0770 + +[Install] +WantedBy=multi-user.target diff --git a/pkg/kamailio/deb/wheezy/changelog b/pkg/kamailio/deb/wheezy/changelog index 250e700e4..11564ff94 100644 --- a/pkg/kamailio/deb/wheezy/changelog +++ b/pkg/kamailio/deb/wheezy/changelog @@ -1,3 +1,9 @@ +kamailio (5.8.5) unstable; urgency=medium + + * version set 5.8.5 + + -- Victor Seva Thu, 23 Jan 2025 08:31:22 +0100 + kamailio (5.8.4) unstable; urgency=medium * version set 5.8.4 diff --git a/pkg/kamailio/deb/wheezy/kamailio@.service b/pkg/kamailio/deb/wheezy/kamailio@.service new file mode 100644 index 000000000..81c06394d --- /dev/null +++ b/pkg/kamailio/deb/wheezy/kamailio@.service @@ -0,0 +1,26 @@ +[Unit] +Description=Kamailio - the Open Source SIP Server (instance %i) +Documentation=man:kamailio(8) +Wants=network-online.target +After=network-online.target + +[Service] +Type=forking +User=kamailio +Group=kamailio +Environment='CFGFILE=/etc/kamailio/kamailio-%i.cfg' +Environment='SHM_MEMORY=64' +Environment='PKG_MEMORY=8' +EnvironmentFile=-/etc/default/kamailio-%i +EnvironmentFile=-/etc/default/kamailio-%i.d/* +# PIDFile requires a full absolute path +PIDFile=/run/kamailio-%i/kamailio.pid +# ExecStart requires a full absolute path +ExecStart=/usr/sbin/kamailio -P /run/kamailio-%i/kamailio.pid -Y /run/kamailio-%i -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY +Restart=on-failure +# /run/kamailio in tmpfs +RuntimeDirectory=kamailio-%i +RuntimeDirectoryMode=0770 + +[Install] +WantedBy=multi-user.target diff --git a/pkg/kamailio/deb/xenial/changelog b/pkg/kamailio/deb/xenial/changelog index 250e700e4..11564ff94 100644 --- a/pkg/kamailio/deb/xenial/changelog +++ b/pkg/kamailio/deb/xenial/changelog @@ -1,3 +1,9 @@ +kamailio (5.8.5) unstable; urgency=medium + + * version set 5.8.5 + + -- Victor Seva Thu, 23 Jan 2025 08:31:22 +0100 + kamailio (5.8.4) unstable; urgency=medium * version set 5.8.4 diff --git a/pkg/kamailio/deb/xenial/kamailio@.service b/pkg/kamailio/deb/xenial/kamailio@.service new file mode 100644 index 000000000..81c06394d --- /dev/null +++ b/pkg/kamailio/deb/xenial/kamailio@.service @@ -0,0 +1,26 @@ +[Unit] +Description=Kamailio - the Open Source SIP Server (instance %i) +Documentation=man:kamailio(8) +Wants=network-online.target +After=network-online.target + +[Service] +Type=forking +User=kamailio +Group=kamailio +Environment='CFGFILE=/etc/kamailio/kamailio-%i.cfg' +Environment='SHM_MEMORY=64' +Environment='PKG_MEMORY=8' +EnvironmentFile=-/etc/default/kamailio-%i +EnvironmentFile=-/etc/default/kamailio-%i.d/* +# PIDFile requires a full absolute path +PIDFile=/run/kamailio-%i/kamailio.pid +# ExecStart requires a full absolute path +ExecStart=/usr/sbin/kamailio -P /run/kamailio-%i/kamailio.pid -Y /run/kamailio-%i -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY +Restart=on-failure +# /run/kamailio in tmpfs +RuntimeDirectory=kamailio-%i +RuntimeDirectoryMode=0770 + +[Install] +WantedBy=multi-user.target diff --git a/pkg/kamailio/obs/kamailio.service b/pkg/kamailio/obs/kamailio.service index 14a2e5808..0c4fbc49c 100644 --- a/pkg/kamailio/obs/kamailio.service +++ b/pkg/kamailio/obs/kamailio.service @@ -1,5 +1,6 @@ [Unit] Description=Kamailio - the Open Source SIP Server +Documentation=man:kamailio(8) Wants=network-online.target After=network-online.target diff --git a/pkg/kamailio/obs/kamailio.spec b/pkg/kamailio/obs/kamailio.spec index 8f1863fc8..f160ec6d7 100644 --- a/pkg/kamailio/obs/kamailio.spec +++ b/pkg/kamailio/obs/kamailio.spec @@ -1,5 +1,5 @@ %define name kamailio -%define ver 5.8.4 +%define ver 5.8.5 %define rel dev1.0%{dist} %if 0%{?fedora} @@ -237,6 +237,7 @@ Conflicts: kamailio-dialplan < %ver, kamailio-dnssec < %ver Conflicts: kamailio-geoip < %ver, kamailio-gzcompress < %ver Conflicts: kamailio-http_client < %ver Conflicts: kamailio-ims < %ver, kamailio-java < %ver, kamailio-json < %ver +Conflicts: kamailio-jwt < %ver Conflicts: kamailio-kazoo < %ver Conflicts: kamailio-lcr < %ver, kamailio-ldap < %ver, kamailio-lost < %ver, kamailio-lua < %ver Conflicts: kamailio-nats < %ver @@ -590,6 +591,17 @@ JSON string handling and RPC modules for Kamailio. %endif +%package jwt +Summary: JWT (JSON Web Token) functions module for Kamailio +Group: %{PKGGROUP} +Requires: libjwt, kamailio = %ver +BuildRequires: libjwt-devel + +%description jwt +This module provides JWT (JSON Web Token) functions to be used in Kamailio configuration file. +It relies on libjwt (at least v1.12.0) library (https://github.com/benmcollins/libjwt). + + %if %{with kazoo} %package kazoo Summary: Kazoo middle layer connector support for Kamailio @@ -1188,6 +1200,7 @@ sed -i -e 's/python3/python2/' utils/kamctl/dbtextdb/dbtextdb.py # on latest dist need to add --atexit=no for Kamailio options. More details GH #2616 %if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel} >= 8 sed -i -e 's|/usr/sbin/kamailio|/usr/sbin/kamailio --atexit=no|' pkg/kamailio/obs/kamailio.service +sed -i -e 's|/usr/sbin/kamailio|/usr/sbin/kamailio --atexit=no|' pkg/kamailio/obs/kamailio@.service %endif @@ -1245,6 +1258,7 @@ make every-module skip_modules="app_mono db_cassandra db_oracle iptrtpproxy \ kjson \ %endif kjsonrpcs \ + kjwt \ %if %{with kazoo} kkazoo \ %endif @@ -1358,6 +1372,7 @@ make install-modules-all skip_modules="app_mono db_cassandra db_oracle \ kjson \ %endif kjsonrpcs \ + kjwt \ %if %{with kazoo} kkazoo \ %endif @@ -1435,6 +1450,7 @@ install -m755 pkg/kamailio/%{dist_name}/%{dist_version}/kamailio.init \ # systemd install -d %{buildroot}%{_unitdir} install -Dpm 0644 pkg/kamailio/%{dist_name}/%{dist_version}/kamailio.service %{buildroot}%{_unitdir}/kamailio.service +install -Dpm 0644 pkg/kamailio/%{dist_name}/%{dist_version}/kamailio@.service %{buildroot}%{_unitdir}/kamailio@.service install -Dpm 0644 pkg/kamailio/%{dist_name}/%{dist_version}/sipcapture.service %{buildroot}%{_unitdir}/sipcapture.service install -Dpm 0644 pkg/kamailio/%{dist_name}/%{dist_version}/kamailio.tmpfiles %{buildroot}%{_tmpfilesdir}/kamailio.conf install -Dpm 0644 pkg/kamailio/%{dist_name}/%{dist_version}/sipcapture.tmpfiles %{buildroot}%{_tmpfilesdir}/sipcapture.conf @@ -1666,6 +1682,7 @@ fi %dir %attr(-,kamailio,kamailio) %{_var}/run/kamailio %else %{_unitdir}/kamailio.service +%{_unitdir}/kamailio@.service %{_tmpfilesdir}/kamailio.conf %endif @@ -2020,6 +2037,12 @@ fi %endif +%files jwt +%defattr(-,root,root) +%doc %{_docdir}/kamailio/modules/README.jwt +%{_libdir}/kamailio/modules/jwt.so + + %if %{with kazoo} %files kazoo %defattr(-,root,root) diff --git a/pkg/kamailio/obs/kamailio@.service b/pkg/kamailio/obs/kamailio@.service new file mode 100644 index 000000000..44a4c02a5 --- /dev/null +++ b/pkg/kamailio/obs/kamailio@.service @@ -0,0 +1,28 @@ +[Unit] +Description=Kamailio - the Open Source SIP Server (instance %i) +Documentation=man:kamailio(8) +Wants=network-online.target +After=network-online.target + +[Service] +Type=simple +User=kamailio +Group=kamailio +Environment='CFGFILE=/etc/kamailio/kamailio-%i.cfg' +Environment='SHM_MEMORY=64' +Environment='PKG_MEMORY=8' +EnvironmentFile=-/etc/sysconfig/kamailio-%i +EnvironmentFile=-/etc/sysconfig/kamailio-%i.d/* +# PIDFile requires a full absolute path +PIDFile=/run/kamailio-%i/kamailio.pid +# ExecStart requires a full absolute path +ExecStart=/usr/sbin/kamailio -DD -P /run/kamailio-%i/kamailio.pid -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY -Y /run/kamailio-%i +Restart=on-failure +# necessary for chown of control files e.g. for jsonrpcs and ctl modules +AmbientCapabilities=CAP_CHOWN +# /run/kamailio in tmpfs +RuntimeDirectory=kamailio-%i +RuntimeDirectoryMode=0770 + +[Install] +WantedBy=multi-user.target diff --git a/src/Makefile.defs b/src/Makefile.defs index 87d02a3e9..30a1de0fe 100644 --- a/src/Makefile.defs +++ b/src/Makefile.defs @@ -106,7 +106,7 @@ INSTALL_FLAVOUR=$(FLAVOUR) # version number VERSION = 5 PATCHLEVEL = 8 -SUBLEVEL = 4 +SUBLEVEL = 5 EXTRAVERSION = # memory manager switcher @@ -492,7 +492,7 @@ endif ifeq ($(OS), freebsd) doc_dir = share/doc/$(MAIN_NAME)/ - man_dir = man/ + man_dir = share/man/ data_dir = share/$(MAIN_NAME)/ LOCALBASE ?= /usr/local endif diff --git a/src/core/autover.h b/src/core/autover.h index 758d9bc08..17c234bad 100644 --- a/src/core/autover.h +++ b/src/core/autover.h @@ -2,6 +2,6 @@ * DO NOT EDIT IT */ -#define REPO_VER "f1d83d" -#define REPO_HASH "f1d83d" +#define REPO_VER "b035a8" +#define REPO_HASH "b035a8" #define REPO_STATE "" diff --git a/src/core/dset.c b/src/core/dset.c index dfab77cd2..0b3affd4f 100644 --- a/src/core/dset.c +++ b/src/core/dset.c @@ -687,8 +687,8 @@ char *print_dset(struct sip_msg *msg, int *len, int options) } if(cnt == 0) { - LM_WARN("no r-uri or branches\n"); - goto error; + LM_INFO("no new r-uri or branches\n"); + goto notfound; } if(p + CRLF_LEN + 1 > end) { @@ -701,7 +701,7 @@ char *print_dset(struct sip_msg *msg, int *len, int options) memfail: LM_ERR("redirection buffer length exceed\n"); -error: +notfound: *len = 0; set_branch_iterator(crt_branch); return 0; diff --git a/src/core/globals.h b/src/core/globals.h index 0ec87c89a..30ebb52c2 100644 --- a/src/core/globals.h +++ b/src/core/globals.h @@ -109,6 +109,9 @@ extern int ksr_tcp_script_mode; #ifdef USE_TLS extern int tls_disable; extern unsigned short tls_port_no; +#define KSR_TLS_THREADS_MNONE 0 /* no set of set thread-local variables */ +#define KSR_TLS_THREADS_MTEMP 1 /* set thread-local variables in temp thread */ +#define KSR_TLS_THREADS_MFORK 2 /* set thread-local variables in at-fork */ extern int ksr_tls_threads_mode; #endif #ifdef USE_SCTP diff --git a/src/core/ip_addr.c b/src/core/ip_addr.c index 02c26f969..8e2ae6cf4 100644 --- a/src/core/ip_addr.c +++ b/src/core/ip_addr.c @@ -298,6 +298,52 @@ char *ip_addr2strz(struct ip_addr *ip) return buff; } +#define IP_ADDR_BUF_NR 8 +static char _ksr_addr2x_buff[IP_ADDR_BUF_NR][IP_ADDR_MAX_STR_SIZE]; +static int _ksr_addr2x_idx = 0; + +/* fast ip_addr -> string converter; + * it uses an internal buffer + */ +char *ip_addr2xa(struct ip_addr *ip) +{ + int len; + char *buff; + + buff = _ksr_addr2x_buff[_ksr_addr2x_idx]; + _ksr_addr2x_idx = (_ksr_addr2x_idx + 1) % IP_ADDR_BUF_NR; + + len = ip_addr2sbuf(ip, buff, sizeof(buff) - 1); + buff[len] = 0; + + return buff; +} + + +/* full address in text representation, including [] for ipv6 */ +char *ip_addr2xstrz(struct ip_addr *ip) +{ + char *p; + int len; + char *buff; + + buff = _ksr_addr2x_buff[_ksr_addr2x_idx]; + _ksr_addr2x_idx = (_ksr_addr2x_idx + 1) % IP_ADDR_BUF_NR; + + p = buff; + if(ip->af == AF_INET6) { + *p++ = '['; + } + len = ip_addr2sbuf(ip, p, sizeof(buff) - 3); + p += len; + if(ip->af == AF_INET6) { + *p++ = ']'; + } + *p = 0; + + return buff; +} + /* returns an asciiz string containing the ip and the port * (:port or []:port) diff --git a/src/core/ip_addr.h b/src/core/ip_addr.h index a8f9660b9..043ad92ce 100644 --- a/src/core/ip_addr.h +++ b/src/core/ip_addr.h @@ -603,14 +603,18 @@ int ip_addr2sbufz(struct ip_addr *ip, char *buff, int len); #define IP_ADDR_MAX_STR_SIZE (IP6_MAX_STR_SIZE + 1) /* ip62ascii + \0*/ #define IP_ADDR_MAX_STRZ_SIZE (IP6_MAX_STR_SIZE + 3) /* ip62ascii + [ + ] + \0*/ -/* fast ip_addr -> string converter; - * it uses an internal buffer - */ +/* ip addr to string converter; it uses an internal static buffer */ char *ip_addr2a(struct ip_addr *ip); +/* ip addr to string converter; it uses a pool of internal static buffers */ +char *ip_addr2xa(struct ip_addr *ip); -/* full address in text representation, including [] for ipv6 */ +/* full address in text representation, including [] for ipv6 + * - it uses an internal static buffer */ char *ip_addr2strz(struct ip_addr *ip); +/* full address in text representation, including [] for ipv6 + * - it uses a pool of internal static buffers */ +char *ip_addr2xstrz(struct ip_addr *ip); #define SU2A_MAX_STR_SIZE \ diff --git a/src/core/modparam.c b/src/core/modparam.c index b48d9e824..a166cc507 100644 --- a/src/core/modparam.c +++ b/src/core/modparam.c @@ -151,7 +151,7 @@ int set_mod_param_regex(char *regex, char *name, modparam_t type, void *val) pkg_free(reg); return -1; } - strncpy(*((char **)ptr), (char *)val2, len_param); + memcpy(*((char **)ptr), (char *)val2, len_param); (*((char **)ptr))[len_param] = '\0'; break; diff --git a/src/core/msg_translator.c b/src/core/msg_translator.c index 4e81f89ce..b2623b919 100644 --- a/src/core/msg_translator.c +++ b/src/core/msg_translator.c @@ -1029,7 +1029,8 @@ void process_lumps(struct sip_msg *msg, struct lump *lumps, char *new_buf, offset++; \ } \ } else { \ - LM_CRIT("null bind_address\n"); \ + LM_CRIT("null bind_address (SUBST_RCV_IP/%p/%p)\n", \ + msg->rcv.bind_address, recv_address_str); \ }; \ break; \ case SUBST_RCV_PORT: \ @@ -1038,7 +1039,7 @@ void process_lumps(struct sip_msg *msg, struct lump *lumps, char *new_buf, recv_port_str->len); \ offset += recv_port_str->len; \ } else { \ - LM_CRIT("null bind_address\n"); \ + LM_CRIT("null recv port str (SUBST_RCV_PORT)\n"); \ }; \ break; \ case SUBST_RCV_ALL: \ @@ -1130,7 +1131,8 @@ void process_lumps(struct sip_msg *msg, struct lump *lumps, char *new_buf, } \ RCVCOMP_PARAM_ADD \ } else { \ - LM_CRIT("null bind_address\n"); \ + LM_CRIT("null bind_address (SUBST_RCV_ALL/%p/%p)\n", \ + msg->rcv.bind_address, recv_address_str); \ }; \ break; \ case SUBST_SND_IP: \ @@ -1147,7 +1149,7 @@ void process_lumps(struct sip_msg *msg, struct lump *lumps, char *new_buf, offset++; \ } \ } else { \ - LM_CRIT("null send_sock\n"); \ + LM_CRIT("null send_sock (SUBST_SND_IP)\n"); \ }; \ break; \ case SUBST_SND_PORT: \ @@ -1156,7 +1158,7 @@ void process_lumps(struct sip_msg *msg, struct lump *lumps, char *new_buf, send_port_str->len); \ offset += send_port_str->len; \ } else { \ - LM_CRIT("null send sock port\n"); \ + LM_CRIT("null send sock port (SUBST_SND_PORT)\n"); \ }; \ break; \ case SUBST_SND_ALL: \ @@ -1246,7 +1248,7 @@ void process_lumps(struct sip_msg *msg, struct lump *lumps, char *new_buf, } \ SENDCOMP_PARAM_ADD \ } else { \ - LM_CRIT("null bind_address\n"); \ + LM_CRIT("null send_sock (SUBST_SND_ALL)\n"); \ }; \ break; \ case SUBST_RCV_PROTO: \ @@ -1285,7 +1287,7 @@ void process_lumps(struct sip_msg *msg, struct lump *lumps, char *new_buf, msg->rcv.bind_address->proto); \ } \ } else { \ - LM_CRIT("null send_sock\n"); \ + LM_CRIT("null bind address (SUBST_RCV_PROTO)\n"); \ }; \ break; \ case SUBST_SND_PROTO: \ @@ -1323,7 +1325,7 @@ void process_lumps(struct sip_msg *msg, struct lump *lumps, char *new_buf, LM_CRIT("unknown proto %d\n", send_sock->proto); \ } \ } else { \ - LM_CRIT("null send_sock\n"); \ + LM_CRIT("null send_sock (SUBST_SND_PROTO)\n"); \ }; \ break; \ default: \ @@ -2647,45 +2649,55 @@ char *build_res_buf_from_sip_req(unsigned int code, str *text, str *new_tag, if(unlikely(httpreq)) pvia = p; if(hdr == msg->h_via1) { - if(rport_buf) { - if(msg->via1->rport) { /* delete the old one */ - /* copy until rport */ - append_str_trans(p, hdr->name.s, - msg->via1->rport->start - hdr->name.s - 1, - msg); - /* copy new rport */ - append_str(p, rport_buf, rport_len); - /* copy the rest of the via */ - append_str_trans(p, - msg->via1->rport->start - + msg->via1->rport->size, - hdr->body.s + hdr->body.len - - msg->via1->rport->start - - msg->via1->rport->size, - msg); - } else { /* just append the new one */ - /* normal whole via copy */ - append_str_trans(p, hdr->name.s, - (hdr->body.s + hdr->body.len) - hdr->name.s, - msg); - append_str(p, rport_buf, rport_len); - } - } else { - /* normal whole via copy */ + if(rport_buf && msg->via1->rport) { /* replace old rport */ + /* copy until rport */ + append_str_trans(p, hdr->name.s, + msg->via1->rport->start - hdr->name.s - 1, msg); + } else if(msg->via1->branch) { /* add after branch */ + append_str_trans(p, hdr->name.s, + msg->via1->branch->start - hdr->name.s + + msg->via1->branch->size, + msg); + } else { /* append after header */ append_str_trans(p, hdr->name.s, (hdr->body.s + hdr->body.len) - hdr->name.s, msg); } - if(received_buf) + if(rport_buf) { + /* add rport */ + append_str(p, rport_buf, rport_len); + } + if(received_buf) { + /* add received */ append_str(p, received_buf, received_len); + } + if(xparams.len > 0) { + /* add extra parameters */ + append_str(p, xparams.s, xparams.len); + } + /* copy the rest of the via */ + if(rport_buf && msg->via1->rport) { + append_str_trans(p, + msg->via1->rport->start + + msg->via1->rport->size, + hdr->body.s + hdr->body.len + - msg->via1->rport->start + - msg->via1->rport->size, + msg); + } else if(msg->via1->branch) { + append_str_trans(p, + msg->via1->branch->start + + msg->via1->branch->size, + hdr->body.s + hdr->body.len + - msg->via1->branch->start + - msg->via1->branch->size, + msg); + } } else { /* normal whole via copy */ append_str_trans(p, hdr->name.s, (hdr->body.s + hdr->body.len) - hdr->name.s, msg); } - if(xparams.len > 0) { - append_str(p, xparams.s, xparams.len); - } append_str(p, CRLF, CRLF_LEN); /* if is HTTP, replace Via with Sia * - HTTP Via format is different than SIP Via diff --git a/src/core/parser/parse_uri.c b/src/core/parser/parse_uri.c index 4150c1598..1063186f6 100644 --- a/src/core/parser/parse_uri.c +++ b/src/core/parser/parse_uri.c @@ -1275,7 +1275,7 @@ int parse_uri(char *buf, int len, struct sip_uri *uri) uri->sip_params = uri->params; if((phone2tel) && (uri->user_param_val.len == 5) && (strncmp(uri->user_param_val.s, "phone", 5) == 0)) { - uri->type = TEL_URI_T; + uri->type = uri->type == SIPS_URI_T ? TELS_URI_T : TEL_URI_T; uri->flags |= URI_SIP_USER_PHONE; /* move params from user into uri->params */ p = q_memchr(uri->user.s, ';', uri->user.len); diff --git a/src/core/parser/sdp/sdp.c b/src/core/parser/sdp/sdp.c index 06fc411f5..5eb04b0c0 100644 --- a/src/core/parser/sdp/sdp.c +++ b/src/core/parser/sdp/sdp.c @@ -233,7 +233,13 @@ void set_sdp_payload_attr(sdp_payload_attr_t *payload_attr, str *rtp_enc, void set_sdp_payload_fmtp(sdp_payload_attr_t *payload_attr, str *fmtp_string) { if(payload_attr == NULL) { - LM_ERR("Invalid payload location\n"); + if(fmtp_string != NULL && fmtp_string->s != NULL + && fmtp_string->len > 0) { + LM_ERR("Invalid payload location - fmtp: %.*s\n", fmtp_string->len, + fmtp_string->s); + } else { + LM_ERR("Invalid payload location\n"); + } return; } payload_attr->fmtp_string.s = fmtp_string->s; @@ -354,6 +360,8 @@ sdp_payload_attr_t *get_sdp_payload4payload( } } + LM_DBG("payload not found: %.*s\n", rtp_payload->len, rtp_payload->s); + return NULL; } diff --git a/src/core/parser/sdp/sdp_helpr_funcs.c b/src/core/parser/sdp/sdp_helpr_funcs.c index bad76bcda..ed3471293 100644 --- a/src/core/parser/sdp/sdp_helpr_funcs.c +++ b/src/core/parser/sdp/sdp_helpr_funcs.c @@ -413,7 +413,7 @@ int extract_ice_option(str *body, sdp_stream_cell_t *stream) trim_len(ice_opt->option.len, ice_opt->option.s, ice_opt->option); length = 0; - if(*ptr_src == 32) + if(ptr_src < end && *ptr_src == 32) ptr_src++; /* skip space */ } diff --git a/src/core/ppcfg.c b/src/core/ppcfg.c index d77a23788..d0513350d 100644 --- a/src/core/ppcfg.c +++ b/src/core/ppcfg.c @@ -289,7 +289,8 @@ void pp_ifdef_level_error(void) */ void pp_define_core(void) { - char defval[64]; +#define PP_DEFINE_COREVAL_SIZE 64 + char defval[PP_DEFINE_COREVAL_SIZE]; char *p; int n; str_list_t *sb; @@ -301,8 +302,9 @@ void pp_define_core(void) p++; } - n = snprintf(p, 64 - (int)(p - defval), "_%u", VERSIONVAL / 1000000); - if(n < 0 || n >= 64 - (int)(p - defval)) { + n = snprintf(p, PP_DEFINE_COREVAL_SIZE - (int)(p - defval), "_%u", + VERSIONVAL / 1000000); + if(n < 0 || n >= PP_DEFINE_COREVAL_SIZE - (int)(p - defval)) { LM_ERR("failed to build define token\n"); return; } @@ -312,9 +314,9 @@ void pp_define_core(void) return; } - n = snprintf(p, 64 - (int)(p - defval), "_%u_%u", VERSIONVAL / 1000000, - (VERSIONVAL % 1000000) / 1000); - if(n < 0 || n >= 64 - (int)(p - defval)) { + n = snprintf(p, PP_DEFINE_COREVAL_SIZE - (int)(p - defval), "_%u_%u", + VERSIONVAL / 1000000, (VERSIONVAL % 1000000) / 1000); + if(n < 0 || n >= PP_DEFINE_COREVAL_SIZE - (int)(p - defval)) { LM_ERR("failed to build define token\n"); return; } @@ -324,9 +326,10 @@ void pp_define_core(void) return; } - n = snprintf(p, 64 - (int)(p - defval), "_%u_%u_%u", VERSIONVAL / 1000000, - (VERSIONVAL % 1000000) / 1000, VERSIONVAL % 1000); - if(n < 0 || n >= 64 - (int)(p - defval)) { + n = snprintf(p, PP_DEFINE_COREVAL_SIZE - (int)(p - defval), "_%u_%u_%u", + VERSIONVAL / 1000000, (VERSIONVAL % 1000000) / 1000, + VERSIONVAL % 1000); + if(n < 0 || n >= PP_DEFINE_COREVAL_SIZE - (int)(p - defval)) { LM_ERR("failed to build define token\n"); return; } @@ -343,8 +346,8 @@ void pp_define_core(void) return; } - n = snprintf(defval, 64, "%u", VERSIONVAL); - if(n < 0 || n >= 64) { + n = snprintf(defval, PP_DEFINE_COREVAL_SIZE, "%u", VERSIONVAL); + if(n < 0 || n >= PP_DEFINE_COREVAL_SIZE) { LM_ERR("failed to build version define value\n"); return; } diff --git a/src/core/rthreads.h b/src/core/rthreads.h index 56d68cef2..80911a826 100644 --- a/src/core/rthreads.h +++ b/src/core/rthreads.h @@ -40,8 +40,10 @@ static void *run_threadP(_thread_proto fn, void *arg) pthread_t tid; void *ret = NULL; - if(likely(ksr_tls_threads_mode == 0 || ksr_tls_threads_mode == 2 - || (ksr_tls_threads_mode == 1 && process_no > 0))) { + if(likely(ksr_tls_threads_mode == KSR_TLS_THREADS_MNONE + || ksr_tls_threads_mode == KSR_TLS_THREADS_MFORK + || (ksr_tls_threads_mode == KSR_TLS_THREADS_MTEMP + && process_no > 0))) { return fn(arg); } @@ -77,8 +79,10 @@ static void *run_threadPI(_thread_protoPI fn, void *arg1, int arg2) pthread_t tid; void *ret = NULL; - if(likely(ksr_tls_threads_mode == 0 || ksr_tls_threads_mode == 2 - || (ksr_tls_threads_mode == 1 && process_no > 0))) { + if(likely(ksr_tls_threads_mode == KSR_TLS_THREADS_MNONE + || ksr_tls_threads_mode == KSR_TLS_THREADS_MFORK + || (ksr_tls_threads_mode == KSR_TLS_THREADS_MTEMP + && process_no > 0))) { return fn(arg1, arg2); } @@ -113,8 +117,10 @@ static void run_threadV(_thread_protoV fn) #ifdef USE_TLS pthread_t tid; - if(likely(ksr_tls_threads_mode == 0 || ksr_tls_threads_mode == 2 - || (ksr_tls_threads_mode == 1 && process_no > 0))) { + if(likely(ksr_tls_threads_mode == KSR_TLS_THREADS_MNONE + || ksr_tls_threads_mode == KSR_TLS_THREADS_MFORK + || (ksr_tls_threads_mode == KSR_TLS_THREADS_MTEMP + && process_no > 0))) { fn(); return; } @@ -152,8 +158,10 @@ static int run_thread4PP(_thread_proto4PP fn, void *arg1, void *arg2) pthread_t tid; int ret = 0; - if(likely(ksr_tls_threads_mode == 0 || ksr_tls_threads_mode == 2 - || (ksr_tls_threads_mode == 1 && process_no > 0))) { + if(likely(ksr_tls_threads_mode == KSR_TLS_THREADS_MNONE + || ksr_tls_threads_mode == KSR_TLS_THREADS_MFORK + || (ksr_tls_threads_mode == KSR_TLS_THREADS_MTEMP + && process_no > 0))) { return fn(arg1, arg2); } pthread_create(&tid, NULL, (_thread_proto)run_thread_wrap4PP, @@ -188,8 +196,10 @@ static void run_thread0P(_thread_proto0P fn, void *arg1) #ifdef USE_TLS pthread_t tid; - if(likely(ksr_tls_threads_mode == 0 || ksr_tls_threads_mode == 2 - || (ksr_tls_threads_mode == 1 && process_no > 0))) { + if(likely(ksr_tls_threads_mode == KSR_TLS_THREADS_MNONE + || ksr_tls_threads_mode == KSR_TLS_THREADS_MFORK + || (ksr_tls_threads_mode == KSR_TLS_THREADS_MTEMP + && process_no > 0))) { fn(arg1); return; } @@ -240,8 +250,10 @@ static int run_thread4P5I2P2(_thread_proto4P5I2P2 fn, void *arg1, void *arg2, pthread_t tid; int ret = 0; - if(likely(ksr_tls_threads_mode == 0 || ksr_tls_threads_mode == 2 - || (ksr_tls_threads_mode == 1 && process_no > 0))) { + if(likely(ksr_tls_threads_mode == KSR_TLS_THREADS_MNONE + || ksr_tls_threads_mode == KSR_TLS_THREADS_MFORK + || (ksr_tls_threads_mode == KSR_TLS_THREADS_MTEMP + && process_no > 0))) { return fn(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); } pthread_create(&tid, NULL, (_thread_proto)run_thread_wrap4P5I2P2, @@ -278,8 +290,10 @@ static int run_thread4L(_thread_proto4L fn, long arg1) pthread_t tid; int ret = 0; - if(likely(ksr_tls_threads_mode == 0 || ksr_tls_threads_mode == 2 - || (ksr_tls_threads_mode == 1 && process_no > 0))) { + if(likely(ksr_tls_threads_mode == KSR_TLS_THREADS_MNONE + || ksr_tls_threads_mode == KSR_TLS_THREADS_MFORK + || (ksr_tls_threads_mode == KSR_TLS_THREADS_MTEMP + && process_no > 0))) { return fn(arg1); } pthread_create(&tid, NULL, (_thread_proto)run_thread_wrap4L, diff --git a/src/core/socket_info.c b/src/core/socket_info.c index 2557a83b1..8efa59461 100644 --- a/src/core/socket_info.c +++ b/src/core/socket_info.c @@ -1332,6 +1332,7 @@ static int nl_bound_sock(void) { int sock = -1; struct sockaddr_nl la; + struct timeval recvtimeout; sock = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE); if(sock < 0) { @@ -1343,13 +1344,22 @@ static int nl_bound_sock(void) bzero(&la, sizeof(la)); la.nl_family = AF_NETLINK; la.nl_pad = 0; - la.nl_pid = getpid(); + la.nl_pid = 0; la.nl_groups = 0; if(bind(sock, (struct sockaddr *)&la, sizeof(la)) < 0) { LM_ERR("could not bind NETLINK sock to sockaddr_nl\n"); goto error; } + recvtimeout.tv_sec = 4; + recvtimeout.tv_usec = 0; + if(setsockopt( + sock, SOL_SOCKET, SO_RCVTIMEO, &recvtimeout, sizeof(recvtimeout)) + < 0) { + LM_ERR("failed to set receive timeout\n"); + goto error; + } + return sock; error: if(sock >= 0) @@ -1402,6 +1412,10 @@ static int get_flags(int family) goto error; } rtn = recv(nl_sock, p, sizeof(buf) - nll, 0); + if(rtn <= 0) { + LM_ERR("failed to receive data (%d/%d)\n", rtn, errno); + goto error; + } nlp = (struct nlmsghdr *)p; if(nlp->nlmsg_type == NLMSG_DONE) { LM_DBG("done\n"); @@ -1504,6 +1518,10 @@ static int build_iface_list(void) goto error; } rtn = recv(nl_sock, p, sizeof(buf) - nll, 0); + if(rtn <= 0) { + LM_ERR("failed to receive data (%d/%d)\n", rtn, errno); + goto error; + } LM_DBG("received %d byles \n", rtn); nlp = (struct nlmsghdr *)p; if(nlp->nlmsg_type == NLMSG_DONE) { @@ -1740,6 +1758,8 @@ int add_interfaces(char *if_name, int family, unsigned short port, continue; if(family && family != ifa->ifa_addr->sa_family) continue; + sockaddr2ip_addr(&addr, (struct sockaddr *)ifa->ifa_addr); + tmp = ip_addr2a(&addr); if(ifa->ifa_addr->sa_family == AF_INET6) { struct sockaddr_in6 *caddr = (struct sockaddr_in6 *)ifa->ifa_addr; if((sr_bind_ipv6_link_local & KSR_IPV6_LINK_LOCAL_SKIP) @@ -1750,8 +1770,6 @@ int add_interfaces(char *if_name, int family, unsigned short port, continue; } } - sockaddr2ip_addr(&addr, (struct sockaddr *)ifa->ifa_addr); - tmp = ip_addr2a(&addr); if(ifa->ifa_flags & IFF_LOOPBACK) flags = SI_IS_LO; else diff --git a/src/core/sr_module.c b/src/core/sr_module.c index 5db202558..f6832b8c7 100644 --- a/src/core/sr_module.c +++ b/src/core/sr_module.c @@ -408,12 +408,14 @@ int ksr_locate_module(char *mod_path, char **new_path) int mdir_len; int path_type; int len; + int mod_path_len; *new_path = NULL; + mod_path_len = strlen(mod_path); path = mod_path; path_type = 0; modfile.s = path; - modfile.len = strlen(mod_path); + modfile.len = mod_path_len; modname.s = modfile.s; if(modfile.len > 3 && strcmp(modfile.s + modfile.len - 3, ".so") == 0) { path_type = 1; @@ -500,7 +502,7 @@ int ksr_locate_module(char *mod_path, char **new_path) if(path == 0) { /* try path /mod_path - K compat */ path = (char *)pkg_malloc( - mdir_len + 1 /* "/" */ + strlen(mod_path) + 1); + mdir_len + 1 /* "/" */ + mod_path_len + 1); if(path == 0) { PKG_MEM_ERROR; goto error; @@ -511,8 +513,8 @@ int ksr_locate_module(char *mod_path, char **new_path) path[len] = '/'; len++; } - path[len] = 0; - strncat(path, mod_path, strlen(mod_path)); + memcpy(path + len, mod_path, mod_path_len); + path[len + mod_path_len] = 0; if(stat(path, &stat_buf) == -1) { LM_DBG("module file not found <%s>\n", path); diff --git a/src/core/tcp_read.c b/src/core/tcp_read.c index fd60918fe..77ba6e97c 100644 --- a/src/core/tcp_read.c +++ b/src/core/tcp_read.c @@ -265,10 +265,10 @@ again: } } LOG(cfg_get(core, core_cfg, corelog), - "error reading: %s (%d) ([%s]:%u ->", strerror(errno), - errno, ip_addr2a(&c->rcv.src_ip), c->rcv.src_port); - LOG(cfg_get(core, core_cfg, corelog), "-> [%s]:%u)\n", - ip_addr2a(&c->rcv.dst_ip), c->rcv.dst_port); + "error reading: %s (%d) ([%s]:%u -> [%s]:%u)\n", + strerror(errno), errno, ip_addr2xa(&c->rcv.src_ip), + c->rcv.src_port, ip_addr2xa(&c->rcv.dst_ip), + c->rcv.dst_port); if(errno == ETIMEDOUT) { c->event = TCP_CLOSED_TIMEOUT; } else if(errno == ECONNRESET) { @@ -280,8 +280,8 @@ again: LM_DBG("EOF on connection %p (state: %u, flags: %x) - FD %d," " bytes %d, rd-flags %x ([%s]:%u -> [%s]:%u)", c, c->state, c->flags, fd, bytes_read, *flags, - ip_addr2a(&c->rcv.src_ip), c->rcv.src_port, - ip_addr2a(&c->rcv.dst_ip), c->rcv.dst_port); + ip_addr2xa(&c->rcv.src_ip), c->rcv.src_port, + ip_addr2xa(&c->rcv.dst_ip), c->rcv.dst_port); c->state = S_CONN_EOF; *flags |= RD_CONN_EOF; c->event = TCP_CLOSED_EOF; @@ -1522,8 +1522,7 @@ again: if(unlikely(bytes < 0)) { LOG(cfg_get(core, core_cfg, corelog), - "ERROR: tcp_read_req: error reading - c: %p r: %p (%d)\n", - con, req, bytes); + "error reading - c: %p r: %p (%d)\n", con, req, bytes); resp = CONN_ERROR; goto end_req; } diff --git a/src/lib/ims/Makefile b/src/lib/ims/Makefile index 482404ca3..5a3dab423 100644 --- a/src/lib/ims/Makefile +++ b/src/lib/ims/Makefile @@ -8,30 +8,8 @@ NAME:=kamailio_ims MAJOR_VER=0 MINOR_VER=1 BUGFIX_VER=0 -DEFS+=-DSER +LIBS= -ifeq ($(CROSS_COMPILE),) -XML2CFG=$(shell which xml2-config) -ifeq ($(XML2CFG),) -XML2CFG=$(shell \ - if pkg-config --exists libxml-2.0; then \ - echo 'pkg-config libxml-2.0'; \ - fi) -endif -endif - -ifneq ($(XML2CFG),) - libxml2_includes = $(shell $(XML2CFG) --cflags) - libxml2_libs = $(shell $(XML2CFG) --libs) -else - libxml2_includes = -I$(LOCALBASE)/include/libxml2 -I$(LOCALBASE)/include - libxml2_libs = -L$(LOCALBASE)/lib -lxml2 -endif - -INCLUDES= -I$(CURDIR)/.. -I$(CURDIR)/../.. $(libxml2_includes) -LIBS=$(libxml2_libs) -#SERLIBPATH=.. -#SER_LIBS=$(SERLIBPATH)/cds/ser_cds +INCLUDES= -I$(CURDIR)/.. -I$(CURDIR)/../.. include ../../Makefile.libs - diff --git a/src/lib/srdb1/db.c b/src/lib/srdb1/db.c index b13d87c69..77dea84df 100644 --- a/src/lib/srdb1/db.c +++ b/src/lib/srdb1/db.c @@ -270,7 +270,7 @@ error: * Initialize database module * \note No function should be called before this */ -db1_con_t *db_do_init(const str *url, void *(*new_connection)()) +db1_con_t *db_do_init(const str *url, void *(*new_connection)(struct db_id *)) { return db_do_init2(url, *new_connection, DB_POOLING_PERMITTED); } @@ -280,8 +280,8 @@ db1_con_t *db_do_init(const str *url, void *(*new_connection)()) * Initialize database module * \note No function should be called before this */ -db1_con_t *db_do_init2( - const str *url, void *(*new_connection)(), db_pooling_t pooling) +db1_con_t *db_do_init2(const str *url, void *(*new_connection)(struct db_id *), + db_pooling_t pooling) { struct db_id *id; void *con; @@ -347,7 +347,7 @@ err: * Shut down database module * \note No function should be called after this */ -void db_do_close(db1_con_t *_h, void (*free_connection)()) +void db_do_close(db1_con_t *_h, void (*free_connection)(struct pool_con *)) { struct pool_con *con; diff --git a/src/lib/srdb1/db.h b/src/lib/srdb1/db.h index 248647ecd..a9538f6b9 100644 --- a/src/lib/srdb1/db.h +++ b/src/lib/srdb1/db.h @@ -48,6 +48,8 @@ #include "db_cap.h" #include "db_con.h" #include "db_row.h" +#include "db_id.h" +#include "db_pool.h" #include "db_pooling.h" #include "db_locking.h" @@ -464,7 +466,7 @@ int db_bind_mod(const str *mod, db_func_t *dbf); * \return returns a pointer to the db1_con_t representing the connection if it was successful, otherwise 0 is returned. */ -db1_con_t *db_do_init(const str *url, void *(*new_connection)()); +db1_con_t *db_do_init(const str *url, void *(*new_connection)(struct db_id *)); /** @@ -478,8 +480,8 @@ db1_con_t *db_do_init(const str *url, void *(*new_connection)()); * \return returns a pointer to the db1_con_t representing the connection if it was successful, otherwise 0 is returned. */ -db1_con_t *db_do_init2( - const str *url, void *(*new_connection)(), db_pooling_t pooling); +db1_con_t *db_do_init2(const str *url, void *(*new_connection)(struct db_id *), + db_pooling_t pooling); /** @@ -490,7 +492,7 @@ db1_con_t *db_do_init2( * \param _h database connection handle * \param (*free_connection) Pointer to the db specific free_connection method */ -void db_do_close(db1_con_t *_h, void (*free_connection)()); +void db_do_close(db1_con_t *_h, void (*free_connection)(struct pool_con *)); /** diff --git a/src/lib/srdb1/db_id.c b/src/lib/srdb1/db_id.c index 93b36253b..2546a5f56 100644 --- a/src/lib/srdb1/db_id.c +++ b/src/lib/srdb1/db_id.c @@ -237,14 +237,33 @@ static int parse_db_url(struct db_id *id, const str *url) break; case '/': - id->host = prev_token; - prev_token = 0; - id->port = str2s(begin, url->s + i - begin, 0); - if(dupl_string_name( - &id->database, url->s + i + 1, url->s + len) - < 0) - goto err; - return 0; + /* go to last '@' when '/' is part of a password */ + a = 0; + for(j = i + 1; j < len; j++) { + if(url->s[j] == '@') { + a = j; + } + } + if(a != 0) { + st = ST_HOST; + id->username = prev_token; + prev_token = 0; + i = a; + if(dupl_string(&id->password, begin, url->s + i) + < 0) + goto err; + begin = url->s + i + 1; + break; + } else { + id->host = prev_token; + prev_token = 0; + id->port = str2s(begin, url->s + i - begin, 0); + if(dupl_string_name(&id->database, url->s + i + 1, + url->s + len) + < 0) + goto err; + return 0; + } } break; diff --git a/src/main.c b/src/main.c index c7e98e1b4..fb55c5c2a 100644 --- a/src/main.c +++ b/src/main.c @@ -338,9 +338,10 @@ int tcp_disable = 0; /* 1 if tcp is disabled */ int tls_disable = 0; /* tls enabled by default */ #else int tls_disable = 1; /* tls disabled by default */ -#endif /* CORE_TLS */ -int ksr_tls_threads_mode = 0; /* threads execution mode for tls with libssl */ -#endif /* USE_TLS */ +#endif /* CORE_TLS */ +/* threads execution mode for tls with libssl */ +int ksr_tls_threads_mode = KSR_TLS_THREADS_MNONE; +#endif /* USE_TLS */ #ifdef USE_SCTP int sctp_children_no = 0; int sctp_disable = 2; /* 1 if sctp is disabled, 2 if auto mode, 0 enabled */ diff --git a/src/modules/app_python3/apy_kemi.c b/src/modules/app_python3/apy_kemi.c index 0c1ab5358..190f453c2 100644 --- a/src/modules/app_python3/apy_kemi.c +++ b/src/modules/app_python3/apy_kemi.c @@ -281,7 +281,7 @@ PyObject *sr_apy_kemi_exec_func_ex( if(pobj == NULL) { LM_ERR("null parameter - func: %.*s idx: %d argc: %d\n", fname.len, fname.s, i, (int)alen); - return sr_kemi_apy_return_false(); + return NULL; } if(ket->ptypes[i] == SR_KEMIP_STR) { if(!PyUnicode_Check(pobj)) { @@ -293,7 +293,7 @@ PyObject *sr_apy_kemi_exec_func_ex( if(vps[i].v.s.s == NULL) { LM_ERR("null-string parameter - func: %.*s idx: %d argc: %d\n", fname.len, fname.s, i, (int)alen); - return sr_kemi_apy_return_false(); + return NULL; } vps[i].v.s.len = (int)slen; vps[i].vtype = SR_KEMIP_STR; diff --git a/src/modules/app_python3s/apy3s_kemi.c b/src/modules/app_python3s/apy3s_kemi.c index 38c67b9e1..c2102c012 100644 --- a/src/modules/app_python3s/apy3s_kemi.c +++ b/src/modules/app_python3s/apy3s_kemi.c @@ -401,7 +401,7 @@ PyObject *sr_apy_kemi_exec_func_ex( if(pobj == NULL) { LM_ERR("null parameter - func: %.*s idx: %d argc: %d\n", fname.len, fname.s, i, (int)alen); - return sr_kemi_apy_return_false(); + return NULL; } if(ket->ptypes[i] == SR_KEMIP_STR) { if(!PyUnicode_Check(pobj)) { @@ -413,7 +413,7 @@ PyObject *sr_apy_kemi_exec_func_ex( if(vps[i].v.s.s == NULL) { LM_ERR("null-string parameter - func: %.*s idx: %d argc: %d\n", fname.len, fname.s, i, (int)alen); - return sr_kemi_apy_return_false(); + return NULL; } vps[i].v.s.len = (int)slen; vps[i].vtype = SR_KEMIP_STR; diff --git a/src/modules/async/async_mod.c b/src/modules/async/async_mod.c index e7b2192d8..7980ccea8 100644 --- a/src/modules/async/async_mod.c +++ b/src/modules/async/async_mod.c @@ -123,7 +123,7 @@ static int mod_init(void) { /* init faked sip msg */ if(faked_msg_init() < 0) { - LM_ERR("failed to iit local sip msg\n"); + LM_ERR("failed to init local sip msg\n"); return -1; } diff --git a/src/modules/auth/auth_mod.c b/src/modules/auth/auth_mod.c index 534ad9e20..8f1aa7bbe 100644 --- a/src/modules/auth/auth_mod.c +++ b/src/modules/auth/auth_mod.c @@ -622,6 +622,16 @@ end: return ret; } +/** + * + */ +static int ki_pv_proxy_authenticate( + sip_msg_t *msg, str *realm, str *passwd, int flags) +{ + return pv_authenticate(msg, realm, passwd, flags, HDR_PROXYAUTH_T, + &msg->first_line.u.request.method); +} + /** * */ @@ -663,6 +673,26 @@ error: return AUTH_ERROR; } +/** + * + */ +static int ki_pv_www_authenticate( + sip_msg_t *msg, str *realm, str *passwd, int flags) +{ + return pv_authenticate(msg, realm, passwd, flags, HDR_AUTHORIZATION_T, + &msg->first_line.u.request.method); +} + +/** + * + */ +static int ki_pv_www_authenticate_method( + sip_msg_t *msg, str *realm, str *passwd, int flags, str *method) +{ + return pv_authenticate( + msg, realm, passwd, flags, HDR_AUTHORIZATION_T, method); +} + /** * */ @@ -1339,6 +1369,21 @@ static sr_kemi_t sr_kemi_auth_exports[] = { { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_INT, SR_KEMIP_INT, SR_KEMIP_NONE, SR_KEMIP_NONE } }, + { str_init("auth"), str_init("pv_proxy_authenticate"), + SR_KEMIP_INT, ki_pv_proxy_authenticate, + { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_INT, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("auth"), str_init("pv_www_authenticate"), + SR_KEMIP_INT, ki_pv_www_authenticate, + { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_INT, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("auth"), str_init("pv_www_authenticate_method"), + SR_KEMIP_INT, ki_pv_www_authenticate_method, + { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_INT, + SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, { str_init("auth"), str_init("has_credentials"), SR_KEMIP_INT, ki_has_credentials, { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, diff --git a/src/modules/cdp/authstatemachine.c b/src/modules/cdp/authstatemachine.c index a5aadb1c2..3d3024eeb 100644 --- a/src/modules/cdp/authstatemachine.c +++ b/src/modules/cdp/authstatemachine.c @@ -114,7 +114,7 @@ void update_auth_session_timers(cdp_auth_session_t *x, AAAMessage *msg) } else { if(!avp) { LM_DBG("using timers from our request as there is nothing in the " - "response (lifetime) - last requested lifetime was [%d]\n", + "response (lifetime) - last requested lifetime was [%ld]\n", x->last_requested_lifetime); if(x->last_requested_lifetime > 0) { update_lifetime = 1; diff --git a/src/modules/cdp/common.c b/src/modules/cdp/common.c index 4c17cc511..205759b50 100644 --- a/src/modules/cdp/common.c +++ b/src/modules/cdp/common.c @@ -20,7 +20,7 @@ int get_accounting_record_type(AAAMessage *msg) int get_result_code(AAAMessage *msg) { - AAA_AVP *avp; + AAA_AVP *avp, *avp2; AAA_AVP_LIST list; list.head = 0; list.tail = 0; @@ -36,9 +36,9 @@ int get_result_code(AAAMessage *msg) goto finish; } else if(avp->code == AVP_Experimental_Result) { list = AAAUngroupAVPS(avp->data); - for(avp = list.head; avp; avp = avp->next) { - if(avp->code == AVP_IMS_Experimental_Result_Code) { - rc = get_4bytes(avp->data.s); + for(avp2 = list.head; avp2; avp2 = avp2->next) { + if(avp2->code == AVP_IMS_Experimental_Result_Code) { + rc = get_4bytes(avp2->data.s); AAAFreeAVPList(&list); goto finish; } diff --git a/src/modules/cdp/diameter_peer.c b/src/modules/cdp/diameter_peer.c index 294d8d640..0dd30dd36 100644 --- a/src/modules/cdp/diameter_peer.c +++ b/src/modules/cdp/diameter_peer.c @@ -233,10 +233,8 @@ int diameter_peer_start(int blocking) { int pid; int k = 0; - int seed; peer *p; - seed = random(); /* fork workers */ for(k = 0; k < config->workers; k++) { pid = fork_process(1001 + k, "cdp_worker", 1); @@ -245,7 +243,6 @@ int diameter_peer_start(int blocking) return 0; } if(pid == 0) { - srandom(seed * k); snprintf( pt[process_no].desc, MAX_PT_DESC, "cdp worker child=%d", k); if(cfg_child_init()) @@ -266,7 +263,6 @@ int diameter_peer_start(int blocking) /* fork receiver for unknown peers */ - seed = random(); pid = fork_process(1001 + k, "cdp_receiver_peer_unknown", 1); if(pid == -1) { @@ -275,7 +271,6 @@ int diameter_peer_start(int blocking) return 0; } if(pid == 0) { - srandom(seed * k); snprintf(pt[process_no].desc, MAX_PT_DESC, "cdp receiver peer unknown"); if(cfg_child_init()) return 0; @@ -288,7 +283,6 @@ int diameter_peer_start(int blocking) } /* fork receivers for each pre-configured peers */ - seed = random(); lock_get(peer_list_lock); for(p = peer_list->head, k = -1; p; p = p->next, k--) { pid = fork_process(1001 + k, "cdp_receiver_peer", 1); @@ -298,7 +292,6 @@ int diameter_peer_start(int blocking) return 0; } if(pid == 0) { - srandom(seed * k); snprintf(pt[process_no].desc, MAX_PT_DESC, "cdp_receiver_peer=%.*s", p->fqdn.len, p->fqdn.s); if(cfg_child_init()) diff --git a/src/modules/cdp/receiver.c b/src/modules/cdp/receiver.c index e10cfc73f..47e1a5729 100644 --- a/src/modules/cdp/receiver.c +++ b/src/modules/cdp/receiver.c @@ -830,7 +830,7 @@ int receive_loop(peer *original_peer) #if OPENSSL_VERSION_NUMBER >= 0x10100000L if(enable_tls) { to_ssl(&sp2->tls_ctx, &sp2->tls_conn, - sp->tcp_socket, method); + sp2->tcp_socket, method); } #endif } else { @@ -843,7 +843,7 @@ int receive_loop(peer *original_peer) #if OPENSSL_VERSION_NUMBER >= 0x10100000L if(enable_tls) { to_ssl(&sp2->tls_ctx, &sp2->tls_conn, - sp->tcp_socket, method); + sp2->tcp_socket, method); } #endif } diff --git a/src/modules/cdp/session.c b/src/modules/cdp/session.c index cd169f103..376f9d7ed 100644 --- a/src/modules/cdp/session.c +++ b/src/modules/cdp/session.c @@ -428,7 +428,7 @@ void cdp_sessions_log() x->u.auth.generic_data, x->u.auth.class); break; case ACCT_CC_CLIENT: - LM_DBG("CCAcct State [%d] Charging Active [%c (%d)s] " + LM_DBG("CCAcct State [%d] Charging Active [%c (%ld)s] " "Reserved Units(valid=%ds) [%d] Generic [%p]\n", x->u.cc_acc.state, (x->u.cc_acc.charging_start_time @@ -436,11 +436,11 @@ void cdp_sessions_log() != ACC_CC_ST_DISCON) ? 'Y' : 'N', - x->u.cc_acc.charging_start_time - ? (int)((int)time(0) - - (int)x->u.cc_acc + x->u.cc_acc.charging_start_time ? ( + time_t)(time(0) + - (time_t)x->u.cc_acc .charging_start_time) - : -1, + : -1, x->u.cc_acc.reserved_units ? (int)((int)x->u.cc_acc .last_reservation_request_time @@ -482,7 +482,7 @@ int cdp_sessions_timer(time_t now, void *ptr) x, ACC_CC_EV_SESSION_STALE, 0); } //check reservation timers - again here we are assuming CC-Time applications - int last_res_timestamp = + time_t last_res_timestamp = x->u.cc_acc.last_reservation_request_time; int res_valid_for = x->u.cc_acc.reserved_units_validity_time; diff --git a/src/modules/cdp/session.h b/src/modules/cdp/session.h index 1d9a90050..644112302 100644 --- a/src/modules/cdp/session.h +++ b/src/modules/cdp/session.h @@ -130,12 +130,13 @@ typedef struct _cdp_auth_session_t time_t timeout; /**< absolute time for session timeout -1 means forever */ time_t lifetime; /**< absolute time for auth lifetime -1 means forever */ time_t grace_period; /**< grace_period in seconds */ - unsigned int - last_requested_lifetime; /**< the following 3 timers are used to store what we are */ - unsigned int - last_requested_timeout; /**call_list->client_id.s); - shm_free(credit_data->call_list); + __free_call_t(credit_data->call_list); + credit_data->call_list = NULL; // Release the lock since we are going to free the entry down below cnxcc_unlock(credit_data->lock); @@ -981,6 +983,17 @@ void terminate_all_calls(credit_data_t *credit_data) } } +static void __free_call_t(call_t *call) +{ + str_shm_free_if_not_null(call->sip_data.callid); + str_shm_free_if_not_null(call->sip_data.to_uri); + str_shm_free_if_not_null(call->sip_data.to_tag); + str_shm_free_if_not_null(call->sip_data.from_uri); + str_shm_free_if_not_null(call->sip_data.from_tag); + + shm_free(call); +} + /* * WARNING: When calling this function, the proper lock should have been acquired */ @@ -1018,13 +1031,7 @@ static void __free_call(call_t *call) shm_free(e->key.s); shm_free(e); - str_shm_free_if_not_null(call->sip_data.callid); - str_shm_free_if_not_null(call->sip_data.to_uri); - str_shm_free_if_not_null(call->sip_data.to_tag); - str_shm_free_if_not_null(call->sip_data.from_uri); - str_shm_free_if_not_null(call->sip_data.from_tag); - - shm_free(call); + __free_call_t(call); } /* @@ -1132,14 +1139,18 @@ static credit_data_t *__get_or_create_credit_data_entry( if(e == NULL) goto no_memory; - if(shm_str_dup(&e->key, client_id) != 0) + if(shm_str_dup(&e->key, client_id) != 0) { + shm_free(e); goto no_memory; + } e->u.p = credit_data = __alloc_new_credit_data(client_id, type); e->flags = 0; - if(credit_data == NULL) + if(credit_data == NULL) { + shm_free(e); goto no_memory; + } cnxcc_lock(ht->lock); str_hash_add(sht, e); @@ -1168,7 +1179,7 @@ static credit_data_t *__alloc_new_credit_data( credit_data->call_list = shm_malloc(sizeof(call_t)); if(credit_data->call_list == NULL) goto no_memory; - + memset(credit_data->call_list, 0, sizeof(data_t)); clist_init(credit_data->call_list, next, prev); /* @@ -1201,6 +1212,13 @@ static credit_data_t *__alloc_new_credit_data( no_memory: SHM_MEM_ERROR; error: + if(credit_data) { + if(credit_data->call_list) { + str_shm_free_if_not_null(credit_data->call_list->client_id); + __free_call_t(credit_data->call_list); + } + shm_free(credit_data); + } return NULL; } @@ -1269,6 +1287,8 @@ static call_t *__alloc_new_call_by_money(credit_data_t *credit_data, error: cnxcc_unlock(credit_data->lock); + if(call) + __free_call_t(call); return NULL; } @@ -1330,6 +1350,8 @@ static call_t *__alloc_new_call_by_time( error: cnxcc_unlock(credit_data->lock); + if(call) + __free_call_t(call); return NULL; } @@ -1392,6 +1414,8 @@ static call_t *alloc_new_call_by_channel( error: cnxcc_unlock(credit_data->lock); + if(call) + __free_call_t(call); return NULL; } @@ -1449,9 +1473,10 @@ static int __add_call_by_cid(str *cid, call_t *call, credit_type_t type) SHM_MEM_ERROR; return -1; } - + memset(e, 0, sizeof(struct str_hash_entry)); if(shm_str_dup(&e->key, cid) != 0) { SHM_MEM_ERROR; + shm_free(e); return -1; } diff --git a/src/modules/corex/corex_mod.c b/src/modules/corex/corex_mod.c index ed596b812..5849a34f4 100644 --- a/src/modules/corex/corex_mod.c +++ b/src/modules/corex/corex_mod.c @@ -1274,6 +1274,16 @@ static int corex_sip_reply_out(sr_event_param_t *evp) str evname = str_init("corex:reply-out"); memset(&sndinfo, 0, sizeof(onsend_info_t)); + sndinfo.dst = evp->dst; + if(evp->rpl != NULL) { + sndinfo.msg = evp->rpl; + sndinfo.buf = evp->rpl->buf; + sndinfo.len = evp->rpl->len; + } else { + sndinfo.msg = evp->req; + sndinfo.buf = evp->req->buf; + sndinfo.len = evp->req->len; + } if(corex_evrt_reply_out_no >= 0 || corex_evcb_reply_out.len > 0) { run_onsend_evroute(&sndinfo, corex_evrt_reply_out_no, diff --git a/src/modules/db_mongodb/mongodb_dbase.c b/src/modules/db_mongodb/mongodb_dbase.c index a57324d4a..df49af6f9 100644 --- a/src/modules/db_mongodb/mongodb_dbase.c +++ b/src/modules/db_mongodb/mongodb_dbase.c @@ -29,6 +29,12 @@ #define DB_MONGODB_ROWS_STEP 1000 +#if MONGOC_CHECK_VERSION(1, 29, 0) +#define _ksr_bson_as_json bson_as_legacy_extended_json +#else +#define _ksr_bson_as_json bson_as_json +#endif + typedef struct db_mongodb_result { mongoc_collection_t *collection; /*!< Collection link */ @@ -773,7 +779,7 @@ static int db_mongodb_convert_result(const db1_con_t *_h, db1_res_t *_r) mgres->maxrows = RES_ROW_N(_r); } if(is_printable(L_DBG)) { - jstr = bson_as_json(itdoc, NULL); + jstr = _ksr_bson_as_json(itdoc, NULL); LM_DBG("selected document: %s\n", jstr); bson_free(jstr); } @@ -1000,7 +1006,7 @@ int db_mongodb_query(const db1_con_t *_h, const db_key_t *_k, } if(is_printable(L_DBG)) { - jstr = bson_as_json(seldoc, NULL); + jstr = _ksr_bson_as_json(seldoc, NULL); LM_DBG("query filter: %s\n", jstr); bson_free(jstr); } @@ -1036,7 +1042,7 @@ int db_mongodb_query(const db1_con_t *_h, const db_key_t *_k, } #endif if(is_printable(L_DBG)) { - jstr = bson_as_json(mgcon->colsdoc, NULL); + jstr = _ksr_bson_as_json(mgcon->colsdoc, NULL); LM_DBG("columns filter: %s\n", jstr); bson_free(jstr); } @@ -1174,7 +1180,7 @@ int db_mongodb_insert(const db1_con_t *_h, const db_key_t *_k, goto error; } if(is_printable(L_DBG)) { - jstr = bson_as_json(doc, NULL); + jstr = _ksr_bson_as_json(doc, NULL); LM_DBG("insert document: %s\n", jstr); bson_free(jstr); } @@ -1268,7 +1274,7 @@ int db_mongodb_delete(const db1_con_t *_h, const db_key_t *_k, } if(is_printable(L_DBG)) { - jstr = bson_as_json(doc, NULL); + jstr = _ksr_bson_as_json(doc, NULL); LM_DBG("delete filter document: %s\n", jstr); bson_free(jstr); } diff --git a/src/modules/db_redis/Makefile b/src/modules/db_redis/Makefile index 85d9b9a95..d5e304cc2 100644 --- a/src/modules/db_redis/Makefile +++ b/src/modules/db_redis/Makefile @@ -64,9 +64,9 @@ ifneq ($(HIREDIS_CLUSTER_BUILDER),) HIREDISCLUSTERDEFS = $(shell $(HIREDIS_CLUSTER_BUILDER) --cflags) HIREDISCLUSTERLIBS = $(shell $(HIREDIS_CLUSTER_BUILDER) --libs) HIREDISCLUSTERLIBSPATH = $(shell $(HIREDIS_CLUSTER_BUILDER) --libs-only-L | cut -c 3-) - ifneq ($(shell ls $(HIREDISCLUSTERLIBSPATH) | grep libhiredis_ssl.so),) + ifneq ($(shell ls $(HIREDISCLUSTERLIBSPATH) | grep libhiredis_cluster_ssl.so),) HIREDISCLUSTERDEFS += -DWITH_SSL - HIREDISCLUSTERLIBS += -lhiredis_ssl + HIREDISCLUSTERLIBS += -lhiredis_cluster_ssl endif DEFS+=-DWITH_HIREDIS_CLUSTER DEFS+=$(HIREDISCLUSTERDEFS) diff --git a/src/modules/db_redis/redis_connection.h b/src/modules/db_redis/redis_connection.h index 62bb81f40..5b6f819c0 100644 --- a/src/modules/db_redis/redis_connection.h +++ b/src/modules/db_redis/redis_connection.h @@ -25,6 +25,9 @@ #ifdef WITH_HIREDIS_CLUSTER #include +#ifdef WITH_SSL +#include +#endif #else #ifdef WITH_HIREDIS_PATH #include diff --git a/src/modules/db_redis/redis_dbase.c b/src/modules/db_redis/redis_dbase.c index 84c0c3a94..c1ea95882 100644 --- a/src/modules/db_redis/redis_dbase.c +++ b/src/modules/db_redis/redis_dbase.c @@ -794,6 +794,7 @@ static int db_redis_build_query_keys(km_redis_con_t *con, const str *table_name, type->type.s); } keyname.s = NULL; + break; } else if(keyname.s) { pkg_free(keyname.s); keyname.s = NULL; @@ -1020,43 +1021,51 @@ static int db_redis_scan_query_keys_pattern(km_redis_con_t *con, #endif #ifdef WITH_HIREDIS_CLUSTER + return 0; +err: + if(reply) + db_redis_free_reply(&reply); + return -1; } -#endif +#else -// for full table scans, we have to manually match all given keys -// but only do this once for repeated invocations -if(!*manual_keys) { - *manual_keys_count = _n; - *manual_keys = (int *)pkg_malloc(*manual_keys_count * sizeof(int)); - if(!*manual_keys) { - LM_ERR("Failed to allocate memory for manual keys\n"); - goto err; - } - memset(*manual_keys, 0, *manual_keys_count * sizeof(int)); - for(l = 0; l < _n; ++l) { - (*manual_keys)[l] = l; - } -} + // for full table scans, we have to manually match all given keys + // but only do this once for repeated invocations + if(!*manual_keys) { + *manual_keys_count = _n; + *manual_keys = (int *)pkg_malloc(*manual_keys_count * sizeof(int)); + if(!*manual_keys) { + LM_ERR("Failed to allocate memory for manual keys\n"); + goto err; + } + memset(*manual_keys, 0, *manual_keys_count * sizeof(int)); + for(l = 0; l < _n; ++l) { + (*manual_keys)[l] = l; + } + } -if(reply) { - db_redis_free_reply(&reply); -} + if(reply) { + db_redis_free_reply(&reply); + } -db_redis_key_free(&query_v); + db_redis_key_free(&query_v); -LM_DBG("got %lu entries by scan\n", (unsigned long)i); -return 0; + LM_DBG("got %lu entries by scan\n", (unsigned long)i); + return 0; -err : if(reply) db_redis_free_reply(&reply); -db_redis_key_free(&query_v); -db_redis_key_free(query_keys); -*query_keys_count = 0; -if(*manual_keys) { - pkg_free(*manual_keys); - *manual_keys = NULL; -} -return -1; -} + err: + if(reply) + db_redis_free_reply(&reply); + db_redis_key_free(&query_v); + db_redis_key_free(query_keys); + *query_keys_count = 0; + if(*manual_keys) { + pkg_free(*manual_keys); + *manual_keys = NULL; + } + return -1; + } +#endif static int db_redis_scan_query_keys(km_redis_con_t *con, const str *table_name, const int _n, redis_key_t **query_keys, int *query_keys_count, diff --git a/src/modules/htable/ht_api.c b/src/modules/htable/ht_api.c index 2391cb5c5..0c9052212 100644 --- a/src/modules/htable/ht_api.c +++ b/src/modules/htable/ht_api.c @@ -738,6 +738,10 @@ ht_cell_t *ht_cell_value_add(ht_t *ht, str *name, int val, ht_cell_t *old) if(now > 0 && it->expire != 0 && it->expire < now) { /* entry has expired */ + it->expire = ht->htexpire; + if(it->expire) { + it->expire += now; + } if(ht->flags == PV_VAL_INT) { /* initval is integer, use it to create a fresh entry */ it->flags &= ~AVP_VAL_STR; @@ -1537,6 +1541,7 @@ int ht_count_cells_re(str *sre, ht_t *ht, int mode) str sval; str tval; int ival = 0; + time_t tnow = 0; if(sre == NULL || sre->len <= 0 || ht == NULL) return 0; @@ -1616,11 +1621,17 @@ int ht_count_cells_re(str *sre, ht_t *ht, int mode) } } + tnow = time(NULL); for(i = 0; i < ht->htsize; i++) { /* free entries */ ht_slot_lock(ht, i); it = ht->entries[i].first; while(it) { + if(ht->htexpire > 0 && it->expire != 0 && it->expire < tnow) { + /* entry has expired, continue */ + it = it->next; + continue; + } it0 = it->next; if(op == 5) { if(!(it->flags & AVP_VAL_STR)) diff --git a/src/modules/http_async_client/async_http.c b/src/modules/http_async_client/async_http.c index 1dbe8adc5..2ece3a9dd 100644 --- a/src/modules/http_async_client/async_http.c +++ b/src/modules/http_async_client/async_http.c @@ -522,7 +522,7 @@ int async_send_query(sip_msg_t *msg, str *query, str *cbname) q_idx++; snprintf(q_id, MAX_ID_LEN + 1, "%u-%u", (unsigned int)getpid(), q_idx); - strncpy(aq->id, q_id, strlen(q_id)); + strcpy(aq->id, q_id); aq->query_params.tls_client_cert = NULL; if(ah_params.tls_client_cert) { diff --git a/src/modules/http_async_client/http_multi.c b/src/modules/http_async_client/http_multi.c index a57aba9c9..30ae016d7 100644 --- a/src/modules/http_async_client/http_multi.c +++ b/src/modules/http_async_client/http_multi.c @@ -100,7 +100,7 @@ void event_cb(int fd, short kind, void *userp) update_stat(timeouts, 1); const char *error = "TIMEOUT"; - strncpy(cell->error, error, strlen(error) + 1); + strcpy(cell->error, error); reply_error(cell); @@ -157,10 +157,12 @@ void event_cb(int fd, short kind, void *userp) /* CURLMOPT_SOCKETFUNCTION */ int sock_cb(CURL *e, curl_socket_t s, int what, void *cbp, void *sockp) { + struct http_m_cell *cell; struct http_m_global *g = (struct http_m_global *)cbp; - struct http_m_cell *cell = (struct http_m_cell *)sockp; const char *whatstr[] = {"none", "IN", "OUT", "INOUT", "REMOVE"}; + cell = http_m_cell_lookup(e); + LM_DBG("socket callback: s=%d e=%p what=%s\n", s, e, whatstr[what]); if(what == CURL_POLL_REMOVE) { /* if cell is NULL the handle has been removed by the event callback for timeout */ @@ -218,7 +220,7 @@ int check_mcode(CURLMcode code, char *error) break; } LM_ERR("ERROR: %s\n", s); - strncpy(error, s, strlen(s) + 1); + strcpy(error, s); return -1; } return 0; diff --git a/src/modules/ims_diameter_server/avp_helper.c b/src/modules/ims_diameter_server/avp_helper.c index cddd8f896..3b1ef67af 100644 --- a/src/modules/ims_diameter_server/avp_helper.c +++ b/src/modules/ims_diameter_server/avp_helper.c @@ -46,7 +46,6 @@ // ID of current message static unsigned int current_msg_id = 0; -static unsigned int current_msg_id_repl = 0; cJSON *avp2json(AAA_AVP *avp_t) { @@ -486,7 +485,7 @@ int pv_get_application(struct sip_msg *msg, pv_param_t *param, pv_value_t *res) int pv_get_response(struct sip_msg *msg, pv_param_t *param, pv_value_t *res) { - if((msg->id != current_msg_id_repl) || (responsejson.len < 0)) { + if(responsejson.len < 0) { return pv_get_null(msg, param, res); } return pv_get_strval(msg, param, res, &responsejson); @@ -502,7 +501,6 @@ int pv_set_response( val->rs.s); responsejson.s = val->rs.s; responsejson.len = val->rs.len; - current_msg_id_repl = msg->id; return 0; } return 0; diff --git a/src/modules/ims_ipsec_pcscf/cmd.c b/src/modules/ims_ipsec_pcscf/cmd.c index 3ce36d279..c7481cf5c 100644 --- a/src/modules/ims_ipsec_pcscf/cmd.c +++ b/src/modules/ims_ipsec_pcscf/cmd.c @@ -809,6 +809,7 @@ int ipsec_create(struct sip_msg *m, udomain_t *d, int _cflags) pcontact_t *pcontact = NULL; struct pcontact_info ci; int ret = IPSEC_CMD_FAIL; // FAIL by default + int fun_ret_c; // Used to store return codes of some functions tm_cell_t *t = NULL; sip_msg_t *req = NULL; security_t *req_sec_params = NULL; @@ -893,10 +894,13 @@ int ipsec_create(struct sip_msg *m, udomain_t *d, int _cflags) } if(update_contact_ipsec_params(s, m, old_s) != 0) { + LM_ERR("Could not update ipsec params in contact.\n"); goto cleanup; } - if(create_ipsec_tunnel(&req->rcv.src_ip, s) != 0) { + fun_ret_c = create_ipsec_tunnel(&req->rcv.src_ip, s); + if(fun_ret_c != 0) { + LM_ERR("IPSEC tunnel creation failed.\n"); goto cleanup; } @@ -917,11 +921,16 @@ int ipsec_create(struct sip_msg *m, udomain_t *d, int _cflags) goto cleanup; } - if(add_supported_secagree_header(m) != 0) { + fun_ret_c = add_supported_secagree_header(m); + if(fun_ret_c != 0) { + LM_ERR("Could not add secagree header. Failed with code: %d\n", + fun_ret_c); goto cleanup; } - if(add_security_server_header(m, s) != 0) { + fun_ret_c = add_security_server_header(m, s); + if(fun_ret_c != 0) { + LM_ERR("Could not add security server header. Code: %d\n", fun_ret_c); goto cleanup; } diff --git a/src/modules/ims_ipsec_pcscf/ims_ipsec_pcscf_mod.c b/src/modules/ims_ipsec_pcscf/ims_ipsec_pcscf_mod.c index 223f8d1aa..7c6c529c9 100644 --- a/src/modules/ims_ipsec_pcscf/ims_ipsec_pcscf_mod.c +++ b/src/modules/ims_ipsec_pcscf/ims_ipsec_pcscf_mod.c @@ -336,6 +336,7 @@ static int ipsec_add_listen_ifaces() static int mod_init(void) { bind_usrloc_t bind_usrloc; + int ret; bind_usrloc = (bind_usrloc_t)find_export("ul_bind_ims_usrloc_pcscf", 1, 0); if(!bind_usrloc) { @@ -343,7 +344,9 @@ static int mod_init(void) return -1; } - if(bind_usrloc(&ul) < 0) { + ret = bind_usrloc(&ul); + if(ret < 0) { + LM_ERR("bind_userloc() has failed with code %d", ret); return -1; } LM_INFO("Successfully bound to PCSCF Usrloc module\n"); @@ -355,7 +358,9 @@ static int mod_init(void) } LM_INFO("Successfully bound to TM module\n"); - if(ipsec_add_listen_ifaces() != 0) { + ret = ipsec_add_listen_ifaces(); + if(ret != 0) { + LM_ERR("Failed to add ipsec listen interface. Code: %d", ret); return -1; } diff --git a/src/modules/ims_isc/ims_isc_mod.c b/src/modules/ims_isc/ims_isc_mod.c index e3a6e2f02..b222ada61 100644 --- a/src/modules/ims_isc/ims_isc_mod.c +++ b/src/modules/ims_isc/ims_isc_mod.c @@ -242,12 +242,10 @@ int isc_match_filter(struct sip_msg *msg, char *str1, udomain_t *d) //sometimes s is populated by an ims_getter method cscf_get_terminating_user that alloc memory that must be free-ed at the end int free_s = 0; - - //the callback from the Cx interface in case of unreg terminating initial message is a FAILURE_ROUTE. Hence we need an addl. flag - int firstflag = 0; + enum isc_mark_status status = 0; int ret = ISC_RETURN_FALSE; - isc_mark new_mark, old_mark; + isc_mark new_mark, old_mark, dummy_mark; enum dialog_direction dir = get_dialog_direction(str1); @@ -262,16 +260,27 @@ int isc_match_filter(struct sip_msg *msg, char *str1, udomain_t *d) /* starting or resuming? */ memset(&old_mark, 0, sizeof(isc_mark)); memset(&new_mark, 0, sizeof(isc_mark)); + memset(&dummy_mark, 0, sizeof(isc_mark)); + + if(is_route_type(FAILURE_ROUTE)) { + status |= ISCMARK_FAILURE; + } + if(isc_mark_get_from_msg(msg, &old_mark)) { LM_DBG("Message returned s=%d;h=%d;d=%d;a=%.*s\n", old_mark.skip, old_mark.handling, old_mark.direction, old_mark.aor.len, old_mark.aor.s); + } else if(is_route_type(FAILURE_ROUTE) + && isc_mark_get_from_lumps(msg, &dummy_mark)) { + LM_DBG("Message lumps returned s=%d;h=%d;d=%d;a=%.*s\n", + dummy_mark.skip, dummy_mark.handling, dummy_mark.direction, + dummy_mark.aor.len, dummy_mark.aor.s); } else { LM_DBG("Starting triggering\n"); - firstflag = 1; + status |= ISCMARK_MISSING; } - if(is_route_type(FAILURE_ROUTE) && !firstflag) { + if(status == ISCMARK_FOUND_LUMPS) { /* need to find the handling for the failed trigger */ if(dir == DLG_MOBILE_ORIGINATING) { k = cscf_get_originating_user(msg, &s); @@ -305,7 +314,7 @@ int isc_match_filter(struct sip_msg *msg, char *str1, udomain_t *d) } } struct cell *t = isc_tmb.t_gett(); - LM_CRIT("SKIP: %d\n", old_mark.skip); + LM_CRIT("SKIP after AS failure: %d\n", old_mark.skip); int index = old_mark.skip; for(k = 0; k < t->nr_of_outgoings; k++) { m = isc_checker_find(s, new_mark.direction, index, msg, @@ -374,7 +383,7 @@ int isc_match_filter(struct sip_msg *msg, char *str1, udomain_t *d) new_mark.skip = m->index + 1; new_mark.handling = m->default_handling; new_mark.aor = s; - ret = isc_forward(msg, m, &new_mark, firstflag); + ret = isc_forward(msg, m, &new_mark, status); isc_free_match(m); goto done; } @@ -415,7 +424,7 @@ int isc_match_filter(struct sip_msg *msg, char *str1, udomain_t *d) new_mark.skip = m->index + 1; new_mark.handling = m->default_handling; new_mark.aor = s; - ret = isc_forward(msg, m, &new_mark, firstflag); + ret = isc_forward(msg, m, &new_mark, status); isc_free_match(m); goto done; } @@ -430,6 +439,10 @@ done: if(old_mark.aor.s) pkg_free(old_mark.aor.s); + + if(dummy_mark.aor.s) + pkg_free(dummy_mark.aor.s); + return ret; } @@ -541,7 +554,8 @@ int isc_from_as(struct sip_msg *msg, char *str1, char *str2) cscf_get_terminating_user(msg, &s); //sometimes s is populated by an ims_getter method cscf_get_terminating_user that alloc memory that must be free-ed at the end free_s = 1; - if(memcmp(old_mark.aor.s, s.s, s.len) != 0) { + if(!old_mark.aor.s || !s.len + || memcmp(old_mark.aor.s, s.s, s.len) != 0) { LM_DBG("This is a new call....... RURI has been retargeted\n"); return ISC_RETURN_RETARGET; } diff --git a/src/modules/ims_isc/ims_isc_mod.h b/src/modules/ims_isc/ims_isc_mod.h index 7520a3989..ca393b313 100644 --- a/src/modules/ims_isc/ims_isc_mod.h +++ b/src/modules/ims_isc/ims_isc_mod.h @@ -77,6 +77,29 @@ enum dialog_direction /** Unknown */ }; +/* Method of obtaining isc_mark +First bit -> 0=REQUEST_ROUTE/1=FAILURE_ROUTE +Second bit -> 0=Found/1=Missing +*/ +enum isc_mark_status +{ + ISCMARK_FOUND_ROUTE_HEADER = + 0, /*Request has been received from AS, old ISCMARK found in Route header field*/ + ISCMARK_FOUND_LUMPS = + 1, /*Request to AS has been rejected or timed out, old ISCMARK found in lumps*/ + ISCMARK_MISSING_START_TRIGGERING = + 2, /*Request has been received without old ISCMARK in Route header field*/ + ISCMARK_MISSING_START_TRIGGERING_SAR = + 3 /*SAR/SAA has happened with HSS, due to terminating request (no old ISCMARK)*/ +}; + +/* ISCMARK Status bits*/ + +/* ISCMARK is obtained in failure route*/ +#define ISCMARK_FAILURE (1 << 0) +/* ISCMARK could not be found */ +#define ISCMARK_MISSING (1 << 1) + /* Various constants */ /** User Not Registered */ #define IMS_USER_NOT_REGISTERED 0 diff --git a/src/modules/ims_isc/isc.c b/src/modules/ims_isc/isc.c index 08d5654c2..bb358a37b 100644 --- a/src/modules/ims_isc/isc.c +++ b/src/modules/ims_isc/isc.c @@ -54,10 +54,11 @@ * @param msg - the SIP message * @param m - the isc_match that matched with info about where to forward it * @param mark - the isc_mark that should be used to mark the message + * @param status - the state of the isc_mark * @returns #ISC_RETURN_TRUE if OK, #ISC_RETURN_ERROR if not */ -int isc_forward( - struct sip_msg *msg, isc_match *m, isc_mark *mark, int firstflag) +int isc_forward(struct sip_msg *msg, isc_match *m, isc_mark *mark, + enum isc_mark_status status) { struct cell *t; unsigned int hash, label; @@ -78,7 +79,7 @@ int isc_forward( msg->dst_uri.s[msg->dst_uri.len] = '\0'; /* append branch if last trigger failed */ - if(is_route_type(FAILURE_ROUTE) && !firstflag) + if(status == ISCMARK_FOUND_LUMPS) append_branch(msg, &(msg->first_line.u.request.uri), &(msg->dst_uri), 0, Q_UNSPECIFIED, 0, 0, 0, 0, 0, 0); diff --git a/src/modules/ims_isc/isc.h b/src/modules/ims_isc/isc.h index f7c15288a..237ff53de 100644 --- a/src/modules/ims_isc/isc.h +++ b/src/modules/ims_isc/isc.h @@ -68,8 +68,8 @@ extern int isc_fr_inv_timeout; /**< default ISC INVITE response timeout in ms */ /** SIP Status Code to send to client on Session Termination because AS did not respond */ -int isc_forward( - struct sip_msg *msg, isc_match *m, isc_mark *mark, int firstflag); +int isc_forward(struct sip_msg *msg, isc_match *m, isc_mark *mark, + enum isc_mark_status status); #endif diff --git a/src/modules/ims_isc/mark.c b/src/modules/ims_isc/mark.c index 46e4fd056..bc7bac401 100644 --- a/src/modules/ims_isc/mark.c +++ b/src/modules/ims_isc/mark.c @@ -128,6 +128,45 @@ int isc_mark_get_from_msg(struct sip_msg *msg, isc_mark *mark) return 0; } +/** + * Retrieves the mark from the lumps of a message (failure route). + * - the marking should be in a header like described before + * @param msg - SIP mesage to mark + * @param mark - mark to load into + * @returns 1 if found, 0 if not + */ +int isc_mark_get_from_lumps(struct sip_msg *msg, isc_mark *mark) +{ + struct lump *lmp, *tmp; + str found = {0, 0}; + + LM_DBG("isc_mark_get_from_lumps: Trying to get the mark from the add_rm " + "lumps \n"); + + memset(mark, 0, sizeof(isc_mark)); + + parse_headers(msg, HDR_EOH_F, 0); + + anchor_lump(msg, msg->headers->name.s - msg->buf, 0, 0); + + lmp = msg->add_rm; + while(lmp) { + tmp = lmp->before; + if(tmp && tmp->op == LUMP_ADD && tmp->u.value + && (found.s = strstr(tmp->u.value, ISC_MARK_USERNAME))) { + LM_DBG("ifc_get_from_lumps: Found lump %s\n", tmp->u.value); + found.len = tmp->len - (found.s - tmp->u.value); + LM_DBG("ifc_get_from_lumps: take fraction of lump ...%.*s\n", + found.len, found.s); + isc_mark_get(found, mark); + return 1; + } + lmp = lmp->next; + } + + return 0; +} + /** * Load the mark from a string. * @param x - string with the mark, as found in the Route header @@ -140,12 +179,12 @@ void isc_mark_get(str x, isc_mark *mark) if(mark->aor.s) pkg_free(mark->aor.s); mark->aor = aor_hex; - for(i = 0; i < x.len && x.s[i] != ';'; i++) + for(i = 0; i < x.len && x.s[i] != ';' && x.s[i] != '>'; i++) ; - while(i < x.len) { + while(i < x.len && x.s[i] != '>') { if(x.s[i + 1] == '=') { k = 0; - for(j = i + 2; j < x.len && x.s[j] != ';'; j++) + for(j = i + 2; j < x.len && x.s[j] != ';' && x.s[j] != '>'; j++) k = k * 10 + (x.s[j] - '0'); switch(x.s[i]) { case 's': @@ -160,7 +199,8 @@ void isc_mark_get(str x, isc_mark *mark) case 'a': aor_hex.s = x.s + i + 2; aor_hex.len = 0; - for(j = i + 2; j < x.len && x.s[j] != ';'; j++) + for(j = i + 2; j < x.len && x.s[j] != ';' && x.s[j] != '>'; + j++) aor_hex.len++; mark->aor.len = aor_hex.len / 2; mark->aor.s = pkg_malloc(mark->aor.len); @@ -177,6 +217,9 @@ void isc_mark_get(str x, isc_mark *mark) LM_ERR("isc_mark_get: unknown parameter found: %c !\n", x.s[i]); } + + if(x.s[j] == '>') + break; i = j + 1; } else i++; diff --git a/src/modules/ims_isc/mark.h b/src/modules/ims_isc/mark.h index 59578f3b4..b00032dfe 100644 --- a/src/modules/ims_isc/mark.h +++ b/src/modules/ims_isc/mark.h @@ -72,6 +72,7 @@ typedef struct _isc_mark int isc_mark_get_from_msg(struct sip_msg *msg, isc_mark *mark); +int isc_mark_get_from_lumps(struct sip_msg *msg, isc_mark *mark); void isc_mark_get(str x, isc_mark *mark); int base16_to_bin(char *from, int len, char *to); int isc_mark_drop_route(struct sip_msg *msg); diff --git a/src/modules/influxdbc/ic.c b/src/modules/influxdbc/ic.c index dc493619f..9868442dd 100644 --- a/src/modules/influxdbc/ic.c +++ b/src/modules/influxdbc/ic.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include diff --git a/src/modules/jsonrpcs/README b/src/modules/jsonrpcs/README index d4aa520a5..1e14cf89a 100644 --- a/src/modules/jsonrpcs/README +++ b/src/modules/jsonrpcs/README @@ -421,6 +421,8 @@ event_route[xhttp:request] { ... jsonrpc_exec('{"jsonrpc": "2.0", "method": "dispatcher.reload", "id": 1}'); xlog("jsonrpc response code: $jsonrpl(code) - the body is: $jsonrpl(body)\n"); +jsonrpc_exec('{"jsonrpc": "2.0", "method": "corex.debug", "params": [ 2 ], "id": + 1}'); ... 6. JSONRPC Commands diff --git a/src/modules/jsonrpcs/doc/jsonrpcs_admin.xml b/src/modules/jsonrpcs/doc/jsonrpcs_admin.xml index ab8aee4fc..f16cac7a7 100644 --- a/src/modules/jsonrpcs/doc/jsonrpcs_admin.xml +++ b/src/modules/jsonrpcs/doc/jsonrpcs_admin.xml @@ -495,6 +495,7 @@ event_route[xhttp:request] { ... jsonrpc_exec('{"jsonrpc": "2.0", "method": "dispatcher.reload", "id": 1}'); xlog("jsonrpc response code: $jsonrpl(code) - the body is: $jsonrpl(body)\n"); +jsonrpc_exec('{"jsonrpc": "2.0", "method": "corex.debug", "params": [ 2 ], "id": 1}'); ... diff --git a/src/modules/jwt/jwt_mod.c b/src/modules/jwt/jwt_mod.c index af3d42f79..90d8fa5bd 100644 --- a/src/modules/jwt/jwt_mod.c +++ b/src/modules/jwt/jwt_mod.c @@ -437,6 +437,7 @@ static int ki_jwt_verify_key( jwt_valid_t *jwt_valid = NULL; str sparams = STR_NULL; long lval = 0; + unsigned int jwtret = 0; if(key == NULL || key->s == NULL || alg == NULL || alg->s == NULL || claims == NULL || claims->s == NULL || claims->len <= 0 @@ -501,9 +502,10 @@ static int ki_jwt_verify_key( LM_ERR("failed to decode jwt value (ret: %d jwt: %p)\n", ret, jwt); goto error; } - if(jwt_validate(jwt, jwt_valid) != 0) { + if((jwtret = jwt_validate(jwt, jwt_valid)) != JWT_VALIDATION_SUCCESS) { _jwt_verify_status = jwt_valid_get_status(jwt_valid); - LM_ERR("failed to validate jwt: %08x\n", _jwt_verify_status); + LM_ERR("failed to validate jwt: %08x (ret: %08x)\n", _jwt_verify_status, + jwtret); goto error; } diff --git a/src/modules/kazoo/kazoo.c b/src/modules/kazoo/kazoo.c index 757fa2cdc..937d00014 100644 --- a/src/modules/kazoo/kazoo.c +++ b/src/modules/kazoo/kazoo.c @@ -150,12 +150,14 @@ static cmd_export_t cmds[] = { fixup_kz_amqp_free, ANY_ROUTE}, {"kazoo_publish", (cmd_function)kz_amqp_publish_ex, 4, fixup_kz_amqp, fixup_kz_amqp_free, ANY_ROUTE}, - {"kazoo_query", (cmd_function)kz_amqp_query, 4, fixup_kz_amqp, + + {"kazoo_query", (cmd_function)kz_amqp_query_3, 3, fixup_kz_amqp, fixup_kz_amqp_free, ANY_ROUTE}, - {"kazoo_query", (cmd_function)kz_amqp_query, 5, fixup_kz_amqp, + {"kazoo_query", (cmd_function)kz_amqp_query_4, 4, fixup_kz_amqp, fixup_kz_amqp_free, ANY_ROUTE}, - {"kazoo_query", (cmd_function)kz_amqp_query_ex, 3, fixup_kz_amqp, + {"kazoo_query", (cmd_function)kz_amqp_query_5, 5, fixup_kz_amqp, fixup_kz_amqp_free, ANY_ROUTE}, + {"kazoo_pua_publish", (cmd_function)kz_pua_publish, 1, 0, 0, ANY_ROUTE}, {"kazoo_pua_publish_mwi", (cmd_function)kz_pua_publish_mwi, 1, 0, 0, ANY_ROUTE}, @@ -168,8 +170,6 @@ static cmd_export_t cmds[] = { fixup_kz_amqp4_free, ANY_ROUTE}, {"kazoo_subscribe", (cmd_function)kz_amqp_subscribe_simple, 4, fixup_kz_amqp4, fixup_kz_amqp4_free, ANY_ROUTE}, - - {"kazoo_json", (cmd_function)kz_json_get_field, 3, fixup_kz_json, fixup_kz_json_free, ANY_ROUTE}, {"kazoo_json_keys", (cmd_function)kz_json_get_keys, 3, fixup_kz_json, @@ -368,7 +368,7 @@ static int mod_init(void) } kz_worker_pipes_fds = - (int *)shm_malloc(sizeof(int) * (dbk_consumer_workers)*2); + (int *)shm_malloc(sizeof(int) * (dbk_consumer_workers) * 2); kz_worker_pipes = (int *)shm_malloc(sizeof(int) * dbk_consumer_workers); for(i = 0; i < dbk_consumer_workers; i++) { kz_worker_pipes_fds[i * 2] = kz_worker_pipes_fds[i * 2 + 1] = -1; diff --git a/src/modules/kazoo/kz_amqp.c b/src/modules/kazoo/kz_amqp.c index d702990e8..82e136791 100644 --- a/src/modules/kazoo/kz_amqp.c +++ b/src/modules/kazoo/kz_amqp.c @@ -1246,6 +1246,7 @@ int kz_amqp_pipe_send_receive(str *str_exchange, str *str_routing_key, cmd->headers = kz_amqp_str_dup(str_headers); } + cmd->timeout = *kz_timeout; if(cmd->payload == NULL || cmd->routing_key == NULL @@ -1637,18 +1638,60 @@ int kz_amqp_query_ex(struct sip_msg *msg, char *exchange, char *routing_key, return 1; }; -int kz_amqp_query(struct sip_msg *msg, char *exchange, char *routing_key, - char *payload, char *dst, char *headers) +int kz_amqp_query_3( + struct sip_msg *msg, char *exchange, char *routing_key, char *payload) { + /* This is a wrapper around the executer function, just for the sake of clarity*/ + int result = kz_amqp_query_ex(msg, exchange, routing_key, payload, NULL); + return result; +}; - pv_spec_t *dst_pv; - pv_value_t dst_val; +int kz_amqp_query_4(struct sip_msg *msg, char *exchange, char *routing_key, + char *payload, str *dst) +{ + int result = kz_amqp_query_ex(msg, exchange, routing_key, payload, NULL); + if(result == -1) + return result; + kz_set_pseudo_var(msg, dst); + return 1; +}; +int kz_amqp_query_5(struct sip_msg *msg, char *exchange, char *routing_key, + char *payload, str *dst, char *headers) +{ int result = kz_amqp_query_ex(msg, exchange, routing_key, payload, headers); if(result == -1) return result; - dst_pv = (pv_spec_t *)dst; + kz_set_pseudo_var(msg, dst); + return 1; +}; + +void kz_set_pseudo_var(struct sip_msg *msg, str *dst) +{ + pv_spec_t *pvresult = NULL; + pv_value_t dst_val; + + if(dst == NULL || dst->s == NULL || dst->len <= 0) { + LM_ERR("Destination pseudo-variable is empty \n"); + return; + } + + pvresult = pv_cache_get(dst); + + if(pvresult == NULL) { + LM_ERR("Failed to malloc destination pseudo-variable \n"); + return; + } + + if(pvresult->setf == NULL) { + LM_ERR("destination pseudo-variable is not writable: %.*s \n", dst->len, + dst->s); + return; + } + + memset(&dst_val, 0, sizeof(pv_value_t)); + if(last_payload_result != NULL) { dst_val.rs.s = last_payload_result; dst_val.rs.len = strlen(last_payload_result); @@ -1659,10 +1702,8 @@ int kz_amqp_query(struct sip_msg *msg, char *exchange, char *routing_key, dst_val.ri = 0; dst_val.flags = PV_VAL_NULL; } - dst_pv->setf(msg, &dst_pv->pvp, (int)EQ_T, &dst_val); - - return 1; -}; + pvresult->setf(msg, &pvresult->pvp, (int)EQ_T, &dst_val); +} void kz_amqp_queue_free(kz_amqp_queue_ptr queue) { diff --git a/src/modules/kazoo/kz_amqp.h b/src/modules/kazoo/kz_amqp.h index faca990f1..73ecf2d9f 100644 --- a/src/modules/kazoo/kz_amqp.h +++ b/src/modules/kazoo/kz_amqp.h @@ -310,10 +310,12 @@ int ki_kz_amqp_publish( sip_msg_t *msg, str *exchange, str *routing_key, str *payload); int ki_kz_amqp_publish_hdrs(sip_msg_t *msg, str *exchange, str *routing_key, str *payload, str *headers); -int kz_amqp_query(struct sip_msg *msg, char *exchange, char *routing_key, - char *payload, char *dst, char *headers); -int kz_amqp_query_ex(struct sip_msg *msg, char *exchange, char *routing_key, - char *payload, char *headers); +int kz_amqp_query_3( + struct sip_msg *msg, char *exchange, char *routing_key, char *payload); +int kz_amqp_query_4(struct sip_msg *msg, char *exchange, char *routing_key, + char *payload, str *dst); +int kz_amqp_query_5(struct sip_msg *msg, char *exchange, char *routing_key, + char *payload, str *dst, char *headers); int kz_amqp_subscribe(struct sip_msg *msg, char *payload); int ki_kz_amqp_subscribe(sip_msg_t *msg, str *payload); int kz_amqp_subscribe_simple(struct sip_msg *msg, char *exchange, @@ -327,6 +329,8 @@ int kz_amqp_async_query_ex(struct sip_msg *msg, char *_exchange, char *_routing_key, char *_payload, char *_cb_route, char *_err_route, char *_pub_flags); +void kz_set_pseudo_var(struct sip_msg *msg, str *dst); + //void kz_amqp_generic_consumer_loop(int child_no); void kz_amqp_manager_loop(int child_no); diff --git a/src/modules/keepalive/keepalive_core.c b/src/modules/keepalive/keepalive_core.c index b1b3581cb..4c8a186b6 100644 --- a/src/modules/keepalive/keepalive_core.c +++ b/src/modules/keepalive/keepalive_core.c @@ -210,9 +210,10 @@ int ka_str_copy(str *src, str *dest, char *prefix) return -1; } - if(prefix) - strncpy(dest->s, prefix, lp); - strncpy(dest->s + lp, src->s, src->len); + if(prefix) { + memcpy(dest->s, prefix, lp); + } + memcpy(dest->s + lp, src->s, src->len); dest->s[src->len + lp] = '\0'; dest->len = src->len + lp; diff --git a/src/modules/lost/functions.c b/src/modules/lost/functions.c index 9495a6943..d2c0f0c84 100644 --- a/src/modules/lost/functions.c +++ b/src/modules/lost/functions.c @@ -382,8 +382,8 @@ int lost_held_function(struct sip_msg *_m, char *_con, char *_pidf, char *_url, if(doc == NULL) { LM_WARN("invalid xml document: [%.*s]\n", res.len, res.s); doc = xmlReadMemory(res.s, res.len, 0, NULL, - XML_PARSE_NOBLANKS | XML_PARSE_NONET | - XML_PARSE_NOCDATA | XML_PARSE_RECOVER); + XML_PARSE_NOBLANKS | XML_PARSE_NONET | XML_PARSE_NOCDATA + | XML_PARSE_RECOVER); if(doc == NULL) { LM_ERR("xml document recovery failed on: [%.*s]\n", res.len, res.s); goto err; @@ -705,8 +705,8 @@ int lost_held_dereference(struct sip_msg *_m, char *_url, char *_pidf, if(doc == NULL) { LM_WARN("invalid xml document: [%.*s]\n", res.len, res.s); doc = xmlReadMemory(res.s, res.len, 0, NULL, - XML_PARSE_NOBLANKS | XML_PARSE_NONET | - XML_PARSE_NOCDATA | XML_PARSE_RECOVER); + XML_PARSE_NOBLANKS | XML_PARSE_NONET | XML_PARSE_NOCDATA + | XML_PARSE_RECOVER); if(doc == NULL) { LM_ERR("xml document recovery failed on: [%.*s]\n", res.len, res.s); goto err; diff --git a/src/modules/lost/response.c b/src/modules/lost/response.c index bce9539e3..122ed467e 100644 --- a/src/modules/lost/response.c +++ b/src/modules/lost/response.c @@ -54,7 +54,7 @@ #include "utilities.h" #include "response.h" -/* +/* * is_http_laquot(search) * return 1 if true else 0 */ @@ -77,7 +77,7 @@ int is_http_laquot(char *search) return 0; } -/* +/* * is_https_laquot(search) * return 1 if true else 0 */ @@ -101,7 +101,7 @@ int is_https_laquot(char *search) return 0; } -/* +/* * is_http(search) * return 1 if true else 0 */ @@ -123,7 +123,7 @@ int is_http(char *search) return 0; } -/* +/* * is_https(search) * return 1 if true else 0 */ @@ -146,7 +146,7 @@ int is_https(char *search) return 0; } -/* +/* * is_cid_laquot(search) * return 1 if true else 0 */ @@ -168,7 +168,7 @@ int is_cid_laquot(char *search) return 0; } -/* +/* * is_cid(search) * return 1 if true else 0 */ @@ -189,7 +189,7 @@ int is_cid(char *search) return 0; } -/* +/* * is_urn(search) * return 1 if true else 0 */ @@ -612,7 +612,7 @@ void lost_free_findServiceResponse(p_lost_fsr_t *res) /* * lost_get_response_issue(node) - * parses response issue (errors, warnings) and writes + * parses response issue (errors, warnings) and writes * results to issue object */ p_lost_issue_t lost_get_response_issues(xmlNodePtr node) @@ -964,8 +964,8 @@ p_lost_fsr_t lost_parse_findServiceResponse(str ret) if(doc == NULL) { LM_ERR("invalid xml document: [%.*s]\n", ret.len, ret.s); doc = xmlReadMemory(ret.s, ret.len, 0, NULL, - XML_PARSE_NOBLANKS | XML_PARSE_NONET | - XML_PARSE_NOCDATA | XML_PARSE_RECOVER); + XML_PARSE_NOBLANKS | XML_PARSE_NONET | XML_PARSE_NOCDATA + | XML_PARSE_RECOVER); if(doc == NULL) { LM_ERR("xml document recovery failed on: [%.*s]\n", ret.len, ret.s); return NULL; @@ -1095,4 +1095,4 @@ int lost_check_HeldResponse(xmlNodePtr node) xmlFree(tmp); /* clean up */ return ret; -} \ No newline at end of file +} diff --git a/src/modules/lost/utilities.c b/src/modules/lost/utilities.c index 6e3d9c43f..5035185ef 100644 --- a/src/modules/lost/utilities.c +++ b/src/modules/lost/utilities.c @@ -906,9 +906,9 @@ p_lost_loc_t lost_parse_pidf(str pidf, str urn) if(doc == NULL) { LM_WARN("invalid xml (pidf-lo): [%.*s]\n", pidf.len, pidf.s); - doc = xmlReadMemory(pidf.s, pidf.len, 0, NULL, - XML_PARSE_NOBLANKS | XML_PARSE_NONET | - XML_PARSE_NOCDATA | XML_PARSE_RECOVER); + doc = xmlReadMemory(pidf.s, pidf.len, 0, NULL, + XML_PARSE_NOBLANKS | XML_PARSE_NONET | XML_PARSE_NOCDATA + | XML_PARSE_RECOVER); if(doc == NULL) { LM_ERR("xml (pidf-lo) recovery failed on: [%.*s]\n", pidf.len, pidf.s); @@ -1007,7 +1007,7 @@ int lost_check_3d(xmlNodePtr node) /* * lost_parse_geo(node, loc) - * parses locationResponse (pos|circle) and writes + * parses locationResponse (pos|circle) and writes * results to location object */ int lost_parse_geo(xmlNodePtr node, p_lost_loc_t loc) @@ -1047,7 +1047,7 @@ int lost_parse_geo(xmlNodePtr node, p_lost_loc_t loc) if(loc->latitude == NULL) goto err; - snprintf(loc->latitude, len, "%s", (char *)bufLat); + snprintf(loc->latitude, len + 1, "%s", (char *)bufLat); /* logitude */ len = strlen((char *)bufLon); @@ -1057,7 +1057,7 @@ int lost_parse_geo(xmlNodePtr node, p_lost_loc_t loc) goto err; } - snprintf(loc->longitude, len, "%s", (char *)bufLon); + snprintf(loc->longitude, len + 1, "%s", (char *)bufLon); /* altitude */ if(scan == 3) { @@ -1070,14 +1070,14 @@ int lost_parse_geo(xmlNodePtr node, p_lost_loc_t loc) pkg_free(loc->longitude); goto err; } - - snprintf(loc->altitude, len, "%s", (char *)bufAlt); + + snprintf(loc->altitude, len + 1, "%s", (char *)bufAlt); } /* geolocation */ len = strlen((char *)bufLat) + strlen((char *)bufLon) + 1; if((scan == 3) && (lost_geoloc_3d == 1)) { - len += strlen((char *)bufAlt); + len += strlen((char *)bufAlt) + 1; } loc->geodetic = (char *)pkg_malloc(len + 1); if(loc->geodetic == NULL) { @@ -1089,9 +1089,11 @@ int lost_parse_geo(xmlNodePtr node, p_lost_loc_t loc) } if((scan == 3) && (lost_geoloc_3d == 1)) { s_profile = LOST_PRO_GEO3D; - snprintf(loc->geodetic, len, "%s %s %s", (char *)bufLat, (char *)bufLon, (char *)bufAlt); + snprintf(loc->geodetic, len + 1, "%s %s %s", (char *)bufLat, + (char *)bufLon, (char *)bufAlt); } else { - snprintf(loc->geodetic, len, "%s %s", (char *)bufLat, (char *)bufLon); + snprintf(loc->geodetic, len + 1, "%s %s", (char *)bufLat, + (char *)bufLon); } /* find element */ @@ -1115,7 +1117,7 @@ err: /* * lost_xpath_location(doc, path, loc) - * performs xpath expression on locationResponse and writes + * performs xpath expression on locationResponse and writes * results (location-info child element) to location object */ int lost_xpath_location(xmlDocPtr doc, char *path, p_lost_loc_t loc) @@ -1185,7 +1187,7 @@ int lost_xpath_location(xmlDocPtr doc, char *path, p_lost_loc_t loc) cname = BAD_CAST cur->name; if(xmlStrcasecmp(cname, s_point) == 0) { if((lost_check_3d(cur) == 1) - && (lost_geoloc_3d == 1)) { + && (lost_geoloc_3d == 1)) { s_profile = LOST_PRO_GEO3D; selgeo = i; break; @@ -1202,15 +1204,15 @@ int lost_xpath_location(xmlDocPtr doc, char *path, p_lost_loc_t loc) break; } if((xmlStrcasecmp(cname, s_polygon) == 0) - || (xmlStrcasecmp(cname, s_ellipse) == 0) - || (xmlStrcasecmp(cname, s_arcband) == 0)) { + || (xmlStrcasecmp(cname, s_ellipse) == 0) + || (xmlStrcasecmp(cname, s_arcband) == 0)) { s_profile = LOST_PRO_GEO2D; selgeo = i; break; } if((xmlStrcasecmp(cname, s_sphere) == 0) - || (xmlStrcasecmp(cname, s_ellipsoid) == 0) - || (xmlStrcasecmp(cname, s_prism) == 0)) { + || (xmlStrcasecmp(cname, s_ellipsoid) == 0) + || (xmlStrcasecmp(cname, s_prism) == 0)) { if(lost_geoloc_3d == 1) { s_profile = LOST_PRO_GEO3D; selgeo = i; @@ -1417,7 +1419,6 @@ char *lost_held_post_request(int *lgth, long rtime, char *type) xmlNodePtr ptrLocationRequest = NULL; xmlNodePtr ptrLocationType = NULL; - xmlKeepBlanksDefault(1); *lgth = 0; /* @@ -1515,7 +1516,6 @@ char *lost_held_location_request(p_lost_held_t held, int *lgth) xmlNodePtr ptrLocationType = NULL; xmlNodePtr ptrDevice = NULL; - xmlKeepBlanksDefault(1); *lgth = 0; /* @@ -1668,8 +1668,6 @@ char *lost_find_service_request(p_lost_loc_t loc, p_lost_list_t path, int *lgth) xmlNodePtr ptrNode = NULL; xmlNodePtr ptrPath = NULL; - xmlKeepBlanksDefault(1); - *lgth = 0; /* diff --git a/src/modules/lost/utilities.h b/src/modules/lost/utilities.h index c7f43cdf6..746b74736 100644 --- a/src/modules/lost/utilities.h +++ b/src/modules/lost/utilities.h @@ -97,7 +97,7 @@ typedef struct lost_loc char *geodetic; /* geodetic location (findServiceRequest) */ char *longitude; /* geo longitude */ char *latitude; /* geo latitude */ - char *altitude; /* geo altitude */ + char *altitude; /* geo altitude */ char *profile; /* location profile (findServiceRequest) */ int radius; /* geo radius (findServiceRequest) */ int recursive; /* recursion true|false (findServiceRequest)*/ diff --git a/src/modules/ndb_mongodb/mongodb_client.c b/src/modules/ndb_mongodb/mongodb_client.c index 946eb6de1..6f4818a71 100644 --- a/src/modules/ndb_mongodb/mongodb_client.c +++ b/src/modules/ndb_mongodb/mongodb_client.c @@ -34,6 +34,12 @@ #include "mongodb_client.h" #include "api.h" +#if MONGOC_CHECK_VERSION(1, 29, 0) +#define _ksr_bson_as_json bson_as_legacy_extended_json +#else +#define _ksr_bson_as_json bson_as_json +#endif + static mongodbc_server_t *_mongodbc_srv_list = NULL; static mongodbc_reply_t *_mongodbc_rpl_list = NULL; @@ -246,14 +252,13 @@ int mongodbc_exec_cmd( mongoc_client_get_collection(rsrv->client, dname->s, cname->s); LM_DBG("trying to execute: [[%.*s]]\n", cmd->len, cmd->s); - c = cmd->s[cmd->len]; - cmd->s[cmd->len] = '\0'; + STR_VTOZ(cmd->s[cmd->len], c); if(!bson_init_from_json(&command, cmd->s, cmd->len, &error)) { cmd->s[cmd->len] = c; LM_ERR("Failed to run command: %s\n", error.message); goto error_exec; } - cmd->s[cmd->len] = c; + STR_ZTOV(cmd->s[cmd->len], c); if(emode == 0) { ret = mongoc_collection_command_simple( rpl->collection, &command, NULL, &reply, &error); @@ -263,13 +268,29 @@ int mongodbc_exec_cmd( goto error_exec; } bson_destroy(&command); - rpl->jsonrpl.s = bson_as_json(&reply, NULL); + rpl->jsonrpl.s = _ksr_bson_as_json(&reply, NULL); rpl->jsonrpl.len = (rpl->jsonrpl.s) ? strlen(rpl->jsonrpl.s) : 0; bson_destroy(&reply); } else { if(emode == 1) { +#if MONGOC_CHECK_VERSION(1, 29, 0) + opts = bson_new(); + ret = mongoc_collection_command_with_opts( + rpl->collection, &command, NULL, opts, &reply, &error); + bson_free(opts); + if(!ret) { + LM_ERR("Failed to run command: %s\n", error.message); + bson_destroy(&command); + goto error_exec; + } + rpl->jsonrpl.s = _ksr_bson_as_json(&reply, NULL); + rpl->jsonrpl.len = (rpl->jsonrpl.s) ? strlen(rpl->jsonrpl.s) : 0; + bson_destroy(&reply); + goto done; +#else rpl->cursor = mongoc_collection_command(rpl->collection, MONGOC_QUERY_NONE, 0, 0, 0, &command, NULL, 0); +#endif } else { #if MONGOC_CHECK_VERSION(1, 5, 0) if(emode == 3) @@ -303,10 +324,14 @@ int mongodbc_exec_cmd( } goto error_exec; } - rpl->jsonrpl.s = bson_as_json(cdoc, NULL); + rpl->jsonrpl.s = _ksr_bson_as_json(cdoc, NULL); rpl->jsonrpl.len = (rpl->jsonrpl.s) ? strlen(rpl->jsonrpl.s) : 0; } +#if MONGOC_CHECK_VERSION(1, 29, 0) +done: +#endif + LM_DBG("command result: [[%s]]\n", (rpl->jsonrpl.s) ? rpl->jsonrpl.s : ""); @@ -479,7 +504,7 @@ int mongodbc_next_reply(str *name) rpl->jsonrpl.s = NULL; rpl->jsonrpl.len = 0; } - rpl->jsonrpl.s = bson_as_json(cdoc, NULL); + rpl->jsonrpl.s = _ksr_bson_as_json(cdoc, NULL); rpl->jsonrpl.len = (rpl->jsonrpl.s) ? strlen(rpl->jsonrpl.s) : 0; LM_DBG("next cursor result: [[%s]]\n", (rpl->jsonrpl.s) ? rpl->jsonrpl.s : ""); diff --git a/src/modules/pua_dialoginfo/pua_dialoginfo.c b/src/modules/pua_dialoginfo/pua_dialoginfo.c index e7a38b05e..d1e704fbf 100644 --- a/src/modules/pua_dialoginfo/pua_dialoginfo.c +++ b/src/modules/pua_dialoginfo/pua_dialoginfo.c @@ -73,7 +73,7 @@ MODULE_VERSION */ /* #define PUA_DIALOGINFO_DEBUG 1 */ -pua_api_t pua; +pua_api_t _pua_api; struct dlg_binds dlg_api; @@ -1050,15 +1050,15 @@ static int mod_init(void) return -1; } - if(bind_pua(&pua) < 0) { + if(bind_pua(&_pua_api) < 0) { LM_ERR("Can't bind pua\n"); return -1; } - if(pua.send_publish == NULL) { + if(_pua_api.send_publish == NULL) { LM_ERR("Could not import send_publish\n"); return -1; } - pua_send_publish = pua.send_publish; + pua_send_publish = _pua_api.send_publish; /* bind to the dialog API */ if(load_dlg_api(&dlg_api) != 0) { diff --git a/src/modules/pv/pv_core.c b/src/modules/pv/pv_core.c index 2ea809339..86cce42dd 100644 --- a/src/modules/pv/pv_core.c +++ b/src/modules/pv/pv_core.c @@ -3515,13 +3515,37 @@ int pv_set_bflag( return 0; } +static inline int is_uri_enclosed(struct sip_msg *msg, struct to_body *tb) +{ + /* Check for the presence of display name */ + if(tb->display.len == 0) { + /* Display name not found */ + char *uri_body = tb->body.s; + + /* Assuming a valid sip message (true otherwise parser fails way before) + if it starts with '<' there is a respective '>'. + Also, parser trims any leading white space if no DisplayName is found + */ + if(uri_body[0] == '<') { + return 1; + } + return 0; + } + /* Display name found, URI should/must be enclosed */ + return 1; +} + int pv_set_xto_attr(struct sip_msg *msg, pv_param_t *param, int op, pv_value_t *val, struct to_body *tb, int type) { str buf = {0, 0}; + str buf_uri = {0, 0}; struct lump *l = NULL; int loffset = 0; + int loffset_uri = 0; int llen = 0; + int llen_uri = 0; + int is_enclosed = 0; if(msg == NULL || param == NULL) { LM_ERR("bad parameters\n"); @@ -3595,7 +3619,7 @@ int pv_set_xto_attr(struct sip_msg *msg, pv_param_t *param, int op, } buf.s = pkg_malloc(val->rs.len); if(buf.s == 0) { - LM_ERR("no more pkg mem\n"); + PKG_MEM_ERROR; goto error; } buf.len = val->rs.len; @@ -3627,6 +3651,29 @@ int pv_set_xto_attr(struct sip_msg *msg, pv_param_t *param, int op, } buf.len = val->rs.len; memcpy(buf.s, val->rs.s, val->rs.len); + + /* Check if the URI is enclosed in angle brackets */ + is_enclosed = is_uri_enclosed(msg, tb); + /* If uri is not enclosed, we need to enclose it in < > + before adding display name */ + if(!is_enclosed) { + LM_DBG("URI is not enclosed in angle brackets\n"); + /* Enclose URI in angle brackets */ + loffset_uri = tb->uri.s - msg->buf; + llen_uri = tb->uri.len; + /* Add angle brackets */ + buf_uri.s = pkg_malloc(tb->uri.len + 2); + if(buf_uri.s == 0) { + LM_ERR("no more pkg mem\n"); + goto error; + } + buf_uri.len = tb->uri.len + 2; + buf_uri.s[0] = '<'; + memcpy(buf_uri.s + 1, tb->uri.s, tb->uri.len); + buf_uri.s[buf_uri.len - 1] = '>'; + LM_DBG("URI after enclosing: %.*s\n", buf_uri.len, buf_uri.s); + } + if(tb->display.len == 0) { l = anchor_lump(msg, tb->body.s - msg->buf, 0, 0); buf.s[buf.len] = ' '; @@ -3656,6 +3703,24 @@ int pv_set_xto_attr(struct sip_msg *msg, pv_param_t *param, int op, if(buf.s != 0) pkg_free(buf.s); } + + if(llen_uri > 0) { + if((l = del_lump(msg, loffset_uri, llen_uri, 0)) == 0) { + LM_ERR("failed to delete xto attribute %d\n", type); + goto error; + } + } + /* set new value when given */ + if(l != NULL && buf_uri.len > 0) { + if(insert_new_lump_after(l, buf_uri.s, buf_uri.len, 0) == 0) { + LM_ERR("failed to set xto attribute %d\n", type); + goto error; + } + } else { + if(buf_uri.s != 0) + pkg_free(buf_uri.s); + } + return 0; error: diff --git a/src/modules/rtpengine/README b/src/modules/rtpengine/README index da6751c42..63e2c0c9f 100644 --- a/src/modules/rtpengine/README +++ b/src/modules/rtpengine/README @@ -1036,7 +1036,7 @@ modparam("rtpengine", "media_duration", "$avp(MEDIA_DURATION)") There is no default value. - This value is filled in after invoking“rtpengine_delete”, + This value is filled in after invoking “rtpengine_delete”, “rtpengine_query”, or “rtpengine_manage” if the command resulted in a deletion of the call (or call branch). @@ -1117,7 +1117,7 @@ modparam("rtpengine", "mos_min_roundtrip_pv", "$avp(mos_min_roundtrip)") There is no default value. - This value is filled in after invoking“rtpengine_delete”, + This value is filled in after invoking “rtpengine_delete”, “rtpengine_query”, or “rtpengine_manage” if the command resulted in a deletion of the call (or call branch). @@ -1198,7 +1198,7 @@ modparam("rtpengine", "mos_max_roundtrip_pv", "$avp(mos_max_roundtrip)") There is no default value. - This value is filled in after invoking“rtpengine_delete”, + This value is filled in after invoking “rtpengine_delete”, “rtpengine_query”, or “rtpengine_manage” if the command resulted in a deletion of the call (or call branch). @@ -1277,7 +1277,10 @@ modparam("rtpengine", "mos_average_samples_pv", "$avp(mos_average_samples)") The name of a pseudovariable to hold a custom label used in rtpengine signalling. If set, all the statistics pseudovariables with the “_A” suffix will be filled in with statistics only from the call legs that - match the label given in this variable. + match the label given in this variable. You need to fill this variable + before invoking “rtpengine_delete”, “rtpengine_query”, or + “rtpengine_manage”. Variable value should match the label= flag on + “rtpengine_offer”, “rtpengine_answer”, or “rtpengine_manage”. There is no default value. @@ -1293,7 +1296,7 @@ modparam("rtpengine", "mos_A_label_pv", "$avp(mos_A_label)") There is no default value. - This value is filled in after invoking“rtpengine_delete”, + This value is filled in after invoking “rtpengine_delete”, “rtpengine_query”, or “rtpengine_manage” if the command resulted in a deletion of the call (or call branch). @@ -1410,7 +1413,7 @@ A)") There is no default value. - This value is filled in after invoking“rtpengine_delete”, + This value is filled in after invoking “rtpengine_delete”, “rtpengine_query”, or “rtpengine_manage” if the command resulted in a deletion of the call (or call branch). @@ -1527,7 +1530,7 @@ A)") There is no default value. - This value is filled in after invoking“rtpengine_delete”, + This value is filled in after invoking “rtpengine_delete”, “rtpengine_query”, or “rtpengine_manage” if the command resulted in a deletion of the call (or call branch). @@ -1643,7 +1646,10 @@ modparam("rtpengine", "mos_average_samples_A_pv", "$avp(mos_average_samples_A)") The name of a pseudovariable to hold a custom label used in rtpengine signalling. If set, all the statistics pseudovariables with the “_B” suffix will be filled in with statistics only from the call legs that - match the label given in this variable. + match the label given in this variable. You need to fill this variable + before invoking “rtpengine_delete”, “rtpengine_query”, or + “rtpengine_manage”. Variable value should match the label= flag on + “rtpengine_offer”, “rtpengine_answer”, or “rtpengine_manage”. There is no default value. @@ -1659,7 +1665,7 @@ modparam("rtpengine", "mos_B_label_pv", "$avp(mos_B_label)") There is no default value. - This value is filled in after invoking“rtpengine_delete”, + This value is filled in after invoking “rtpengine_delete”, “rtpengine_query”, or “rtpengine_manage” if the command resulted in a deletion of the call (or call branch). @@ -1776,7 +1782,7 @@ B)") There is no default value. - This value is filled in after invoking“rtpengine_delete”, + This value is filled in after invoking “rtpengine_delete”, “rtpengine_query”, or “rtpengine_manage” if the command resulted in a deletion of the call (or call branch). @@ -1893,7 +1899,7 @@ B)") There is no default value. - This value is filled in after invoking“rtpengine_delete”, + This value is filled in after invoking “rtpengine_delete”, “rtpengine_query”, or “rtpengine_manage” if the command resulted in a deletion of the call (or call branch). @@ -2424,33 +2430,36 @@ rtpengine_offer(); about this are found in the rtpengine README. + codec-except=... - same as codec-offer but preserves original order - + codec-mask=... - Similar to strip except that codecs listed + + codec-mask=... - similar to strip except that codecs listed here will still be accepted and used for transcoding on the offering side. Useful only in combination with codec-transcode. all keyword can be used to mask all offered codecs - + codec-accept=... - Similar to `mask` and `consume` but doesn't + + codec-accept=... - similar to `mask` and `consume` but doesn't remove the codec from the list of offered codecs. This means that a codec listed under `accept` will still be offered to the remote peer, but if the remote peer rejects it, it will still be accepted towards the original offerer and then used for transcoding. It is a more selective version of what the `always transcode` flag does. - + codec-consume=... - Identical to mask but enables the + + codec-consume=... - identical to mask but enables the transcoding engine even if no other transcoding related options are given. - + T.38=decode - If the offered SDP contains a media section + + T.38=decode - if the offered SDP contains a media section advertising T.38 over UDPTL, translate it to a regular audio media section over RTP. By default, PCMU and PCMA will be used as audio codecs, but that can be overridden using the codec options described above. Other transport protocols (e.g. SRTP) can also be selected in the same way. If the offered SDP does not contain a T.38 section, then this flag has no effect. - + T.38=force - Any audio media section (over RTP) in the offered + + T.38=force - any audio media section (over RTP) in the offered SDP will be translated into a T.38 section over UDPTL. - + T.38=stop - Stops a previously established T.38 to audio + + T.38=stop - stops a previously established T.38 to audio gateway and reverts the session back to media passthrough. This is useful when handling a rejected T.38 offer. + + label=... - adds a label to a current stream, that later can + be used to get call quality stats, see “mos_A_label_pv” and + “mos_B_label_pv” parameters. Check also the documentation of RTPEngine, these flags are documented there as well: https://github.com/sipwise/rtpengine. diff --git a/src/modules/rtpengine/doc/rtpengine_admin.xml b/src/modules/rtpengine/doc/rtpengine_admin.xml index adb3af92b..51a498233 100644 --- a/src/modules/rtpengine/doc/rtpengine_admin.xml +++ b/src/modules/rtpengine/doc/rtpengine_admin.xml @@ -767,7 +767,7 @@ modparam("rtpengine", "media_duration", "$avp(MEDIA_DURATION)") There is no default value. - This value is filled in after invokingrtpengine_delete, + This value is filled in after invoking rtpengine_delete, rtpengine_query, or rtpengine_manage if the command resulted in a deletion of the call (or call branch). @@ -889,7 +889,7 @@ modparam("rtpengine", "mos_min_roundtrip_pv", "$avp(mos_min_roundtrip)") There is no default value. - This value is filled in after invokingrtpengine_delete, + This value is filled in after invoking rtpengine_delete, rtpengine_query, or rtpengine_manage if the command resulted in a deletion of the call (or call branch). @@ -1010,7 +1010,7 @@ modparam("rtpengine", "mos_max_roundtrip_pv", "$avp(mos_max_roundtrip)") There is no default value. - This value is filled in after invokingrtpengine_delete, + This value is filled in after invoking rtpengine_delete, rtpengine_query, or rtpengine_manage if the command resulted in a deletion of the call (or call branch). @@ -1131,7 +1131,10 @@ modparam("rtpengine", "mos_average_samples_pv", "$avp(mos_average_samples)") If set, all the statistics pseudovariables with the _A suffix will be filled in with statistics only from the call legs that match the label given in this - variable. + variable. You need to fill this variable before invoking rtpengine_delete, + rtpengine_query, or rtpengine_manage. Variable value should match the + label= flag on rtpengine_offer, + rtpengine_answer, or rtpengine_manage. There is no default value. @@ -1157,7 +1160,7 @@ modparam("rtpengine", "mos_A_label_pv", "$avp(mos_A_label)") There is no default value. - This value is filled in after invokingrtpengine_delete, + This value is filled in after invoking rtpengine_delete, rtpengine_query, or rtpengine_manage if the command resulted in a deletion of the call (or call branch). @@ -1326,7 +1329,7 @@ modparam("rtpengine", "mos_min_roundtrip_leg_A_pv", "$avp(mos_min_roundtrip_leg_ There is no default value. - This value is filled in after invokingrtpengine_delete, + This value is filled in after invoking rtpengine_delete, rtpengine_query, or rtpengine_manage if the command resulted in a deletion of the call (or call branch). @@ -1495,7 +1498,7 @@ modparam("rtpengine", "mos_max_roundtrip_leg_A_pv", "$avp(mos_max_roundtrip_leg_ There is no default value. - This value is filled in after invokingrtpengine_delete, + This value is filled in after invoking rtpengine_delete, rtpengine_query, or rtpengine_manage if the command resulted in a deletion of the call (or call branch). @@ -1663,7 +1666,10 @@ modparam("rtpengine", "mos_average_samples_A_pv", "$avp(mos_average_samples_A)") If set, all the statistics pseudovariables with the _B suffix will be filled in with statistics only from the call legs that match the label given in this - variable. + variable. You need to fill this variable before invoking rtpengine_delete, + rtpengine_query, or rtpengine_manage. Variable value should match the + label= flag on rtpengine_offer, + rtpengine_answer, or rtpengine_manage. There is no default value. @@ -1689,7 +1695,7 @@ modparam("rtpengine", "mos_B_label_pv", "$avp(mos_B_label)") There is no default value. - This value is filled in after invokingrtpengine_delete, + This value is filled in after invoking rtpengine_delete, rtpengine_query, or rtpengine_manage if the command resulted in a deletion of the call (or call branch). @@ -1859,7 +1865,7 @@ modparam("rtpengine", "mos_min_roundtrip_leg_B_pv", "$avp(mos_min_roundtrip_leg_ There is no default value. - This value is filled in after invokingrtpengine_delete, + This value is filled in after invoking rtpengine_delete, rtpengine_query, or rtpengine_manage if the command resulted in a deletion of the call (or call branch). @@ -2028,7 +2034,7 @@ modparam("rtpengine", "mos_max_roundtrip_leg_B_pv", "$avp(mos_max_roundtrip_leg_ There is no default value. - This value is filled in after invokingrtpengine_delete, + This value is filled in after invoking rtpengine_delete, rtpengine_query, or rtpengine_manage if the command resulted in a deletion of the call (or call branch). @@ -2755,13 +2761,13 @@ rtpengine_offer(); - codec-mask=... - Similar to strip except that codecs listed here will still be accepted + codec-mask=... - similar to strip except that codecs listed here will still be accepted and used for transcoding on the offering side. Useful only in combination with codec-transcode. all keyword can be used to mask all offered codecs - codec-accept=... - Similar to `mask` and `consume` but doesn't remove the codec from the list of + codec-accept=... - similar to `mask` and `consume` but doesn't remove the codec from the list of offered codecs. This means that a codec listed under `accept` will still be offered to the remote peer, but if the remote peer rejects it, it will still be accepted towards the original offerer and then used for transcoding. It is a more selective @@ -2769,27 +2775,35 @@ rtpengine_offer(); - codec-consume=... - Identical to mask but enables the transcoding engine even if no other transcoding + codec-consume=... - identical to mask but enables the transcoding engine even if no other transcoding related options are given. - T.38=decode - If the offered &sdp; contains a media section + T.38=decode - if the offered &sdp; contains a media section advertising T.38 over UDPTL, translate it to a regular audio media section over RTP. By default, PCMU and PCMA will be used as audio codecs, but that can be overridden using the codec options described above. Other transport protocols (e.g. SRTP) can also be selected in the same way. If the offered &sdp; does not contain a T.38 section, then this flag has no effect. + - T.38=force - Any audio media section (over RTP) in the + T.38=force - any audio media section (over RTP) in the offered &sdp; will be translated into a T.38 section over UDPTL. + - T.38=stop - Stops a previously established T.38 to audio + T.38=stop - stops a previously established T.38 to audio gateway and reverts the session back to media passthrough. This is useful when handling a rejected T.38 offer. + + + label=... - adds a label to a current stream, that later + can be used to get call quality stats, see mos_A_label_pv + and mos_B_label_pv parameters. + Check also the documentation of RTPEngine, these flags are documented there as well: diff --git a/src/modules/sanity/sanity.c b/src/modules/sanity/sanity.c index fa3d04938..44765f7a1 100644 --- a/src/modules/sanity/sanity.c +++ b/src/modules/sanity/sanity.c @@ -625,7 +625,11 @@ int check_cl(sip_msg_t *msg) } LM_DBG("check_cl passed\n"); } else { - LM_WARN("content length header missing in request\n"); + if(msg->rcv.proto != PROTO_UDP && msg->rcv.proto != PROTO_SCTP) { + LM_WARN("content length header missing in request\n"); + } else { + LM_DBG("content length header missing in request\n"); + } } return SANITY_CHECK_PASSED; diff --git a/src/modules/siprepo/README b/src/modules/siprepo/README index b355395f3..a0143a266 100644 --- a/src/modules/siprepo/README +++ b/src/modules/siprepo/README @@ -48,7 +48,7 @@ Daniel-Constantin Mierla 1.6. sr_msg_pull() usage 1.7. sr_msg_async_pull() usage 1.8. sr_msg_rm() usage - 1.9. sr_msg_checkj() usage + 1.9. sr_msg_check() usage Chapter 1. Admin Guide @@ -228,7 +228,7 @@ request_route { This function can be used from ANY_ROUTE. - Example 1.9. sr_msg_checkj() usage + Example 1.9. sr_msg_check() usage ... request_route { ... diff --git a/src/modules/siprepo/doc/siprepo_admin.xml b/src/modules/siprepo/doc/siprepo_admin.xml index 306eaf701..80ed13920 100644 --- a/src/modules/siprepo/doc/siprepo_admin.xml +++ b/src/modules/siprepo/doc/siprepo_admin.xml @@ -245,7 +245,7 @@ request_route { This function can be used from ANY_ROUTE. - <function>sr_msg_checkj()</function> usage + <function>sr_msg_check()</function> usage ... request_route { diff --git a/src/modules/siputils/chargingvector.c b/src/modules/siputils/chargingvector.c index c49e3ebf1..8bc723c64 100644 --- a/src/modules/siputils/chargingvector.c +++ b/src/modules/siputils/chargingvector.c @@ -86,6 +86,9 @@ static void sip_generate_charging_vector(char *pcv, const unsigned int maxsize) static struct in_addr ip = {0}; unsigned char newConferenceIdentifier[SIZE_CONF_ID] = {0}; int len = SIZE_CONF_ID; + int i; + char *ptr = NULL; + char *endptr = NULL; /* if supplied buffer cannot carry 16 (SIZE_CONF_ID) hex characters and a null terminator (=33 bytes), then reduce length of generated icid-value */ @@ -143,11 +146,11 @@ static void sip_generate_charging_vector(char *pcv, const unsigned int maxsize) idx++; } LM_DBG("PCV generate\n"); - char *ptr = pcv; - const char *endptr = ptr + maxsize - 1; + ptr = pcv; + endptr = ptr + maxsize - 1; - for(int i = 0; i < len && ptr < endptr; i++) { - ptr += (snprintf(ptr, 3, "%02X", newConferenceIdentifier[i]) - 1); + for(i = 0; i < len && ptr < endptr; i++) { + ptr += snprintf(ptr, 3, "%02X", newConferenceIdentifier[i]); } } @@ -258,6 +261,7 @@ static int sip_get_charging_vector( } sip_initialize_pcv_buffers(); + _siputils_pcv_status = PCV_NONE; for(hf = msg->headers; hf; hf = hf->next) { if(hf->name.s[0] != 'P') { @@ -298,7 +302,6 @@ static int sip_get_charging_vector( } } LM_DBG("No valid P-Charging-Vector header found.\n"); - _siputils_pcv_status = PCV_NONE; *hf_pcv = NULL; return 1; } @@ -482,7 +485,7 @@ int sip_handle_pcv(struct sip_msg *msg, char *flags, char *str2) /* if generated and added, copy buffer and reparse it */ sip_initialize_pcv_buffers(); - _siputils_pcv.len = body_len - CRLF_LEN; + _siputils_pcv.len = body_len; memcpy(_siputils_pcv.s, pcv_body, _siputils_pcv.len); if(sip_parse_charging_vector( _siputils_pcv_buf, sizeof(_siputils_pcv_buf))) { diff --git a/src/modules/snmpstats/snmpstats.c b/src/modules/snmpstats/snmpstats.c index 34b699bde..ac0614f77 100644 --- a/src/modules/snmpstats/snmpstats.c +++ b/src/modules/snmpstats/snmpstats.c @@ -92,6 +92,7 @@ #include "../../core/script_cb.h" #include "../../core/mem/mem.h" #include "../../core/mem/shm_mem.h" +#include "../../core/daemonize.h" #include "snmpSIPRegUserTable.h" #include "snmpSIPContactTable.h" @@ -561,14 +562,14 @@ static int spawn_sysUpTime_child(void) "kamailioSIPServiceStartTime is defaulting to zero\n"); close(snmpget_fd); free(full_path_to_snmpget); - exit(-1); + ksr_exit(-1); } /* We should never be able to get here, because execve() is never * supposed to return. */ close(snmpget_fd); free(full_path_to_snmpget); - exit(-1); + ksr_exit(-1); } diff --git a/src/modules/snmpstats/sub_agent.c b/src/modules/snmpstats/sub_agent.c index 92ca838c9..cc3ff06aa 100644 --- a/src/modules/snmpstats/sub_agent.c +++ b/src/modules/snmpstats/sub_agent.c @@ -65,6 +65,7 @@ #include "../../core/dprint.h" #include "../../core/cfg/cfg_struct.h" +#include "../../core/daemonize.h" static int keep_running; @@ -72,7 +73,7 @@ static int keep_running; static void sigterm_handler(int signal) { /* Just exit. The master agent will clean everything up for us */ - exit(0); + ksr_exit(0); } /*! This function: @@ -125,7 +126,7 @@ static int initialize_agentx(void) LM_DBG("Shutting down Kamailio SNMPD MasterX sub agent.\n"); snmp_shutdown(AGENT_PROCESS_NAME); SOCK_CLEANUP; - exit(0); + ksr_exit(0); return 0; } diff --git a/src/modules/tls/tls_mod.c b/src/modules/tls/tls_mod.c index baa1a7c76..dd32bd0e7 100644 --- a/src/modules/tls/tls_mod.c +++ b/src/modules/tls/tls_mod.c @@ -337,7 +337,7 @@ static tls_domains_cfg_t* tls_use_modparams(void) } #endif -/* global config tls_threads_mode = 2 +/* global config tls_threads_mode = 2 (KSR_TLS_THREADS_MFORK) * - force all thread-locals to be 0x0 after fork() * - with OpenSSL loaded the largest value observed * is < 10 @@ -464,7 +464,7 @@ static int mod_init(void) ksr_module_set_flag(KSRMOD_FLAG_POSTCHILDINIT); } #endif - if(ksr_tls_threads_mode == 2) { + if(ksr_tls_threads_mode == KSR_TLS_THREADS_MFORK) { pthread_atfork(NULL, NULL, &fork_child); } @@ -474,7 +474,7 @@ static int mod_init(void) * that use pthread_key_create(), e.g. python, * will have larger key values */ - if(ksr_tls_threads_mode > 0) { + if(ksr_tls_threads_mode > KSR_TLS_THREADS_MNONE) { ERR_clear_error(); RAND_bytes(rand_buf, sizeof(rand_buf)); for(k = 0; k < 32; k++) { @@ -537,14 +537,15 @@ static int mod_child(int rank) /* * OpenSSL 3.x/1.1.1: create shared SSL_CTX* in thread executor - * to avoid init of libssl in thread#1: ksr_tls_threads_mode = 1 + * to avoid init of libssl in thread#1: + * - ksr_tls_threads_mode = 1 (KSR_TLS_THREADS_MTEMP) */ if(rank == PROC_INIT) { return run_thread4PP((_thread_proto4PP)mod_child_hook, &rank, NULL); } - if(ksr_tls_threads_mode == 1 && rank && rank != PROC_INIT - && rank != PROC_POSTCHILDINIT) { + if(ksr_tls_threads_mode == KSR_TLS_THREADS_MTEMP && rank + && rank != PROC_INIT && rank != PROC_POSTCHILDINIT) { for(k = 0; k < tls_pthreads_key_mark; k++) pthread_setspecific(k, 0x0); LM_WARN("clean-up of thread-locals key < %d\n", tls_pthreads_key_mark); @@ -773,7 +774,7 @@ int mod_register(char *path, int *dlflags, void *p1, void *p2) */ #if OPENSSL_VERSION_NUMBER >= 0x10100000L \ && OPENSSL_VERSION_NUMBER < 0x030000000L - if(ksr_tls_threads_mode == 0) { + if(ksr_tls_threads_mode == KSR_TLS_THREADS_MNONE) { LM_WARN("OpenSSL 1.1.1 setting cryptorand random engine\n"); RAND_set_rand_method(RAND_ksr_cryptorand_method()); } diff --git a/src/modules/tm/README b/src/modules/tm/README index 18a3efe55..b51719b34 100644 --- a/src/modules/tm/README +++ b/src/modules/tm/README @@ -1275,16 +1275,17 @@ Note See also: t_set_fr(), fr_timer. - In Kamailio compatibility mode (defined by #!KAMAILIO), the value of - the parameter must be the name of an AVP in pseudo-variable format: - $avp(name). In SER compatibility mode it must be just AVP name. + In Kamailio compatibility mode (defined by #!KAMAILIO, which is + default), the value of the parameter must be the name of an AVP in + pseudo-variable format: $avp(name). In SER compatibility mode (defined + by #!SER) it must be just AVP name. Example 1.28. Set fr_timer_avp parameter ... -# Kamailio mode -modparam("tm", "fr_timer_avp", "$avp(i:708)") -# Old SER mode -modparam("tm", "fr_timer_avp", "i:708") +# default Kamailio compatibility mode +modparam("tm", "fr_timer_avp", "$avp(frtimer)") +# old SER compatibility mode +modparam("tm", "fr_timer_avp", "frtimer") ... 3.28. fr_inv_timer_avp (string) @@ -1309,15 +1310,16 @@ Note See also: t_set_fr(), fr_inv_timer. - In Kamailio compatibility mode (defined by #!KAMAILIO), the value of - the parameter must be the name of an AVP in pseudo-variable format: - $avp(name). In SER compatibility mode it must by just AVP name. + In Kamailio compatibility mode (defined by #!KAMAILIO, which is + default), the value of the parameter must be the name of an AVP in + pseudo-variable format: $avp(name). In SER compatibility mode (defined + by #!SER) it must by just AVP name. Example 1.29. Set fr_inv_timer_avp parameter ... -# Kamailio mode +# Kamailio compatibility mode modparam("tm", "fr_inv_timer_avp", "$avp(my_fr_inv_timer)") -# Old SER mode +# old SER compatibility mode modparam("tm", "fr_inv_timer_avp", "my_fr_inv_timer") ... diff --git a/src/modules/tm/doc/params.xml b/src/modules/tm/doc/params.xml index b8d7a8a3d..0652ec0b4 100644 --- a/src/modules/tm/doc/params.xml +++ b/src/modules/tm/doc/params.xml @@ -825,19 +825,19 @@ modparam("tm", "contact_flows_avp", "tm_contact_flows") fr_timer. - In Kamailio compatibility mode (defined by #!KAMAILIO), the value - of the parameter must be the name of an AVP in pseudo-variable - format: $avp(name). In SER compatibility mode it must be just - AVP name. + In Kamailio compatibility mode (defined by #!KAMAILIO, which is + default), the value of the parameter must be the name of an AVP + in pseudo-variable format: $avp(name). In SER compatibility mode + (defined by #!SER) it must be just AVP name. Set <varname>fr_timer_avp</varname> parameter ... -# Kamailio mode -modparam("tm", "fr_timer_avp", "$avp(i:708)") -# Old SER mode -modparam("tm", "fr_timer_avp", "i:708") +# default Kamailio compatibility mode +modparam("tm", "fr_timer_avp", "$avp(frtimer)") +# old SER compatibility mode +modparam("tm", "fr_timer_avp", "frtimer") ... @@ -871,18 +871,18 @@ modparam("tm", "fr_timer_avp", "i:708") fr_inv_timer. - In Kamailio compatibility mode (defined by #!KAMAILIO), the value - of the parameter must be the name of an AVP in pseudo-variable - format: $avp(name). In SER compatibility mode it must by just - AVP name. + In Kamailio compatibility mode (defined by #!KAMAILIO, which is + default), the value of the parameter must be the name of an AVP + in pseudo-variable format: $avp(name). In SER compatibility mode + (defined by #!SER) it must by just AVP name. Set <varname>fr_inv_timer_avp</varname> parameter ... -# Kamailio mode +# Kamailio compatibility mode modparam("tm", "fr_inv_timer_avp", "$avp(my_fr_inv_timer)") -# Old SER mode +# old SER compatibility mode modparam("tm", "fr_inv_timer_avp", "my_fr_inv_timer") ... diff --git a/src/modules/tm/t_cancel.c b/src/modules/tm/t_cancel.c index 18452a469..8a29b3d39 100644 --- a/src/modules/tm/t_cancel.c +++ b/src/modules/tm/t_cancel.c @@ -29,6 +29,7 @@ #include "t_funcs.h" #include "../../core/dprint.h" #include "../../core/ut.h" +#include "../../core/kemi.h" #include "t_reply.h" #include "t_cancel.h" #include "t_msgbuilder.h" @@ -36,6 +37,8 @@ #include "t_hooks.h" +extern str tm_event_callback; + typedef struct cancel_reason_map { int code; @@ -210,6 +213,11 @@ int cancel_branch( struct cancel_info tmp_cd; void *pcbuf; int reply_status; + int rt, backup_rt; + struct run_act_ctx ctx; + sip_msg_t msg; + sr_kemi_eng_t *keng = NULL; + str evname = str_init("tm:local-request"); crb = &t->uac[branch].local_cancel; irb = &t->uac[branch].request; @@ -326,6 +334,46 @@ int cancel_branch( crb->buffer_len = len; LM_DBG("sending cancel...\n"); + + rt = -1; + if(tm_event_callback.s == NULL || tm_event_callback.len <= 0) { + rt = route_lookup(&event_rt, evname.s); + if(rt < 0 || event_rt.rlist[rt] == NULL) { + LM_DBG("tm:local-request not found\n"); + } + } else { + keng = sr_kemi_eng_get(); + if(keng == NULL) { + LM_DBG("event callback (%s) set, but no cfg engine\n", + tm_event_callback.s); + } + } + + // /* Check if msg is null */ + if(build_sip_msg_from_buf(&msg, crb->buffer, crb->buffer_len, 0) < 0) { + LM_ERR("fail to parse msg\n"); + } + + /* Call event */ + backup_rt = get_route_type(); + set_route_type(REQUEST_ROUTE); + init_run_actions_ctx(&ctx); + if(rt >= 0) { + LM_DBG("tm:local-request found [%d]\n", rt); + run_top_route(event_rt.rlist[rt], &msg, 0); + } else { + if(keng != NULL) { + + if(sr_kemi_route( + keng, &msg, EVENT_ROUTE, &tm_event_callback, &evname) + < 0) { + LM_ERR("error running event route kemi callback\n"); + } + } + } + set_route_type(backup_rt); + free_sip_msg(&msg); + if(SEND_BUFFER(crb) >= 0) { if(unlikely(has_tran_tmcbs(t, TMCB_REQUEST_OUT))) run_trans_callbacks_with_buf( @@ -354,9 +402,10 @@ void rpc_cancel(rpc_t *rpc, void *c) static char cseq[128], callid[128]; struct cancel_info cancel_data; int i, j; - str cseq_s; /* cseq */ str callid_s; /* callid */ + tm_cell_t *orig_t = NULL; + int orig_branch; cseq_s.s = cseq; callid_s.s = callid; @@ -367,6 +416,7 @@ void rpc_cancel(rpc_t *rpc, void *c) return; } + tm_get_tb(&orig_t, &orig_branch); if(t_lookup_callid(&trans, callid_s, cseq_s) < 0) { LM_DBG("Lookup failed\n"); rpc->fault(c, 400, "Transaction not found"); @@ -381,6 +431,7 @@ void rpc_cancel(rpc_t *rpc, void *c) /* t_lookup_callid REF`d the transaction for us, we must UNREF here! */ UNREF(trans); + tm_set_tb(orig_t, orig_branch); j = 0; while(i) { j++; diff --git a/src/modules/tm/t_lookup.c b/src/modules/tm/t_lookup.c index 712f28fb7..ef30878bf 100644 --- a/src/modules/tm/t_lookup.c +++ b/src/modules/tm/t_lookup.c @@ -150,6 +150,18 @@ int get_t_branch() return T_branch; } +void tm_get_tb(struct cell **t, int *branch) +{ + *t = T; + *branch = T_branch; +} + +void tm_set_tb(struct cell *t, int branch) +{ + T = t; + T_branch = branch; +} + /** * return the transaction by combining get() and t_check_msg() * - if T is not set, checks the transactions table for msg, and if found, diff --git a/src/modules/tm/t_lookup.h b/src/modules/tm/t_lookup.h index f3f69af4a..25f6d9eaa 100644 --- a/src/modules/tm/t_lookup.h +++ b/src/modules/tm/t_lookup.h @@ -79,6 +79,10 @@ int get_t_branch(void); typedef void (*tsett_f)(struct cell *t, int branch); void set_t(struct cell *t, int branch); +typedef void (*tm_get_tb_f)(struct cell **t, int *branch); +void tm_get_tb(struct cell **t, int *branch); +typedef void (*tm_set_tb_f)(struct cell *t, int branch); +void tm_set_tb(struct cell *t, int branch); #define T_GET_TI "t_get_trans_ident" #define T_LOOKUP_IDENT "t_lookup_ident" diff --git a/src/modules/tm/t_reply.c b/src/modules/tm/t_reply.c index e012dc29c..a6c7579cd 100644 --- a/src/modules/tm/t_reply.c +++ b/src/modules/tm/t_reply.c @@ -2986,6 +2986,8 @@ void rpc_reply(rpc_t *rpc, void *c) { int ret; struct cell *trans; + tm_cell_t *orig_t = NULL; + int orig_branch; unsigned int hash_index, label, code; str ti, body, headers, tag, reason; @@ -3021,6 +3023,7 @@ void rpc_reply(rpc_t *rpc, void *c) } LM_DBG("hash_index=%u label=%u\n", hash_index, label); + tm_get_tb(&orig_t, &orig_branch); if(t_lookup_ident(&trans, hash_index, label) < 0) { ERR("Lookup failed\n"); rpc->fault(c, 481, "No such transaction"); @@ -3030,6 +3033,7 @@ void rpc_reply(rpc_t *rpc, void *c) /* it's refcounted now, t_reply_with body unrefs for me -- I can * continue but may not use T anymore */ ret = t_reply_with_body(trans, code, &reason, &body, &headers, &tag); + tm_set_tb(orig_t, orig_branch); if(ret < 0) { LM_ERR("Reply failed\n"); @@ -3052,6 +3056,8 @@ void rpc_reply_callid(rpc_t *rpc, void *c) { int code; tm_cell_t *trans; + tm_cell_t *orig_t = NULL; + int orig_branch; str reason = {0, 0}; str totag = {0, 0}; str hdrs = {0, 0}; @@ -3094,6 +3100,7 @@ void rpc_reply_callid(rpc_t *rpc, void *c) return; } + tm_get_tb(&orig_t, &orig_branch); if(t_lookup_callid(&trans, callid, cseq) < 0) { rpc->fault(c, 404, "Transaction not found"); return; @@ -3102,6 +3109,7 @@ void rpc_reply_callid(rpc_t *rpc, void *c) /* it's refcounted now, t_reply_with body unrefs for me -- I can * continue but may not use T anymore */ n = t_reply_with_body(trans, code, &reason, &body, &hdrs, &totag); + tm_set_tb(orig_t, orig_branch); if(n < 0) { rpc->fault(c, 500, "Reply failed"); diff --git a/src/modules/tm/t_serial.c b/src/modules/tm/t_serial.c index 469745541..7566f2b4a 100644 --- a/src/modules/tm/t_serial.c +++ b/src/modules/tm/t_serial.c @@ -643,6 +643,11 @@ int ki_t_next_contacts(struct sip_msg *msg) LM_DBG("no contacts in contacts_avp - we are done!\n"); return -2; } + if(xavp_list->val.type != SR_XTYPE_XAVP) { + LM_ERR("invalid value type (%d) for contacts xavp\n", + xavp_list->val.type); + return -3; + } xavp = xavp_list; diff --git a/src/modules/tm/tm_load.c b/src/modules/tm/tm_load.c index 714987351..0b4ff49e4 100644 --- a/src/modules/tm/tm_load.c +++ b/src/modules/tm/tm_load.c @@ -144,6 +144,8 @@ int load_tm(struct tm_binds *tmb) tmb->t_release_transaction = t_release_transaction; tmb->t_uas_request_clean_parsed = t_uas_request_clean_parsed; tmb->t_reply_error = ki_t_reply_error; + tmb->get_tb = tm_get_tb; + tmb->set_tb = tm_set_tb; return 1; } diff --git a/src/modules/tm/tm_load.h b/src/modules/tm/tm_load.h index bf41eb789..4d160b585 100644 --- a/src/modules/tm/tm_load.h +++ b/src/modules/tm/tm_load.h @@ -131,6 +131,8 @@ struct tm_binds trelease_t t_release_transaction; t_uas_request_clean_parsed_f t_uas_request_clean_parsed; t_no_param_f t_reply_error; + tm_get_tb_f get_tb; + tm_set_tb_f set_tb; }; typedef struct tm_binds tm_api_t; diff --git a/src/modules/topoh/topoh_mod.c b/src/modules/topoh/topoh_mod.c index 7dffa8295..b2f10d120 100644 --- a/src/modules/topoh/topoh_mod.c +++ b/src/modules/topoh/topoh_mod.c @@ -316,10 +316,19 @@ int th_build_socket_strings(socket_info_t *socket) struct str_hash_entry *table_entry = NULL; str *socket_ip = NULL; + if(socket->sockname.s == NULL || socket->sockname.len <= 0) { + LM_ERR("the socket %s has no name - it must be set\n", + socket->sock_str.s); + return -1; + } + if(str_hash_get( th_socket_hash_table, socket->sockname.s, socket->sockname.len) - != 0) + != 0) { + LM_DBG("entry found for socket name [%.*s]\n", socket->sockname.len, + socket->sockname.s); return 0; + } socket_strings = pkg_mallocxz(sizeof(struct th_socket_strings)); if(socket_strings == NULL) { diff --git a/src/modules/xlog/xlog.c b/src/modules/xlog/xlog.c index c7d239ea2..24bc30031 100644 --- a/src/modules/xlog/xlog.c +++ b/src/modules/xlog/xlog.c @@ -883,6 +883,7 @@ int ki_xlog_ex(sip_msg_t *msg, str *lfacility, int llevel, str *lmsg) int lf = xlog_facility; pv_elem_t *xmodel = NULL; str txt = {0, 0}; + char *_xlog_prefix_val = _xlog_prefix; if(!is_printable(llevel)) return 1; @@ -898,6 +899,18 @@ int ki_xlog_ex(sip_msg_t *msg, str *lfacility, int llevel, str *lmsg) return -1; } + if(_xlog_prefix_mode) { + str _xlog_prefix_str; + _xlog_prefix_str.s = _xlog_prefix_buf; + _xlog_prefix_str.len = buf_size; + if(pv_printf(msg, _xlog_prefix_pvs, _xlog_prefix_str.s, + &_xlog_prefix_str.len) + == 0 + && _xlog_prefix_str.len > 0) { + _xlog_prefix_val = _xlog_prefix_buf; + } + } + if(lfacility != NULL) { lfacility->s[lfacility->len] = '\0'; lf = str2facility(lfacility->s); @@ -907,8 +920,7 @@ int ki_xlog_ex(sip_msg_t *msg, str *lfacility, int llevel, str *lmsg) lf = xlog_facility; } } - LOG_FN(lf, llevel, _xlog_prefix, "%.*s", txt.len, txt.s); - ; + LOG_FN(lf, llevel, _xlog_prefix_val, "%.*s", txt.len, txt.s); pv_elem_free_all(xmodel); return 1; } @@ -921,10 +933,12 @@ int ki_xlog_get_level(str *slevel) llevel = L_ALERT; } else if(slevel->len == 5 && strncasecmp(slevel->s, "l_bug", 5) == 0) { llevel = L_BUG; + } else if(slevel->len == 7 && strncasecmp(slevel->s, "l_crit0", 7) == 0) { + llevel = L_CRIT; } else if(slevel->len == 7 && strncasecmp(slevel->s, "l_crit2", 7) == 0) { llevel = L_CRIT2; } else if(slevel->len == 6 && strncasecmp(slevel->s, "l_crit", 6) == 0) { - llevel = L_CRIT; + llevel = L_CRIT2; } else if(slevel->len == 5 && strncasecmp(slevel->s, "l_err", 5) == 0) { llevel = L_ERR; } else if(slevel->len == 6 && strncasecmp(slevel->s, "l_warn", 6) == 0) { @@ -986,7 +1000,7 @@ int ki_xalert(sip_msg_t *msg, str *lmsg) int ki_xcrit(sip_msg_t *msg, str *lmsg) { - return ki_xlog_ex(msg, NULL, L_CRIT, lmsg); + return ki_xlog_ex(msg, NULL, L_CRIT2, lmsg); } /**