[reSIProcate] repro inserting rport in Via
I notice that when repro adds a Via to a request, it includes the rport
parameter
When repro makes a TCP (or TLS) connection to another application, the
source port is not the port where repro listens for incoming connections.
Consequently, when other applications try to send a request back to
repro, if the original TCP/TLS connection is no longer active, they try
to open a new connection to the rport rather than the real TCP/TLS port
where repro is listening. Such connections obviously can't succeed.
The rport parameter is automatically added in the Via constructor. DUM
has an option in the UserProfile to disable rport. I couldn't see any
option in repro.config to stop it adding rport.
I see a few possible ways forward here:
- completely stop adding rport in Via from repro
- add a parameter to repro.config
- make repro use (and all of reSIProcate) use the listening port as the
source port for outgoing TCP/TLS connections (SO_REUSEADDR, re-use
listening socket for making new outgoing connections)
Does anybody depend on the existing behavior or can anybody comment on
cases where it is desirable?