<!-- 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 --> - [ ] 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 -->
`handle_ruri_alias()` wasn't handling correctly the IP address in the alias, in case it was an IPv6. This adds `[` and `]` around the IP if v6 when composing a destination SIP URI, such that the downstream functions will handle it correctly and not be confused by the `:` before the port.
Arguably, nathelper is not needed in IPv6. Yet I have discovered a scenario where it could be quite helpful as a way to force some UE routing through an intermediary proxy. You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/3913
-- Commit Summary --
* nathelper: fixed handle_ruri_alias() for alias being an IPv6
-- File Changes --
M src/modules/nathelper/nathelper.c (34)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/3913.patch https://github.com/kamailio/kamailio/pull/3913.diff
Over all, it should be ok to merge, just with the note that it is preferred to declare the variable at the beginning of the block. A few in this PR are in the middle.
It is ok to have them at the beginning of the functions or at the beginning of the blocks, e.g.,:
``` if(cond) { int v; ... v = ... } ```
Also, I think that rather recent someone reported that declaring the iterator variable in the `for` (i.e., `for(int i = 0; ...) { ... }`) was giving some error on some old but still used OS. So maybe it should still be avoided for a while.
I think there are places in the code where the above suggestions were not followed, but thought it worth listing them here.
Sure thing, I can move them. I also prefer pointers, deep structures, etc at the beginning and initialized/blanked, in order to make cleanups meaningful. About the initialization in for I didn't know it happens, interesting! Might be some C-standards thingy.
(Was declaring the `port_len` locally just because it is only calculated and used in that block, not for IPv4 for example; so arguable readability benefit.)
@vingarzan pushed 1 commit.
78c54452b046baea2898c6f1ee2cebe39921f95c nathelper: fixed handle_ruri_alias() for alias being an IPv6
Updated and thanks!
Merged #3913 into master.