[asterisk-scf-commits] asterisk-scf/integration/sip.git branch "master" updated.

Commits to the Asterisk SCF project code repositories asterisk-scf-commits at lists.digium.com
Thu Oct 21 22:21:25 CDT 2010


branch "master" has been updated
       via  34452fb36f2ccbec233a2508694db21aedc2dcb1 (commit)
      from  b55c0debb55b0b9f43f9a63116c5f558d15aece7 (commit)

Summary of changes:
 src/PJSipSessionModule.cpp |   43 +++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 41 insertions(+), 2 deletions(-)


- Log -----------------------------------------------------------------
commit 34452fb36f2ccbec233a2508694db21aedc2dcb1
Author: Ken Hunt <ken.hunt at digium.com>
Date:   Thu Oct 21 22:19:51 2010 -0500

    Made the state replication data push all via one-way calls.

diff --git a/src/PJSipSessionModule.cpp b/src/PJSipSessionModule.cpp
index 8221e75..a110229 100644
--- a/src/PJSipSessionModule.cpp
+++ b/src/PJSipSessionModule.cpp
@@ -225,11 +225,50 @@ void PJSipSessionModule::replicateState(PJSipDialogModInfo *dlgInfo, PJSipTransa
    {
       if (setItems.size() != 0 && mStateReplicator)
       {
-         mStateReplicator->setState(setItems);
+          Ice::ObjectPrx oneway;
+          try
+          {
+              oneway = mStateReplicator->ice_oneway();
+          }
+          catch (const Ice::NoEndpointException&)
+          {
+              lg(Error) << "No endpoint for oneway invocation of setState() for state replication." << std::endl;
+          }
+
+          AsteriskSCF::SIP::V1::SipStateReplicatorPrx oneWayStateReplicator = AsteriskSCF::SIP::V1::SipStateReplicatorPrx::uncheckedCast(oneway);
+
+          try
+          {
+              oneWayStateReplicator->setState(setItems);
+          }
+          catch (const Ice::TwowayOnlyException&)
+          {
+              lg(Error) << "setState() is not oneway." << std::endl;
+          }
       }
+
       if (removeItems.size() != 0 && mStateReplicator)
       {
-         mStateReplicator->removeState(removeItems);
+          Ice::ObjectPrx oneway;
+          try
+          {
+              oneway = mStateReplicator->ice_oneway();
+          }
+          catch (const Ice::NoEndpointException&)
+          {
+              lg(Error) << "No endpoint for oneway invocation of removeState() for state replication." << std::endl;
+          }
+
+          AsteriskSCF::SIP::V1::SipStateReplicatorPrx oneWayStateReplicator = AsteriskSCF::SIP::V1::SipStateReplicatorPrx::uncheckedCast(oneway);
+
+          try
+          {
+              oneWayStateReplicator->removeState(removeItems);
+          }
+          catch (const Ice::TwowayOnlyException&)
+          {
+              lg(Error) << "removeState() is not oneway." << std::endl;
+          }
       }
    }
 }

-----------------------------------------------------------------------


-- 
asterisk-scf/integration/sip.git



More information about the asterisk-scf-commits mailing list