Re: [reSIProcate] Record-Route handling by stack
This does indeed appear to be a bug that should be fixed immediately.
I'll take a look.
Jason
On 12/12/06, Alex <alt@xxxxxxxxx> wrote:
Hi
There is some code within TransportSelector.cxx to stamping
host/port/transport into Record-Route:
if (msg->exists(h_RecordRoutes) &&
!msg->header(h_RecordRoutes).empty())
{
NameAddr& rr =
msg->header(h_RecordRoutes).back(); //!!!!!!!!!!!!!!!!!!!
if (rr.uri().host().empty())
{
rr.uri().host() = Tuple::inet_ntop(source);
rr.uri().port() = target.transport->port();
if (target.transport->transport() != UDP &&
!rr.uri().exists(p_transport))
{
rr.uri().param(p_transport) =
Tuple::toData(target.transport->transport());
}
}
}
I don't understand why we try to stamp header(h_RecordRoutes).back() - the
oldest, possible not our Record-Route?
It works when we have only one such header, but does not work if there some
Record-Routes (inserted by others proxies).
I also have some questions about Repro concerning Record-Route, but I think
it is good idea to clarify my first question before.
With best regards
Alexander Altshuler
_______________________________________________
resiprocate-devel mailing list
resiprocate-devel@xxxxxxxxxxxxxxxxxxxx
https://list.resiprocate.org/mailman/listinfo/resiprocate-devel