diff -r 0396474f30f5 -r 4ce476e64c59 ipsservices/ipssossettings/src/ipssetdata.cpp --- a/ipsservices/ipssossettings/src/ipssetdata.cpp Mon Mar 15 12:39:10 2010 +0200 +++ b/ipsservices/ipssossettings/src/ipssetdata.cpp Wed Mar 31 21:08:33 2010 +0300 @@ -523,7 +523,11 @@ ret.iIAP = 0; if ( aIncoming ) { - + if (iIncomingIapPref->SNAPDefined()) + { + ret.iIAP = iIncomingIapPref->SNAPPreference(); + } + if ( iIncomingIapPref->NumberOfIAPs() > 0 ) { ret = iIncomingIapPref->IAPPreference(0); @@ -916,10 +920,50 @@ CleanupStack::Pop( iIncomingIapPref ); iOutgoingIapPref = CImIAPPreferences::NewLC(); CleanupStack::Pop( iOutgoingIapPref ); - iIncomingIapPref->AddIAPL( aIncomingIap ); iOutgoingIapPref->AddIAPL( aOutgoingIap ); } +// --------------------------------------------------------------------------- +// CIpsSetData::SetIapL() +// --------------------------------------------------------------------------- +// +void CIpsSetData::SetIapL( + const CImIAPPreferences& aIncomingIap, + const CImIAPPreferences& aOutgoingIap ) + { + FUNC_LOG; + // This is not ideal choice, but current situation forces to do this, + // until Reset() funcion is exported from class CImIAPPreferences + delete iIncomingIapPref; + iIncomingIapPref = NULL; + delete iOutgoingIapPref; + iOutgoingIapPref = NULL; + + iIncomingIapPref = CImIAPPreferences::NewLC(); + CleanupStack::Pop( iIncomingIapPref ); + iOutgoingIapPref = CImIAPPreferences::NewLC(); + CleanupStack::Pop( iOutgoingIapPref ); + + if (aIncomingIap.SNAPDefined()) + { + iIncomingIapPref->SetSNAPL(aIncomingIap.SNAPPreference()); + } + else + { + iIncomingIapPref->AddIAPL( aIncomingIap.IAPPreference(0) ); + } + + if (aOutgoingIap.SNAPDefined()) + { + iOutgoingIapPref->SetSNAPL(aOutgoingIap.SNAPPreference()); + } + else + { + iOutgoingIapPref->AddIAPL( aOutgoingIap.IAPPreference(0) ); + } + + } + // --------------------------------------------------------------------------- // CIpsSetData::SetSecurity()