[reSIProcate] Record-Route handling by stack

Alex alt at kaluga.ru
Tue Dec 12 06:44:04 CST 2006


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20061212/a35f3494/attachment.htm>


More information about the resiprocate-devel mailing list