reSIProcate/repro  9694
Public Member Functions | Private Attributes
repro::SimpleStaticRoute Class Reference

#include <SimpleStaticRoute.hxx>

Inheritance diagram for repro::SimpleStaticRoute:
Inheritance graph
[legend]
Collaboration diagram for repro::SimpleStaticRoute:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 SimpleStaticRoute (ProxyConfig &config)
virtual ~SimpleStaticRoute ()
virtual processor_action_t process (RequestContext &)

Private Attributes

resip::NameAddrs mRouteSet

Detailed Description

Definition at line 11 of file SimpleStaticRoute.hxx.


Constructor & Destructor Documentation

SimpleStaticRoute::SimpleStaticRoute ( ProxyConfig config)

Definition at line 22 of file SimpleStaticRoute.cxx.

                                                        :
   Processor("SimpleStaticRoute")
{
   std::vector<Data> routeSet;
   config.getConfigValue("Routes", routeSet);

   resip::NameAddrs routes;
   for (std::vector<Data>::iterator i=routeSet.begin(); 
        i != routeSet.end(); ++i)
   {
      try
      {
         mRouteSet.push_back(NameAddr(*i));
      }
      catch(BaseException& ex)
      {
         WarningLog(<< "SimpleStaticRoute: Skipping invalid route (" << *i << "): " << ex);
      }
   }
}
SimpleStaticRoute::~SimpleStaticRoute ( ) [virtual]

Definition at line 43 of file SimpleStaticRoute.cxx.

{}

Member Function Documentation

Processor::processor_action_t SimpleStaticRoute::process ( RequestContext context) [virtual]

Implements repro::Processor.

Definition at line 48 of file SimpleStaticRoute.cxx.

{
   DebugLog(<< "Monkey handling request: " << *this 
            << "; reqcontext = " << context);
   
   resip::SipMessage& request = context.getOriginalRequest();
   const Uri& uri = request.header(h_RequestLine).uri();
   if (context.getProxy().isMyUri(uri))
   {
      const resip::NameAddrs& current = request.header(h_Routes); 
      resip::NameAddrs replace = mRouteSet;
      for (resip::NameAddrs::const_iterator i=current.begin(); i != current.end(); ++i)
      {
         replace.push_back(*i);
      }
      request.header(h_Routes) = replace;
      context.getResponseContext().addTarget(NameAddr(uri));
      
      InfoLog (<< "New route set is " << Inserter(request.header(h_Routes)));
   }

   return Processor::Continue;
}

Member Data Documentation

Definition at line 20 of file SimpleStaticRoute.hxx.


The documentation for this class was generated from the following files: