< Previous by Date Date Index Next by Date >
< Previous in Thread Thread Index  

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