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.
<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x ...'
- code is contributed under BSD for core and main components (tm, sl, auth, tls)
- code is contributed GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [x] Commit message has the format required by CONTRIBUTING guide
- [x] Commits are split per component (core, individual modules, libs, utils, ...)
- [x] Each component has a single commit (if not, squash them into one commit)
- [x] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [x] Small bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [x] PR should be backported to stable branches
- [x] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
Using following configuration
```
#!KAMAILIO
listen=udp:127.0.0.1:9999
log_stderror=yes
loadmodule "xlog.so"
loadmodule "pv.so"
loadmodule "sl.so"
loadmodule "htable.so"
modparam("htable", "htable", "foo=>autoexpire=1;updateexpire=0")
request_route {
if ($sht(foo=>bar) == $null) {
$sht(foo=>bar) = 0;
}
$var(foo) = $shtdec(foo=>bar);
xlog("$Ts single value $sht(foo=>bar)\texpire $shtex(foo=>bar)\n");
sl_send_reply("200", "Hello");
}
```
running
```
while true; do sleep 0.3; sipsak -vs sip:localhost:9999 ; done
```
produces following output
```
0(1414153) ERROR: <script>: 1734539304 single value -1 expire 1
0(1414153) ERROR: <script>: 1734539305 single value -2 expire 0
0(1414153) ERROR: <script>: 1734539305 single value -3 expire 0
0(1414153) ERROR: <script>: 1734539305 single value -4 expire 0
0(1414153) ERROR: <script>: 1734539306 single value <null> expire 4294967295
0(1414153) ERROR: <script>: 1734539306 single value <null> expire 4294967295
0(1414153) ERROR: <script>: 1734539306 single value <null> expire 4294967295
0(1414153) ERROR: <script>: 1734539306 single value <null> expire 4294967295
0(1414153) ERROR: <script>: 1734539307 single value <null> expire 4294967294
0(1414153) ERROR: <script>: 1734539307 single value <null> expire 4294967294
0(1414153) ERROR: <script>: 1734539307 single value <null> expire 4294967294
0(1414153) ERROR: <script>: 1734539308 single value <null> expire 4294967293
0(1414153) ERROR: <script>: 1734539308 single value <null> expire 4294967293
0(1414153) ERROR: <script>: 1734539308 single value <null> expire 4294967293
0(1414153) ERROR: <script>: 1734539309 single value <null> expire 4294967292
0(1414153) ERROR: <script>: 1734539309 single value <null> expire 4294967292
0(1414153) ERROR: <script>: 1734539309 single value <null> expire 4294967292
0(1414153) ERROR: <script>: 1734539310 single value <null> expire 4294967291
0(1414153) ERROR: <script>: 1734539310 single value <null> expire 4294967291
0(1414153) ERROR: <script>: 1734539310 single value <null> expire 4294967291
0(1414153) ERROR: <script>: 1734539311 single value <null> expire 4294967290
0(1414153) ERROR: <script>: 1734539311 single value <null> expire 4294967290
0(1414153) ERROR: <script>: 1734539311 single value <null> expire 4294967290
0(1414153) ERROR: <script>: 1734539312 single value <null> expire 4294967289
0(1414153) ERROR: <script>: 1734539312 single value <null> expire 4294967289
0(1414153) ERROR: <script>: 1734539312 single value <null> expire 4294967289
0(1414153) ERROR: <script>: 1734539313 single value <null> expire 4294967288
0(1414153) ERROR: <script>: 1734539313 single value <null> expire 4294967288
0(1414153) ERROR: <script>: 1734539313 single value <null> expire 4294967288
0(1414153) ERROR: <script>: 1734539314 single value <null> expire 4294967287
0(1414153) ERROR: <script>: 1734539314 single value <null> expire 4294967287
0(1414153) ERROR: <script>: 1734539314 single value <null> expire 4294967287
0(1414153) ERROR: <script>: 1734539315 single value <null> expire 4294967286
0(1414153) ERROR: <script>: 1734539315 single value <null> expire 4294967286
0(1414153) ERROR: <script>: 1734539315 single value <null> expire 4294967286
0(1414153) ERROR: <script>: 1734539316 single value <null> expire 4294967285
0(1414153) ERROR: <script>: 1734539316 single value <null> expire 4294967285
0(1414153) ERROR: <script>: 1734539316 single value <null> expire 4294967285
0(1414153) ERROR: <script>: 1734539316 single value <null> expire 4294967285
0(1414153) ERROR: <script>: 1734539317 single value <null> expire 4294967284
0(1414153) ERROR: <script>: 1734539317 single value <null> expire 4294967284
0(1414153) ERROR: <script>: 1734539317 single value <null> expire 4294967284
0(1414153) ERROR: <script>: 1734539318 single value <null> expire 4294967283
0(1414153) ERROR: <script>: 1734539318 single value <null> expire 4294967283
0(1414153) ERROR: <script>: 1734539318 single value <null> expire 4294967283
0(1414153) ERROR: <script>: 1734539319 single value <null> expire 4294967282
0(1414153) ERROR: <script>: 1734539319 single value <null> expire 4294967282
0(1414153) ERROR: <script>: 1734539319 single value <null> expire 4294967282
0(1414153) ERROR: <script>: 1734539320 single value <null> expire 4294967281
0(1414153) ERROR: <script>: 1734539320 single value <null> expire 4294967281
0(1414153) ERROR: <script>: 1734539320 single value <null> expire 4294967281
0(1414153) ERROR: <script>: 1734539321 single value <null> expire 4294967280
0(1414153) ERROR: <script>: 1734539321 single value <null> expire 4294967280
0(1414153) ERROR: <script>: 1734539321 single value <null> expire 4294967280
0(1414153) ERROR: <script>: 1734539322 single value <null> expire 4294967279
0(1414153) ERROR: <script>: 1734539322 single value <null> expire 4294967279
0(1414153) ERROR: <script>: 1734539322 single value <null> expire 4294967279
0(1414153) ERROR: <script>: 1734539323 single value <null> expire 4294967278
0(1414153) ERROR: <script>: 1734539323 single value <null> expire 4294967278
0(1414153) ERROR: <script>: 1734539323 single value <null> expire 4294967278
0(1414153) ERROR: <script>: 1734539324 single value <null> expire 4294967277
0(1414153) ERROR: <script>: 1734539324 single value <null> expire 4294967277
0(1414153) ERROR: <script>: 1734539324 single value -1 expire 1
0(1414153) ERROR: <script>: 1734539325 single value -2 expire 0
0(1414153) ERROR: <script>: 1734539325 single value -3 expire 0
0(1414153) ERROR: <script>: 1734539325 single value -4 expire 0
```
When adding `initval=0` to `htable` configuration log output changes `<null>` to `0`
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4079
-- Commit Summary --
* htable: Fix de-/increment w/ auto expire
-- File Changes --
M src/modules/htable/ht_api.c (4)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4079.patchhttps://github.com/kamailio/kamailio/pull/4079.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4079
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4079(a)github.com>
<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x ...'
- code is contributed under BSD for core and main components (tm, sl, auth, tls)
- code is contributed GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [x] Commit message has the format required by CONTRIBUTING guide
- [x] Commits are split per component (core, individual modules, libs, utils, ...)
- [x] Each component has a single commit (if not, squash them into one commit)
- [x] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [ ] Small bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [x] PR should be backported to stable branches
- [x] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
This PR adds media forking support to the rtpengine module by exposing three functions:
rtpengine_copy_offer_f(): Sends a subscribe request to RTPEngine.
rtpengine_copy_answer_f(): Sends a subscribe answer to RTPEngine.
rtpengine_copy_delete_f(): Sends an unsubscribe request to RTPEngine.
These functions enable interaction with RTPEngine for managing media subscriptions, allowing for scenarios like media duplication or forking. This feature is based on the OpenSIPS RTPEngine module and provides similar functionality for handling media operations.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4071
-- Commit Summary --
* export subscribe operation functions
-- File Changes --
M src/modules/rtpengine/api.h (20)
M src/modules/rtpengine/rtpengine.c (217)
M src/modules/rtpengine/rtpengine.h (17)
A src/modules/rtpengine/rtpengine_common.h (28)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4071.patchhttps://github.com/kamailio/kamailio/pull/4071.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4071
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4071(a)github.com>
Yes, i tried that everything that is generated from `CMake` to be inside the `CMAKE_BINARY_DIR` aka build folder and it's respective subfolders and not pollute the src tree in any way.
Picking that they are the same is actually a good sign, that it produced identical output! But I also believe they shouldn't exist in source tree, for whatever reason. If you want or need them, use them from the build directory.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0a…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0af02272980/150488267(a)github.com>
Pushed another commit (05bb67d91c8c7ffc0b68513d46e1de5f68124800) to remove these files from glob result over core source folder -- the ones generated by cmake are in bin folder not in src, but I guess they were detected as being the same and thus the warnings.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0a…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0af02272980/150487722(a)github.com>
Yeah probably they exist in your source tree under `src/core/` as well by invociking the old Makefiles? So, they are picked up by the `GLOB` as well.
These generated files should not be in the source tree but in the build tree instead. Some also argue they shouldn't even be tracked, since they can offer different things with different options and therefore should be generated everytime when options change.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0a…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0af02272980/150487124(a)github.com>
I reverted the commit since it was reported to break on some OSes.
On macos with cmake version 3.29.5 I get this warnings. I have to investigate further, it might be my local dev setup.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0a…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0af02272980/150487013(a)github.com>