# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1286971188 -10800 # Node ID cf1b3ddbe9a16f5a4e6d477ab0d85780aedf452e # Parent 14754bf06654c432ae344059bdaa0a668e16c288 Revision: 201039 Kit: 201041 diff -r 14754bf06654 -r cf1b3ddbe9a1 bearermanagement/S60MCPR/inc/s60mcpr.h --- a/bearermanagement/S60MCPR/inc/s60mcpr.h Wed Sep 15 12:38:40 2010 +0300 +++ b/bearermanagement/S60MCPR/inc/s60mcpr.h Wed Oct 13 14:59:48 2010 +0300 @@ -174,6 +174,24 @@ * Clears handshaking flag. */ void ClearHandshakingFlag(); + + /** + * Checking whether the node is in the middle of a gone down error + * recovery. + * + * @return ETrue if recovering a GoneDown error + */ + TBool IsGoneDownRecoveryOngoing() const; + + /** + * Sets gone down recovery flag. + */ + void SetGoneDownRecoveryOngoing(); + + /** + * Clears gone down recovery flag. + */ + void ClearGoneDownRecoveryOngoing(); /** * Re-send last received policy notification if it exists. @@ -262,6 +280,19 @@ TBool iIsHandshakingNow : 1; /** + * Status flag indicating that we are currently recovering from GoneDown. + * This is set while MPM is making recovery decision, and in case of + * mobility connections also for the period while the connection roams + * to a new interface. This is used (at least) for erroring NoBearer + * requests coming from the data clients. + * + * Even though the bit fields are generally quite useless optimization in + * this kind of cases, used also in here since there are a couple of + * those above... + */ + TBool iGoneDownRecoveryOngoing : 1; + + /** * Connection preference list */ ESock::RConnPrefList iConnPrefList; diff -r 14754bf06654 -r cf1b3ddbe9a1 bearermanagement/S60MCPR/inc/s60mcpractivities.h --- a/bearermanagement/S60MCPR/inc/s60mcpractivities.h Wed Sep 15 12:38:40 2010 +0300 +++ b/bearermanagement/S60MCPR/inc/s60mcpractivities.h Wed Oct 13 14:59:48 2010 +0300 @@ -30,12 +30,6 @@ // Forward declarations class CS60MetaConnectionProvider; -enum TS60MCprActivities - { - ECFActivityS60McprServiceIdMessage2Handler = ESock::ECFActivityCustom + 10, - ECFActivityS60McprStopIAP - }; - /** * S60MCprActivities namespace contains the * definition of S60MCPR's activity map. diff -r 14754bf06654 -r cf1b3ddbe9a1 bearermanagement/S60MCPR/inc/s60mcpractivityids.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bearermanagement/S60MCPR/inc/s60mcpractivityids.h Wed Oct 13 14:59:48 2010 +0300 @@ -0,0 +1,34 @@ +/* +* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: S60 MCPR's activities. +* +*/ + +/** +@file s60mcpractivityids.h +S60 MCPR's activity id's. +*/ + +#ifndef S60MCPRACTIVITYIDS_H +#define S60MCPRACTIVITYIDS_H + +enum TS60MCprActivities + { + ECFActivityS60McprServiceIdMessage2Handler = ESock::ECFActivityCustom + 10, + ECFActivityS60McprStopIAP, + ECFActivityS60McprDataClientIdle, + ECFActivityS60DataClientStatusChangeConsumeActivity + }; + +#endif //S60MCPRACTIVITYIDS_H diff -r 14754bf06654 -r cf1b3ddbe9a1 bearermanagement/S60MCPR/inc/s60mcprstates.h --- a/bearermanagement/S60MCPR/inc/s60mcprstates.h Wed Sep 15 12:38:40 2010 +0300 +++ b/bearermanagement/S60MCPR/inc/s60mcprstates.h Wed Oct 13 14:59:48 2010 +0300 @@ -30,6 +30,7 @@ #include "s60mcpr.h" #include "s60mpmrequests.h" +#include "s60mcpractivityids.h" /** * S60McprState namespace packages all S60 specific state, forks and @@ -58,6 +59,7 @@ const TInt KConsumeRejectedMsg = 11054; const TInt KInformMigrationCompleted = 11055; const TInt KRequestReConnectToCurrentSP = 11056; + const TInt KStopActivityNotRunning = 11057; /** * Execution context @@ -117,6 +119,17 @@ TContext ) virtual void DoL(); DECLARE_SMELEMENT_FOOTER( TProcessError ) + + /** + * TRANSITION/ACTION: Error no bearer request while in gone down recovery. + */ + DECLARE_SMELEMENT_HEADER( THandleNoBearerDuringGoneDownRecovery, + MeshMachine::TStateTransition, + NetStateMachine::MStateTransition, + TContext ) + virtual void DoL(); + DECLARE_SMELEMENT_FOOTER( THandleNoBearerDuringGoneDownRecovery ) + /** * STATE: Waits for valid select or error message. @@ -163,6 +176,18 @@ DECLARE_SMELEMENT_FOOTER( TAwaitingServiceIdRequest ) /** + * STATE: Waits for NoBearer request while in gone down recovery. + * @return ETrue if message is accepted. + */ + DECLARE_SMELEMENT_HEADER( TAwaitingNoBearerInGoneDownRecovery, + MeshMachine::TState, + NetStateMachine::MState, + TContext ) + virtual TBool Accept(); + DECLARE_SMELEMENT_FOOTER( TAwaitingNoBearerInGoneDownRecovery ) + + + /** * TRANSITION/ACTION: Retrieve ServiceId. */ DECLARE_SMELEMENT_HEADER( TRetrieveServiceId, @@ -204,6 +229,35 @@ TContext ) virtual TBool Accept(); DECLARE_SMELEMENT_FOOTER( TAwaitingStoppedOrError ) + + + /** + * STATE: Waits for TIdle + */ + DECLARE_SMELEMENT_HEADER( TAwaitingDataClientIdle, + MeshMachine::TState, + NetStateMachine::MState, + TContext ) + virtual TBool Accept(); + DECLARE_SMELEMENT_FOOTER( TAwaitingDataClientIdle ) + + /** + * STATE: Waits for TDataClientStatusChange + */ + DECLARE_SMELEMENT_HEADER( TAwaitingDataClientStatusChange, + MeshMachine::TState, + NetStateMachine::MState, + TContext ) + virtual TBool Accept(); + DECLARE_SMELEMENT_FOOTER( TAwaitingDataClientStatusChange ) + + + /** + * FORK/MUTEX: Waits for StopIAPActivity to complete + */ + DECLARE_SERIALIZABLE_STATE( TStopActivityNotRunning, + MeshMachine::TActivityIdMutex, + MeshMachine::TTag ) class CS60ErrorRecoveryActivity : public MeshMachine::CNodeRetryActivity { diff -r 14754bf06654 -r cf1b3ddbe9a1 bearermanagement/S60MCPR/src/s60mcpr.cpp --- a/bearermanagement/S60MCPR/src/s60mcpr.cpp Wed Sep 15 12:38:40 2010 +0300 +++ b/bearermanagement/S60MCPR/src/s60mcpr.cpp Wed Oct 13 14:59:48 2010 +0300 @@ -68,7 +68,8 @@ const TProviderInfo& aProviderInfo, const MeshMachine::TNodeActivityMap& aActivityMap ) : CMobilityMetaConnectionProvider( aFactory, aProviderInfo, aActivityMap ), - iDataClientStatusStarted( EFalse ) + iDataClientStatusStarted( EFalse ), + iGoneDownRecoveryOngoing( EFalse ) { LOG_NODE_CREATE(KS60MCprTag, CS60MetaConnectionProvider); } @@ -283,6 +284,34 @@ iIsHandshakingNow = EFalse; } +// ----------------------------------------------------------------------------- +// CS60MetaConnectionProvider::IsGoneDownRecoveryOngoing +// ----------------------------------------------------------------------------- +// +TBool CS60MetaConnectionProvider::IsGoneDownRecoveryOngoing() const + { + return iGoneDownRecoveryOngoing; + } + + +// ----------------------------------------------------------------------------- +// CS60MetaConnectionProvider::SetGoneDownRecoveryOngoing +// ----------------------------------------------------------------------------- +// +void CS60MetaConnectionProvider::SetGoneDownRecoveryOngoing() + { + iGoneDownRecoveryOngoing = ETrue; + } + + +// ----------------------------------------------------------------------------- +// CS60MetaConnectionProvider::ClearGoneDownRecoveryOngoing +// ----------------------------------------------------------------------------- +// +void CS60MetaConnectionProvider::ClearGoneDownRecoveryOngoing() + { + iGoneDownRecoveryOngoing = EFalse; + } // ----------------------------------------------------------------------------- // CS60MetaConnectionProvider::PolicyNotification diff -r 14754bf06654 -r cf1b3ddbe9a1 bearermanagement/S60MCPR/src/s60mcpractivities.cpp --- a/bearermanagement/S60MCPR/src/s60mcpractivities.cpp Wed Sep 15 12:38:40 2010 +0300 +++ b/bearermanagement/S60MCPR/src/s60mcpractivities.cpp Wed Oct 13 14:59:48 2010 +0300 @@ -21,6 +21,7 @@ */ #include "s60mcpractivities.h" +#include "s60mcpractivityids.h" using namespace Messages; using namespace MeshMachine; @@ -183,6 +184,7 @@ DECLARE_DEFINE_NODEACTIVITY( ECFActivityMonitorProviderStatus, MCprDataClientStatusChange, TCFControlProvider::TDataClientStatusChange ) + SINGLE_NODEACTIVITY_ENTRY( S60MCprStates::THandleMPMAndCoreDataClientStatusChangeAndDestroyOrphans, CoreNetStates::TAwaitingDataClientStatusChange ) NODEACTIVITY_END() @@ -431,12 +433,67 @@ } // S60MCprStopIAPActivity // ----------------------------------------------------------------------------- +// S60McprNoBearerDuringGoneDownErrorRecovery +// ----------------------------------------------------------------------------- +// +namespace S60McprNoBearerDuringGoneDownErrorRecovery + { + DECLARE_DEFINE_NODEACTIVITY( ECFActivityNoBearer, + S60MCprNoBearerDuringGoneDown, + TCFControlProvider::TNoBearer ) + SINGLE_NODEACTIVITY_ENTRY( S60MCprStates::THandleNoBearerDuringGoneDownRecovery, + S60MCprStates::TAwaitingNoBearerInGoneDownRecovery ) + NODEACTIVITY_END() + } + +// ----------------------------------------------------------------------------- +// S60MCprDataClientIdleActivity +// ----------------------------------------------------------------------------- +// + +namespace S60MCprDataClientIdleActivity + { + DECLARE_DEFINE_CUSTOM_NODEACTIVITY( ECFActivityS60McprDataClientIdle, + MCprDataClientIdleActivity, + TCFControlProvider::TIdle, + MeshMachine::CNodeRetryActivity::NewL) + + FIRST_NODEACTIVITY_ENTRY( CoreNetStates::TAwaitingDataClientIdle, + S60MCprStates::TStopActivityNotRunning ) + + LAST_NODEACTIVITY_ENTRY( S60MCprStates::KStopActivityNotRunning, + CoreNetStates::THandleDataClientIdle ) + + NODEACTIVITY_END() + } // S60MCprDataClientIdleActivity + +// ----------------------------------------------------------------------------- +// S60MCprDataClientStatusChangeConsumeActivity +// ----------------------------------------------------------------------------- +// + +namespace S60MCprDataClientStatusChangeConsumeActivity + { + DECLARE_DEFINE_NODEACTIVITY( ECFActivityS60DataClientStatusChangeConsumeActivity, + MCprDataClientStatusChangeConsumeActivity, + TCFControlProvider::TDataClientStatusChange) + + SINGLE_NODEACTIVITY_ENTRY( MeshMachine::TDoNothing, + S60MCprStates::TAwaitingDataClientStatusChange ) + + NODEACTIVITY_END() + } // S60MCprDataClientStatusChangeConsumeActivity + + + +// ----------------------------------------------------------------------------- // S60MCprActivities - activitymap // ----------------------------------------------------------------------------- // namespace S60MCprActivities { DEFINE_ACTIVITY_MAP(S60MCprActivityMap) + ACTIVITY_MAP_ENTRY(S60MCprDataClientStatusChangeConsumeActivity, MCprDataClientStatusChangeConsumeActivity) ACTIVITY_MAP_ENTRY(S60MCprMonitorDataClientStatusActivity, MCprDataClientStatusChange) ACTIVITY_MAP_ENTRY(S60MCprSelectActivity, S60MCprSelect) // in s60mcprsimpleselectactivity.cpp ACTIVITY_MAP_ENTRY(S60MCprSimpleSelectActivity, MCprSimpleSelect) // in s60mcprsimpleselectactivity.cpp @@ -444,7 +501,9 @@ ACTIVITY_MAP_ENTRY(S60MCprMobilityActivity, MCprMobility) // in s60mcprmobilityactivity.cpp ACTIVITY_MAP_ENTRY(S60MCprConnectionGoneDownRecoveryActivity, MCprConnectionGoneDownRecovery) ACTIVITY_MAP_ENTRY(S60MCprServiceIdRMessage2HandlerActivity, S60MCprServiceIdLegacyRMessage2Handler) + ACTIVITY_MAP_ENTRY(S60McprNoBearerDuringGoneDownErrorRecovery, S60MCprNoBearerDuringGoneDown) ACTIVITY_MAP_ENTRY(S60MCprStopIAPActivity, MCprStopIAPActivity) + ACTIVITY_MAP_ENTRY(S60MCprDataClientIdleActivity, MCprDataClientIdleActivity) ACTIVITY_MAP_END_BASE(MobilityMCprActivities, mobilityMCprActivities) } diff -r 14754bf06654 -r cf1b3ddbe9a1 bearermanagement/S60MCPR/src/s60mcprerrorrecoveryactivity.cpp --- a/bearermanagement/S60MCPR/src/s60mcprerrorrecoveryactivity.cpp Wed Sep 15 12:38:40 2010 +0300 +++ b/bearermanagement/S60MCPR/src/s60mcprerrorrecoveryactivity.cpp Wed Oct 13 14:59:48 2010 +0300 @@ -113,6 +113,31 @@ iContext.iNodeActivity->SetError( KErrGeneral ); } +#ifdef _DEBUG + // Purely for debugging purposes + CS60MetaConnectionProvider& node = (CS60MetaConnectionProvider&)iContext.Node(); + if ( node.IsGoneDownRecoveryOngoing() ) + { + // This transition is done in both connection start recovery and in + // gone down recovery. If we are running gone down recovery, there + // are two possible options what can happen next: + // 1) If we are running mobility activity, the error can be ignored + // if there is another carrier available. In this case MPM will + // send a preffered carrier available soon after. + // 2) In all other cases, the only way forward is error propagation + // (see gone down activity for further info). In this case, the + // gone down error is sent to clients and connection will be + // teared down. + // + // In both cases, the GoneDownRecoveryOngoing flag is not cleared. + // For case 1) above, it will be cleared after the connection has + // roamed, and for option 2) it is pretty much irrelevant (we can + // probably avoid a couple of race conditions by leaving the flag + // active for the time being. + S60MCPRLOGSTRING1("S60MCPR<%x>::TNoTagOrIgnoreErrorOrErrorTag::TransitionTag() MPM response while GoneDown recovery active",(TInt*)&iContext.Node()); + } +#endif + // Error transition // if ( !msg ) diff -r 14754bf06654 -r cf1b3ddbe9a1 bearermanagement/S60MCPR/src/s60mcprmobilityactivity.cpp --- a/bearermanagement/S60MCPR/src/s60mcprmobilityactivity.cpp Wed Sep 15 12:38:40 2010 +0300 +++ b/bearermanagement/S60MCPR/src/s60mcprmobilityactivity.cpp Wed Oct 13 14:59:48 2010 +0300 @@ -357,6 +357,30 @@ activity.PostToOriginators(msg); activity.ClearPostedTo(); activity.SetHandshakingFlag(); + + +#ifdef _DEBUG + // Purely for debugging purposes + CS60MetaConnectionProvider& node = (CS60MetaConnectionProvider&)iContext.Node(); + if ( node.IsGoneDownRecoveryOngoing() ) + { + S60MCPRLOGSTRING1("S60MCPR<%x>::TInformMigrationAvailableAndSetHandshakingFlag::DoL() Start mobility handshake while gone down recovery is active",(TInt*)&iContext.Node()) + // During the handshake, there is four different paths that + // needs to be considered for reseting the gone down recovery + // flag. These are: + // 1) Migration is done successfully + // 2) Application rejects the migration + // 3) While migrating, a new preferred carrier is found + // 4) Operation is cancelled or an error occurs + // + // For 1) and 2) the flag needs to be reset, where as for 3) we + // can keep the flag set until the "loop" is exited with a valid + // reselection (essentially this will be same as 1) but only + // after a couple of retrials). For the last option 4) the + // connection is tear down and reseting the flag is not needed. + } +#endif + } @@ -373,6 +397,15 @@ CS60MetaConnectionProvider& node = (CS60MetaConnectionProvider&)iContext.Node(); CS60MobilityActivity& activity = static_cast(*iContext.iNodeActivity); node.Policy()->ApplicationIgnoredTheCarrierL( activity.iPreferredAPId ); + if (node.IsGoneDownRecoveryOngoing() ) + { + // Too bad... Old link has gone down, and application rejected + // the new one. Nothing but problems ahead, but who cares, if + // the application doesn't. So reset the gone down recovery flag + // and assume that everybody is happy with the choise. + S60MCPRLOGSTRING1("S60MCPR<%x>::TSendMigrationRejected::DoL() Application rejected the carrier during gone down recovery -> reset flag",(TInt*)&iContext.Node()) + node.ClearGoneDownRecoveryOngoing(); + } } @@ -449,6 +482,15 @@ { S60MCPRLOGSTRING1("S60MCPR<%x>::TInformMigrationCompleted::DoL()",(TInt*)&iContext.Node()) __ASSERT_DEBUG(iContext.iNodeActivity, User::Panic(KS60MCprPanic, KPanicNoActivity)); + CS60MetaConnectionProvider& node = (CS60MetaConnectionProvider&)iContext.Node(); + if ( node.IsGoneDownRecoveryOngoing() ) + { + // Now we are on a safe side, since the reselect has been done + // IPCPr can and will complete NoBearer requests to the new + // interface instead of the old one. Reset the flag. + S60MCPRLOGSTRING1("S60MCPR<%x>::TInformMigrationCompleted::DoL() New bearer selected while in gone down recovery -> reset flag",(TInt*)&iContext.Node()) + node.ClearGoneDownRecoveryOngoing(); + } iContext.iNodeActivity->PostToOriginators(TCFMobilityProvider::TMigrationComplete().CRef()); iContext.iNodeActivity->ClearPostedTo(); } @@ -471,6 +513,16 @@ // CS60MobilityActivity& activity = static_cast(*iContext.iNodeActivity); activity.ClearHandshakingFlag(); + + if ( node.IsGoneDownRecoveryOngoing() ) + { + // Migration either errored or was cancelled while in gone down + // recovery. Node will be destroyed, so there is no point in + // such, but reset the flag anyway.. + S60MCPRLOGSTRING1("S60MCPR<%x>::TCancelAvailabilityRequest::DoL() Error in migration while in gone down recovery -> reset flag",(TInt*)&iContext.Node()) + node.ClearGoneDownRecoveryOngoing(); + } + // At last we must set the activity in error since we're ready to go down. // iContext.iNodeActivity->SetError( KErrCancel ); diff -r 14754bf06654 -r cf1b3ddbe9a1 bearermanagement/S60MCPR/src/s60mcprstates.cpp --- a/bearermanagement/S60MCPR/src/s60mcprstates.cpp Wed Sep 15 12:38:40 2010 +0300 +++ b/bearermanagement/S60MCPR/src/s60mcprstates.cpp Wed Oct 13 14:59:48 2010 +0300 @@ -214,6 +214,19 @@ ASSERT( error != KErrNone ); + // Special handling for GoneDown errors. In this phase it is necessary + // to make sure that we are actually in GoneDown recovery, not in + // start recovery. So check activity instead of error code + if (iContext.iNodeActivity->ActivityId() == ECFActivityConnectionGoneDownRecovery) + { + // We are requesting error recovery from MPM for GoneDown error + // Set the flag indicating that lower layer is not in a valid state + // so that we can discard NoBearer request coming from data clients + // for the time being. + S60MCPRLOGSTRING1("S60MCPR<%x>::TProcessError::DoL() Setting GoneDown recovery flag",(TInt*)&iContext.Node()) + node.SetGoneDownRecoveryOngoing(); + } + // Create the callback that will eventually create the message that completes this state. CProcessErrorCb* cb = new( ELeave ) CProcessErrorCb( node, iContext.iNodeActivity ); // codescanner::leave CleanupStack::PushL( cb ); // codescanner::leave @@ -223,6 +236,20 @@ // After this we wait for cancellation/error/completion. } +// ----------------------------------------------------------------------------- +// THandleNoBearerDuringGoneDownRecovery::DoL +// ----------------------------------------------------------------------------- +// +DEFINE_SMELEMENT( THandleNoBearerDuringGoneDownRecovery, NetStateMachine::MStateTransition, TContext ) +void THandleNoBearerDuringGoneDownRecovery::DoL() // codescanner::leave + { + // As this is a single triple activity, there is no real activity + // instance available. Therefore, we need to live with the info + // available in the context. + S60MCPRLOGSTRING1("S60MCPR<%x>::THandleNoBearerDuringGoneDownRecovery::DoL() Return error",(TInt*)&iContext.Node()) + TEBase::TError errorMsg ( iContext.iMessage.MessageId(), KErrNotReady ); + iContext.PostToSender( errorMsg ); + } // ----------------------------------------------------------------------------- // TAwaitingSelectNextLayerCompletedOrError::Accept @@ -482,7 +509,59 @@ return EFalse; } +// ----------------------------------------------------------------------------- +// TAwaitingDataClientIdle::Accept +// ----------------------------------------------------------------------------- +// +DEFINE_SMELEMENT( TAwaitingDataClientIdle, NetStateMachine::MState, TContext ) +TBool TAwaitingDataClientIdle::Accept() + { + if (!iContext.iMessage.IsMessage()) + { + return EFalse; + } + __ASSERT_DEBUG(iContext.iPeer, User::Panic(KS60MCprPanic, KPanicPeerMessage)); + iContext.iPeer->ClearFlags(TCFClientType::EActive); + return ETrue; + } +// ----------------------------------------------------------------------------- +// TAwaitingDataClientStatusChange::Accept +// ----------------------------------------------------------------------------- +// +DEFINE_SMELEMENT( TAwaitingDataClientStatusChange, NetStateMachine::MState, TContext ) +TBool TAwaitingDataClientStatusChange::Accept() + { + // Consume the received DataClientStatusChange if a DataClientIdle activity is running + if (iContext.iMessage.IsMessage() && + (iContext.Node().CountActivities( ECFActivityS60McprDataClientIdle ) > 0)) + { + return ETrue; + } + return EFalse; + } + +// ----------------------------------------------------------------------------- +// TAwaitingNoBearerInGoneDownRecovery::Accept +// ----------------------------------------------------------------------------- +// +DEFINE_SMELEMENT( TAwaitingNoBearerInGoneDownRecovery, NetStateMachine::MState, TContext ) +TBool TAwaitingNoBearerInGoneDownRecovery::Accept() + { + if ( iContext.iMessage.IsMessage() ) + { + // Get MCPR to check gone down flag status + CS60MetaConnectionProvider& node = (CS60MetaConnectionProvider&)iContext.Node(); + if ( node.IsGoneDownRecoveryOngoing() ) + { + // We have received a NoBearer while recovering from a GoneDown error + // Needs special handling -> accept + S60MCPRLOGSTRING1("S60MCPR<%x>::TAwaitingNoBearerInGoneDownRecovery::Accept() return true", (TInt*)&iContext.Node()) + return ETrue; + } + } + return EFalse; + } // ----------------------------------------------------------------------------- // TRetrieveServiceId::DoL diff -r 14754bf06654 -r cf1b3ddbe9a1 bearermanagement/mpm/group/mpmserver.mmp --- a/bearermanagement/mpm/group/mpmserver.mmp Wed Sep 15 12:38:40 2010 +0300 +++ b/bearermanagement/mpm/group/mpmserver.mmp Wed Oct 13 14:59:48 2010 +0300 @@ -58,8 +58,6 @@ SOURCE mpmofflinewatcher.cpp SOURCE mpmexpirytimer.cpp SOURCE mpmconnpermquerytimer.cpp -SOURCE mpmofflinequerytimer.cpp -SOURCE mpmconnselectiondlgtimer.cpp USERINCLUDE ../inc diff -r 14754bf06654 -r cf1b3ddbe9a1 bearermanagement/mpm/inc/mpmcommsdataccess.h --- a/bearermanagement/mpm/inc/mpmcommsdataccess.h Wed Sep 15 12:38:40 2010 +0300 +++ b/bearermanagement/mpm/inc/mpmcommsdataccess.h Wed Oct 13 14:59:48 2010 +0300 @@ -300,14 +300,6 @@ TWlanIapType CheckWlanL( TUint32 aIapId ) const; /** - * Checks if given IAP is TUN driver IAP. - * @since S^3 - * @param aIapId IAP Id. - * @return True if given IAP is TUN driver IAP, false otherwise. - */ - TBool IsTunDriverIap( TUint32 aIapId ) const; - - /** * Removes categorised IAPs from the list of available IAPs. * @since 3.2 * @param aIAPList List of IAPs diff -r 14754bf06654 -r cf1b3ddbe9a1 bearermanagement/mpm/inc/mpmconnselectiondlgtimer.h --- a/bearermanagement/mpm/inc/mpmconnselectiondlgtimer.h Wed Sep 15 12:38:40 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,99 +0,0 @@ -/* -* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Declaration of class CMPMConnSelectionDlgTimer. -* -*/ - -#ifndef MPMCONNSELECTIONDLGTIMER_H -#define MPMCONNSELECTIONDLGTIMER_H - -// INCLUDES -#include -#include "mpmexpirytimercallback.h" - -class CMPMServer; -class CMPMExpiryTimer; - -/** -* Class that implements connection selection dialog's -* cancellation delay timer and callback. -* @since 5.2 -*/ -class CMPMConnSelectionDlgTimer : public CBase, public MMPMExpiryTimerCallback - { - -public: - - /** - * New for calling the two-phased constructor. - * @since 5.2 - * @param aServer Pointer to the MPM server object, for callback purposes - * @return Pointer to created object instance - */ - static CMPMConnSelectionDlgTimer* NewL( CMPMServer* aServer ); - - /** - * Destructor. - * @since 5.2 - */ - virtual ~CMPMConnSelectionDlgTimer(); - - /** - * Start the timer. - * @since 5.2 - */ - void StartTimer(); - - /** - * Dialog expiration timeout callback, inherited from MMPMExpiryTimerCallback. - * @since 5.2 - */ - void HandleTimedOut(); - -private: - - /** - * C++ default constructor. - * @since 5.2 - * @param aServer Pointer to the MPM server object, for callback purposes - */ - CMPMConnSelectionDlgTimer( CMPMServer* aServer ); - - /** - * Symbian 2nd phase constructor. - * @since 5.2 - */ - void ConstructL(); - - -private: // data - - /** - * Pointer to the MPM Server object. Not own. - */ - CMPMServer* iServer; - - /** - * Pointer to the common MPM expiry timer object. - */ - CMPMExpiryTimer* iExpiryTimer; - - /** - * Timeout constant. - */ - static const TInt KTimeout = 10000000; // 10 sec - - }; - -#endif // MPMCONNSELECTIONDLGTIMER_H diff -r 14754bf06654 -r cf1b3ddbe9a1 bearermanagement/mpm/inc/mpmofflinequerytimer.h --- a/bearermanagement/mpm/inc/mpmofflinequerytimer.h Wed Sep 15 12:38:40 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,99 +0,0 @@ -/* -* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Declaration of class CMPMOfflineQueryTimer. -* -*/ - -#ifndef MPMOFFLINEQUERYTIMER_H -#define MPMOFFLINEQUERYTIMER_H - -// INCLUDES -#include -#include "mpmexpirytimercallback.h" - -class CMPMServer; -class CMPMExpiryTimer; - -/** -* Class that implements Offline query's cancellation delay timer -* and callback. -* @since 5.2 -*/ -class CMPMOfflineQueryTimer : public CBase, public MMPMExpiryTimerCallback - { - -public: - - /** - * New for calling the two-phased constructor. - * @since 5.2 - * @param aServer Pointer to the MPM server object, for callback purposes - * @return Pointer to created object instance - */ - static CMPMOfflineQueryTimer* NewL( CMPMServer* aServer ); - - /** - * Destructor. - * @since 5.2 - */ - virtual ~CMPMOfflineQueryTimer(); - - /** - * Start the timer. - * @since 5.2 - */ - void StartTimer(); - - /** - * Dialog expiration timeout callback, inherited from MMPMExpiryTimerCallback. - * @since 5.2 - */ - void HandleTimedOut(); - -private: - - /** - * C++ default constructor. - * @since 5.2 - * @param aServer Pointer to the MPM server object, for callback purposes - */ - CMPMOfflineQueryTimer( CMPMServer* aServer ); - - /** - * Symbian 2nd phase constructor. - * @since 5.2 - */ - void ConstructL(); - - -private: // data - - /** - * Pointer to the MPM Server object. Not own. - */ - CMPMServer* iServer; - - /** - * Pointer to the common MPM expiry timer object. - */ - CMPMExpiryTimer* iExpiryTimer; - - /** - * Timeout constant. - */ - static const TInt KTimeout = 10000000; // 10 sec - - }; - -#endif // MPMOFFLINEQUERYTIMER_H diff -r 14754bf06654 -r cf1b3ddbe9a1 bearermanagement/mpm/inc/mpmserver.h --- a/bearermanagement/mpm/inc/mpmserver.h Wed Sep 15 12:38:40 2010 +0300 +++ b/bearermanagement/mpm/inc/mpmserver.h Wed Oct 13 14:59:48 2010 +0300 @@ -201,8 +201,6 @@ class CMPMWlanQueryDialog; class CMPMDialog; class CMPMConnPermQueryTimer; -class CMPMOfflineQueryTimer; -class CMPMConnSelectionDlgTimer; // CLASS DECLARATION /** @@ -915,10 +913,9 @@ /** * Stops cellular connections, except MMS - * @param aSilentOnly stop only silent cellular connections * @since 5.2 */ - void StopCellularConns( TBool aSilentOnly = EFalse ); + void StopCellularConns(); /** * Offline mode watcher updates the mode variable stored by MPM server. @@ -968,49 +965,7 @@ * @return ETrue if timer is running, EFalse otherwise. */ TBool IsConnPermQueryTimerOn(); - - /** - * Starts the offline query timer. - * During the timer, offline query can not be initiated. - * @since 5.2 - */ - void StartOfflineQueryTimer(); - /** - * Resets the offline query timer. - * @since 5.2 - */ - void ResetOfflineQueryTimer(); - - /** - * Returns true if the offline query timer is running. - * During the timer, offline query can not be initiated. - * @since 5.2 - * @return ETrue if timer is running, EFalse otherwise. - */ - TBool IsOfflineQueryTimerOn(); - - /** - * Starts the connection selection dialog timer. - * During the timer, connection selection dialog can not be initiated. - * @since 5.2 - */ - void StartConnSelectionDlgTimer(); - - /** - * Resets the connection selection dialog timer. - * @since 5.2 - */ - void ResetConnSelectionDlgTimer(); - - /** - * Returns true if the connection selection dialog timer is running. - * During the timer, connection selection dialog can not be initiated. - * @since 5.2 - * @return ETrue if timer is running, EFalse otherwise. - */ - TBool IsConnSelectionDlgTimerOn(); - private: /** @@ -1039,13 +994,6 @@ TBool aCheckForBestIap, TMPMBearerType aDestinationBearerType ); - /** - * Check if iap can be disconnected, and disconnect it - * @since 5.2 - * @param aIapId Iap id for checking - */ - void CheckIapForDisconnect( TInt aIapId ); - private: // Data // Pointer to the ConnMonEvents object @@ -1164,13 +1112,6 @@ // Connection permission query cancellation delay timer CMPMConnPermQueryTimer* iConnPermQueryTimer; - - // Offline query cancellation delay timer - CMPMOfflineQueryTimer* iOfflineQueryTimer; - - // Connection selection dialog cancellation delay timer - CMPMConnSelectionDlgTimer* iConnSelectionDlgTimer; - }; #include "mpmserver.inl" diff -r 14754bf06654 -r cf1b3ddbe9a1 bearermanagement/mpm/inc/mpmserversession.h --- a/bearermanagement/mpm/inc/mpmserversession.h Wed Sep 15 12:38:40 2010 +0300 +++ b/bearermanagement/mpm/inc/mpmserversession.h Wed Oct 13 14:59:48 2010 +0300 @@ -957,10 +957,6 @@ // showing duplicate cellulara data usage dialog // TBool iDisconnectDialogShown; - - // Set when error discreet popup shown for IAP so it is - // not shown again if the SNAP is empty - TBool iErrorDiscreetPopupShown; }; #include "mpmserversession.inl" diff -r 14754bf06654 -r cf1b3ddbe9a1 bearermanagement/mpm/src/mpmcommsdataccess.cpp --- a/bearermanagement/mpm/src/mpmcommsdataccess.cpp Wed Sep 15 12:38:40 2010 +0300 +++ b/bearermanagement/mpm/src/mpmcommsdataccess.cpp Wed Oct 13 14:59:48 2010 +0300 @@ -1787,34 +1787,6 @@ } // ----------------------------------------------------------------------------- -// CMPMCommsDatAccess::IsTunDriverIap -// ----------------------------------------------------------------------------- -// -TBool CMPMCommsDatAccess::IsTunDriverIap( TUint32 aIapId ) const - { - TBool isTunDriver = EFalse; - MPMLOGSTRING( "CMPMCommsDatAccess::IsTunDriverIap" ) - - CMDBSession* db = CMDBSession::NewLC( KCDVersion1_1 ); - CCDIAPRecord* record = LoadIapRecordLC( aIapId, db ); - - TBuf bearerTypeName( record->iBearerType.GetL() ); - TBuf serviceTypeName( record->iServiceType.GetL() ); - - if ( (bearerTypeName == TPtrC( KCDTypeNameVirtualBearer ) ) - && ( serviceTypeName == TPtrC( KCDTypeNameLANService ) ) ) - { - // TunDriver; - isTunDriver = ETrue; - } - - CleanupStack::PopAndDestroy( record ); - CleanupStack::PopAndDestroy( db ); - - return isTunDriver; - } - -// ----------------------------------------------------------------------------- // CMPMCommsDatAccess::RemoveCategorisedIapsL // ----------------------------------------------------------------------------- // diff -r 14754bf06654 -r cf1b3ddbe9a1 bearermanagement/mpm/src/mpmconnselectiondlgtimer.cpp --- a/bearermanagement/mpm/src/mpmconnselectiondlgtimer.cpp Wed Sep 15 12:38:40 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,96 +0,0 @@ -/* - * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * This component and the accompanying materials are made available - * under the terms of "Eclipse Public License v1.0" - * which accompanies this distribution, and is available - * at the URL "http://www.eclipse.org/legal/epl-v10.html". - * - * Initial Contributors: - * Nokia Corporation - initial contribution. - * - * Contributors: - * - * Description: Implementation of class CMPMConnSelectionDlgTimer. - * This timer is used for preventing showing of connection selection - * dialog when the user has cancelled the previous selection dialog. - * - */ - -#include "mpmlogger.h" -#include "mpmserver.h" -#include "mpmexpirytimer.h" -#include "mpmconnselectiondlgtimer.h" - -// --------------------------------------------------------------------------- -// Creates a new object by calling the two-phased constructor. -// --------------------------------------------------------------------------- -// -CMPMConnSelectionDlgTimer* CMPMConnSelectionDlgTimer::NewL( CMPMServer* aServer ) - { - MPMLOGSTRING( "CMPMConnSelectionDlgTimer::NewL" ) - - CMPMConnSelectionDlgTimer* self = new( ELeave ) CMPMConnSelectionDlgTimer( aServer ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// Default C++ constructor. -// --------------------------------------------------------------------------- -// -CMPMConnSelectionDlgTimer::CMPMConnSelectionDlgTimer( CMPMServer* aServer ) : - iServer( aServer ) - { - MPMLOGSTRING( "CMPMConnSelectionDlgTimer::CMPMConnSelectionDlgTimer" ) - } - -// --------------------------------------------------------------------------- -// Symbian 2nd phase constructor. -// --------------------------------------------------------------------------- -// -void CMPMConnSelectionDlgTimer::ConstructL() - { - MPMLOGSTRING( "CMPMConnSelectionDlgTimer::ConstructL" ) - iExpiryTimer = CMPMExpiryTimer::NewL( *this, KTimeout ); - } - -// --------------------------------------------------------------------------- -// Destructor. -// --------------------------------------------------------------------------- -// -CMPMConnSelectionDlgTimer::~CMPMConnSelectionDlgTimer() - { - MPMLOGSTRING( "CMPMConnSelectionDlgTimer::~CMPMConnSelectionDlgTimer" ) - if ( iExpiryTimer ) - { - iExpiryTimer->Cancel(); - delete iExpiryTimer; - } - } - -// --------------------------------------------------------------------------- -// Start the timer. -// --------------------------------------------------------------------------- -// -void CMPMConnSelectionDlgTimer::StartTimer() - { - MPMLOGSTRING( "CMPMConnSelectionDlgTimer::StartTimer" ) - if ( iExpiryTimer ) - { - iExpiryTimer->Cancel(); - iExpiryTimer->Start(); - } - } - -// --------------------------------------------------------------------------- -// Handles the timeout. -// --------------------------------------------------------------------------- -// -void CMPMConnSelectionDlgTimer::HandleTimedOut() - { - MPMLOGSTRING( "CMPMConnSelectionDlgTimer::HandleTimedOut" ) - iServer->ResetConnSelectionDlgTimer(); - } diff -r 14754bf06654 -r cf1b3ddbe9a1 bearermanagement/mpm/src/mpmdatausagewatcher.cpp --- a/bearermanagement/mpm/src/mpmdatausagewatcher.cpp Wed Sep 15 12:38:40 2010 +0300 +++ b/bearermanagement/mpm/src/mpmdatausagewatcher.cpp Wed Oct 13 14:59:48 2010 +0300 @@ -118,24 +118,15 @@ // Get the new Cellular data usage setting value from central repository. TInt oldCellularDataUsage = iCellularDataUsage; - if ( GetCurrentDataUsageValue() == KErrNone // Updates iCellularDataUsage - && oldCellularDataUsage != iCellularDataUsage - && iServer->RoamingWatcher()->RoamingStatus() != EMPMRoamingStatusUnknown ) + if ( GetCurrentDataUsageValue() == KErrNone ) { - // Setting changed while cellular is in use - - if ( iCellularDataUsage == ECmCellularDataUsageDisabled ) + // Stop cellular connections if the setting changes into Disabled. + if ( oldCellularDataUsage != ECmCellularDataUsageDisabled && + iCellularDataUsage == ECmCellularDataUsageDisabled && + iServer->RoamingWatcher()->RoamingStatus() != EMPMRoamingStatusUnknown ) { - // Cellular data usage disabled -> disconnect cellular iServer->StopCellularConns(); } - else if ( iCellularDataUsage == ECmCellularDataUsageConfirm ) - { - // Cellular data usage needs to be confirmed -> disconnect if - // there are only silent cellular connections left. - iServer->StopCellularConns( ETrue ); - } - } } diff -r 14754bf06654 -r cf1b3ddbe9a1 bearermanagement/mpm/src/mpmiapselection.cpp --- a/bearermanagement/mpm/src/mpmiapselection.cpp Wed Sep 15 12:38:40 2010 +0300 +++ b/bearermanagement/mpm/src/mpmiapselection.cpp Wed Oct 13 14:59:48 2010 +0300 @@ -81,9 +81,9 @@ { // stop confirm dialog in case one exists // - MPMLOGSTRING( "CMPMIapSelection::~CMPMIapSelection" ) StopDisplayingStartingDlg(); + delete iConfirmDlgStarting; delete iDialog; delete iWlanDialog; } @@ -494,12 +494,12 @@ TConnectionId connId = iSession->ConnectionId(); ChooseBestIAPL( iChooseIapPref, availableIAPList, iNextBestExists ); - CleanupStack::PopAndDestroy( &availableIAPList ); TUint32 validateIapId = iChooseIapPref.IapId(); // Check if any suitable IAP's were found, if not then complete selection with error code if ( validateIapId == 0 ) { ChooseIapComplete( KErrNotFound, NULL ); + CleanupStack::PopAndDestroy( &availableIAPList ); return; } @@ -590,9 +590,13 @@ EStarting, *iSession ); ChooseIapComplete( KErrNone, &iChooseIapPref ); + } + } } + + CleanupStack::PopAndDestroy( &availableIAPList ); } // ----------------------------------------------------------------------------- @@ -726,20 +730,40 @@ { MPMLOGSTRING2( "CMPMIapSelection::ChooseIapComplete aError = %d", aError ) + if ( ( aError == KErrNone ) && + !( iChooseIapPref.NoteBehaviour() & + TExtendedConnPref::ENoteBehaviourConnDisableNotes ) ) + { + TConnectionState state = + iSession->MyServer().CheckUsageOfIap( aPolicyPref->IapId(), + iSession->ConnectionId() ); + TBool connectionAlreadyActive = (state == EStarted || state == EStarting || state == ERoaming); + if ( !connectionAlreadyActive && + ( iSession->IsMMSIap( aPolicyPref->IapId() ) == EFalse ) ) + { + CConnectionUiUtilities* connUiUtils( NULL ); + TRAPD( popupError, connUiUtils = CConnectionUiUtilities::NewL() ); + if ( popupError == KErrNone ) + { + connUiUtils->ConnectingViaDiscreetPopup( aPolicyPref->IapId() ); + delete connUiUtils; + } + } + } + if( iWlanDialog ) { delete iWlanDialog; iWlanDialog = NULL; } + iSession->ChooseIapComplete( aError, aPolicyPref ); // Set choose iap state to none iChooseIapState = ENoConnection; iNextBestExists = EFalse; iUserSelectionSnapId = 0; iUserSelectionIapId = 0; iImplicitState = EImplicitStart; - - iSession->ChooseIapComplete( aError, aPolicyPref ); } @@ -811,13 +835,6 @@ ChooseIapComplete( aError, NULL ); delete iDialog; iDialog = NULL; - // Start ConnSelectionDlgTimer if user has cancelled the connection - // selection dialog. During the timer interval dialog is not shown. - // - if( aError == KErrCancel ) - { - iSession->MyServer().StartConnSelectionDlgTimer(); - } } @@ -1005,22 +1022,13 @@ MPMLOGSTRING( "CMPMIapSelection::ImplicitConnectionIapSelectionL" ) iSession->AvailableUnblacklistedIapsL( iStoredAvailableIaps, iSession->ConnectionId() ); - // Create and initiate user dialog only if it hasnot - // been cancelled in last 10s(KTimeout) + // Create and initiate user dialog // - if ( !iSession->MyServer().IsConnSelectionDlgTimerOn() ) - { - iDialog = CMPMDialog::NewL( *this, + iDialog = CMPMDialog::NewL( *this, iStoredAvailableIaps, iChooseIapPref.BearerSet(), *iSession->MyServer().ConnectDialogQueue(), iSession->MyServer() ); - } - else - { - MPMLOGSTRING( "CMPMIapSelection::ImplicitConnectionIapSelectionL, iConnSelectionDlgTimer running" ) - ChooseIapComplete( KErrCancel, NULL ); - } } // ----------------------------------------------------------------------------- @@ -1031,25 +1039,25 @@ { if( iImplicitState == EImplicitStart ) { - MPMLOGSTRING( "CMPMIapSelection::ImplicitConnectionL EImplicitStart" ) + MPMLOGSTRING( "CMPMIapSelection::ImplicitConnectionIapSelectionL EImplicitStart" ) iImplicitState = EImplicitWlanScan; ImplicitConnectionCheckWlanScanNeededL(); } else if( iImplicitState == EImplicitWlanScan ) { - MPMLOGSTRING( "CMPMIapSelection::ImplicitConnectionL EImplicitWlanScan" ) + MPMLOGSTRING( "CMPMIapSelection::ImplicitConnectionIapSelectionL EImplicitWlanScan" ) iImplicitState = EImplicitUserSelection; ImplicitConnectionIapSelectionL(); } else if( iImplicitState == EImplicitUserSelection ) { - MPMLOGSTRING( "CMPMIapSelection::ImplicitConnectionL EImplicitUserSelection" ) + MPMLOGSTRING( "CMPMIapSelection::ImplicitConnectionIapSelectionL EImplicitUserSelection" ) iImplicitState = EImplicitWlanQuery; ImplicitConnectionWlanNoteL(); } else //EImplicitWlanQuery { - MPMLOGSTRING( "CMPMIapSelection::ImplicitConnectionL EImplicitWlanQuery" ) + MPMLOGSTRING( "CMPMIapSelection::ImplicitConnectionIapSelectionL EImplicitWlanQuery" ) CompleteImplicitConnectionL(); } } @@ -1128,14 +1136,9 @@ ret = aAvailableIAPs.Find( destNetIaps[k].iIapId ); if ( ret == KErrNotFound ) { - TBool isTunDriver = iCommsDatAccess->IsTunDriverIap( - destNetIaps[k].iIapId ); - if ( !isTunDriver ) - { - MPMLOGSTRING2( "CMPMIapSelection::ChooseBestIAPL: \ - Remove unavailable IAP = %i", destNetIaps[k].iIapId ) - destNetIaps.Remove( k ); - } + MPMLOGSTRING2( "CMPMIapSelection::ChooseBestIAPL: \ +Remove unavailable IAP = %i", destNetIaps[k].iIapId ) + destNetIaps.Remove( k ); } } @@ -1151,14 +1154,11 @@ ret = aAvailableIAPs.Find( embeddedIaps[m].iIapId ); if ( ret == KErrNotFound ) { - TBool isTunDriver = iCommsDatAccess->IsTunDriverIap( embeddedIaps[m].iIapId ); - if ( !isTunDriver ) - { - // Remove IapId because it's not available - MPMLOGSTRING2( "CMPMIapSelection::ChooseBestIAPL: \ + // Remove IapId because it's not available + // + MPMLOGSTRING2( "CMPMIapSelection::ChooseBestIAPL: \ Remove unavailable IAP = %i", embeddedIaps[m].iIapId ) - embeddedIaps.Remove( m ); - } + embeddedIaps.Remove( m ); } } } diff -r 14754bf06654 -r cf1b3ddbe9a1 bearermanagement/mpm/src/mpmofflinequerytimer.cpp --- a/bearermanagement/mpm/src/mpmofflinequerytimer.cpp Wed Sep 15 12:38:40 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,96 +0,0 @@ -/* - * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * This component and the accompanying materials are made available - * under the terms of "Eclipse Public License v1.0" - * which accompanies this distribution, and is available - * at the URL "http://www.eclipse.org/legal/epl-v10.html". - * - * Initial Contributors: - * Nokia Corporation - initial contribution. - * - * Contributors: - * - * Description: Implementation of class CMPMOfflineQueryTimer. - * This timer is used for preventing offline query when the user - * has cancelled the previous offline query. - * - */ - -#include "mpmlogger.h" -#include "mpmserver.h" -#include "mpmexpirytimer.h" -#include "mpmofflinequerytimer.h" - -// --------------------------------------------------------------------------- -// Creates a new object by calling the two-phased constructor. -// --------------------------------------------------------------------------- -// -CMPMOfflineQueryTimer* CMPMOfflineQueryTimer::NewL( CMPMServer* aServer ) - { - MPMLOGSTRING( "CMPMOfflineQueryTimer::NewL" ) - - CMPMOfflineQueryTimer* self = new( ELeave ) CMPMOfflineQueryTimer( aServer ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// Default C++ constructor. -// --------------------------------------------------------------------------- -// -CMPMOfflineQueryTimer::CMPMOfflineQueryTimer( CMPMServer* aServer ) : - iServer( aServer ) - { - MPMLOGSTRING( "CMPMOfflineQueryTimer::CMPMOfflineQueryTimer" ) - } - -// --------------------------------------------------------------------------- -// Symbian 2nd phase constructor. -// --------------------------------------------------------------------------- -// -void CMPMOfflineQueryTimer::ConstructL() - { - MPMLOGSTRING( "CMPMOfflineQueryTimer::ConstructL" ) - iExpiryTimer = CMPMExpiryTimer::NewL( *this, KTimeout ); - } - -// --------------------------------------------------------------------------- -// Destructor. -// --------------------------------------------------------------------------- -// -CMPMOfflineQueryTimer::~CMPMOfflineQueryTimer() - { - MPMLOGSTRING( "CMPMOfflineQueryTimer::~CMPMOfflineQueryTimer" ) - if ( iExpiryTimer ) - { - iExpiryTimer->Cancel(); - delete iExpiryTimer; - } - } - -// --------------------------------------------------------------------------- -// Start the timer. -// --------------------------------------------------------------------------- -// -void CMPMOfflineQueryTimer::StartTimer() - { - MPMLOGSTRING( "CMPMOfflineQueryTimer::StartTimer" ) - if ( iExpiryTimer ) - { - iExpiryTimer->Cancel(); - iExpiryTimer->Start(); - } - } - -// --------------------------------------------------------------------------- -// Handles the timeout. -// --------------------------------------------------------------------------- -// -void CMPMOfflineQueryTimer::HandleTimedOut() - { - MPMLOGSTRING( "CMPMOfflineQueryTimer::HandleTimedOut" ) - iServer->ResetOfflineQueryTimer(); - } diff -r 14754bf06654 -r cf1b3ddbe9a1 bearermanagement/mpm/src/mpmserver.cpp --- a/bearermanagement/mpm/src/mpmserver.cpp Wed Sep 15 12:38:40 2010 +0300 +++ b/bearermanagement/mpm/src/mpmserver.cpp Wed Oct 13 14:59:48 2010 +0300 @@ -47,8 +47,6 @@ #include "mpmpropertydef.h" #include "mpmofflinewatcher.h" #include "mpmconnpermquerytimer.h" -#include "mpmofflinequerytimer.h" -#include "mpmconnselectiondlgtimer.h" // ============================= LOCAL FUNCTIONS =============================== @@ -383,10 +381,6 @@ delete iCommsDatAccess; delete iConnPermQueryTimer; - - delete iOfflineQueryTimer; - - delete iConnSelectionDlgTimer; } @@ -559,33 +553,32 @@ MPMLOGSTRING2( "CMPMServer::RemoveBMConnection - aConnId = 0x%x", aConnId ) + TInt count = iActiveBMConns.Count(); + + // Decrement by one, because count is n, + // but indexes in array are 0 .. n-1. + // + count--; + // This time we are browsing the array from the end to the beginning, // because removing one element from array affects index numbering. - // Decrement i by one, because count is n, but indexes in array are 0 .. n-1 - for ( TInt i = iActiveBMConns.Count() - 1; i >= 0; i-- ) + // + for ( TInt i = count; i >= 0; i-- ) { if ( iActiveBMConns[i].iConnInfo.iConnId == aConnId ) { - - TInt closeIapId = iActiveBMConns[i].iConnInfo.iIapId; - if ( !closeIapId ) - { - TRAP_IGNORE( closeIapId = aSession.IapSelectionL()->MpmConnPref().IapId() ); - } + // If Connection Id found, remove it. + // + iActiveBMConns.Remove( i ); - // If Connection Id found, remove it. - iActiveBMConns.Remove( i ); - // Update active connection if ( aSession.ChooseBestIapCalled() ) { UpdateActiveConnection( aSession ); } - - CheckIapForDisconnect( closeIapId ); } } - + #ifdef _DEBUG // Dump array of active connections to log in order to support testing. // @@ -604,6 +597,7 @@ TUint32 connectionIapId( 0 ); // Set the Connection Id and SNAP + // TConnectionInfo connInfo; connInfo.iConnId = aConnId; @@ -615,6 +609,7 @@ if ( ( index1 != KErrNotFound ) && ( index1 < iActiveBMConns.Count() ) ) { // If connInfo found, set the Iap Id as connectionIapId + // connectionIapId = iActiveBMConns[index1].iConnInfo.iIapId; } @@ -883,13 +878,23 @@ "CMPMServer::RemoveBMIAPConnection - aIapId = %i, aConnId = 0x%x", aIapId, aConnId ) + TActiveBMConn conn; + conn.iConnInfo.iIapId = aIapId; + // The IAP connection lifetime is determined by the two calls // IAPConnectionStarted and IAPConnectionStopped. + // + TInt count = iActiveBMConns.Count(); + + // Decrement by one, because count is n, + // but indexes in array are 0 .. n-1. + // + count--; // This time we are browsing the array from the end to the beginning, // because removing one element from array affects index numbering. - // Decrement i by one, because count is n, but indexes in array are 0 .. n-1 - for ( TInt i = iActiveBMConns.Count() - 1; i >= 0; i-- ) + // + for ( TInt i = count; i >= 0; i-- ) { if ( iActiveBMConns[i].iConnInfo.iIapId == aIapId ) { @@ -982,7 +987,7 @@ #endif // _DEBUG // Read info for forced roaming from Commdat - TUint32 maxOpenTransAttempts ( KMaxOpenTransAttempts ) ; + TUint32 maxOpenTransAttempts ( KMaxOpenTransAttempts ); TUint32 retryAfter ( KRetryAfter ); TInt err; // CommDat reading might fail because CommDat session could be locked by another process at the moment @@ -2247,7 +2252,7 @@ // Stop all cellular connections except MMS // --------------------------------------------------------------------------- // -void CMPMServer::StopCellularConns( TBool aSilentOnly ) +void CMPMServer::StopCellularConns() { MPMLOGSTRING( "CMPMServer::StopCellularConns" ) @@ -2276,14 +2281,7 @@ if (!(err == KErrNone && iapId == mmsIap)) { // Stop the conn / IAP. - if ( aSilentOnly ) - { - CheckIapForDisconnect( iapId ); - } - else - { - StopConnections( iapId ); - } + StopConnections( iapId ); stoppedIaps.Append( iapId ); } } @@ -2416,189 +2414,6 @@ return retval; } -// --------------------------------------------------------------------------- -// CMPMServer::StartOfflineQueryTimer -// Starts the offline query timer. -// --------------------------------------------------------------------------- -// -void CMPMServer::StartOfflineQueryTimer() - { - MPMLOGSTRING( "CMPMServer::StartOfflineQueryTimer" ) - - if ( !iOfflineQueryTimer ) - { - TRAPD( err, iOfflineQueryTimer = CMPMOfflineQueryTimer::NewL( this ) ); - if ( err == KErrNone ) - { - iOfflineQueryTimer->StartTimer(); - MPMLOGSTRING( "CMPMServer::StartOfflineQueryTimer: Ok." ) - } - } - } - -// --------------------------------------------------------------------------- -// CMPMServer::ResetOfflineQueryTimer -// Resets the offline query timer. -// --------------------------------------------------------------------------- -// -void CMPMServer::ResetOfflineQueryTimer() - { - MPMLOGSTRING( "CMPMServer::ResetOfflineQueryTimer" ) - - if ( iOfflineQueryTimer ) - { - delete iOfflineQueryTimer; - iOfflineQueryTimer = NULL; - MPMLOGSTRING( "CMPMServer::ResetOfflineQueryTimer: Ok." ) - } - } - -// --------------------------------------------------------------------------- -// CMPMServer::IsOfflineQueryTimerOn -// Tells if the offline query timer is on. -// --------------------------------------------------------------------------- -// -TBool CMPMServer::IsOfflineQueryTimerOn() - { - MPMLOGSTRING( "CMPMServer::IsOfflineQueryTimerOn" ) - - TBool retval = EFalse; - if ( iOfflineQueryTimer ) - { - retval = ETrue; - MPMLOGSTRING( "CMPMServer::IsOfflineQueryTimerOn: Yes." ) - } - return retval; - } - -// --------------------------------------------------------------------------- -// CMPMServer::StartConnSelectionDlgTimer -// Starts the connection selection dialog timer. -// --------------------------------------------------------------------------- -// -void CMPMServer::StartConnSelectionDlgTimer() - { - MPMLOGSTRING( "CMPMServer::StartConnSelectionDlgTimer" ) - - if ( !iConnSelectionDlgTimer ) - { - TRAPD( err, iConnSelectionDlgTimer = CMPMConnSelectionDlgTimer::NewL( this ) ); - if ( err == KErrNone ) - { - iConnSelectionDlgTimer->StartTimer(); - MPMLOGSTRING( "CMPMServer::StartConnSelectionDlgTimer: Ok." ) - } - } - } - -// --------------------------------------------------------------------------- -// CMPMServer::ResetConnSelectionDlgTimer -// Resets the connection selection dialog timer. -// --------------------------------------------------------------------------- -// -void CMPMServer::ResetConnSelectionDlgTimer() - { - MPMLOGSTRING( "CMPMServer::ResetConnSelectionDlgTimer" ) - - if ( iConnSelectionDlgTimer ) - { - delete iConnSelectionDlgTimer; - iConnSelectionDlgTimer = NULL; - MPMLOGSTRING( "CMPMServer::ResetConnSelectionDlgTimer: Ok." ) - } - } - -// --------------------------------------------------------------------------- -// CMPMServer::IsConnSelectionDlgTimerOn -// Tells if the connection selection dialog timer is on. -// --------------------------------------------------------------------------- -// -TBool CMPMServer::IsConnSelectionDlgTimerOn() - { - MPMLOGSTRING( "CMPMServer::IsConnSelectionDlgTimerOn" ) - - TBool retval = EFalse; - if ( iConnSelectionDlgTimer ) - { - retval = ETrue; - MPMLOGSTRING( "CMPMServer::IsConnSelectionDlgTimerOn: Yes." ) - } - return retval; - } - -// ----------------------------------------------------------------------------- -// CMPMServer::CheckIapForDisconnect -// ----------------------------------------------------------------------------- -// -void CMPMServer::CheckIapForDisconnect( TInt aIapId ) - { - MPMLOGSTRING2( "CMPMServer::CheckIapForDisconnect - aIapId = 0x%x", - aIapId ) - - // Fix for case ou1cimx1#468999: stop sessions to cellular iap - // when there is only silent connections to it, and cellular usage is set - // to always ask - - // Check iap type and usage policy - TMPMBearerType bearerType( EMPMBearerTypeNone ); - TRAP_IGNORE( bearerType = CommsDatAccess()->GetBearerTypeL( aIapId ) ); - - TBool closeIap = ( bearerType == EMPMBearerTypePacketData - && DataUsageWatcher()->CellularDataUsage() == ECmCellularDataUsageConfirm ); - - // No need to put iapSessions to CleanupStack; there are no leaves - RPointerArray iapSessions; - if ( closeIap ) - { - // Check for non-silent sessions to iap - // closeIap is left true also when there are no sessions using the iap - for ( TInt i = 0; i < iActiveBMConns.Count(); i++ ) - { - - CMPMServerSession* session - = GetServerSession( iActiveBMConns[i].iConnInfo.iConnId ); - - TInt sessionIapId = iActiveBMConns[i].iConnInfo.iIapId; - if ( !sessionIapId ) - { - TRAP_IGNORE( sessionIapId = session->IapSelectionL()->MpmConnPref().IapId() ); - } - - if ( sessionIapId == aIapId ) - { - iapSessions.Append( session ); // Don't mind if Append fails - - TBool silent( ETrue ); - TRAP_IGNORE( silent = session->IapSelectionL()->MpmConnPref().NoteBehaviour() - & TExtendedConnPref::ENoteBehaviourConnDisableNotes ); - if ( !silent ) - { - // Non-silent session to iap found - closeIap = EFalse; - break; // for - } - } - } - } - - if ( closeIap ) - { - MPMLOGSTRING2( "CMPMServer::CheckIapForDisconnect - stopping silent sessions to iap 0x%x", - aIapId ) - // Stop all (silent) sessions to iap - for ( TInt i = 0; i < iapSessions.Count(); i++) - { - MPMLOGSTRING2( "CMPMServer::CheckIapForDisconnect - stopping connId 0x%x", - iapSessions[i]->ConnectionId()); - iapSessions[i]->StopConnection(); - } - } - - iapSessions.Close(); - - } - - // ----------------------------------------------------------------------------- // TMPMBlackListConnId::Append // ----------------------------------------------------------------------------- diff -r 14754bf06654 -r cf1b3ddbe9a1 bearermanagement/mpm/src/mpmserversession.cpp --- a/bearermanagement/mpm/src/mpmserversession.cpp Wed Sep 15 12:38:40 2010 +0300 +++ b/bearermanagement/mpm/src/mpmserversession.cpp Wed Oct 13 14:59:48 2010 +0300 @@ -76,8 +76,7 @@ iStoredIapInfo(), iIapSelection( NULL ), iMigrateState( EMigrateNone ), - iDisconnectDialogShown( EFalse ), - iErrorDiscreetPopupShown( EFalse ) + iDisconnectDialogShown( EFalse ) { } @@ -107,12 +106,11 @@ // CMPMServerSession::~CMPMServerSession() { - MPMLOGSTRING( "CMPMServerSession::~CMPMServerSession" ) - - - // Remove serverside objects for notification session. - // - iMyServer.RemoveSession( this ); + MPMLOGSTRING( "CMPMServerSession::~CMPMServerSession - start" ) + + delete iDisconnectDlg; + delete iConfirmDlgRoaming; + delete iIapSelection; if (UserConnection()) { @@ -137,11 +135,11 @@ // Make sure the connection is removed from server's information array. iMyServer.RemoveBMConnection( iConnId, *this ); - - delete iDisconnectDlg; - delete iConfirmDlgRoaming; - delete iIapSelection; - + + // Remove server's objects releated to session. + iMyServer.RemoveSession( this ); + + MPMLOGSTRING( "CMPMServerSession::~CMPMServerSession - end" ) } @@ -1472,10 +1470,6 @@ connUiUtils->ConnectionErrorDiscreetPopup( error ); delete connUiUtils; connUiUtils = NULL; - - // Error discreet popup has been shown. This is needed so that we - // dont show it again for SNAP. - iErrorDiscreetPopupShown = ETrue; } } @@ -1647,8 +1641,8 @@ // KErrConnectionTerminated is received when user disconnects // connection from Settings/Connection mgr. // - if ( ( error == KErrCancel ) || ( error == KErrTimedOut ) || ( error == KErrConnectionTerminated ) - || ( error == KErrDisconnected && iMyServer.IsPhoneOffline() ) ) + if ( ( error == KErrCancel ) || ( error == KErrTimedOut ) || ( error == KErrConnectionTerminated ) + || ( error == KErrDisconnected && iMyServer.IsPhoneOffline() ) ) { neededAction = EPropagateError; @@ -3357,6 +3351,26 @@ { MPMLOGSTRING2( "CMPMServerSession::ChooseIapComplete aError = %d", aError ) + // Show error popup if it's allowed per client request. + // No error popup shown to SNAP. + if ( ChooseBestIapCalled() && (!( iIapSelection->MpmConnPref().NoteBehaviour() & + TExtendedConnPref::ENoteBehaviourConnDisableNotes )) + && ( aError != KErrNone ) + && ( iIapSelection->MpmConnPref().SnapId() == 0 ) ) + { + CConnectionUiUtilities* connUiUtils = NULL; + TRAPD( error, connUiUtils = CConnectionUiUtilities::NewL() ); + if ( error == KErrNone && connUiUtils ) + { + // Note: Below function shows the discreet popup only if the error code + // belongs to the set of errors that are shown to the user. + // Otherwise the popup is not shown. + connUiUtils->ConnectionErrorDiscreetPopup( aError ); + delete connUiUtils; + connUiUtils = NULL; + } + } + // Try to write back arguments and complete message. // if ( !iChooseIapMessage.IsNull() ) @@ -3411,58 +3425,6 @@ MPMLOGSTRING( "CMPMServerSession::ChooseIapComplete Message completed" ) iChooseIapMessage.Complete( aError ); } - - CConnectionUiUtilities* connUiUtils( NULL ); - - MPMLOGSTRING2( "CMPMServerSession::ChooseIapComplete: this = %X", this ) - MPMLOGSTRING2( "CMPMServerSession::ChooseIapComplete: iIapSelection = %X", iIapSelection ) - - // Enable showing error discreet popup for SNAP again - // Temp var used because session may get deleted during the showing of popup - TBool tempErrorDiscreetPopupShown = iErrorDiscreetPopupShown; - iErrorDiscreetPopupShown = EFalse; - - // NOTE: Be careful with discreet popups! It jams session at this point - // for a moment, BUT the session may be called meanwhile. - // This may/will lead to problems e.g. if session is being deleted => all (heap) objects - // deleted in destructor are gone! - // Show error popup if it's allowed per client request. - // Error popup shown to SNAP only if error discreet has not been shown for IAP. - if ( ChooseBestIapCalled() && (!( iIapSelection->MpmConnPref().NoteBehaviour() & - TExtendedConnPref::ENoteBehaviourConnDisableNotes )) - && ( aError != KErrNone ) - && ( tempErrorDiscreetPopupShown == EFalse ) ) - { - TRAPD( popupError, connUiUtils = CConnectionUiUtilities::NewL() ); - if ( popupError == KErrNone ) - { - // Note: Below function shows the discreet popup only if the error code - // belongs to the set of errors that are shown to the user. - // Otherwise the popup is not shown. - connUiUtils->ConnectionErrorDiscreetPopup( aError ); - delete connUiUtils; - connUiUtils = NULL; - } - } - else if ( aPolicyPref && - ( aError == KErrNone ) && - !( iIapSelection->MpmConnPref().NoteBehaviour() & - TExtendedConnPref::ENoteBehaviourConnDisableNotes ) ) - { - TConnectionState state = iMyServer.CheckUsageOfIap( aPolicyPref->IapId(), iConnId ); - TBool connectionAlreadyActive = (state == EStarted || state == EStarting || state == ERoaming); - if ( !connectionAlreadyActive && - ( IsMMSIap( aPolicyPref->IapId() ) == EFalse ) ) - { - TRAPD( popupError, connUiUtils = CConnectionUiUtilities::NewL() ); - if ( popupError == KErrNone ) - { - connUiUtils->ConnectingViaDiscreetPopup( aPolicyPref->IapId() ); - delete connUiUtils; - connUiUtils = NULL; - } - } - } } @@ -3573,14 +3535,30 @@ // TBool CMPMServerSession::UseUserConnPref() { - if ((iAppUid != iMyServer.CsIdWatcher()->ConnectScreenId()) && - iMyServer.UserConnection()) + if ( ( iAppUid != iMyServer.CsIdWatcher()->ConnectScreenId() ) && + iMyServer.UserConnection() ) { MPMLOGSTRING( "CMPMServerSession::UseUserConnPref - User connection active" ); + + // If user connection is blacklisted for this connection, don't use it. + RArray blacklistedIaps; + CleanupClosePushL( blacklistedIaps ); + iMyServer.GetBlacklistedIAP( iConnId, blacklistedIaps ); + TInt blacklistedIapFoundError = blacklistedIaps.Find( iMyServer.UserConnPref()->IapId() ); + CleanupStack::PopAndDestroy( &blacklistedIaps ); + if ( blacklistedIapFoundError != KErrNotFound ) + { + MPMLOGSTRING( "CMPMServerSession::UseUserConnPref -\ + User connection blacklisted -> don't use user connection" ); + return EFalse; + } + // Check whether default connection will be used if ( iIapSelection->MpmConnPref().ConnType() == TMpmConnPref::EConnTypeDefault ) { + MPMLOGSTRING( "CMPMServerSession::UseUserConnPref -\ + Default connection -> use user connection" ); return ETrue; } else if ( ( iIapSelection->MpmConnPref().ConnType() == @@ -3588,7 +3566,7 @@ PrefsAllowWlan() ) { MPMLOGSTRING( "CMPMServerSession::UseUserConnPref -\ - Prompt from the user" ); + Prompt from the user -> use user connection" ); // Prompt from the user -> use user connection return ETrue; } @@ -3607,6 +3585,8 @@ if ( ( error == KErrNone ) && ( isInternetSnap ) && PrefsAllowWlan() ) { + MPMLOGSTRING( "CMPMServerSession::UseUserConnPref -\ + Application preferencies in Internet SNAP -> use user connection" ); // Iap belongs to internet snap -> use user connection return ETrue; } diff -r 14754bf06654 -r cf1b3ddbe9a1 bearermanagement/mpm/src/mpmwlanquerydialog.cpp --- a/bearermanagement/mpm/src/mpmwlanquerydialog.cpp Wed Sep 15 12:38:40 2010 +0300 +++ b/bearermanagement/mpm/src/mpmwlanquerydialog.cpp Wed Oct 13 14:59:48 2010 +0300 @@ -198,16 +198,25 @@ EOfflineResponseYes ); if( iIapSelection.Session()->MyServer().CommsDatAccess()->CheckEasyWLanL( iWlanIapId ) ) { - MPMLOGSTRING( "CMPMWlanQueryDialog::RunL starting wlan network query" ) - GetNetworkPrefs(); - return; + // It may be possible that there's still an active WLAN, which we'll now share. + TUint32 activeWlanIap = iIapSelection.Session()->MyServer().IsWlanConnectionStartedL( + iIapSelection.Session()->MyServer().CommsDatAccess() ); + if ( activeWlanIap ) + { + iWlanIapId = activeWlanIap; + } + else + { + MPMLOGSTRING( "CMPMWlanQueryDialog::RunL starting wlan network query" ) + GetNetworkPrefs(); + return; + } } } else if ( iStatus.Int() == KErrCancel ) { iIapSelection.Session()->MyServer().SetOfflineWlanQueryResponse( EOfflineResponseNo ); - iIapSelection.Session()->MyServer().StartOfflineQueryTimer(); MPMLOGSTRING2( "CMPMWlanQueryDialog::RunL offline query returned %d", iStatus.Int() ) } @@ -465,7 +474,6 @@ if( !emergencyCallEstablished && iIapSelection.Session()->MyServer().IsPhoneOffline() && - !activeWlanIap && iIapSelection.Session()->MyServer().OfflineWlanQueryResponse() != EOfflineResponseYes && iOverrideStatus == KErrNone ) { @@ -475,22 +483,14 @@ iIapSelection.UserWlanSelectionDoneL( KErrPermissionDenied, iWlanIapId ); } else - { + { + MPMLOGSTRING( "CMPMWlanQueryDialog::StartWlanQuery, starting offline note" ) iWlanQueryState = EOffline; - if ( !iIapSelection.Session()->MyServer().IsOfflineQueryTimerOn() ) - { - MPMLOGSTRING( "CMPMWlanQueryDialog::StartWlanQuery, starting offline query" ) - iNotifier.StartNotifierAndGetResponse( iStatus, - KUidCOfflineWlanNoteDlg, - KNullDesC8(), - iOfflineReply ); - SetActive(); - } - else - { - MPMLOGSTRING( "CMPMWlanQueryDialog::StartWlanQuery, offline note not shown as OfflineQueryTimer is active" ) - iIapSelection.UserWlanSelectionDoneL( KErrPermissionDenied, iWlanIapId ); - } + iNotifier.StartNotifierAndGetResponse( iStatus, + KUidCOfflineWlanNoteDlg, + KNullDesC8(), + iOfflineReply ); + SetActive(); } } // if easy wlan iap and some wlan iap started, use existing connection diff -r 14754bf06654 -r cf1b3ddbe9a1 cmmanager/cmmgr/Framework/BWinsCw/CmManager_prot_setupU.DEF --- a/cmmanager/cmmgr/Framework/BWinsCw/CmManager_prot_setupU.DEF Wed Sep 15 12:38:40 2010 +0300 +++ b/cmmanager/cmmgr/Framework/BWinsCw/CmManager_prot_setupU.DEF Wed Oct 13 14:59:48 2010 +0300 @@ -388,6 +388,5 @@ ?WatcherUnRegister@CCmManagerImpl@@QAEXXZ @ 387 NONAME ; void CCmManagerImpl::WatcherUnRegister(void) ?RemoveDestFromPool@CCmManagerImpl@@QAEXPAVCCmDestinationImpl@@@Z @ 388 NONAME ; void CCmManagerImpl::RemoveDestFromPool(class CCmDestinationImpl *) ?OfferKeyEventL@CmPluginBaseSettingsDlg@@MAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 389 NONAME ; enum TKeyResponse CmPluginBaseSettingsDlg::OfferKeyEventL(struct TKeyEvent const &, enum TEventCode) - ?AddCmL@CCmSettingsUi@@QAEKAAKK@Z @ 390 NONAME ; unsigned long CCmSettingsUi::AddCmL(unsigned long &, unsigned long) - ?EditCmL@CCmSettingsUi@@QAE?AW4TResult@1@K@Z @ 391 NONAME ; enum CCmSettingsUi::TResult CCmSettingsUi::EditCmL(unsigned long) + diff -r 14754bf06654 -r cf1b3ddbe9a1 cmmanager/cmmgr/Framework/EABI/CmManager_prot_setupU.def --- a/cmmanager/cmmgr/Framework/EABI/CmManager_prot_setupU.def Wed Sep 15 12:38:40 2010 +0300 +++ b/cmmanager/cmmgr/Framework/EABI/CmManager_prot_setupU.def Wed Oct 13 14:59:48 2010 +0300 @@ -435,6 +435,4 @@ _ZN14CCmManagerImpl18RemoveDestFromPoolEP18CCmDestinationImpl @ 434 NONAME _ZN14CCmManagerImpl24DestinationStillExistedLEP18CCmDestinationImpl @ 435 NONAME _ZN23CmPluginBaseSettingsDlg14OfferKeyEventLERK9TKeyEvent10TEventCode @ 436 NONAME - _ZN13CCmSettingsUi6AddCmLERmm @ 437 NONAME - _ZN13CCmSettingsUi7EditCmLEm @ 438 NONAME diff -r 14754bf06654 -r cf1b3ddbe9a1 cmmanager/cmmgr/Framework/Inc/cmsettingsuiimpl.h --- a/cmmanager/cmmgr/Framework/Inc/cmsettingsuiimpl.h Wed Sep 15 12:38:40 2010 +0300 +++ b/cmmanager/cmmgr/Framework/Inc/cmsettingsuiimpl.h Wed Oct 13 14:59:48 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -59,24 +59,6 @@ * @return TBool */ TBool SelectDestinationDlgL( TUint32& aDestinationId ); - - /** - * Launches the dialog for adding connection methods - * @since 3.2.3 - * @param aDestUid destination id for the new cm - * @param aBearerType bearer type for the new cm - * @return TUint32 id of the new cm - */ - TUint32 AddCmL( TUint32& aDestUid, TUint32 aBearerType ); - - /** - * Launches the dialog for editing connection methods - * @since 3.2.3 - * @param aCmId id of the cm to edit - * @return TInt - KDialogUserExit or KDialogUserBack - */ - TInt EditCmL( TUint32 aCmId ); - private: diff -r 14754bf06654 -r cf1b3ddbe9a1 cmmanager/cmmgr/Framework/Src/cmmanagerimpl.cpp --- a/cmmanager/cmmgr/Framework/Src/cmmanagerimpl.cpp Wed Sep 15 12:38:40 2010 +0300 +++ b/cmmanager/cmmgr/Framework/Src/cmmanagerimpl.cpp Wed Oct 13 14:59:48 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -712,17 +712,10 @@ // Two instances of class CCmCommsDatNotifier are created here and // referred by all watchers in CmManager. One is to watch change in Iap Table // and the other is to watch change in Snap Table. - - if ( iCommsDatIapNotifier == NULL ) - { - iCommsDatIapNotifier = CCmCommsDatNotifier::NewL( KCDTIdIAPRecord ); - } + iCommsDatIapNotifier = CCmCommsDatNotifier::NewL( KCDTIdIAPRecord ); - if ( iCommsDatSnapNotifier == NULL ) - { - TUint32 snapTableId = GetSnapTableIdL(); - iCommsDatSnapNotifier = CCmCommsDatNotifier::NewL( snapTableId ); - } + TUint32 snapTableId = GetSnapTableIdL(); + iCommsDatSnapNotifier = CCmCommsDatNotifier::NewL( snapTableId ); } //============================================================================= diff -r 14754bf06654 -r cf1b3ddbe9a1 cmmanager/cmmgr/Framework/Src/cmsettingsui.cpp --- a/cmmanager/cmmgr/Framework/Src/cmsettingsui.cpp Wed Sep 15 12:38:40 2010 +0300 +++ b/cmmanager/cmmgr/Framework/Src/cmsettingsui.cpp Wed Oct 13 14:59:48 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -15,10 +15,7 @@ * */ -//This include contains full path because there is -//an other version of the same file available in the public -//SDK and we want to make sure that the internal header is used. -#include +#include #include "cmsettingsuiimpl.h" #include @@ -85,30 +82,3 @@ { return iImpl->SelectDestinationDlgL( aDestinationId ); } - -//----------------------------------------------------------------------------- -// CCmSettingsUi::AddCmL() -//----------------------------------------------------------------------------- -// - -EXPORT_C TUint32 CCmSettingsUi::AddCmL( TUint32& aDestUid, TUint32 aBearerType ) - { - return iImpl->AddCmL( aDestUid, aBearerType ); - } - -//----------------------------------------------------------------------------- -// CCmSettingsUi::EditCmL() -//----------------------------------------------------------------------------- -// - -EXPORT_C CCmSettingsUi::TResult CCmSettingsUi::EditCmL( TUint32 aCmId ) - { - if ( iImpl->EditCmL( aCmId ) == KDialogUserExit ) - { - return EExit; - } - else - { - return EBack; - } - } diff -r 14754bf06654 -r cf1b3ddbe9a1 cmmanager/cmmgr/Framework/Src/cmsettingsuiimpl.cpp --- a/cmmanager/cmmgr/Framework/Src/cmsettingsuiimpl.cpp Wed Sep 15 12:38:40 2010 +0300 +++ b/cmmanager/cmmgr/Framework/Src/cmsettingsuiimpl.cpp Wed Oct 13 14:59:48 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -20,11 +20,7 @@ #include "cmsettingsuiimpl.h" #include "cmmanagerimpl.h" #include "destdlg.h" -#include -#include -#include #include -#include #include "selectdestinationdlg.h" #include @@ -126,102 +122,3 @@ return dlg->ExecuteLD( R_CMMANAGER_LIST_QUERY_WITH_MSGBOX ); } -//----------------------------------------------------------------------------- -// CCmSettingsUiImpl::AddCmL -//----------------------------------------------------------------------------- -// -TUint32 CCmSettingsUiImpl::AddCmL( TUint32& aDestUid, TUint32 aBearerType ) - { - // Add new connection method - TUint32 addedIapId(0); - - CCmDestinationImpl* destImpl = iCmManagerImpl->DestinationL( aDestUid ); - CleanupStack::PushL(destImpl); - - // Check first if parent destination is protected - if ( destImpl->ProtectionLevel() == CMManager::EProtLevel1 ) - { - TCmCommonUi::ShowNoteL( R_CMWIZARD_CANNOT_PERFORM_FOR_PROTECTED, - TCmCommonUi::ECmErrorNote ); - } - else - { - // Automatically check for available conn methods? - - TBool manualConfigure = ETrue; - if (aBearerType == KUidWlanBearerType) - { - TInt retval = - TCmCommonUi::ShowConfirmationQueryL( R_CMWIZARD_AUTOMATIC_CHECK ); - - manualConfigure = ( retval == EAknSoftkeyYes || retval == EAknSoftkeyOk ) - ? EFalse : ETrue; - } - - CCmPluginBase* plugin = destImpl->CreateConnectionMethodL( aBearerType ); - CleanupStack::PushL( plugin ); - - // Bearer-specific UI-supported initialization is done by plug-ins - if ( plugin->InitializeWithUiL( manualConfigure ) ) - { - destImpl->UpdateL(); // commit changes - - RArray additionalCms; - CleanupClosePushL (additionalCms); - plugin->GetAdditionalUids( additionalCms ); - //if there are additional cms created, move them to the target destination as well - for ( TInt i = 0; iGetConnectionMethodL( additionalCms[i] ); - CleanupStack::PushL(cm); - iCmManagerImpl->CopyConnectionMethodL( *destImpl, *cm ); - CleanupStack::PopAndDestroy( cm ); - } - CleanupStack::PopAndDestroy( &additionalCms ); - addedIapId = plugin->GetIntAttributeL( CMManager::ECmIapId ); - } - CleanupStack::PopAndDestroy(plugin); - } - CleanupStack::PopAndDestroy(destImpl); - - return addedIapId; - } - -//----------------------------------------------------------------------------- -// CCmSettingsUiImpl::EditCmL -//----------------------------------------------------------------------------- -// -TInt CCmSettingsUiImpl::EditCmL( TUint32 aCmId ) - { - // Edit connection method - TInt ret( KDialogUserBack ); - - CCmPluginBase* cm = iCmManagerImpl->GetConnectionMethodL( aCmId ); - CleanupStack::PushL( cm ); - - cm->ReLoadL(); - if ( cm->GetBoolAttributeL( CMManager::ECmProtected ) || - cm->GetBoolAttributeL( CMManager::ECmDestination ) ) - { - TCmCommonUi::ShowNoteL( R_CMMANAGERUI_INFO_PROTECTED_CANNOT_EDIT, - TCmCommonUi::ECmErrorNote ); - } - else if ( cm->GetBoolAttributeL( CMManager::ECmBearerHasUi ) ) - { - // check if the cm is in use - if ( cm->GetBoolAttributeL( CMManager::ECmConnected ) ) - { - TCmCommonUi::ShowNoteL( R_QTN_SET_NOTE_AP_IN_USE_EDIT, - TCmCommonUi::ECmErrorNote ); - } - else - { - //Makes sure that the commsdat notifier is initialized. - cm->CmMgr().StartCommsDatNotifierL(); - ret = cm->RunSettingsL(); - } - } - CleanupStack::PopAndDestroy(cm); - return ret; - } - diff -r 14754bf06654 -r cf1b3ddbe9a1 cmmanager/cmmgr/Plugins/Group/bld.inf --- a/cmmanager/cmmgr/Plugins/Group/bld.inf Wed Sep 15 12:38:40 2010 +0300 +++ b/cmmanager/cmmgr/Plugins/Group/bld.inf Wed Oct 13 14:59:48 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-2008 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -32,6 +32,5 @@ #include "../cmpluginwlan/group/bld.inf" #include "../cmpluginembdestination/group/bld.inf" #include "../cmpluginvpn/group/bld.inf" -#include "../cmplugintundriver/group/bld.inf" // End of File diff -r 14754bf06654 -r cf1b3ddbe9a1 cmmanager/cmmgr/Plugins/cmplugintundriver/data/20027F3E.rss --- a/cmmanager/cmmgr/Plugins/cmplugintundriver/data/20027F3E.rss Wed Sep 15 12:38:40 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +0,0 @@ -/* -* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: ECom resource descriptor for TUN Driver plug-in -* -*/ - -#include "ecom/registryinfo.rh" - -// Because attribute enums had to be added to namespace CMManager -// it's not possible to included cmplugintundriverdef.h. -// Thus bearer type id had to be redefined here. -#define KPluginTUNDriverBearerTypeUid 0x20027F3F - -RESOURCE REGISTRY_INFO theInfo - { - dll_uid = 0x20027F3E; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x10207377; // = KCMPluginInterfaceUid. Do NOT modify it!!! - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = KPluginTUNDriverBearerTypeUid; - version_no = 1; - display_name = "VPN"; - default_data = "VPN"; - opaque_data = ""; - } - }; - } - }; - } diff -r 14754bf06654 -r cf1b3ddbe9a1 cmmanager/cmmgr/Plugins/cmplugintundriver/group/bld.inf --- a/cmmanager/cmmgr/Plugins/cmplugintundriver/group/bld.inf Wed Sep 15 12:38:40 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -/* -* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: TUN Driver plug-in IF implementation class. -* -*/ - - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS -// export localised loc file - -PRJ_MMPFILES -cmplugintundriver.mmp - -PRJ_EXTENSIONS -START EXTENSION s60/mifconv -OPTION TARGETFILE cmplugintundriver.mif -OPTION HEADERFILE cmpluginvpn.mbg -OPTION SOURCES -c8,1 qgn_prop_vpn_access_point -END diff -r 14754bf06654 -r cf1b3ddbe9a1 cmmanager/cmmgr/Plugins/cmplugintundriver/group/cmplugintundriver.mmp --- a/cmmanager/cmmgr/Plugins/cmplugintundriver/group/cmplugintundriver.mmp Wed Sep 15 12:38:40 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,75 +0,0 @@ -/* -* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Project specification for TUN Driver plug-in -* -*/ - -#include -#include - -TARGET cmplugintundriver.dll -UID 0x10009D8D 0x20027F3E - -TARGETTYPE PLUGIN - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src - -SOURCE cmpluginproxytundriver.cpp -SOURCE cmplugintundriver.cpp -SOURCE ../../../Framework/Src/cmlogger.cpp - -SOURCEPATH ../data - -START RESOURCE 20027F3E.rss -TARGET cmplugintundriver.rsc -END - - -USERINCLUDE ../data -USERINCLUDE ../../../Framework/Inc -USERINCLUDE ../../../Framework/SrcData - -// Component specific internal headers -USERINCLUDE ../inc - -// ADO specific internal headers -SYSTEMINCLUDE ../../../../../inc - -//Macro to /epoc32 headers -MW_LAYER_SYSTEMINCLUDE - -#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS -APP_LAYER_SYSTEMINCLUDE -#endif - -LIBRARY hlplch.lib -LIBRARY euser.lib -LIBRARY ecom.lib -LIBRARY cmmanager.lib -LIBRARY commsdat.lib - -LIBRARY aknskins.lib -LIBRARY efsrv.lib -LIBRARY CommonEngine.lib -LIBRARY cone.lib eikcore.lib avkon.lib -LIBRARY eikcoctl.lib eikdlg.lib -LIBRARY bafl.lib -LIBRARY vpnapi.lib -LIBRARY centralrepository.lib -LIBRARY featmgr.lib -LIBRARY cmmanagerdatabase.lib -DEBUGLIBRARY flogger.lib diff -r 14754bf06654 -r cf1b3ddbe9a1 cmmanager/cmmgr/Plugins/cmplugintundriver/group/cmplugintundriver_icons.mk --- a/cmmanager/cmmgr/Plugins/cmplugintundriver/group/cmplugintundriver_icons.mk Wed Sep 15 12:38:40 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -# -# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -# All rights reserved. -# This component and the accompanying materials are made available -# under the terms of "Eclipse Public License v1.0" -# which accompanies this distribution, and is available -# at the URL "http://www.eclipse.org/legal/epl-v10.html". -# -# Initial Contributors: -# Nokia Corporation - initial contribution. -# -# Contributors: -# -# Description: Makefile for icons of TUN Driver plug-in -# - -ifeq (WINS,$(findstring WINS, $(PLATFORM))) -ZDIR=\epoc32\release\$(PLATFORM)\$(CFG)\Z -else -ZDIR=\epoc32\data\z -endif - - -TARGETDIR=$(ZDIR)\resource\apps -ICONTARGETFILENAME=$(TARGETDIR)\cmpluginvpn.mif - -HEADERDIR=\epoc32\include -HEADERFILENAME=$(HEADERDIR)\cmpluginvpn.mbg - -do_nothing : - @rem do_nothing - -MAKMAKE : do_nothing - -BLD : do_nothing - -CLEAN : do_nothing - -LIB : do_nothing - -CLEANLIB : do_nothing - -# ---------------------------------------------------------------------------- -# NOTE 1: DO NOT DEFINE MASK FILE NAMES! They are included automatically by -# MifConv if the mask detph is defined. -# -# NOTE 2: Usually, source paths should not be included in the bitmap -# definitions. MifConv searches for the icons in all icon directories in a -# predefined order, which is currently \s60\icons, \s60\bitmaps2, \s60\bitmaps. -# The directory \s60\icons is included in the search only if the feature flag -# __SCALABLE_ICONS is defined. -# ---------------------------------------------------------------------------- - -RESOURCE : - mifconv $(ICONTARGETFILENAME) /h$(HEADERFILENAME) \ - /c8,1 qgn_prop_vpn_access_point.bmp - -FREEZE : do_nothing - -SAVESPACE : do_nothing - -RELEASABLES : - @echo $(HEADERFILENAME)&& \ - @echo $(ICONTARGETFILENAME) - -FINAL : do_nothing diff -r 14754bf06654 -r cf1b3ddbe9a1 cmmanager/cmmgr/Plugins/cmplugintundriver/inc/cmplugintundriver.h --- a/cmmanager/cmmgr/Plugins/cmplugintundriver/inc/cmplugintundriver.h Wed Sep 15 12:38:40 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,165 +0,0 @@ -/* -* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: TUN Driver plugin IF implementation class. -* -*/ - -#ifndef TUNDRIVER_PLUGIN_INCLUDED -#define TUNDRIVER_PLUGIN_INCLUDED - -#include -#include - -class CCDVirtualIAPNextLayerRecord; - -/** - * TUN Driver Plugin IF implementation class - * This class will be instantiated when the connection is created using the PluginBearer Id KPluginTUNDriverBearerTypeUid - * @since S^3 - */ -NONSHARABLE_CLASS(CCmPluginTUNDriver) : public CCmPluginLanBase - { - - public: - - /** - * This function is invoked by the cmmanager plugin framework to load TUNDriver plugin. - * This plugin will be identified based on the plugin UID from cmpluginproxy.cpp - * @param aInitParam Initialization parameters. - * @return CCmPluginTUNDriver. - */ - static CCmPluginTUNDriver* NewL( TCmPluginInitParam* aInitParam ); - - /** - * Destructor. - */ - virtual ~CCmPluginTUNDriver(); - - /** - * This function is invoked by the cmmanager plugin framework while loading the plugin. - * CreateInstance of the plugin will invoke each time plugin type needs to instantiated - * @param aInitParam Initialization parameters. - * @return CCmPluginBaseEng. - */ - virtual CCmPluginBaseEng* CreateInstanceL( TCmPluginInitParam& aInitParam ) const; - - /** - * This is function is invoked by cmmanager framework. - * Once the plugin type is identified, identifies the right ServiceRecord and loads. - */ - void LoadServiceSettingL(); - - public: - - /** - * This is function is invoked by cmmanager framework. - * Check here if every data of the connection method is valid - * before records were saved to CommsDat. - * Set incorrect attribute id in iInvalidAttribute and leave - * with KErrArgument. - */ - void PrepareToUpdateRecordsL(); - - /** - * This is function is invoked by cmmanager framework. If Settings are enabled. - * Currently Settings for TUNDriver is not supported. - * @return KErrNotSupported. - */ - virtual TInt RunSettingsL(); - - /** - * This is function is invoked by cmmanager framework. - * Once the plugin type is identified, type of bearer and other attributes types are obtained. - * @param aAttribute Attribute type. - * @return Integer attribute's value. - */ - virtual TUint32 GetIntAttributeL( const TUint32 aAttribute ) const; - - /** - * This is function is invoked by cmmanager framework. - * Once the plugin type is identified, finds wether the IAP selected belongs to TUNDriver. - * @param aIapId IapId for the selected accesspoint - * @return ETrue if IAP can be handled else EFalse. - */ - virtual TBool CanHandleIapIdL( TUint32 aIapId ) const; - - /** - * This is function is invoked by cmmanager framework. - * Once the plugin type is identified, finds wether the IAP selected belongs to TUNDriver. - * This is identified if service type is LANService and Bearer is VirtualBearer and - * IfName is TunDriverIf and agent is TunDriverAgent. - * @param aIapRecord - iaprecord of type CCDIAPRecord from commsdatabase - * @return ETrue if IAP can be handled else EFalse. - */ - virtual TBool CanHandleIapIdL( CommsDat::CCDIAPRecord* aIapRecord ) const; - - /** - * This is function is invoked by cmmanager framework when needs to initialzed with UI. - * This feature is currently not supported by the plugin. - * @param aManuallyConfigure Manual configuration on or off. - * @return KErrNotSupported - */ - TBool InitializeWithUiL( TBool aManuallyConfigure ); - - /** - * This is function is invoked by plugin destructor. - * If the function is not defined then compiler will throw error for TUNDriver plugin construction. - */ - virtual void AdditionalReset(); - - protected: - - /** - * This is function is invoked by cmmanager framework. - * @return aName is LanService name and aRecordId the service record Id. - */ - virtual void ServiceRecordIdLC( HBufC* &aServiceName, TUint32& aRecordId ); - - /** - * This is function is invoked by cmmanager framework. - * @param aBearerName Output parameter for bearer name. - * @param aRecordId Output parameter for Bearer record Id. - */ - virtual void BearerRecordIdLC( HBufC* &aBearerName, TUint32& aRecordId ); - - /** - * This is function is invoked by cmmanager framework. - * Once the plugin type is identified, this invoked for the first time when plgun is loaded - * while creating connection for TUNDriver plugin. - */ - virtual void CreateNewServiceRecordL(); - - private: - - /** - * This is default constructor of the plugin. - * @param aInitParam Initialization parameters. - */ - CCmPluginTUNDriver( TCmPluginInitParam* aInitParam ); - - /** - * This is second phase constructor of the plugin. - * Builds the commsdatabase with the Tables required for TUNDriver plugin. - */ - void ConstructL(); - - /** - * This is function is invoked by cmmanager framework. - * Returns the service record of the TUN driver plugin. - * @return service record. - */ - CommsDat::CCDLANServiceRecord& ServiceRecord()const; - }; - -#endif // TUNDRIVER_PLUGIN_INCLUDED diff -r 14754bf06654 -r cf1b3ddbe9a1 cmmanager/cmmgr/Plugins/cmplugintundriver/inc/cmtundrivercommonconstants.h --- a/cmmanager/cmmgr/Plugins/cmplugintundriver/inc/cmtundrivercommonconstants.h Wed Sep 15 12:38:40 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: constants for the TUN Driver plugin -* -*/ - -#ifndef CMTUNDRIVERCOMMONCONSTANTS_H -#define CMTUNDRIVERCOMMONCONSTANTS_H - -// CONSTANTS -_LIT( KPluginVPNResDirAndFileName, "z:cmpluginvpnui.rsc" ); - -// Do not change this default to other value because proxy number is using this value as default port number -const TInt KVpnProxyPortNumberDefault = 0; - -#endif // CMTUNDRIVERCOMMONCONSTANTS_H diff -r 14754bf06654 -r cf1b3ddbe9a1 cmmanager/cmmgr/Plugins/cmplugintundriver/src/cmpluginproxytundriver.cpp --- a/cmmanager/cmmgr/Plugins/cmplugintundriver/src/cmpluginproxytundriver.cpp Wed Sep 15 12:38:40 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* -* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: TUN Driver plug-in IF implementation class. -* -*/ - -#include "cmplugintundriver.h" -#include -#include - -// Exported proxy for instantiation method resolution -// Define the interface UIDs -const TImplementationProxy ImplementationTable[] = - { - IMPLEMENTATION_PROXY_ENTRY( KPluginTUNDriverBearerTypeUid, CCmPluginTUNDriver::NewL) - }; - -EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount) -/** -* ImplementationGroupProxy -* This is function is invoked by E-Com Plugin framework for TUNDriver plugin UID when needs to be loaded. -* @param -* @return -*/ - { - aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy); - - return ImplementationTable; - } diff -r 14754bf06654 -r cf1b3ddbe9a1 cmmanager/cmmgr/Plugins/cmplugintundriver/src/cmplugintundriver.cpp --- a/cmmanager/cmmgr/Plugins/cmplugintundriver/src/cmplugintundriver.cpp Wed Sep 15 12:38:40 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,472 +0,0 @@ -/* -* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: TUN Driver plug-in IF implementation class. -* -*/ - -#include -#include -#include - -#include "cmlogger.h" -#include "cmdestinationimpl.h" -#include "cmplugintundriver.h" - -using namespace CMManager; -using namespace CommsDat; - -const TUint32 KDefaultPriorityTUNDriver = 0; -_LIT( KPluginTUNDriverFileIcons, "z:cmplugintundriver.mbm" ); -_LIT(KTUNDriverBearerName,"TUNDriverBearer"); -#define KCDAgentNameTUNDriver _S("tundriveragt.agt") -_LIT(KTUNDriverTunnelAgent,"tundriveragt.agt"); -#define KCDInterfaceNameTUNDriver _S("tundriver") -_LIT(KTUNDriverInterfaceName,"tundriver"); - -const TInt KLanLastSocketActivityTimeout = -1; -const TInt KLanLastSocketClosedTimeout = -1; - -const TBool KDefIpAddrFromServer = EFalse; -const TBool KDefIpDnsAddrFromServer = EFalse; -const TBool KDefIp6DnsAddrFromServer = EFalse; -_LIT( KEmpty, ""); - -static const TCmAttribConvTable STUNDriverConvTbl[] = - { - { ETUNDriverIfNetworks, ETUNDriverRangeMax, NULL }, - { ETUNDriverIfNetworks, KCDTIdLANIfNetworks, NULL }, - { ETUNDriverIpNetMask, KCDTIdLANIpNetMask, &CheckIPv4ValidityL }, - { ETUNDriverIpGateway, KCDTIdLANIpGateway, &CheckIPv4ValidityL }, - { ETUNDriverIpAddrFromServer, KCDTIdLANIpAddrFromServer, NULL }, - { ETUNDriverIpAddr, KCDTIdLANIpAddr, &CheckIPv4ValidityL }, - { ETUNDriverIpDNSAddrFromServer, KCDTIdLANIpDNSAddrFromServer, NULL }, - { ETUNDriverIpNameServer1, KCDTIdLANIpNameServer1, &CheckIPv4ValidityL }, - { ETUNDriverIpNameServer2, KCDTIdLANIpNameServer2, &CheckIPv4ValidityL }, - { ETUNDriverIp6DNSAddrFromServer, KCDTIdLANIp6DNSAddrFromServer, NULL }, - { ETUNDriverIp6NameServer1, KCDTIdLANIp6NameServer1, &CheckIPv4ValidityL }, - { ETUNDriverIp6NameServer2, KCDTIdLANIp6NameServer2, &CheckIPv4ValidityL }, - { ETUNDriverIpAddrLeaseValidFrom, KCDTIdLANIpAddrLeaseValidFrom, NULL }, - { ETUNDriverIpAddrLeaseValidTo, KCDTIdLANIpAddrLeaseValidTo, NULL }, - { ETUNDriverConfigDaemonManagerName, KCDTIdLANConfigDaemonManagerName, NULL }, - { ETUNDriverConfigDaemonName, KCDTIdLANConfigDaemonName, NULL }, - { ETUNDriverServiceExtensionTableName, KCDTIdLANServiceExtensionTableName, NULL }, - { ETUNDriverServiceExtensionTableRecordId, KCDTIdLANServiceExtensionTableRecordId, NULL }, - { 0, 0, NULL } - }; - -static const TCmCommonAttrConvArrayItem STUNDriverCommonConvTbl[] = - { - { ETUNDriverIfNetworks, ECmIFNetworks }, - { ETUNDriverIpNetMask, ECmIPNetmask }, - { ETUNDriverIpGateway, ECmIPGateway }, - { ETUNDriverIpAddrFromServer, ECmIPAddFromServer }, - { ETUNDriverIpAddr, ECmIPAddress }, - { ETUNDriverIpDNSAddrFromServer, ECmIPDNSAddrFromServer }, - { ETUNDriverIpNameServer1, ECmIPNameServer1 }, - { ETUNDriverIpNameServer2, ECmIPNameServer2 }, - { ETUNDriverIp6DNSAddrFromServer, ECmIP6DNSAddrFromServer }, - { ETUNDriverIp6NameServer1, ECmIP6NameServer1 }, - { ETUNDriverIp6NameServer2, ECmIP6NameServer2 }, - { ETUNDriverIpAddrLeaseValidFrom, ECmIPAddrLeaseValidFrom }, - { ETUNDriverIpAddrLeaseValidTo, ECmIPAddrLeaseValidTo }, - { ETUNDriverConfigDaemonManagerName, ECmConfigDaemonManagerName }, - { ETUNDriverConfigDaemonName, ECmConfigDaemonName }, - { 0, 0 } - }; - -// -------------------------------------------------------------------------- -// CCmPluginTUNDriver::NewL() -// -------------------------------------------------------------------------- -// -CCmPluginTUNDriver* CCmPluginTUNDriver::NewL( TCmPluginInitParam* aInitParam ) - { - CCmPluginTUNDriver* self = new( ELeave ) CCmPluginTUNDriver( aInitParam ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// -------------------------------------------------------------------------- -// CCmPluginTUNDriver::~CCmPluginTUNDriver() -// -------------------------------------------------------------------------- -// -CCmPluginTUNDriver::~CCmPluginTUNDriver() - { - AdditionalReset(); - } - -// -------------------------------------------------------------------------- -// CCmPluginTUNDriver::CreateInstanceL -// -------------------------------------------------------------------------- -// -CCmPluginBaseEng* CCmPluginTUNDriver::CreateInstanceL( TCmPluginInitParam& aInitParam ) const - { - CCmPluginTUNDriver* self = new( ELeave ) CCmPluginTUNDriver( &aInitParam ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// -------------------------------------------------------------------------- -// CCmPluginTUNDriver::CCmPluginTUNDriver() -// -------------------------------------------------------------------------- -// -CCmPluginTUNDriver::CCmPluginTUNDriver( TCmPluginInitParam* aInitParam ) - : CCmPluginLanBase( aInitParam ) - { - CLOG_CREATE; - iBearerType = KPluginTUNDriverBearerTypeUid; - } - -// -------------------------------------------------------------------------- -// CCmPluginTUNDriver::ConstructL() -// -------------------------------------------------------------------------- -// -void CCmPluginTUNDriver::ConstructL() - { - CCmPluginLanBase::ConstructL(); - iBearerRecName = KCDTypeNameVirtualBearer; - - AddConverstionTableL( (CCDRecordBase**)&iServiceRecord, NULL, STUNDriverConvTbl ); - AddCommonConversionTableL( STUNDriverCommonConvTbl ); - } - -// -------------------------------------------------------------------------- -// CCmPluginTUNDriver::GetIntAttributeL() -// -------------------------------------------------------------------------- -// -TUint32 CCmPluginTUNDriver::GetIntAttributeL( const TUint32 aAttribute ) const - { - LOGGER_ENTERFN( "CCmPluginTUNDriver::GetIntAttributeL" ); - - TUint32 retVal( 0 ); - - switch( aAttribute ) - { - case ECmBearerIcon: - { - MAknsSkinInstance* skinInstance = AknsUtils::SkinInstance(); - TAknsItemID id; - TParse mbmFile; - User::LeaveIfError( mbmFile.Set( KPluginTUNDriverFileIcons, - &KDC_BITMAP_DIR, NULL ) ); - - retVal = (TUint32)AknsUtils::CreateGulIconL( - skinInstance, - id, - mbmFile.FullName(), - EMbmCmpluginvpnQgn_prop_vpn_access_point, - EMbmCmpluginvpnQgn_prop_vpn_access_point_mask ); - } - break; - case ECmCommsDBBearerType: - { - retVal = KCommDbBearerLAN; - } - break; - case ECmDefaultUiPriority: - case ECmDefaultPriority: - { - retVal = aAttribute == ECmDefaultPriority ? - GlobalBearerPriority( TPtrC(KCDTypeNameLANService) ) : - GlobalUiBearerPriority( TPtrC(KCDTypeNameLANService) ); - - if ( retVal == KDataMobilitySelectionPolicyPriorityWildCard ) - { - retVal = KDefaultPriorityTUNDriver; - } - } - break; - default: - { - retVal = CCmPluginBaseEng::GetIntAttributeL( aAttribute ); - } - } - - return retVal; - } - -// -------------------------------------------------------------------------- -// CCmPluginTUNDriver::CanHandleIapIdL() -// -------------------------------------------------------------------------- -// -TBool CCmPluginTUNDriver::CanHandleIapIdL( TUint32 aIapId ) const - { - LOGGER_ENTERFN( "CCmPluginTUNDriver::CanHandleIapIdL1" ); - TBool retVal( EFalse ); - - CCDIAPRecord *iapRecord = static_cast - (CCDRecordBase::RecordFactoryL(KCDTIdIAPRecord)); - - CleanupStack::PushL( iapRecord ); - iapRecord->SetRecordId( aIapId ); - - TRAPD( err, iapRecord->LoadL( Session() )); - - if( !err ) - { - CanHandleIapIdL( iapRecord ); - } - - CleanupStack::PopAndDestroy( iapRecord ); - return retVal; - } - -// -------------------------------------------------------------------------- -// CCmPluginTUNDriver::CanHandleIapIdL() -// -------------------------------------------------------------------------- -// -TBool CCmPluginTUNDriver::CanHandleIapIdL( CCDIAPRecord *aIapRecord ) const - { - LOGGER_ENTERFN( "CCmPluginTUNDriver::CanHandleIapIdL" ); - - TBool retVal( EFalse ); - - if( TPtrC( aIapRecord->iServiceType ) == TPtrC(KCDTypeNameLANService) && - TPtrC( aIapRecord->iBearerType ) == TPtrC(KCDTypeNameVirtualBearer) ) - { - CMDBRecordSet* bearersRS = - new ( ELeave ) CMDBRecordSet(KCDTIdVirtualBearerRecord); - CleanupStack::PushL( bearersRS ); - CCDVirtualBearerRecord* bearerRecord = - static_cast( CCDRecordBase::RecordFactoryL( KCDTIdVirtualBearerRecord ) ); - CleanupStack::PushL( bearerRecord ); - - // Find entries used "tundriveragt.agt" as agent from Table VirtualBearer - bearerRecord->iBearerAgent.SetL( KTUNDriverTunnelAgent ); - bearerRecord->iVirtualBearerNifName.SetL( KTUNDriverInterfaceName ); - bearersRS->iRecords.AppendL( bearerRecord ); - - CleanupStack::Pop( bearerRecord ); - bearerRecord = NULL; - if ( bearersRS->FindL( Session() ) ) - { - TUint32 recordId = (*bearersRS)[0]->RecordId(); - TPtrC bearerName( (*bearersRS)[0]->iRecordName.GetL() ); - TPtrC bearerAgent( (*bearersRS)[0]->iBearerAgent.GetL() ); - TPtrC bearerInterface( (*bearersRS)[0]->iVirtualBearerNifName.GetL() ); - - // Further comparing record ID referred to by this VPN IAP with entry ID in table VirtualBearer - // And also comparing bear name with our expected one "vpnbearer" - if ( bearerAgent == TPtrC( KCDAgentNameTUNDriver ) && - bearerInterface == TPtrC( KCDInterfaceNameTUNDriver ) ) - { - retVal = ETrue; - } - } - - CleanupStack::PopAndDestroy( bearersRS ); - } - return retVal; - } - -// -------------------------------------------------------------------------- -// CCmPluginTUNDriver::RunSettingsL() -// -------------------------------------------------------------------------- -// -TInt CCmPluginTUNDriver::RunSettingsL() - { - LOGGER_ENTERFN( "CCmPluginTUNDriver::RunSettingsL" ); - User::Leave( KErrNotSupported ); - return KErrNotSupported; - } - -// -------------------------------------------------------------------------- -// CCmPluginTUNDriver::LoadServiceSettingL() -// -------------------------------------------------------------------------- -// -void CCmPluginTUNDriver::LoadServiceSettingL() - { - LOGGER_ENTERFN( "CCmPluginTUNDriver::LoadServiceSettingL" ); - - if( TPtrC(KCDTypeNameLANService) == iIapRecord->iServiceType ) - { - iServiceRecord = static_cast - ( CCDRecordBase::RecordFactoryL( KCDTIdLANServiceRecord ) ); - } - else - { - User::Leave( KErrNotSupported ); - } - - CCmPluginBaseEng::LoadServiceSettingL(); - } - -// -------------------------------------------------------------------------- -// CCmPluginTUNDriver::InitializeWithUiL() -// -------------------------------------------------------------------------- -// -TBool CCmPluginTUNDriver::InitializeWithUiL( TBool /*aManuallyConfigure*/ ) - { - User::Leave( KErrNotSupported ); - return ETrue; - } - -// -------------------------------------------------------------------------- -// CCmPluginTUNDriver::ServiceRecord() -// -------------------------------------------------------------------------- -// -CCDLANServiceRecord& CCmPluginTUNDriver::ServiceRecord() const - { - LOGGER_ENTERFN( "CCmPluginTUNDriver::ServiceRecord" ); - return *static_cast( iServiceRecord ); - } - -// -------------------------------------------------------------------------- -// CCmPluginTUNDriver::CreateNewServiceRecordL() -// -------------------------------------------------------------------------- -// -void CCmPluginTUNDriver::CreateNewServiceRecordL() - { - LOGGER_ENTERFN( "CCmPluginTUNDriver::CreateNewServiceRecordL" ); - - delete iServiceRecord; - iServiceRecord = NULL; - - iServiceRecord = static_cast - (CCDRecordBase::RecordFactoryL( KCDTIdLANServiceRecord )); - - // I do not think that we have to use the default record, - // but for compatibility with ApEngine, we write all fields - CCDLANServiceRecord* record = - static_cast( iServiceRecord ); - - if ( FeatureSupported( KFeatureIdIPv6 ) ) - { - record->iIfNetworks.SetL( KDefIspIfNetworksIPv4IPv6LAN ); - } - else - { - record->iIfNetworks.SetL( KDefIspIfNetworksIPv4 ); - } - record->iIpGateway.SetL( KUnspecifiedIPv4 ); - record->iIpAddrFromServer.SetL( KDefIpAddrFromServer ); - - record->iIpAddr.SetL( KUnspecifiedIPv4 ); - - record->iIpDnsAddrFromServer.SetL( KDefIpDnsAddrFromServer ); - - record->iIpNameServer1.SetL( KUnspecifiedIPv4 ); - record->iIpNameServer2.SetL( KUnspecifiedIPv4 ); - record->iIp6DnsAddrFromServer.SetL( KDefIp6DnsAddrFromServer ); - record->iIp6NameServer1.SetL( KDynamicIpv6Address ); - record->iIp6NameServer2.SetL( KDynamicIpv6Address ); - - if ( KDefIpAddrFromServer ) - { - record->iConfigDaemonManagerName.SetL( KDaemonManagerName ); - record->iConfigDaemonName.SetL( KConfigDaemonName ); - } - else - { - record->iConfigDaemonManagerName.SetL( KEmpty ); - record->iConfigDaemonName.SetL( KEmpty ); - } - } - -// --------------------------------------------------------------------------- -// CCmPluginTUNDriver::ServiceRecordIdLC -// --------------------------------------------------------------------------- -// -void CCmPluginTUNDriver::ServiceRecordIdLC( HBufC* &aName, TUint32& aRecordId ) - { - LOGGER_ENTERFN( "CCmPluginTUNDriver::ServiceRecordIdLC" ); - - aName = TPtrC( KCDTypeNameLANService ).AllocLC(); - aRecordId = iServiceRecord->RecordId(); - } - -// -------------------------------------------------------------------------- -// CCmPluginTUNDriver::BearerRecordIdLC() -// -------------------------------------------------------------------------- -// -void CCmPluginTUNDriver::BearerRecordIdLC( HBufC* &aBearerName, TUint32& aRecordId ) - { - LOGGER_ENTERFN( "CCmPluginTUNDriver::BearerRecordIdLC" ); - - CMDBRecordSet* bearersRS = - new(ELeave) CMDBRecordSet - (KCDTIdVirtualBearerRecord); - CleanupStack::PushL( bearersRS ); - - CCDVirtualBearerRecord* tmprec = static_cast - (CCDRecordBase::RecordFactoryL( KCDTIdVirtualBearerRecord )); - CleanupStack::PushL( tmprec ); - tmprec->iBearerAgent.SetL( KTUNDriverTunnelAgent ); - bearersRS->iRecords.AppendL( tmprec ); - - CleanupStack::Pop( tmprec ); - tmprec = NULL; - - if ( !bearersRS->FindL( Session() ) ) - // No bearer record found -> create a default one. - { - tmprec = static_cast - (CCDRecordBase::RecordFactoryL(KCDTIdVirtualBearerRecord)); - CleanupStack::PushL(tmprec); - - tmprec->iRecordName.SetL( KTUNDriverBearerName ); - tmprec->iBearerAgent.SetL( KTUNDriverTunnelAgent ); - tmprec->iVirtualBearerNifName.SetL(KTUNDriverInterfaceName); - tmprec->iLastSocketActivityTimeout = (TUint32)KLanLastSocketActivityTimeout; - tmprec->iLastSessionClosedTimeout = (TUint32) KLanLastSocketClosedTimeout; - tmprec->iLastSocketClosedTimeout = (TUint32)KLanLastSocketActivityTimeout; - - tmprec->SetRecordId( KCDNewRecordRequest ); - tmprec->StoreL( Session() ); - - aRecordId = tmprec->RecordId(); - - CleanupStack::PopAndDestroy(tmprec); - } - else - { - aRecordId = (*bearersRS)[0]->RecordId(); - } - - CleanupStack::PopAndDestroy( bearersRS ); - - aBearerName = TPtrC( KCDTypeNameVirtualBearer ).AllocLC(); - } - -// -------------------------------------------------------------------------- -// CCmPluginTUNDriver::PrepareToUpdateRecordsL() -// -------------------------------------------------------------------------- -// -void CCmPluginTUNDriver::PrepareToUpdateRecordsL() - { - LOGGER_ENTERFN( "CCmPluginTUNDriver::PrepareToUpdateRecordsL" ); - CheckDNSServerAddressL( ETrue, - ServiceRecord().iIp6NameServer1, - ServiceRecord().iIp6NameServer2, - ServiceRecord().iIp6DnsAddrFromServer ); - - CheckDNSServerAddressL( EFalse, - ServiceRecord().iIpNameServer1, - ServiceRecord().iIpNameServer2, - ServiceRecord().iIpDnsAddrFromServer ); - } - -// -------------------------------------------------------------------------- -// CCmPluginTUNDriver::AdditionalReset() -// -------------------------------------------------------------------------- -// -void CCmPluginTUNDriver::AdditionalReset() - { - - } - -// eof diff -r 14754bf06654 -r cf1b3ddbe9a1 cmmanager/cmmgr/Rom/cmplugintundriver.iby --- a/cmmanager/cmmgr/Rom/cmplugintundriver.iby Wed Sep 15 12:38:40 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -#ifndef __CMPLUGINTUNDRIVER_IBY__ -#define __CMPLUGINTUNDRIVER_IBY__ - - -ECOM_PLUGIN(cmplugintundriver.dll,20027F3E.rsc) -SCALABLE_IMAGE(APP_BITMAP_DIR,APP_BITMAP_DIR,cmplugintundriver) - - -#endif diff -r 14754bf06654 -r cf1b3ddbe9a1 cmmanager/cmmgr/Rom/cmplugintundriverresources.iby --- a/cmmanager/cmmgr/Rom/cmplugintundriverresources.iby Wed Sep 15 12:38:40 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -/* -* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -#ifndef __CMPLUGINTUNDRIVER_RESOURCES_IBY__ -#define __CMPLUGINTUNDRIVER_RESOURCES_IBY__ - - -data = DATAZ_\RESOURCE_FILES_DIR\cmplugintundriverui.rsc RESOURCE_FILES_DIR\cmplugintundriverui.rsc - -# -#endif \ No newline at end of file diff -r 14754bf06654 -r cf1b3ddbe9a1 cmmanager/cmmgr/group/bld.inf --- a/cmmanager/cmmgr/group/bld.inf Wed Sep 15 12:38:40 2010 +0300 +++ b/cmmanager/cmmgr/group/bld.inf Wed Oct 13 14:59:48 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-2008 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -35,9 +35,6 @@ ../Rom/cmpluginvpn.iby CORE_MW_LAYER_IBY_EXPORT_PATH(cmpluginvpn.iby) ../Rom/cmpluginvpnresources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(cmpluginvpnresources.iby) -../Rom/cmplugintundriver.iby CORE_MW_LAYER_IBY_EXPORT_PATH(cmplugintundriver.iby) -../Rom/cmplugintundriverresources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(cmplugintundriverresources.iby) - ../Rom/cmpluginwlan.iby CORE_MW_LAYER_IBY_EXPORT_PATH(cmpluginwlan.iby) ../Rom/cmpluginwlanresources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(cmpluginwlanresources.iby) diff -r 14754bf06654 -r cf1b3ddbe9a1 connectionmonitoring/connectionmonitorui/inc/ConnectionInfoBase.h --- a/connectionmonitoring/connectionmonitorui/inc/ConnectionInfoBase.h Wed Sep 15 12:38:40 2010 +0300 +++ b/connectionmonitoring/connectionmonitorui/inc/ConnectionInfoBase.h Wed Oct 13 14:59:48 2010 +0300 @@ -391,19 +391,6 @@ */ void InitializeConnectionInfoL(); - /** - * Compare the provided UID array with the current cached UID array - * iClientBuf. - * @param aClients New array of UIDs. - * @return ETrue if the contents are the same, EFalse otherwise. - */ - TBool IsTheSameUids( TConnMonClientEnumBuf& aClients ); - - /** - * Copy the provided UIDs into the cached UID array. - * @param aClients New array of UIDs. - */ - void CopyUidsToBuf( TConnMonClientEnumBuf& aClients ); protected: @@ -491,13 +478,6 @@ * The active object for info. refreshing. NOT Owned. */ CActiveWrapper* iActiveWrapper; - - /** - * Buffer to cache a connection's client application UIDs. - * These are kept in cache so application names are resolved only when - * the client list has changed. - */ - TConnMonClientEnumBuf iClientBuf; }; diff -r 14754bf06654 -r cf1b3ddbe9a1 connectionmonitoring/connectionmonitorui/src/ConnectionInfoBase.cpp --- a/connectionmonitoring/connectionmonitorui/src/ConnectionInfoBase.cpp Wed Sep 15 12:38:40 2010 +0300 +++ b/connectionmonitoring/connectionmonitorui/src/ConnectionInfoBase.cpp Wed Oct 13 14:59:48 2010 +0300 @@ -34,11 +34,7 @@ const TUint KUpArrowChar = 0x2191; ///< ASCII code of UpArrow const TUint KDownArrowChar = 0x2193; ///< ASCII code of DownArrow - -#ifndef _DEBUG -const TUint KHiddenDhcpServerUid = 0x101fd9c5; ///< Hidden DHCP server UID (dhcpserv.exe) -const TUint KHiddenDnsServerUid = 0x10000882; ///< Hidden DNS server UID (dnd.exe) -#endif +const TUint KBannedServerUID = 0x101fd9c5; // Banned DHCP server UID const TInt KFeedsServerUid = 0x1020728E; const TInt KDownloadMgrServerUid = 0x10008D60; @@ -86,7 +82,6 @@ iConnectionStatus = EConnectionUninitialized; iConnectionId = aConnectionId; iConnectionBearerType = aConnectionBearerType; - iClientBuf().iCount = 0; CMUILOGGER_WRITE( "CConnectionInfoBase constuctor - end " ); } @@ -497,291 +492,160 @@ TInt CConnectionInfoBase::RefreshAppNamesL() { CMUILOGGER_ENTERFN( "CConnectionInfoBase::RefreshAppNamesL" ); - + TInt sharings( 0 ); - - if ( IsAlive() ) + +if ( IsAlive() ) + { + if ( iAppNames ) { - if ( iAppNames ) + iAppNames->Reset(); + HBufC* actAppName = NULL; + // Check whether it is an internal or external (modem) connection + // External (modem) connections does not need application name + if ( iConnectionBearerType < EBearerExternalCSD ) { - // Check whether it is an internal or external (modem) connection - // External (modem) connections does not need application name - if ( iConnectionBearerType >= EBearerExternalCSD ) + TInt count( 0 ); + TConnMonClientEnumBuf clientBuf; + iActiveWrapper->StartGetConnSharings( iConnectionId, + iConnectionMonitor, + clientBuf ); + + TInt err( iActiveWrapper->iStatus.Int() ); + CMUILOGGER_WRITE_F( "RefreshSharings status: %d", err ); + + if ( !err ) { - CMUILOGGER_WRITE( "External (modem) connections does not need application name" ); - return sharings; + count = clientBuf().iCount; } - else + + CMUILOGGER_WRITE_F( "clientBuf().iCount: %d", count ); + +#ifndef __WINS__ // Appl. uid is always zero in emulator + + RApaLsSession appSess; + TApaAppInfo appInfo; + + // The connection could be shared by several applications + User::LeaveIfError( appSess.Connect() ); + + TUint i; + for ( i = 0; i < count; i++ ) { - TInt count( 0 ); - TConnMonClientEnumBuf clientBuf; - iActiveWrapper->StartGetConnSharings( iConnectionId, - iConnectionMonitor, - clientBuf ); + actAppName = NULL; + appInfo.iCaption.Zero(); + + TInt result = appSess.GetAppInfo( appInfo, + clientBuf().iUid[i] ); - TInt err( iActiveWrapper->iStatus.Int() ); - CMUILOGGER_WRITE_F( "RefreshSharings status: %d", err ); - - if ( !err ) + //================================ + CMUILOGGER_WRITE_F( "result: %d", result ); + CMUILOGGER_WRITE_F( "iClientInfo.iUid[i].iUid: %x", + clientBuf().iUid[i].iUid ); + + if ( result != KErrNone ) { - count = clientBuf().iCount; - } - CMUILOGGER_WRITE_F( "clientBuf().iCount: %d", count ); + TInt resId = 0; + switch ( clientBuf().iUid[i].iUid ) + { + case KMessagingServerUid: // Messaging + { + resId = R_QTN_CMON_SHARING_APP_MSG_SERVER; + break; + } + case KDownloadMgrServerUid: // Downloads + { + resId = R_QTN_CMON_SHARING_APP_DL_MG; + break; + } + case KFeedsServerUid: // Web Feeds + { + resId = R_QTN_CMON_SHARING_APP_RSS_SERVER; + break; + } + case KJavaVMUid: // Application + { + resId = R_QTN_CMON_SHARING_APP_JAVA_MIDLET; + break; + } + case KBannedServerUID: + { // Forget about DHCP server! + break; + } + case KSUPLServerUid: + { + resId = R_QTN_CMON_SHARING_APP_SUPL; + break; + } + default: // (unknown) + { + resId = R_QTN_CMON_SHARING_APP_UNKNOWN; + break; + } + } - if ( IsTheSameUids( clientBuf ) ) - { - // Same client list, use cached application names. - CMUILOGGER_WRITE( "Client list unchanged, use cached names" ); - CMUILOGGER_WRITE_F( "sharings: %d", iAppNames->Count() ); - return iAppNames->Count(); + if ( resId ) + { + actAppName = StringLoader::LoadL( resId ); + } } else { - CMUILOGGER_WRITE( "Client list changed, update names" ); - CopyUidsToBuf ( clientBuf ); + actAppName = HBufC::NewL( appInfo.iCaption.Length() ); + TPtr actAppNameBuf = actAppName->Des(); + actAppNameBuf.Append( appInfo.iCaption ); } - iAppNames->Reset(); - HBufC* actAppName = NULL; - -#ifndef __WINS__ // Appl. uid is always zero in emulator - - RApaLsSession appSess; - TApaAppInfo appInfo; - - // The connection could be shared by several applications - User::LeaveIfError( appSess.Connect() ); - - TUint i; - for ( i = 0; i < count; i++ ) + if ( actAppName ) { - actAppName = NULL; - appInfo.iCaption.Zero(); - - TInt result = appSess.GetAppInfo( appInfo, - clientBuf().iUid[i] ); - - //================================ - CMUILOGGER_WRITE_F( "result: %d", result ); - CMUILOGGER_WRITE_F( "iClientInfo.iUid[i].iUid: %x", - clientBuf().iUid[i].iUid ); - - if ( result != KErrNone ) - { - TInt resId = 0; - switch ( clientBuf().iUid[i].iUid ) - { - case KMessagingServerUid: // Messaging - { - resId = R_QTN_CMON_SHARING_APP_MSG_SERVER; - break; - } - case KDownloadMgrServerUid: // Downloads - { - resId = R_QTN_CMON_SHARING_APP_DL_MG; - break; - } - case KFeedsServerUid: // Web Feeds - { - resId = R_QTN_CMON_SHARING_APP_RSS_SERVER; - break; - } - case KJavaVMUid: // Application - { - resId = R_QTN_CMON_SHARING_APP_JAVA_MIDLET; - break; - } -#ifndef _DEBUG - // Hide DHCP & DNS from UI in release build. - case KHiddenDhcpServerUid: - case KHiddenDnsServerUid: - { - break; - } -#endif - case KSUPLServerUid: - { - resId = R_QTN_CMON_SHARING_APP_SUPL; - break; - } - default: // (unknown) - { - resId = R_QTN_CMON_SHARING_APP_UNKNOWN; - break; - } - } - - if ( resId && resId != R_QTN_CMON_SHARING_APP_UNKNOWN ) - { - actAppName = StringLoader::LoadL( resId ); - } - else if ( resId ) // Try to find application process name from system. - { - TFileName name; - TFindProcess find; - TBool name_solved( EFalse ); - while ( find.Next( name ) == KErrNone ) - { - RProcess ph; - TInt err2( KErrNone ); - err2 = ph.Open( name ); - - if ( err2 ) - { - ph.Close(); - } - else - { - TUidType procUid = ph.Type(); - ph.Close(); - - // There are three UIDs in procUid. The last one is the second - // UID defined in MMP file and clientBuf().iUid[i].iUid is also - // the same kind of UID. So, we only need to compare them to - // find application name. - if ( procUid[2].iUid == clientBuf().iUid[i].iUid ) - { - // Name is in format "app_name[uid]001", so cut rest of - // string starting from "[". - TInt index = name.LocateReverse('['); - if ( index >= 1 ) - { - name.SetLength( index ); - } - - actAppName = HBufC::NewL( name.Length() ); - TPtr actAppNameBuf = actAppName->Des(); - actAppNameBuf.Append( name ); - -#ifdef _DEBUG - CMUILOGGER_WRITE( "--------------------" ); - CMUILOGGER_WRITE( " Application is Found:" ); - CMUILOGGER_WRITE_F( "Client Uid: %x", clientBuf().iUid[i].iUid ); - CMUILOGGER_WRITE_F( "Proc Uid: %x", procUid[2].iUid ); - CMUILOGGER_WRITE_F( "App Name: %S", &name); - CMUILOGGER_WRITE( "--------------------" ); -#endif - - name_solved = ETrue; - break; - } - } - } - - if ( !name_solved ) - { - actAppName = StringLoader::LoadL( R_QTN_CMON_SHARING_APP_UNKNOWN ); - } - } - } - else - { - actAppName = HBufC::NewL( appInfo.iCaption.Length() ); - TPtr actAppNameBuf = actAppName->Des(); - actAppNameBuf.Append( appInfo.iCaption ); - } - - if ( actAppName ) - { - iAppNames->AppendL( actAppName->Des() ); - delete actAppName; - } + iAppNames->AppendL( actAppName->Des() ); + delete actAppName; } + } iAppNames->Sort(); appSess.Close(); #else - TInt countBan( 0 ); - -#ifndef _DEBUG - if ( !err ) - { - // Remove DHCP and DNS from the client list. - for ( TUint tmp = 0; tmp < count; tmp++ ) - { - TUid uid = clientBuf().iUid[tmp]; + TInt countBan( 0 ); - if ( uid.iUid == KHiddenDhcpServerUid || uid.iUid == KHiddenDnsServerUid ) - { - countBan++; - } + if ( !err ) + { + // remove the DHCP server is not actually + // an owner of the connection + for ( TUint tmp = 0; tmp < count; ++tmp ) + { + TUid uid = clientBuf().iUid[tmp]; + + if ( uid.iUid == KBannedServerUID ) + { + ++countBan; } - } -#endif + } // end + } - _LIT( KStrApplication, "Application" ); - // Give a dummy name for all applications. - for ( TInt i = 0; i < ( count - countBan ); i++ ) - { - iAppNames->AppendL( KStrApplication ); - } + _LIT( KStrApplication, "Application" ); + // Give a dummy name of the application + for ( TInt i = 0; i < ( count - countBan ); i++ ) + { + iAppNames->AppendL( KStrApplication ); + } #endif // __WINS__ - } // End of else in if ( iConnectionBearerType > EBearerExternalCSD ) - sharings = iAppNames->Count(); - CMUILOGGER_WRITE_F( "sharings: %d", sharings ); - } // End of if ( iAppNames ) - } // End of if ( IsAlive() ) + } + /* modem connections does not need application name + else + { + } + */ + sharings = iAppNames->Count(); + } + } + CMUILOGGER_LEAVEFN( "CConnectionInfoBase::RefreshAppNamesL" ); return sharings; } -// --------------------------------------------------------- -// CConnectionInfoBase::IsTheSameUids -// --------------------------------------------------------- -// -TBool CConnectionInfoBase::IsTheSameUids( TConnMonClientEnumBuf& aClients ) - { - TBool ret( EFalse ); - - if ( iClientBuf().iCount != aClients().iCount ) - { - return ret; - } - else - { - TInt count = aClients().iCount; - for ( TInt i = 0; i < count; i++ ) - { - // Is the current value inside aClients found from iClientBuf. - TBool found( EFalse ); - for ( TInt j = 0; j < count; j++ ) - { - if ( aClients().iUid[i].iUid == iClientBuf().iUid[j].iUid ) - { - found = ETrue; - break; - } - } - - if ( !found ) - { - return ret; - } - } - - // If we reach this point, aClients contents are identical with iClientBuf. - ret = ETrue; - } - - return ret; - } - -// --------------------------------------------------------- -// CConnectionInfoBase::CopyUidsToBuf -// --------------------------------------------------------- -// -void CConnectionInfoBase::CopyUidsToBuf( TConnMonClientEnumBuf& aClients ) - { - TInt count = aClients().iCount; - - for ( TInt i = 0; i < count; i++ ) - { - iClientBuf().iUid[i].iUid = aClients().iUid[i].iUid; - } - iClientBuf().iCount = count; - } // --------------------------------------------------------- // CConnectionInfoBase::ToDetailsListBoxItemTextL diff -r 14754bf06654 -r cf1b3ddbe9a1 connectionmonitoring/connectionmonitorui/src/CsdConnectionInfo.cpp --- a/connectionmonitoring/connectionmonitorui/src/CsdConnectionInfo.cpp Wed Sep 15 12:38:40 2010 +0300 +++ b/connectionmonitoring/connectionmonitorui/src/CsdConnectionInfo.cpp Wed Oct 13 14:59:48 2010 +0300 @@ -301,7 +301,7 @@ TInt sharing = RefreshAppNamesL(); - if ( sharing >= 1 ) + if ( sharing > 1 ) { if ( iDetailsArray->Count() > 10 ) { @@ -416,7 +416,7 @@ { TInt sharing = RefreshAppNamesL(); - if ( sharing >= 1 ) + if ( sharing > 1 ) { for ( TInt i = 0; i < sharing; i++ ) { diff -r 14754bf06654 -r cf1b3ddbe9a1 connectionmonitoring/connectionmonitorui/src/EasyWLANConnectionInfo.cpp --- a/connectionmonitoring/connectionmonitorui/src/EasyWLANConnectionInfo.cpp Wed Sep 15 12:38:40 2010 +0300 +++ b/connectionmonitoring/connectionmonitorui/src/EasyWLANConnectionInfo.cpp Wed Oct 13 14:59:48 2010 +0300 @@ -210,7 +210,7 @@ TInt sharing = RefreshAppNamesL(); - if ( sharing >= 1 ) + if ( sharing > 1 ) { for ( TInt i = 0; i < ( sharing ); i++ ) { @@ -296,7 +296,7 @@ TInt sharing = RefreshAppNamesL(); - if ( sharing >= 1 ) + if ( sharing > 1 ) { if ( count >= realElementsMaxCount ) { diff -r 14754bf06654 -r cf1b3ddbe9a1 connectionmonitoring/connectionmonitorui/src/GprsConnectionInfo.cpp --- a/connectionmonitoring/connectionmonitorui/src/GprsConnectionInfo.cpp Wed Sep 15 12:38:40 2010 +0300 +++ b/connectionmonitoring/connectionmonitorui/src/GprsConnectionInfo.cpp Wed Oct 13 14:59:48 2010 +0300 @@ -302,7 +302,7 @@ { TInt sharing = RefreshAppNamesL(); - if ( sharing >= 1 ) + if ( sharing > 1 ) { if ( iDetailsArray->Count() > 10 ) { @@ -399,7 +399,7 @@ { TInt sharing = RefreshAppNamesL(); - if ( sharing >= 1 ) + if ( sharing > 1 ) { for ( TInt i = 0; i < sharing; i++ ) { diff -r 14754bf06654 -r cf1b3ddbe9a1 connectionmonitoring/connectionmonitorui/src/WlanConnectionInfo.cpp --- a/connectionmonitoring/connectionmonitorui/src/WlanConnectionInfo.cpp Wed Sep 15 12:38:40 2010 +0300 +++ b/connectionmonitoring/connectionmonitorui/src/WlanConnectionInfo.cpp Wed Oct 13 14:59:48 2010 +0300 @@ -685,7 +685,7 @@ TInt sharing = RefreshAppNamesL(); - if ( sharing >= 1 ) + if ( sharing > 1 ) { for ( TInt i = 0; i < sharing; i++ ) { @@ -776,7 +776,7 @@ TInt sharing = RefreshAppNamesL(); - if ( sharing >= 1 ) + if ( sharing > 1 ) { if ( count >= realElementsMaxCount ) // 15 { diff -r 14754bf06654 -r cf1b3ddbe9a1 data/cccccc00_emulator.cre Binary file data/cccccc00_emulator.cre has changed diff -r 14754bf06654 -r cf1b3ddbe9a1 inc/meshpreface1.cfg --- a/inc/meshpreface1.cfg Wed Sep 15 12:38:40 2010 +0300 +++ b/inc/meshpreface1.cfg Wed Oct 13 14:59:48 2010 +0300 @@ -272,13 +272,6 @@ FIELD_COUNT=2 END_ADD -ADD_SECTION -# COMMDB_ID = 14 - Name=tundrivermcpr - MCprUid=0x10281E05 - FIELD_COUNT=2 -END_ADD - ############################################################ ## CprTable ## @@ -325,14 +318,6 @@ FIELD_COUNT=2 END_ADD -ADD_SECTION -# COMMDB_ID = 7 - Name=pdpcpr - CprUid=0x102822E2 - FIELD_COUNT=2 -END_ADD - - ############################################################ ## SCprTable ## @@ -474,13 +459,6 @@ FIELD_COUNT=2 END_ADD -ADD_SECTION -# COMMDB_ID = 12 - Name=tundriverprotocol - ProtocolUid=0x10281C3C - FIELD_COUNT=2 -END_ADD - ############################################################ ## BearerTypeTable ## @@ -567,7 +545,7 @@ Name=spud-ppp Tier=Link.TierTable.271064565 MCpr=MCprTable.10 - Cpr=CprTable.7 + Cpr=CprTable.3 SCpr=SCprTable.4 Protocol=ProtocolTable.3 FIELD_COUNT=6 @@ -578,7 +556,7 @@ Name=spud-rawip Tier=Link.TierTable.271064565 MCpr=MCprTable.10 - Cpr=CprTable.7 + Cpr=CprTable.3 SCpr=SCprTable.4 Protocol=ProtocolTable.5 FIELD_COUNT=6 @@ -624,14 +602,3 @@ FIELD_COUNT=6 END_ADD -ADD_SECTION -# COMMDB_ID = 13 - Name=tundriver - Tier=Link.TierTable.271064565 - MCpr=MCprTable.14 - Cpr=CprTable.3 - SCpr=SCprTable.3 - Protocol=ProtocolTable.12 - FIELD_COUNT=6 -END_ADD - diff -r 14754bf06654 -r cf1b3ddbe9a1 ipcm_plat/extended_connection_settings_api/inc/cmsettingsui.h --- a/ipcm_plat/extended_connection_settings_api/inc/cmsettingsui.h Wed Sep 15 12:38:40 2010 +0300 +++ b/ipcm_plat/extended_connection_settings_api/inc/cmsettingsui.h Wed Oct 13 14:59:48 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -66,23 +66,6 @@ */ IMPORT_C TBool SelectDestinationDlgL( TUint32& aDestinationId ); - /** - * Launches the dialog for adding connection methods - * @since 3.2.3 - * @param aDestUid destination id for the new cm - * @param aBearerType bearer type for the new cm - * @return TUint32 id of the new cm - */ - IMPORT_C TUint32 AddCmL( TUint32& aDestUid, TUint32 aBearerType ); - - /** - * Launches the dialog for editing connection methods - * @since 3.2.3 - * @param aCmId id of the cm to edit - * @return TResult - the softkey the user exited with. - * EBack in case editing is forbidden. - */ - IMPORT_C TResult EditCmL( TUint32 aCmId ); private: /** First stage constructor */ diff -r 14754bf06654 -r cf1b3ddbe9a1 ipcm_pub/connection_settings_api/group/bld.inf --- a/ipcm_pub/connection_settings_api/group/bld.inf Wed Sep 15 12:38:40 2010 +0300 +++ b/ipcm_pub/connection_settings_api/group/bld.inf Wed Oct 13 14:59:48 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -12,7 +12,7 @@ * Contributors: * * Description: File that exports the files belonging to -* Connection Settings API +: Connection Settings API * */ @@ -41,4 +41,3 @@ ../inc/cmmanager.h MW_LAYER_PUBLIC_EXPORT_PATH(cmmanager.h) ../inc/cmsettingsui.h MW_LAYER_PUBLIC_EXPORT_PATH(cmsettingsui.h) ../inc/cmgenconnsettings.h MW_LAYER_PUBLIC_EXPORT_PATH(cmgenconnsettings.h) -../inc/cmplugintundriverdef.h MW_LAYER_PUBLIC_EXPORT_PATH(cmplugintundriverdef.h) diff -r 14754bf06654 -r cf1b3ddbe9a1 ipcm_pub/connection_settings_api/inc/cmplugintundriverdef.h --- a/ipcm_pub/connection_settings_api/inc/cmplugintundriverdef.h Wed Sep 15 12:38:40 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,148 +0,0 @@ -/* -* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Attributes for TUN Driver plug-in. -* -*/ - - -#ifndef CMPLUGINTUNDRIVER_DEF_H -#define CMPLUGINTUNDRIVER_DEF_H - -#include -const TUint KPluginTUNDriverBearerTypeUid = 0x20027F3F; - -namespace CMManager - { - /** LAN specific connection method attributes */ - enum TConnectionMethodTUNDriverSpecificAttributes - { - ETUNDriverSpecificAttributes = 20000, - - /** - * Comma separated list of network protocols, e.g. "PPP". - * ( String - default: None) - */ - ETUNDriverIfNetworks = KLanBaseIfNetworks, - - /** - * IP net mask of interface. - * ( String - default: None) - */ - ETUNDriverIpNetMask, - - /** - * IP address of gateway - * ( String - default: None) - */ - ETUNDriverIpGateway, - - /** - * Get IP addresses (for EPOC) from server? - * ( TBool - default: None) - */ - ETUNDriverIpAddrFromServer, - - /** - * IP address of EPOC. - * ( String - default: None) - */ - ETUNDriverIpAddr, - - /** - * Get DNS addresses from server? - * ( TBool - default: None) - */ - ETUNDriverIpDNSAddrFromServer, - - /** - * IP Address of primary name server. - * ( String - default: None) - */ - ETUNDriverIpNameServer1, - - /** - * IP Address of secondary name server. - * ( String - default: None) - */ - ETUNDriverIpNameServer2, - - /** - * Get IP6 DNS addresses from server? - * ( TBool - default: None) - */ - ETUNDriverIp6DNSAddrFromServer, - - /** - * IP6 Address of primary name server. - * ( String - default: None) - */ - ETUNDriverIp6NameServer1, - - /** - * IP6 Address of secondary name server. - * ( String - default: None) - */ - ETUNDriverIp6NameServer2, - - /** - * IP address valid from this time, used to store - * dynamically assigned address lease info. - * ( String - default: None) - */ - ETUNDriverIpAddrLeaseValidFrom, - - /** - * IP address valid for use until this time, used to store . - * dynamically assigned address lease info. - * ( String - default: None) - */ - ETUNDriverIpAddrLeaseValidTo, - - /** - * Name of the ECOM configuration daemon manager component. - * This component interfaces with the server identified in - * ISP_CONFIG_DAEMON_NAME. If specified, ISP_CONFIG_DAEMON_NAME - * should also be specified. - * ( String - default: None) - */ - ETUNDriverConfigDaemonManagerName, - - /** - * Name of the configuration daemon server. - * This server is used to provide further configuration for - * a connection, e.g. dynamic IP address assignment. - * If specified, ISP_CONFIG_DAEMON_MANAGER_NAME should also - * be specified. - * ( String - default: None) - */ - ETUNDriverConfigDaemonName, - - /** - * Name of the TUN Driver Service Extension table. - * ( String - default: None) - */ - ETUNDriverServiceExtensionTableName, - - /** - * The record ID of the linked TUN Driver Service Extension record in the - * TUN Driver Service Extension table. - * ( TUint32 - default: None) - */ - ETUNDriverServiceExtensionTableRecordId, - - ETUNDriverRangeMax = KLanBaseRangeMax - }; - } // namespace CMManager - -#endif // CMPLUGINTUNDRIVER_DEF_H