#### 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)
- [ ] New feature (non-breaking change which adds new functionality)
- [x] 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
This is an attempt to fix the combination of the outbound/rr modules and
``tcp_accept_haproxy=yes``. This combination is currently broken, as previously reported
on the mailing list:
https://www.mail-archive.com/sr-users@lists.kamailio.org/msg21854.html
The issue is that the destination address/port combo of the haproxy side is encoded into
the flow token. When the rr module decodes the flow token and tries to look up the
listening socket using ``find_si``, it cannot be found, because it is given the
destination address/port combo of the connection of the haproxy side, not the address/port
combo that Kamailio is actually listening on.
This patch fixes the issue by encoding the ``bind_address`` of the socket the connection
was received on into the flow token as the destination address. The source address remains
unchanged, as it *can* be used to look up the TCP connection (with a minor patch to
``_tcpconn_find`` in ``tcp_main.c``)
While I've done quite a bit of testing with this patchset, I find it difficult to
oversee the full impact of this change in Kamailio's large codebase. Any feedback
is welcome.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4105
-- Commit Summary --
* outbound: encode bind address into flow token as destination
* core: tcp_main - include local dst port in conn lookup when using haproxy
-- File Changes --
M src/core/tcp_main.c (3)
M src/modules/outbound/outbound_mod.c (20)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4105.patch
https://github.com/kamailio/kamailio/pull/4105.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4105
You are receiving this because you are subscribed to this thread.
Message ID: &lt;kamailio/kamailio/pull/4105(a)github.com&gt;