# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1282203890 -10800 # Node ID 13d7c31c74e0ad4d1f11406b45302e12fa9d2c17 # Parent 4af31167ea7790b3a6d7fc89ed94feefae7b7791 Revision: 201031 Kit: 201033 diff -r 4af31167ea77 -r 13d7c31c74e0 dcmofw/dcmoclient/bwins/dcmoclientu.def --- a/dcmofw/dcmoclient/bwins/dcmoclientu.def Thu Jul 15 19:36:11 2010 +0300 +++ b/dcmofw/dcmoclient/bwins/dcmoclientu.def Thu Aug 19 10:44:50 2010 +0300 @@ -1,3 +1,11 @@ EXPORTS ?NewL@RDCMOClient@@SAPAV1@XZ @ 1 NONAME ; class RDCMOClient * RDCMOClient::NewL(void) + ?SearchByGroupValue@RDCMOClient@@UAEXAAVTDes16@@0@Z @ 2 NONAME ; void RDCMOClient::SearchByGroupValue(class TDes16 &, class TDes16 &) + ?GetDCMOStrAttributeValue@RDCMOClient@@UAE?AW4TDCMOStatus@@AAVTDes16@@W4TDCMONode@@0@Z @ 3 NONAME ; enum TDCMOStatus RDCMOClient::GetDCMOStrAttributeValue(class TDes16 &, enum TDCMONode, class TDes16 &) + ?SetDCMOIntAttributeValue@RDCMOClient@@UAE?AW4TDCMOStatus@@AAVTDes16@@W4TDCMONode@@H@Z @ 4 NONAME ; enum TDCMOStatus RDCMOClient::SetDCMOIntAttributeValue(class TDes16 &, enum TDCMONode, int) + ?OpenL@RDCMOClient@@UAEHXZ @ 5 NONAME ; int RDCMOClient::OpenL(void) + ?GetDCMOIntAttributeValue@RDCMOClient@@UAE?AW4TDCMOStatus@@AAVTDes16@@W4TDCMONode@@AAH@Z @ 6 NONAME ; enum TDCMOStatus RDCMOClient::GetDCMOIntAttributeValue(class TDes16 &, enum TDCMONode, int &) + ??1RDCMOClient@@UAE@XZ @ 7 NONAME ; RDCMOClient::~RDCMOClient(void) + ?Close@RDCMOClient@@UAEXXZ @ 8 NONAME ; void RDCMOClient::Close(void) + ?SetDCMOStrAttributeValue@RDCMOClient@@UAE?AW4TDCMOStatus@@AAVTDes16@@W4TDCMONode@@0@Z @ 9 NONAME ; enum TDCMOStatus RDCMOClient::SetDCMOStrAttributeValue(class TDes16 &, enum TDCMONode, class TDes16 &) diff -r 4af31167ea77 -r 13d7c31c74e0 dcmofw/dcmoclient/eabi/dcmoclientu.def --- a/dcmofw/dcmoclient/eabi/dcmoclientu.def Thu Jul 15 19:36:11 2010 +0300 +++ b/dcmofw/dcmoclient/eabi/dcmoclientu.def Thu Aug 19 10:44:50 2010 +0300 @@ -2,4 +2,14 @@ _ZN11RDCMOClient4NewLEv @ 1 NONAME _ZTI11RDCMOClient @ 2 NONAME ; ## _ZTV11RDCMOClient @ 3 NONAME ; ## + _ZN11RDCMOClient18SearchByGroupValueER6TDes16S1_ @ 4 NONAME + _ZN11RDCMOClient24GetDCMOIntAttributeValueER6TDes169TDCMONodeRi @ 5 NONAME + _ZN11RDCMOClient24GetDCMOStrAttributeValueER6TDes169TDCMONodeS1_ @ 6 NONAME + _ZN11RDCMOClient24SetDCMOIntAttributeValueER6TDes169TDCMONodei @ 7 NONAME + _ZN11RDCMOClient24SetDCMOStrAttributeValueER6TDes169TDCMONodeS1_ @ 8 NONAME + _ZN11RDCMOClient5CloseEv @ 9 NONAME + _ZN11RDCMOClient5OpenLEv @ 10 NONAME + _ZN11RDCMOClientD0Ev @ 11 NONAME + _ZN11RDCMOClientD1Ev @ 12 NONAME + _ZN11RDCMOClientD2Ev @ 13 NONAME diff -r 4af31167ea77 -r 13d7c31c74e0 dcmofw/dcmoclient/src/dcmoclient.cpp --- a/dcmofw/dcmoclient/src/dcmoclient.cpp Thu Jul 15 19:36:11 2010 +0300 +++ b/dcmofw/dcmoclient/src/dcmoclient.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -87,7 +87,7 @@ // Destructor. // ----------------------------------------------------------------------------- // -RDCMOClient::~RDCMOClient() +EXPORT_C RDCMOClient::~RDCMOClient() { Close(); } @@ -95,7 +95,7 @@ // --------------------------------------------------------------------------- // RDCMOClient::OpenL() // --------------------------------------------------------------------------- -TInt RDCMOClient::OpenL() +EXPORT_C TInt RDCMOClient::OpenL() { RDEBUG("RDCMOClient::OpenL()- Begin"); TInt res = KErrNone; @@ -115,7 +115,7 @@ // --------------------------------------------------------------------------- // RDCMOClient::Close() // --------------------------------------------------------------------------- -void RDCMOClient::Close() +EXPORT_C void RDCMOClient::Close() { RDEBUG(" RDCMOClient::Close"); RSessionBase::Close(); //basecall @@ -125,7 +125,7 @@ // ---------------------------------------------------------------------------- // RDCMOClient::GetDCMOIntAttributeValue() // ---------------------------------------------------------------------------- -TDCMOStatus RDCMOClient::GetDCMOIntAttributeValue(TDes& aCategory, TDCMONode aId, TInt& aValue) +EXPORT_C TDCMOStatus RDCMOClient::GetDCMOIntAttributeValue(TDes& aCategory, TDCMONode aId, TInt& aValue) { RDEBUG(" RDCMOClient::GetDCMOIntAttributeValue--Begin"); TPckg p(aId); @@ -142,7 +142,7 @@ // ---------------------------------------------------------------------------- // RDCMOClient::GetDCMOStrAttributeValue() // ---------------------------------------------------------------------------- -TDCMOStatus RDCMOClient::GetDCMOStrAttributeValue(TDes& aCategory, TDCMONode aId, TDes& aStrValue) +EXPORT_C TDCMOStatus RDCMOClient::GetDCMOStrAttributeValue(TDes& aCategory, TDCMONode aId, TDes& aStrValue) { RDEBUG(" RDCMOClient::GetDCMOStrAttributeValue--Begin"); TPckg p(aId); @@ -158,7 +158,7 @@ // ---------------------------------------------------------------------------- // RDCMOClient::SetDCMOIntAttributeValue() // ---------------------------------------------------------------------------- -TDCMOStatus RDCMOClient::SetDCMOIntAttributeValue(TDes& aCategory, TDCMONode aId, TInt aValue) +EXPORT_C TDCMOStatus RDCMOClient::SetDCMOIntAttributeValue(TDes& aCategory, TDCMONode aId, TInt aValue) { RDEBUG(" RDCMOClient::SetDCMOIntAttributeValue--Begin"); TPckg p(aId); @@ -175,7 +175,7 @@ // ---------------------------------------------------------------------------- // RDCMOClient::SetDCMOStrAttributeValue() // ---------------------------------------------------------------------------- -TDCMOStatus RDCMOClient::SetDCMOStrAttributeValue(TDes& aCategory, TDCMONode aId, TDes& aStrValue) +EXPORT_C TDCMOStatus RDCMOClient::SetDCMOStrAttributeValue(TDes& aCategory, TDCMONode aId, TDes& aStrValue) { RDEBUG(" RDCMOClient::SetDCMOStrAttributeValue--Begin"); TPckg p(aId); @@ -191,7 +191,7 @@ // ---------------------------------------------------------------------------- // RDCMOClient::SearchByGroupValue() // ---------------------------------------------------------------------------- -void RDCMOClient::SearchByGroupValue(TDes& aGroup, TDes& aAdapterList) +EXPORT_C void RDCMOClient::SearchByGroupValue(TDes& aGroup, TDes& aAdapterList) { RDEBUG(" RDCMOClient::SearchByGroupValue--Begin"); TInt err = SendReceive( EDcmoSearchAdapter, TIpcArgs(&aGroup, &aAdapterList)); diff -r 4af31167ea77 -r 13d7c31c74e0 dcmofw/dcmoserver/group/dcmoserver.mmp --- a/dcmofw/dcmoserver/group/dcmoserver.mmp Thu Jul 15 19:36:11 2010 +0300 +++ b/dcmofw/dcmoserver/group/dcmoserver.mmp Thu Aug 19 10:44:50 2010 +0300 @@ -18,7 +18,7 @@ #include -CAPABILITY CAP_SERVER DiskAdmin AllFiles +CAPABILITY CAP_SERVER TrustedUI NetworkControl DiskAdmin AllFiles TARGET dcmoserver.exe TARGETTYPE exe @@ -31,6 +31,7 @@ SOURCE dcmosession.cpp SOURCE dcmonotifieraob.cpp SOURCE dcmogenericcontrol.cpp +SOURCE AMSmlHelper.cpp MW_LAYER_SYSTEMINCLUDE SYSTEMINCLUDE /epoc32/include/ecom @@ -48,5 +49,19 @@ LIBRARY centralrepository.lib LIBRARY aknnotify.lib eiksrv.lib LIBRARY flogger.lib - +LIBRARY TerminalControl.lib +LIBRARY nsmlprivateapi.lib +LIBRARY commdb.lib +LIBRARY apengine.lib esock.lib +#ifdef __TARM_SYMBIAN_CONVERGENCY + LIBRARY dmtreeclient.lib + LIBRARY SmlClient.lib +#else + LIBRARY nsmldmtreedbhandler.lib + LIBRARY syncmlclientapi.lib + LIBRARY nsmldmmodule.lib + LIBRARY nsmldmtreedbclient.lib connmon.lib + LIBRARY nsmltransporthandler.lib +LIBRARY nsmltransport.lib cone.lib javaregistryclient.lib avkon.lib eikcore.lib apparc.lib +#endif // __TARM_SYMBIAN_CONVERGENCY SMPSAFE \ No newline at end of file diff -r 4af31167ea77 -r 13d7c31c74e0 dcmofw/dcmoserver/inc/amsmlhelper.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dcmofw/dcmoserver/inc/amsmlhelper.h Thu Aug 19 10:44:50 2010 +0300 @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2000 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 applicationmanagement components + * + */ + +#ifndef __ABMSMLHELPER_H__ +#define __ABMSMLHELPER_H__ + +#include +#include +#include +#include + +class SmlHelper + { +public: + + // NOTE: this enum must match with property array described in + // SyncML_Sync_Agent_Client_API_Specification.doc. + enum TNSmlSyncTransportProperties + { + EPropertyIntenetAccessPoint = 0, + EPropertyHttpUsed = 5, + EPropertyHttpUserName = 6, + EPropertyHttpPassword = 7 + }; + + /** + * Fetch the default IAP used by the currently active DM profile + * @param aDefaultIAP on successfull return contains the default IAP number + */ + + static void GetDefaultIAPFromDMProfileL(TInt& aDefaultIAP); + + static void GetConnectionPropertyNameL(RSyncMLSession& aSyncSession, + TDes8& aText, TInt aPropertyPos); + + static TInt StrToInt(const TDesC& aText, TInt& aNum); + }; + +#endif + +// End of File diff -r 4af31167ea77 -r 13d7c31c74e0 dcmofw/dcmoserver/inc/dcmoserver.h --- a/dcmofw/dcmoserver/inc/dcmoserver.h Thu Jul 15 19:36:11 2010 +0300 +++ b/dcmofw/dcmoserver/inc/dcmoserver.h Thu Aug 19 10:44:50 2010 +0300 @@ -24,20 +24,21 @@ #include "dcmoclientserver.h" #include "dcmoconst.h" #include "dcmonotifieraob.h" - +#include // CONSTANTS const TUid KCRUidDCMOServer={0x2001FE47}; const TInt KDCMOKeyMaxNumber = 16; // FORWARD DECLARATIONS // CLASS DECLARATION - +class CLAWMOPluginInterface; /** * CDCMOServer * Description. */ -class CDCMOServer : public CServer2 +class CDCMOServer : public CServer2, + public MLawmoPluginWipeObserver { friend class CDCMOSession; friend class CDCMONotifierAob; @@ -85,6 +86,11 @@ * @return None */ void DropSession(); +public: + + // Callback from MLawmoPluginWipeObserver + void HandleWipeCompleted(TInt status); + //void SendGenericAlert(); private: /** @@ -166,7 +172,17 @@ * @return */ void SetStarter(TBool aValue); + + TLawMoStatus WipeItem(TInt aValue=0); + + TLawMoStatus WipeAllItem(); + TLawMoStatus GetListItemL(TDesC& item, TDes& strValue); + + TLawMoStatus GetToBeWipedL(TDesC& item, TDes& wipeValue); + + TLawMoStatus SetToBeWipedL(TDesC& item, TInt wipeValue); + private: /** @@ -174,7 +190,7 @@ * @param aCategory * @return the uid */ - TUid GetAdapterUidL(const TDesC& aCategory); + TUid GetAdapterUidL(const TDesC& aCategory, TBool aIsLawmo = EFalse); /** * Finds whether the plug-in adapter is a generic category @@ -183,11 +199,19 @@ */ TInt GetLocalCategoryL(const TDesC& aCategory); + void GetLawmoPluginUidsL(); + + void StartDMNetworkMonitorL(TDesC& aServerId, TInt iapid=0); private: RArray idcmoArray; static TInt iSessionCount; TBool iStarter; CDCMONotifierAob* iNotifier; + RArray ilawmoPluginUidToBeWiped; + RArray ilawmoPlugins; + TInt iwipeStatus; + TInt iCount; + TInt iSessionIap; }; #endif //__DCMO_SERVER_H__ diff -r 4af31167ea77 -r 13d7c31c74e0 dcmofw/dcmoserver/src/AMSmlHelper.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dcmofw/dcmoserver/src/AMSmlHelper.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -0,0 +1,212 @@ +/* + * Copyright (c) 2000 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 applicationmanagement components + * + */ + +#include "amsmlhelper.h" +#include +#include +#include +#include +#include +#include +#include "lawmodebug.h" + +const TUid KUidNSmlMediumTypeInternet = + { + 0x101F99F0 + }; +const TUid KSosServerUid = + { + 0x101F99FB + }; + +const TInt KBufSize32 = 32; + +void SmlHelper::GetDefaultIAPFromDMProfileL(TInt& aDefaultIAP) + { + RLDEBUG("ApplicationManagementServer::GetDefaultIAPFromDMProfileL() - start"); + + // first try to obtain the current profile id + RSyncMLSession ses; + ses.OpenL(); + RLDEBUG(" 1/8"); + CleanupClosePushL(ses); + + TSmlJobId jid; + TSmlUsageType jtype; + ses.CurrentJobL(jid, jtype); + RLDEBUG(" 2/8"); + RSyncMLDevManJob job; + job.OpenL(ses, jid); + RLDEBUG(" 3/8"); + CleanupClosePushL(job); + // get profile id + TSmlProfileId pid(job.Profile() ); + CleanupStack::PopAndDestroy( &job); + + TBuf8 key; + TBuf value; + TInt num = KErrNotFound; + + // get connection property name first + GetConnectionPropertyNameL(ses, key, EPropertyIntenetAccessPoint); + RLDEBUG(" 4/8"); + // we need to open sync profile in ordere to open the RSyncMLConnection + RSyncMLDevManProfile syncProfile; + syncProfile.OpenL(ses, pid); + RLDEBUG(" 5/8"); + CleanupClosePushL(syncProfile); + + TSmlTransportId transport; + RArray connections; + _LIT8( KNSmlIAPId, "NSmlIapId" ); + + // now open the syncML connection + RSyncMLConnection syncConnection; + syncProfile.ListConnectionsL(connections); + + transport = connections[0]; + syncConnection.OpenL(syncProfile, transport); + RLDEBUG(" 6/8"); + CleanupClosePushL(syncConnection); + + const TDesC8& source(syncConnection.GetPropertyL(KNSmlIAPId) ); + RLDEBUG(" 7/8"); + value.Copy(source.Left(value.MaxLength() ) ); + User::LeaveIfError(StrToInt(value, num) ); + RLDEBUG(" 8/8"); + + aDefaultIAP = num; + + // If there is no default Access point in DM profile then use + // currently used access point by DM session + + if (aDefaultIAP == -1) + { + RLDEBUG("adefault iap -1"); + TInt sockIapid = -1; + + RSocketServ serv; + CleanupClosePushL(serv); + User::LeaveIfError(serv.Connect() ); + + RConnection conn; + CleanupClosePushL(conn); + User::LeaveIfError(conn.Open(serv) ); + RLDEBUG("RConnection opened"); + + TUint count( 0); + User::LeaveIfError(conn.EnumerateConnections(count) ); + RLDEBUG_2("RConnection count %d",count); + // enumerate connections + for (TUint idx=1; idx<=count; ++idx) + { + TConnectionInfo connectionInfo; + TConnectionInfoBuf connInfo(connectionInfo); + RLDEBUG("RConnection loop"); + TInt err = conn.GetConnectionInfo(idx, connInfo); // iapid + RLDEBUG("RConnection get conn info"); + if (err != KErrNone) + { + CleanupStack::PopAndDestroy( 2); // conn, serv + User::Leave(err); + } + // enumerate connectionclients + TConnectionEnumArg conArg; + conArg.iIndex = idx; + TConnEnumArgBuf conArgBuf(conArg); + RLDEBUG("RConnection control"); + err=conn.Control(KCOLConnection, KCoEnumerateConnectionClients, + conArgBuf); + if (err != KErrNone) + { + CleanupStack::PopAndDestroy( 2); // conn, serv + User::Leave(err); + } + TInt cliCount = conArgBuf().iCount; + RLDEBUG("RConnection second loop"); + for (TUint j=1; j<=cliCount; ++j) + { + TConnectionGetClientInfoArg conCliInfo; + conCliInfo.iIndex = j; + TConnGetClientInfoArgBuf conCliInfoBuf(conCliInfo); + RLDEBUG("RConnection another control"); + err=conn.Control(KCOLConnection, KCoGetConnectionClientInfo, + conCliInfoBuf); + + if (err != KErrNone) + { + CleanupStack::PopAndDestroy( 2); // conn, serv + User::Leave(err); + } + TConnectionClientInfo conCliInf = conCliInfoBuf().iClientInfo; + TUid uid = conCliInf.iUid; + RLDEBUG_2("RConnection check uid %d", uid.iUid); + if (uid == KSosServerUid) + { + sockIapid = connInfo().iIapId; + RLDEBUG("RConnection uid matched"); + } + + } + } + CleanupStack::PopAndDestroy( 2); // conn, serv + + aDefaultIAP = sockIapid; + RLDEBUG("RConnection out"); + } + // get profile's server id + //aServerId = syncProfile.ServerId().AllocL(); + RLDEBUG("RConnection total out"); + + CleanupStack::PopAndDestroy( &syncConnection); + CleanupStack::PopAndDestroy( &syncProfile); + + CleanupStack::PopAndDestroy( &ses); + connections.Close(); + RLDEBUG("ApplicationManagementServer::GetDefaultIAPFromDMProfileL() - end"); + } + +void SmlHelper::GetConnectionPropertyNameL(RSyncMLSession& aSyncSession, + TDes8& aText, TInt aPropertyPos) + { + RLDEBUG("ApplicationManagementServer::GetConnectionPropertyNameL() - start"); + + // at the moment RSyncMLTransport is only needed + // for internet connection settings + RSyncMLTransport transport; + CleanupClosePushL(transport); + transport.OpenL(aSyncSession, KUidNSmlMediumTypeInternet.iUid); + + const CSyncMLTransportPropertiesArray& arr = transport.Properties(); + RLDEBUG("GetConnectionPropertyNameL interior"); + __ASSERT_DEBUG( arr.Count()> aPropertyPos, User::Panic(_L("invalid count"), KErrGeneral) ); + + const TSyncMLTransportPropertyInfo& info = arr.At(aPropertyPos); + aText = info.iName; + CleanupStack::PopAndDestroy( &transport); + + RLDEBUG("ApplicationManagementServer::GetConnectionPropertyNameL() - end"); + } + +TInt SmlHelper::StrToInt(const TDesC& aText, TInt& aNum) + { + TLex lex(aText); + TInt err = lex.Val(aNum); + return err; + } + +// End of File diff -r 4af31167ea77 -r 13d7c31c74e0 dcmofw/dcmoserver/src/dcmoserver.cpp --- a/dcmofw/dcmoserver/src/dcmoserver.cpp Thu Jul 15 19:36:11 2010 +0300 +++ b/dcmofw/dcmoserver/src/dcmoserver.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -32,9 +32,18 @@ #include "dcmosession.h" #include "dcmogenericcontrol.h" #include "dcmodebug.h" +#include "lawmodebug.h" +#include "amsmlhelper.h" +#include +#include +#include +#include // Property values +#include _LIT( KdcmoResourceFileName, "z:dcmo.rsc" ); const TInt KBufferSize = 256; +const TInt KWipeSuccess = 1201; +const TInt KWipeFailure = 1405; TInt CDCMOServer::iSessionCount = 0; // Standard server startup code @@ -103,6 +112,9 @@ void CDCMOServer::ConstructL() { RDEBUG("CDCMOServer::ConstructL- begin"); + iwipeStatus = 0; + iSessionIap = KErrNotFound; + iCount = -1; StartL(KDCMOServerName); RDEBUG("CDCMOServer::ConstructL- end"); } @@ -124,7 +136,7 @@ { RDEBUG("CDCMOServer::~CDCMOServer- begin"); TInt count = idcmoArray.Count(); - RDEBUG_2("CDCMOServer::~CDCMOServer; %d", count ); + RDEBUG_2("~~CDCMOServer::~CDCMOServer; %d", count ); if(count) { for(TInt i=0; i< count; i++) @@ -133,15 +145,25 @@ delete iNotifier; iNotifier = NULL; } - else + + RLDEBUG("CDCMOServer::wipe done delete pluginuid()"); + TInt pluginObjectCount = ilawmoPlugins.Count(); + while(pluginObjectCount>0) { - //Kill the server - if( iSessionCount == 0) - CActiveScheduler::Stop(); + RLDEBUG("plugin to be deleted"); + delete ilawmoPlugins[pluginObjectCount-1]; + RLDEBUG("plugin deleted"); + pluginObjectCount--; } + RLDEBUG("CDCMOServer::close all RArrays()"); + ilawmoPluginUidToBeWiped.Close(); + RLDEBUG("CDCMOServer::closeD all RArrays()"); + ilawmoPlugins.Close(); + + RDEBUG("CDCMOServer::call FinalClose"); REComSession::FinalClose(); - RDEBUG("CDCMOServer::~CDCMOServer- end"); + RDEBUG("~~~CDCMOServer::~CDCMOServer- end"); } // ----------------------------------------------------------------------------- @@ -161,12 +183,20 @@ if( idcmoArray.Count() && ( iSessionCount == 0 )) { // A session is being destroyed + RDEBUG("CDCMOServer::DropSession- dofinalise ?"); TRAPD( err, DoFinalizeL()); + iCount = 0; if ( !err ) { RDEBUG_2("CDCMOServer::DropSession err = %d", err ); } } + if((iSessionCount == 0)&&(iCount== -1)) + { + RDEBUG("DropSession kill server, only when no session and no wipe pending"); + CActiveScheduler::Stop(); + RDEBUG("DropSession kill server"); + } RDEBUG("CDCMOServer::DropSession- end"); } @@ -207,21 +237,28 @@ // CDCMOServer::GetAdapterUidL // Gets the plug-in adapter implementation uid if it present. // ---------------------------------------------------------------------------------------- -TUid CDCMOServer::GetAdapterUidL(const TDesC& aCategory) +TUid CDCMOServer::GetAdapterUidL(const TDesC& aCategory, TBool aIsLawmo) { RDEBUG("CDCMOServer::GetDCMOAdapterUidL(): begin"); - + RLDEBUG("CDCMOServer::GetAdapterUidL(): begin"); TUid retUid = {0x0}; - + TEComResolverParams resolverParams; RImplInfoPtrArray infoArray; // Note that a special cleanup function is required to reset and destroy // all items in the array, and then close it. TCleanupItem cleanup(CleanupEComArray, &infoArray); CleanupStack::PushL(cleanup); + if(aIsLawmo) + { + REComSession::ListImplementationsL(KLAWMOPluginInterfaceUid, resolverParams, KRomOnlyResolverUid, infoArray); + RLDEBUG("CDCMOServer::GetAdapterUidL(): listImpl"); + } + else REComSession::ListImplementationsL(KDCMOInterfaceUid, infoArray); // Loop through each info for each implementation TBuf8 buf; + RLDEBUG("CDCMOServer::GetAdapterUidL(): for loop"); for (TInt i=0; i< infoArray.Count(); i++) { buf = infoArray[i]->OpaqueData(); @@ -230,12 +267,13 @@ if(category.Find(infoArray[i]->OpaqueData())!= KErrNotFound) { retUid = infoArray[i]->ImplementationUid(); + RLDEBUG("CDCMOServer::GetAdapterUidL(): matched"); break; } buf.Zero(); } CleanupStack::PopAndDestroy(); //cleanup - + RLDEBUG("CDCMOServer::GetAdapterUidL():end"); RDEBUG("CDCMOServer::GetDCMOAdapterUidL(): end"); return retUid; } @@ -609,6 +647,170 @@ } // ---------------------------------------------------------------------------------------- +// CDCMOServer::GetPluginUids +// Gets the plug-in adapter implementation uid if it present. +// ---------------------------------------------------------------------------------------- +void CDCMOServer::GetLawmoPluginUidsL() +{ + RDEBUG("CDCMOServer::GetPluginUids(): begin"); + ilawmoPluginUidToBeWiped.Reset(); + RImplInfoPtrArray infoArray; + TEComResolverParams resolverParams; + // Note that a special cleanup function is required to reset and destroy + // all items in the array, and then close it. + TCleanupItem cleanup(CleanupEComArray, &infoArray); + CleanupStack::PushL(cleanup); + REComSession::ListImplementationsL(KLAWMOPluginInterfaceUid, resolverParams, KRomOnlyResolverUid, infoArray); + RLDEBUG("CDCMOServer::GetPluginUids(): listImpl"); + // Loop through each info for each implementation + for (TInt i=0; i< infoArray.Count(); i++) + { + ilawmoPluginUidToBeWiped.Append(infoArray[i]->ImplementationUid()); + RLDEBUG("CDCMOServer::GetPluginUids(): for loop"); + } + CleanupStack::PopAndDestroy(); //cleanup + RLDEBUG("CDCMOServer::GetPluginUids():end"); + return; +} + +TLawMoStatus CDCMOServer::WipeAllItem() + { + //Update ilawmopluginUid, so that all Node items are wiped. + //WipeItem doesn only on Uid's in the RArray. + TRAPD(error,GetLawmoPluginUidsL()); + if(error == KErrNone) + return WipeItem(); + else + return ELawMoWipeNotPerformed; + } + +TLawMoStatus CDCMOServer::WipeItem(TInt aValue) + { + RLDEBUG("CDCMOServer::WipeItem(): begin"); + TLawMoStatus lawmostat(ELawMoAccepted); + iCount = 0; + if(ilawmoPluginUidToBeWiped.Count() > 0) + { + RLDEBUG_2("CDCMOServer::WipeItem got uid(): %d",ilawmoPluginUidToBeWiped[iCount]); + CLAWMOPluginInterface* obj; + RLDEBUG("CDCMOServer::WipeItem(): NewL"); + TRAPD(err,obj = CLAWMOPluginInterface::NewL(ilawmoPluginUidToBeWiped[iCount], this)); + if(err == KErrNone) + { + RLDEBUG("CDCMOServer::WipeItem(): obj created"); + RLDEBUG_2("CDCMOServer::WipeItem plugin count: %d",ilawmoPlugins.Count()); + TRAP(err,obj->WipeL()); + RLDEBUG_2("CDCMOServer::WipeItem(): wipe called %d",err); + ilawmoPlugins.Append(obj); + // Get the IAP being used in the current session + TRAP( err, SmlHelper::GetDefaultIAPFromDMProfileL( iSessionIap ) ); + RLDEBUG_2("CDCMOServer::HandleWipeCompleted(): get iap %d",iSessionIap); + } + if(err!=KErrNone) + HandleWipeCompleted(KErrGeneral); + } + else + { + lawmostat = ELawMoWipeNotPerformed; + } + + RLDEBUG("CDCMOServer::WipeItem(): End"); + return lawmostat; + } + +TLawMoStatus CDCMOServer::GetListItemL(TDesC& item, TDes& strValue) +{ + RLDEBUG("CDCMOServer::GetListItem(): begin"); + TEComResolverParams resolverParams; + TLawMoStatus lawmostat(ELawMoSuccess); + TBuf itemName; + RImplInfoPtrArray infoArray; + TCleanupItem cleanup(CleanupEComArray, &infoArray); + CleanupStack::PushL(cleanup); + REComSession::ListImplementationsL(KLAWMOPluginInterfaceUid, resolverParams, KRomOnlyResolverUid, infoArray); + RLDEBUG("CDCMOServer::GetListItem(): listImpl"); + + for (TInt i=0; i< infoArray.Count(); i++) + { + RLDEBUG("CDCMOServer::GetListItem(): for loop"); + TBuf temp; + temp.Copy(infoArray[i]->OpaqueData()); + RLDEBUG_2("CDCMOServer::GetListItem opaque data to compare is %s", temp.PtrZ()); + if(item == temp) + { + itemName.Copy(infoArray[i]->DisplayName()); + RLDEBUG("CDCMOServer::GetListItem(): matched"); + break; + } + } + CleanupStack::PopAndDestroy(); //cleanup + RLDEBUG_2("CDCMOServer::GetListItem display name is %s", itemName.PtrZ()); + strValue.Zero(); + strValue.Append(itemName); + RLDEBUG("CDCMOServer::GetListItem(): End"); + return lawmostat; +} + + +TLawMoStatus CDCMOServer::GetToBeWipedL(TDesC& item, TDes& wipeValue) +{ + RLDEBUG("CDCMOServer::GetToBeWiped(): begin"); + TLawMoStatus lawmostat(ELawMoSuccess); + TInt wipeVal(0); + TUid impluid = GetAdapterUidL(item, ETrue); + RLDEBUG_2("CDCMOServer::GetToBeWiped for uid(): %d", impluid); + TInt afind = ilawmoPluginUidToBeWiped.Find(impluid); + if(afind!=KErrNotFound) + { + wipeVal = 1; + RLDEBUG("CDCMOServer::GetToBeWiped(): uid in Rarray"); + } + wipeValue.Zero(); + wipeValue.Num(wipeVal); + RLDEBUG("CDCMOServer::GetToBeWiped(): End"); + return lawmostat; +} + +TLawMoStatus CDCMOServer::SetToBeWipedL(TDesC& item, TInt wipeValue) +{ + RLDEBUG("CDCMOServer::SetToBeWiped(): begin"); + TLawMoStatus lawmostat(ELawMoSuccess); + TUid impluid = GetAdapterUidL(item, ETrue); + RLDEBUG_2("CDCMOServer::SetToBeWiped for uid(): %d", impluid); + TInt afind = ilawmoPluginUidToBeWiped.Find(impluid); + // Add Node's corresponding plugin uid to list so that it can be wiped + if(impluid.iUid) + { + if(wipeValue) + { + RLDEBUG("CDCMOServer::SetToBeWiped(): wipeVal true"); + if(afind==KErrNotFound) + ilawmoPluginUidToBeWiped.Append(impluid); + else + RLDEBUG("CDCMOServer::SetToBeWiped() tobewiped already set"); + } + else + { + RLDEBUG("CDCMOServer::SetToBeWiped(): wipeVal false"); + if(afind!=KErrNotFound) + { + ilawmoPluginUidToBeWiped.Remove(afind); + RLDEBUG("CDCMOServer::SetToBeWiped() tobewiped unset"); + } + else + RLDEBUG("CDCMOServer::SetToBeWiped() tobewiped notset atall"); + } + } + else + { + RLDEBUG("CDCMOServer::SetToBeWiped(): no such plugin found"); + lawmostat = ELawMoFail; + } + RLDEBUG("CDCMOServer::SetToBeWiped(): End"); + return lawmostat; +} + +// ---------------------------------------------------------------------------------------- // CDCMOServer::SetStarter // Sets the iStarter value // ---------------------------------------------------------------------------------------- @@ -618,3 +820,138 @@ iStarter = aValue; RDEBUG("CDCMOServer::SetStarter(): end"); } + +void CDCMOServer::HandleWipeCompleted(TInt status) +{ + RLDEBUG("CDCMOServer::HandleWipeCompleted(): begin"); + // whether wipe is performed or failed + iwipeStatus = (iwipeStatus && status); + RLDEBUG_2("CDCMOServer::HandleWipeCompleted wipestate: %d",iwipeStatus); + iCount++; + if(ilawmoPluginUidToBeWiped.Count()>iCount) + { + RLDEBUG("CDCMOServer::HandleWipeCompleted(): create obj"); + CLAWMOPluginInterface* obj; + TRAPD(err, obj = CLAWMOPluginInterface::NewL(ilawmoPluginUidToBeWiped[iCount], this)); + if(err == KErrNone) + { + RLDEBUG("CDCMOServer::HandleWipeCompleted(): obj created"); + RLDEBUG_2("CDCMOServer::HandleWipeCompleted plugin count: %d",ilawmoPlugins.Count()); + TRAP(err,obj->WipeL()); + RLDEBUG_2("CDCMOServer::HandleWipeCompleted(): wipe called %d",err); + ilawmoPlugins.Append(obj); + } + if(err!=KErrNone) + HandleWipeCompleted(KErrGeneral); + } + else + { + // start DM session using the Monitor for generic alert + RLDEBUG("CDCMOServer::HandleWipeCompleted(): done"); + TInt err; + TBuf srvrid; + CRepository* crep; + TRAP(err, crep = CRepository::NewLC( KCRUidDeviceManagementInternalKeys ); + CleanupStack::Pop(crep)); + RLDEBUG("CDCMOServer::HandleWipeCompleted(): get srvrid"); + if(err == KErrNone) + err = crep->Get( KLAWMOfactoryDmServerID, srvrid ); + RDEBUG_2("CDCMOServer::GetCurrentServerId() %d",err); + RLDEBUG_2("CDCMOServer::HandleWipeCompleted(): srvrid %s",srvrid.PtrZ()); + if (err == KErrNone) + { + RLDEBUG("CDCMOServer::startNwMonitor()"); + TRAP(err,StartDMNetworkMonitorL(srvrid, iSessionIap)); + } + + if(crep) + { + delete crep; //crep + crep = NULL; + } + + // Only when session is started successfully, Set wipestatus + if(err==KErrNone) + { + RLDEBUG("CDCMOServer::HandleWipeCompleted(): writing wipestatus to cenrep"); + CRepository* repository; + TRAP(err, repository = CRepository::NewLC ( KCRUidLawmoAdapter ); + CleanupStack::Pop(crep)); + + if(iwipeStatus==KErrNone) + iwipeStatus = KWipeSuccess; + else + iwipeStatus = KWipeFailure; + + repository->Set(KLawmoWipeStatus,iwipeStatus); + RLDEBUG_2("CDCMOServer::HandleWipeCompleted wipestate: %d",iwipeStatus); + if (repository) + { + delete repository; + repository = NULL; + } + } + + RLDEBUG_2("printing ilawmoPluginUidToBeWiped %d", ilawmoPluginUidToBeWiped.Count()); + RLDEBUG_2("printing ilawmoPlugins %d", ilawmoPlugins.Count()); + RLDEBUG_2("printing ilawmoPlugins %d", iCount); + iCount = -1; // To indicate all wipe is done + if( iSessionCount == 0) + { + CActiveScheduler::Stop(); + RLDEBUG("CDCMOServer::HandleWipeCompleted(): kill server"); + } + } + + RLDEBUG("CDCMOServer::HandleWipeCompleted(): end"); +} + +// ------------------------------------------------------------------------------------------------ +// CDCMOServer::StartDMNetworkMonitorL() +// ------------------------------------------------------------------------------------------------ +void CDCMOServer::StartDMNetworkMonitorL(TDesC& aServerId, TInt iapid) +{ + TInt retryenabled = 1; + _LIT( KNetMon,"\\dmnetworkmon.exe" ); + RLDEBUG("CDCMOServer::StartDMNetworkMonitorL(): start"); + TBuf8 serverid; + serverid.Copy(aServerId); + // Enable DM Network Monitoring for retry of Generic alert in case of N/W loss + + CRepository *repository= CRepository::NewLC ( KCRUidDeviceManagementInternalKeys ); + repository->Set(KDevManEnableDMNetworkMon, retryenabled); + repository->Set(KDevManServerIdKey, serverid); + repository->Set(KDevManIapIdKey, iapid); + RLDEBUG("CDCMOServer::StartDMNetworkMonitorL(): set rep keys"); + CleanupStack::PopAndDestroy(); + + // create NetMon EXE + RProcess rp; + TInt err = rp.Create(KNetMon,KNullDesC); + RLDEBUG("CDCMOServer::StartDMNetworkMonitorL():create rprocess"); + User::LeaveIfError(err); + TRequestStatus stat; + rp.Rendezvous(stat); + RLDEBUG("CDCMOServer::StartDMNetworkMonitorL():rendezvous"); + + if (stat!=KRequestPending) + { + RLDEBUG("CDCMOServer::StartDMNetworkMonitorL():abort srvr"); + rp.Kill(0); // abort startup + } + else + { + RLDEBUG("CDCMOServer::StartDMNetworkMonitorL(): start server"); + rp.Resume(); // logon OK - start the server + } + User::WaitForRequest(stat); // wait for start or death + TInt r= rp.ExitType(); + TInt reqstat = stat.Int(); + //TExitType a; + RLDEBUG_2("CDCMOServer::StartDMNetworkMonitorL() exittype %d",r); + RLDEBUG_2("CDCMOServer::StartDMNetworkMonitorL() reqstatus %d",reqstat); + + rp.Close(); +} + + diff -r 4af31167ea77 -r 13d7c31c74e0 dcmofw/dcmoserver/src/dcmosession.cpp --- a/dcmofw/dcmoserver/src/dcmosession.cpp Thu Jul 15 19:36:11 2010 +0300 +++ b/dcmofw/dcmoserver/src/dcmosession.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -20,7 +20,7 @@ #include "dcmosession.h" #include "dcmoclientserver.h" #include "dcmodebug.h" - +#include "lawmodebug.h" // ---------------------------------------------------------------------------------------- // CDCMOSession::CDCMOSession @@ -68,8 +68,10 @@ RDEBUG_2("CDCMOSession::DispatchMessageL; %d", aMessage.Function() ); TInt value; TDCMOStatus statusValue; + TLawMoStatus lstatusValue; TDCMONode nodeValue; TPckg status(statusValue); + TPckg lstatus(lstatusValue); TPckg node(nodeValue); TPckg intvalue(value); @@ -152,6 +154,88 @@ RDEBUG("CDCMOSession::DispatchMessageL - EDcmoSearchAdapter status " ); } break; + case EWipe: + { + //HBufC* item = HBufC::NewLC(KDCMOMaxStringSize); + //TPtr itemPtr = category->Des(); + //aMessage.Read (0, itemPtr); + //aMessage.Complete(KErrNone); + //RDEBUG("CDCMOSession::EWipe force complete the request"); + lstatusValue = Server().WipeItem(); + aMessage.Write (0, lstatus); + //CleanupStack::PopAndDestroy(); + RLDEBUG_2("CDCMOSession::DispatchMessageL EWipe %d", lstatusValue ); + } + break; + + case EWipeAll: + { + //TInt aForce(1); + lstatusValue = Server().WipeAllItem(); + aMessage.Write (0, lstatus); + RLDEBUG_2("CDCMOSession::DispatchMessageL EWipeAll %d", lstatusValue ); + } + break; + + case EListItemName_Get: + { + HBufC* buf1 = HBufC::NewLC(KDCMOMaxStringSize); + TPtr bufPtr1 = buf1->Des(); + HBufC* item = HBufC::NewLC(KDCMOMaxStringSize); + TPtr itemPtr = item->Des(); + aMessage.Read (0, itemPtr); + lstatusValue = Server().GetListItemL(itemPtr, bufPtr1); + aMessage.Write (1, bufPtr1); + aMessage.Write (2, lstatus); + CleanupStack::PopAndDestroy(2); + RLDEBUG_2("CDCMOSession::DispatchMessageL EListItemName_Get %d", lstatusValue ); + } + break; + + case EToBeWiped_Get: + { + HBufC* item = HBufC::NewLC(KDCMOMaxStringSize); + TPtr itemPtr = item->Des(); + HBufC* buf1 = HBufC::NewLC(KDCMOMaxStringSize); + TPtr bufPtr1 = buf1->Des(); + aMessage.Read (0, itemPtr); + lstatusValue = Server().GetToBeWipedL(itemPtr, bufPtr1); + aMessage.Write (1, bufPtr1); + aMessage.Write (2, lstatus); + CleanupStack::PopAndDestroy(2); + RLDEBUG_2("CDCMOSession::DispatchMessageL EToBeWiped_Get %d", lstatusValue ); + } + break; + + case EToBeWiped_Set: + { + //TLex lex; + //TInt val; + //TBuf<255> wipeValue; + HBufC* item = HBufC::NewLC(KDCMOMaxStringSize); + TPtr itemPtr = item->Des(); + aMessage.Read (0, itemPtr); + TInt val = aMessage.Int1(); + //aMessage.Read (1, wipeValue); + RLDEBUG_2("Tobewiped category %s",itemPtr.PtrZ()); + //lex.Assign( wipeValue ); + //TInt err = lex.Val( val ); + RLDEBUG_2("Tobewiped value,int %d", val ); + //if(err==KErrNone) + // { + // RLDEBUG("SetToBeWiped call" ); + lstatusValue = Server().SetToBeWipedL(itemPtr, val); + // } + //else + // { + // RLDEBUG("SetToBeWiped not" ); + // lstatusValue = ELawMoFail; + // } + aMessage.Write (2, lstatus); + CleanupStack::PopAndDestroy(); + RLDEBUG_2("CDCMOSession::DispatchMessageL EToBeWiped_Set %d", lstatusValue ); + } + break; default : RDEBUG("CDCMOSession::DispatchMessageL- Case Not Found" ); } diff -r 4af31167ea77 -r 13d7c31c74e0 dcmofw/group/bld.inf --- a/dcmofw/group/bld.inf Thu Jul 15 19:36:11 2010 +0300 +++ b/dcmofw/group/bld.inf Thu Aug 19 10:44:50 2010 +0300 @@ -24,3 +24,4 @@ #include "../dcmoclient/group/bld.inf" #include "../dcmoserver/group/bld.inf" #include "../dcmocustcmd/group/bld.inf" +#include "../lawmoclient/group/bld.inf" \ No newline at end of file diff -r 4af31167ea77 -r 13d7c31c74e0 dcmofw/inc/dcmoclientserver.h --- a/dcmofw/inc/dcmoclientserver.h Thu Jul 15 19:36:11 2010 +0300 +++ b/dcmofw/inc/dcmoclientserver.h Thu Aug 19 10:44:50 2010 +0300 @@ -39,4 +39,15 @@ EDcmoSearchAdapter }; +enum TLawmoControlMessages + { + ECreateSubSession = 10, + ECloseSubSession, + EListItemName_Get, + EToBeWiped_Get, + EToBeWiped_Set, + EWipe, + EWipeAll, + ENotUsed + }; #endif// __DCMOCLIENTSERVER_H__ diff -r 4af31167ea77 -r 13d7c31c74e0 dcmofw/inc/lawmodebug.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dcmofw/inc/lawmodebug.h Thu Aug 19 10:44:50 2010 +0300 @@ -0,0 +1,56 @@ +/* +* Copyright (c) 2000 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 terminalsecurity components +* +*/ + + +#ifndef _LAW_DEBUG_HEADER_ +#define _LAW_DEBUG_HEADER_ + +#include +#include +// CONSTANTS +_LIT( KLawLogFolderName, "law" ); +_LIT( KLawLogFileName, "law.log" ); +// MACROS +#ifdef _DEBUG +#define _LAW_FILE_DEBUG +#endif + +#ifdef _LAW_FILE_DEBUG + #define RLDEBUG(X) RFileLogger::Write( KLawLogFolderName, KLawLogFileName, EFileLoggingModeAppend, _L(X) ) + #define RLDEBUG_2(X,Y) RFileLogger::WriteFormat( KLawLogFolderName, KLawLogFileName, EFileLoggingModeAppend, _L(X),Y ) + #define RLDEBUG_3(X,Y,Z) RFileLogger::WriteFormat( KLawLogFolderName, KLawLogFileName, EFileLoggingModeAppend, _L(X),Y,Z ) +#else + + #if defined (_DEBUG) + #define RLDEBUG(X) RDebug::Print(_L(X)) + #define RLDEBUG_2(X,Y) RDebug::Print(_L(X),Y) + #define RLDEBUG_3(X,Y,Z) RDebug::Print(_L(X),Y,Z) + #else + #define RLDEBUG(X) + #define RLDEBUG_2(X,Y) + #define RLDEBUG_3(X,Y,Z) + #endif // _DEBUG + +#endif // _LAW_FILE_DEBUG + + + + +#endif // _LAW_DEBUG_HEADER_ + + + diff -r 4af31167ea77 -r 13d7c31c74e0 dcmofw/lawmoclient/bwins/lawmoclientu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dcmofw/lawmoclient/bwins/lawmoclientu.def Thu Aug 19 10:44:50 2010 +0300 @@ -0,0 +1,9 @@ +EXPORTS + ?SetToBeWipedValue@RLawmoClient@@QAEHAAVTDes16@@H@Z @ 1 NONAME ; int RLawmoClient::SetToBeWipedValue(class TDes16 &, int) + ?GetListItemName@RLawmoClient@@QAEHAAVTDes16@@0@Z @ 2 NONAME ; int RLawmoClient::GetListItemName(class TDes16 &, class TDes16 &) + ?GetToBeWipedValue@RLawmoClient@@QAEHAAVTDes16@@AAH@Z @ 3 NONAME ; int RLawmoClient::GetToBeWipedValue(class TDes16 &, int &) + ?DeviceWipe@RLawmoClient@@QAE?AW4TLawMoStatus@@XZ @ 4 NONAME ; enum TLawMoStatus RLawmoClient::DeviceWipe(void) + ?Connect@RLawmoClient@@QAEHXZ @ 5 NONAME ; int RLawmoClient::Connect(void) + ?DeviceWipeAll@RLawmoClient@@QAE?AW4TLawMoStatus@@XZ @ 6 NONAME ; enum TLawMoStatus RLawmoClient::DeviceWipeAll(void) + ?Close@RLawmoClient@@QAEXXZ @ 7 NONAME ; void RLawmoClient::Close(void) + diff -r 4af31167ea77 -r 13d7c31c74e0 dcmofw/lawmoclient/eabi/lawmoclientu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dcmofw/lawmoclient/eabi/lawmoclientu.def Thu Aug 19 10:44:50 2010 +0300 @@ -0,0 +1,8 @@ +EXPORTS + _ZN12RLawmoClient10DeviceWipeEv @ 1 NONAME + _ZN12RLawmoClient13DeviceWipeAllEv @ 2 NONAME + _ZN12RLawmoClient15GetListItemNameER6TDes16S1_ @ 3 NONAME + _ZN12RLawmoClient17GetToBeWipedValueER6TDes16Ri @ 4 NONAME + _ZN12RLawmoClient17SetToBeWipedValueER6TDes16i @ 5 NONAME + _ZN12RLawmoClient5CloseEv @ 6 NONAME + _ZN12RLawmoClient7ConnectEv @ 7 NONAME diff -r 4af31167ea77 -r 13d7c31c74e0 dcmofw/lawmoclient/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dcmofw/lawmoclient/group/bld.inf Thu Aug 19 10:44:50 2010 +0300 @@ -0,0 +1,20 @@ +/* +* Copyright (c) 2005 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: This file provides building information for DCMO Client. +* +*/ + + +PRJ_MMPFILES +lawmoclient.mmp diff -r 4af31167ea77 -r 13d7c31c74e0 dcmofw/lawmoclient/group/lawmoclient.mmp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dcmofw/lawmoclient/group/lawmoclient.mmp Thu Aug 19 10:44:50 2010 +0300 @@ -0,0 +1,39 @@ +/* +* Copyright (c) 2005 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: DCMO Client for DCMO framework +* +*/ + +#include +#include "defaultcaps.hrh" + +CAPABILITY CAP_CLIENT_DLL +TARGET lawmoclient.dll +TARGETTYPE dll +UID 0x1000008D 0x2002EA20 +VENDORID VID_DEFAULT + +SOURCEPATH ../src +SOURCE lawmoclient.cpp + +MW_LAYER_SYSTEMINCLUDE +USERINCLUDE . +USERINCLUDE ../inc +USERINCLUDE ../../inc + +LIBRARY euser.lib +LIBRARY featmgr.lib +LIBRARY flogger.lib + +SMPSAFE \ No newline at end of file diff -r 4af31167ea77 -r 13d7c31c74e0 dcmofw/lawmoclient/src/lawmoclient.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dcmofw/lawmoclient/src/lawmoclient.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -0,0 +1,201 @@ +/* +* Copyright (c) 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: LAWMO Client implementation +* +*/ + +#include +#include +#include "dcmoclientserver.h" +#include "lawmoclient.h" +#include "lawmodebug.h" +// Standard server startup code +// +static TInt StartServer() + { + RLDEBUG("from lawmoclient ->starting dcmo server..."); + + // EPOC and EKA 2 is easy, we just create a new server process. Simultaneous + // launching of two such processes should be detected when the second one + // attempts to create the server object, failing with KErrAlreadyExists. + RProcess server; + TInt r=server.Create(KDCMOServerName,KNullDesC); + + if (r!=KErrNone) + { + RLDEBUG_2("lawmoclient -> server start failed %d",r); + return r; + } + TRequestStatus stat; + server.Rendezvous(stat); + if (stat!=KRequestPending) + server.Kill(0); // abort startup + else + server.Resume(); // logon OK - start the server + RLDEBUG("lawmoclient -> dcmoserver Started"); + User::WaitForRequest(stat); // wait for start or death + // we can't use the 'exit reason' if the server panicked as this + // is the panic 'reason' and may be '0' which cannot be distinguished + // from KErrNone + r=(server.ExitType()==EExitPanic) ? KErrGeneral : stat.Int(); + server.Close(); + return r; + } + + +// This is the standard retry pattern for server connection +EXPORT_C TInt RLawmoClient::Connect() + { + RLDEBUG("RLawmoClient: connect..."); + TInt retry=2; + for (;;) + { + TInt r=CreateSession(KDCMOServerName,TVersion(0,0,0),1); + if (r!=KErrNotFound && r!=KErrServerTerminated) + return r; + if (--retry==0) + return r; + RLDEBUG("RLawmoClient: to start server..."); + r=StartServer(); + if (r!=KErrNone && r!=KErrAlreadyExists) + return r; + } + } + +// --------------------------------------------------------------------------- +// RLawmoClient::Close() +// --------------------------------------------------------------------------- +EXPORT_C void RLawmoClient::Close() + { + RLDEBUG(" RLawmoClient::Close"); + RSessionBase::Close(); //basecall + RLDEBUG(" RLawmoClient::close done"); + } + +// ---------------------------------------------------------------------------------------- +// RLawmoClient::DeviceWipeL +// ---------------------------------------------------------------------------------------- +EXPORT_C TLawMoStatus RLawmoClient::DeviceWipe() + { + RLDEBUG("RLawmoClient::DeviceWipe Begin"); + TLawMoStatus status(ELawMoAccepted); + TPckg statusValue(status); + TInt err = SendReceive(EWipe,TIpcArgs(&statusValue)); + //TInt err = SendReceive(EWipe); + if(err != KErrNone) + status = ELawMoWipeNotPerformed; + RLDEBUG("RLawmoClient::DeviceWipe End"); + return status; + } + +// ---------------------------------------------------------------------------------------- +// RLawmoClient::DeviceWipeAll +// ---------------------------------------------------------------------------------------- +EXPORT_C TLawMoStatus RLawmoClient::DeviceWipeAll( ) + { + RLDEBUG("RLawmoClient::DeviceWipeAll Begin"); + TLawMoStatus status(ELawMoSuccess); + TPckg statusValue(status); + TInt err = SendReceive( EWipeAll,TIpcArgs(&statusValue) ); + if(err != KErrNone)//if sendreceive itself failed + status = ELawMoWipeFailed; + RLDEBUG("RLawmoClient::DeviceWipeAll End"); + return status; + } + +// ---------------------------------------------------------------------------------------- +// RLawmoClient::SetPasscodeMaxAttempts +// ---------------------------------------------------------------------------------------- +EXPORT_C TInt RLawmoClient::GetListItemName( TDes& aItemName, TDes& aNodeValue ) + { + RLDEBUG("RLawmoClient::GetListItemName Begin"); + + TIpcArgs args1; + TLawMoStatus status(ELawMoOk); + + args1.Set( 0, &aItemName ); + args1.Set( 1, &aNodeValue ); + args1.Set( 2, status); + TInt err = SendReceive( EListItemName_Get, args1 ); + if(err != KErrNone) + status = ELawMoInvalid; + RLDEBUG("RLawmoClient::GetListItemName End"); + return status; + } + +EXPORT_C TInt RLawmoClient::GetToBeWipedValue( TDes& aItemName, TBool& aWipeVal ) + { + RLDEBUG("RLawmoClient::GetToBeWipedValue Begin"); + + TIpcArgs args1; + TBuf<255> wipeValue; + TLex lex; + + TLawMoStatus status(ELawMoOk); + + args1.Set( 0, &aItemName ); + args1.Set( 1, &wipeValue ); + args1.Set( 2, status); + + TInt err = SendReceive( EToBeWiped_Get, args1 ); + + if( err == KErrNone ) + { + lex.Assign( wipeValue ); + err = lex.Val( aWipeVal ); + } + if(err != KErrNone) + status = ELawMoInvalid; + + RLDEBUG("RLawmoClient::GetToBeWipedValue End"); + return status; + } + +EXPORT_C TInt RLawmoClient::SetToBeWipedValue( TDes& aItemName, TInt aWipeVal ) + { + RLDEBUG("RLawmoClient::SetToBeWipedValue Begin"); + TIpcArgs args1; + TLawMoStatus status(ELawMoOk); + + args1.Set( 0, &aItemName ); + args1.Set( 1, aWipeVal ); + args1.Set( 2, status); + + TInt err = SendReceive( EToBeWiped_Set, args1 ); + + if(err != KErrNone) + status = ELawMoInvalid; + + RLDEBUG("RLawmoClient::SetToBeWipedValue End"); + return status; + } +// ---------------------------------------------------------------------------------------- +// RLawmoClient::SetPasscodeMaxAttempts +// ---------------------------------------------------------------------------------------- +/*EXPORT_C TInt RLawmoClient::GetLawMoState( TDes& aState ) + { + RLDEBUG("RLawmoClient::GetLawMoState Begin"); + + TLawMoStatus status(ELawMoSuccess); + TIpcArgs args1; + args1.Set( 0, &aState ); + args1.Set( 1, status); + TInt err = SendReceive( EState, args1 ); + + if(err != KErrNone) + status = ELawMoFail; + + RLDEBUG("RLawmoClient::GetLawMoState End"); + return status; + }*/ diff -r 4af31167ea77 -r 13d7c31c74e0 dcmofw/rom/dcmofw.iby --- a/dcmofw/rom/dcmofw.iby Thu Jul 15 19:36:11 2010 +0300 +++ b/dcmofw/rom/dcmofw.iby Thu Aug 19 10:44:50 2010 +0300 @@ -20,13 +20,17 @@ #define _DCMOFW_IBY_ file=ABI_DIR\BUILD_DIR\dcmoclient.dll SHARED_LIB_DIR\dcmoclient.dll +#ifdef FF_OMA_LAWMO +file=ABI_DIR\BUILD_DIR\lawmoclient.dll SHARED_LIB_DIR\lawmoclient.dll +#endif -#ifdef FF_RUNTIME_DEVICE_CAPABILITY_CONFIGURATION +#if defined(FF_RUNTIME_DEVICE_CAPABILITY_CONFIGURATION) || defined(FF_OMA_LAWMO) data=DATAZ_\RESOURCE_FILES_DIR\dcmo.rsc RESOURCE_FILES_DIR\dcmo.rsc file=ABI_DIR\BUILD_DIR\dcmoserver.exe PROGRAMS_DIR\dcmoserver.exe data=\epoc32\data\Z\private\10202BE9\2001FE47.txt private\10202BE9\2001FE47.txt data=\epoc32\data\Z\private\10202BE9\2000253D.txt private\10202BE9\2000253D.txt #endif + #endif diff -r 4af31167ea77 -r 13d7c31c74e0 dcmofw/rom/dcmofwresources.iby --- a/dcmofw/rom/dcmofwresources.iby Thu Jul 15 19:36:11 2010 +0300 +++ b/dcmofw/rom/dcmofwresources.iby Thu Aug 19 10:44:50 2010 +0300 @@ -20,8 +20,9 @@ #define _DCMOFWRESOURCES_IBY_ -#ifdef FF_RUNTIME_DEVICE_CAPABILITY_CONFIGURATION +#if defined(FF_RUNTIME_DEVICE_CAPABILITY_CONFIGURATION) || defined(FF_OMA_LAWMO) data=DATAZ_\RESOURCE_FILES_DIR\dcmo.rsc RESOURCE_FILES_DIR\dcmo.rsc #endif + #endif diff -r 4af31167ea77 -r 13d7c31c74e0 fotaapplication/fotaserver/FotaServer/group/fotaserver.mmp --- a/fotaapplication/fotaserver/FotaServer/group/fotaserver.mmp Thu Jul 15 19:36:11 2010 +0300 +++ b/fotaapplication/fotaserver/FotaServer/group/fotaserver.mmp Thu Aug 19 10:44:50 2010 +0300 @@ -116,6 +116,7 @@ LIBRARY featmgr.lib LIBRARY fmsclient.lib //FMS Client LIBRARY cmmanager.lib //Connection Manager +LIBRARY inetprotutil.lib LIBRARY aknnotify.lib // #ifdef _FOTA_DEBUG diff -r 4af31167ea77 -r 13d7c31c74e0 fotaapplication/fotaserver/FotaServer/src/fotadownload.cpp --- a/fotaapplication/fotaserver/FotaServer/src/fotadownload.cpp Thu Jul 15 19:36:11 2010 +0300 +++ b/fotaapplication/fotaserver/FotaServer/src/fotadownload.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -47,6 +47,7 @@ #include "fotaserverPrivatePSKeys.h" #include "FotaNetworkRegStatus.h" #include //globalrfsstates +#include #define __LEAVE_IF_ERROR(x) if(KErrNone!=x) {FLOG(_L("LEAVE in %s: %d"), __FILE__, __LINE__); User::Leave(x); } #define __LEAVE(x) {FLOG(_L("LEAVE in %s: %d"), __FILE__, __LINE__); User::Leave(x); } @@ -294,7 +295,7 @@ if ( iUrl ) {delete iUrl; iUrl=NULL;} iUrl = aPkgURL.Alloc(); - iUpdateAfterDownload = aUpdateAfterDownload; + iRestartCounter = aRestartDownload; iDLState = aParams; @@ -314,6 +315,44 @@ // 2. Get Iap Id to use for download. This would be set in iDLState.iIapId. SetIapToUseL(aParams, aIapid); + + if ( iDLState.iIapId > KErrNotFound ) + { + iFotaServer->iDatabase->OpenDBL(); + iFotaServer->iDatabase->SetStateL(iDLState,KNullDesC8, EFDBIapId ); + iFotaServer->iDatabase->CloseAndCommitDB(); + } + + /* + TBuf8<100> test; + //_LIT8( KNSmlDMFotaNode,"http://2IND02230.noe.nokia.com8080/myspace/ddv1.dd" ); + _LIT8( KNSmlDMFotaNode,"http://fdsqa.nokia.com/fdp/interface?fid=A0A19HMCUHWRU" ); + test.Copy(KNSmlDMFotaNode); + + + TUriParser8 parser; + + if (!parser.Parse(test) && !parser.IsSchemeValid()) */ + + TUriParser8 parser; + + + + if((parser.Parse(aPkgURL) == KErrNone) && !parser.IsSchemeValid() ) + + { + FLOG(_L("URL is malformed.. finalizing download")); + iDLState.iResult = RFotaEngineSession::EResMalformedOrBadURL; + iDLState.iState = RFotaEngineSession::EDownloadFailed; + iFotaServer->iDatabase->OpenDBL(); + iFotaServer->iDatabase->SetStateL(iDLState, KNullDesC8, EFDBState | EFDBResult); + iFotaServer->iDatabase->CloseAndCommitDB(); + iFotaServer->FinalizeDownloadL(iDLState); + LaunchNotifierL(ESyncMLFwUpdErrorNote, KErrGeneralNoResume, EFalse ); + return; + } + iUpdateAfterDownload = aUpdateAfterDownload; + // 3. Determine whether download should be visible or not // Autoaccepted profile? diff -r 4af31167ea77 -r 13d7c31c74e0 remotemgmt_plat/dcmo_adapter_api/inc/DcmoConst.h --- a/remotemgmt_plat/dcmo_adapter_api/inc/DcmoConst.h Thu Jul 15 19:36:11 2010 +0300 +++ b/remotemgmt_plat/dcmo_adapter_api/inc/DcmoConst.h Thu Aug 19 10:44:50 2010 +0300 @@ -51,4 +51,22 @@ EDcmoUnknown }; + +enum TLawMoStatus +{ + ELawMoSuccess, + ELawMoOk, + ELawMoFail, + ELawMoFullyLockFailed, + ELawMoPartialLockFailed, + ELawMoUnlockFailed, + ELawMoWipeSuccess, + ELawMoWipeFailed, + ELawMoWipeNotPerformed, + ELawMoUserCancelled, + ELawMoAccepted, + ELawMoInvalid, + ELawMoUnknown +}; + #endif// __DCMOCONST_H__ diff -r 4af31167ea77 -r 13d7c31c74e0 remotemgmt_plat/dcmo_control_api/group/bld.inf --- a/remotemgmt_plat/dcmo_control_api/group/bld.inf Thu Jul 15 19:36:11 2010 +0300 +++ b/remotemgmt_plat/dcmo_control_api/group/bld.inf Thu Aug 19 10:44:50 2010 +0300 @@ -25,4 +25,5 @@ PRJ_EXPORTS ../inc/dcmoClientBase.h MW_LAYER_PLATFORM_EXPORT_PATH(dcmoclientbase.h) -../inc/dcmoClient.h MW_LAYER_PLATFORM_EXPORT_PATH(dcmoclient.h) +../inc/dcmoClient.h MW_LAYER_PLATFORM_EXPORT_PATH(dcmoclient.h) +../inc/lawmoclient.h MW_LAYER_PLATFORM_EXPORT_PATH(lawmoclient.h) \ No newline at end of file diff -r 4af31167ea77 -r 13d7c31c74e0 remotemgmt_plat/dcmo_control_api/inc/dcmoClient.h --- a/remotemgmt_plat/dcmo_control_api/inc/dcmoClient.h Thu Jul 15 19:36:11 2010 +0300 +++ b/remotemgmt_plat/dcmo_control_api/inc/dcmoClient.h Thu Aug 19 10:44:50 2010 +0300 @@ -37,20 +37,20 @@ * @param None * @return KErrNone Symbian error code */ - TInt OpenL(); + IMPORT_C TInt OpenL(); /** * Close server connection * @param None * @return None */ - void Close(); + IMPORT_C void Close(); /** * ~RDCMOClient. * Virtual Destructor. */ - virtual ~RDCMOClient(); + IMPORT_C virtual ~RDCMOClient(); /** * Get the interger type value @@ -60,7 +60,7 @@ * @param aValue * @return TDCMOStatus */ - TDCMOStatus GetDCMOIntAttributeValue(TDes& aCategory, TDCMONode aId, TInt& aValue); + IMPORT_C TDCMOStatus GetDCMOIntAttributeValue(TDes& aCategory, TDCMONode aId, TInt& aValue); /** * Get the string type value @@ -70,7 +70,7 @@ * @param aStrValue * @return TDCMOStatus */ - TDCMOStatus GetDCMOStrAttributeValue (TDes& aCategory, TDCMONode aId, TDes& aStrValue); + IMPORT_C TDCMOStatus GetDCMOStrAttributeValue (TDes& aCategory, TDCMONode aId, TDes& aStrValue); /** * Set the interger type value @@ -80,7 +80,7 @@ * @param aValue * @return TDCMOStatus */ - TDCMOStatus SetDCMOIntAttributeValue(TDes& aCategory, TDCMONode aId, TInt aValue); + IMPORT_C TDCMOStatus SetDCMOIntAttributeValue(TDes& aCategory, TDCMONode aId, TInt aValue); /** * Set the string type value @@ -90,7 +90,7 @@ * @param aStrValue * @return TDCMOStatus */ - TDCMOStatus SetDCMOStrAttributeValue(TDes& aCategory, TDCMONode aId, TDes& aStrValue); + IMPORT_C TDCMOStatus SetDCMOStrAttributeValue(TDes& aCategory, TDCMONode aId, TDes& aStrValue); /** * Get All type value @@ -100,7 +100,7 @@ * @param aStrValue * @return TDCMOStatus */ - void SearchByGroupValue(TDes& aGroup, TDes& aAdapterList); + IMPORT_C void SearchByGroupValue(TDes& aGroup, TDes& aAdapterList); private: diff -r 4af31167ea77 -r 13d7c31c74e0 remotemgmt_plat/dcmo_control_api/inc/lawmoclient.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/remotemgmt_plat/dcmo_control_api/inc/lawmoclient.h Thu Aug 19 10:44:50 2010 +0300 @@ -0,0 +1,86 @@ +/* +* Copyright (c) 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: header file for lawmo Client +* +*/ + +#ifndef __LAWMOCLIENT_H__ +#define __LAWMOCLIENT_H__ + + +#include +#include +#include + +// needed for creating server thread. + +class RLawmoClient : public RSessionBase + { +public: + + /** + * connects to DCMOServer + * @param None + * @return KErrNone Symbian error code + */ + IMPORT_C TInt Connect(); + /** + * Close server connection + * @param None + * @return None + */ + IMPORT_C void Close(); + /** + * Wipe the contents of the Device + * @param None + * @return None + */ + IMPORT_C TLawMoStatus DeviceWipe(); + + /** + * Wipe All the contents in the Device + * @param None + * @return None + */ + IMPORT_C TLawMoStatus DeviceWipeAll( ); + + /** + /*Fetches the ListItemName of the lawmo node + * @param ItemName - Node on which this fetch is initiated + * @param NodeValue- List Item name value + * @return Symbian error code + */ + IMPORT_C TInt GetListItemName( TDes& aItemName, TDes& aNodeValue); + + /** + /*Fetches the tobewiped of the lawmo node + * @param ItemName - Node on which this fetch is initiated + * @param NodeValue- List Item name value + * @return Symbian error code + */ + IMPORT_C TInt GetToBeWipedValue( TDes& aItemName, TBool& aWipeVal); + + /** + /*Sets the wipe value for the lawmo node + * @param ItemName - Node on which this operation is initiated + * @param NodeValue- wipe value + * @return Symbian error code + */ + IMPORT_C TInt SetToBeWipedValue( TDes& aItemName, TInt aWipeVal ); + +private: + + }; + +#endif // __LAWMOCLIENT_H__ diff -r 4af31167ea77 -r 13d7c31c74e0 remotemgmt_plat/device_management_parameter_api/group/bld.inf --- a/remotemgmt_plat/device_management_parameter_api/group/bld.inf Thu Jul 15 19:36:11 2010 +0300 +++ b/remotemgmt_plat/device_management_parameter_api/group/bld.inf Thu Aug 19 10:44:50 2010 +0300 @@ -25,3 +25,4 @@ PRJ_EXPORTS ../inc/DevManInternalCRKeys.h MW_LAYER_PLATFORM_EXPORT_PATH(DevManInternalCRKeys.h) +../inc/lawmoadaptercrkeys.h MW_LAYER_PLATFORM_EXPORT_PATH(lawmoadaptercrkeys.h) \ No newline at end of file diff -r 4af31167ea77 -r 13d7c31c74e0 remotemgmt_plat/device_management_parameter_api/inc/DevManInternalCRKeys.h --- a/remotemgmt_plat/device_management_parameter_api/inc/DevManInternalCRKeys.h Thu Jul 15 19:36:11 2010 +0300 +++ b/remotemgmt_plat/device_management_parameter_api/inc/DevManInternalCRKeys.h Thu Aug 19 10:44:50 2010 +0300 @@ -166,6 +166,15 @@ */ const TUint32 KNSmlDMSCOMOTargetRef = 0x00000012; +const TUint32 KLAWMOPhoneLock = 0x00000013; + +const TUint32 KLAWMOfactoryDmProfileID = 0x00000014; + +const TUint32 KMaxFactoryDMProfileId = 0x00000015; + +const TUint32 KLAWMOfactoryDmServerName = 0x00000016; + +const TUint32 KLAWMOfactoryDmServerID = 0x00000017; #endif // SYNCML_DEVMAN_INTERNAL_CR_KEYS_H diff -r 4af31167ea77 -r 13d7c31c74e0 remotemgmt_plat/device_management_parameter_api/inc/lawmoadaptercrkeys.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/remotemgmt_plat/device_management_parameter_api/inc/lawmoadaptercrkeys.h Thu Aug 19 10:44:50 2010 +0300 @@ -0,0 +1,38 @@ +/* +* Name : LawmoadapterCRKeys.h +* Part of : Lawmoadapter +* +* Copyright (c) 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: Implementation of dm adapters +* This is part of omadmextensions. +* +*/ + +#ifndef LAWMOADAPTERCRKEYS_H +#define LAWMOADAPTERCRKEYS_H + +// CONSTANTS + +// key uid +const TUid KCRUidLawmoAdapter = {0x2002EA22}; + +// State of Lawmo Adapter +const TUint32 KLawmoRootNode = 0x00000001; +const TUint32 KLawmoCorrelator = 0x00000002; +const TUint32 KLawmoWipeStatus = 0x00000003; +const TUint32 KLawmoSourceURI = 0x00000004; + +#endif // LawmoADAPTERCRKEYS_H + +// End of File diff -r 4af31167ea77 -r 13d7c31c74e0 remotemgmt_plat/group/bld.inf --- a/remotemgmt_plat/group/bld.inf Thu Jul 15 19:36:11 2010 +0300 +++ b/remotemgmt_plat/group/bld.inf Thu Aug 19 10:44:50 2010 +0300 @@ -58,3 +58,4 @@ #include "../dm_native_notifier_api/group/bld.inf" #include "../syncml_ds_customization_api/group/bld.inf" #include "../syncml_ds_error_reporting_api/group/bld.inf" +#include "../lawmo_plugin_api/group/bld.inf" diff -r 4af31167ea77 -r 13d7c31c74e0 remotemgmt_plat/lawmo_plugin_api/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/remotemgmt_plat/lawmo_plugin_api/group/bld.inf Thu Aug 19 10:44:50 2010 +0300 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 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: File that exports the files belonging to +: LAWMO Plugin API +* +*/ + + +#include + +PRJ_PLATFORMS +DEFAULT + +PRJ_EXPORTS + +../inc/lawmointerface.h MW_LAYER_PLATFORM_EXPORT_PATH(lawmointerface.h) +../inc/lawmointerface.inl MW_LAYER_PLATFORM_EXPORT_PATH(lawmointerface.inl) +../inc/lawmocallbackinterface.h MW_LAYER_PLATFORM_EXPORT_PATH(lawmocallbackinterface.h) diff -r 4af31167ea77 -r 13d7c31c74e0 remotemgmt_plat/lawmo_plugin_api/inc/lawmocallbackinterface.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/remotemgmt_plat/lawmo_plugin_api/inc/lawmocallbackinterface.h Thu Aug 19 10:44:50 2010 +0300 @@ -0,0 +1,40 @@ +/* +* Copyright (c) 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: LAWMO CallBack Interface definition +* +*/ + +#ifndef _MLAWMOCALLBACKINTERFACE_H__ +#define _MLAWMOCALLBACKINTERFACE_H__ + +#include + +class MLawmoPluginWipeObserver + { +public: + + /** + * Called to notify the observer that the wipe call has been completed + * by the Plugin at hand. + * @param aSession session + * @param aError KErrNone, if opening the session succeeded; + * or one of the system-wide error codes, if opening the + * session failed + */ + virtual void HandleWipeCompleted(TInt status)= 0; + + }; + +#endif // _MLAWMOCALLBACKINTERFACE_H__ + diff -r 4af31167ea77 -r 13d7c31c74e0 remotemgmt_plat/lawmo_plugin_api/inc/lawmointerface.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/remotemgmt_plat/lawmo_plugin_api/inc/lawmointerface.h Thu Aug 19 10:44:50 2010 +0300 @@ -0,0 +1,71 @@ +/* +* Copyright (c) 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: LAWMO Plugin Interface definition +* +*/ + +#ifndef _MLAWMOPLUGININTERFACE_H__ +#define _MLAWMOPLUGININTERFACE_H__ + +#include +#include +#include + +// UID of this interface +const TUid KLAWMOPluginInterfaceUid = {0x2002EA1F}; + +/** + An LAWMO abstract class being representative of the + concrete class which the client wishes to use. + + It acts as a base, for a real class to provide all the + functionality that a client requires. + It supplies instantiation & destruction by using + the ECom framework, and functional services + by using the methods of the actual class. + */ + + +class MLAWMOPluginInterface + { +public: + + virtual void WipeL() = 0; + }; + +class CLAWMOPluginInterface : public CBase, public MLAWMOPluginInterface + { +public: + // Instantiates an object of this type + /** + * Create instance of CLAWMOPluginInterface + * @param aUid , implementation Uid + * @return Instance of CLAWMOPluginInterface + */ + static CLAWMOPluginInterface* NewL(TUid aUid, MLawmoPluginWipeObserver* aObserver); + /** + * C++ Destructor + */ + virtual ~CLAWMOPluginInterface(); + +private: + // Unique instance identifier key + TUid iDtor_ID_Key; + + }; + +#include "LAWMOInterface.inl" + +#endif // _MLAWMOPLUGININTERFACE_H__ + diff -r 4af31167ea77 -r 13d7c31c74e0 remotemgmt_plat/lawmo_plugin_api/inc/lawmointerface.inl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/remotemgmt_plat/lawmo_plugin_api/inc/lawmointerface.inl Thu Aug 19 10:44:50 2010 +0300 @@ -0,0 +1,40 @@ +/* +* Copyright (c) 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: LAWMO Interface +* +*/ + +/** + * C++ Destructor + */ +inline CLAWMOPluginInterface::~CLAWMOPluginInterface() + { + // Destroy any instance variables and then + // inform the framework that this specific + // instance of the interface has been destroyed. + REComSession::DestroyedImplementation(iDtor_ID_Key); + } + +/** + * Create instance of CLAWMOPluginInterface + * @param aUid , implementation Uid + * @return Instance of CLAWMOPluginInterface + */ +inline CLAWMOPluginInterface* CLAWMOPluginInterface::NewL(TUid aUid, MLawmoPluginWipeObserver* aObserver) + { + TAny* ptr = REComSession::CreateImplementationL( aUid, _FOFF(CLAWMOPluginInterface, iDtor_ID_Key), aObserver); + CLAWMOPluginInterface* self = reinterpret_cast( ptr ); + return self; + } +// \ No newline at end of file diff -r 4af31167ea77 -r 13d7c31c74e0 remotemgmt_plat/scp_server_api/inc/SCPClient.h --- a/remotemgmt_plat/scp_server_api/inc/SCPClient.h Thu Jul 15 19:36:11 2010 +0300 +++ b/remotemgmt_plat/scp_server_api/inc/SCPClient.h Thu Aug 19 10:44:50 2010 +0300 @@ -269,6 +269,7 @@ * Fetch the limit-values for code length */ void FetchLimits( TInt& aMin, TInt& aMax ); + void InformAutolockTask(); TBool isFlagEnabled; }; diff -r 4af31167ea77 -r 13d7c31c74e0 remotemgmt_plat/syncml_client_api/inc/SyncMLErr.h --- a/remotemgmt_plat/syncml_client_api/inc/SyncMLErr.h Thu Jul 15 19:36:11 2010 +0300 +++ b/remotemgmt_plat/syncml_client_api/inc/SyncMLErr.h Thu Aug 19 10:44:50 2010 +0300 @@ -121,6 +121,11 @@ const TInt KErrGeneral = KErrSyncEngineErrorBase - 94; + /* Implementation of CMCC PIM v3 begins*/ + /** Server is full - CMCC PIM v3 specific*/ + const TInt KErrServerFull = KErrSyncEngineErrorBase - 95; + /* Implementation of CMCC PIM v3 ends*/ + /** Base value for push message parser-related errors. */ const TInt KErrPushMessageParserErrorBase = -8451; // 8451 - 8480 /** Push message is too short. */ diff -r 4af31167ea77 -r 13d7c31c74e0 remotemgmt_plat/terminal_security_device_lock_api/inc/TerminalControl3rdPartyAPI.h --- a/remotemgmt_plat/terminal_security_device_lock_api/inc/TerminalControl3rdPartyAPI.h Thu Jul 15 19:36:11 2010 +0300 +++ b/remotemgmt_plat/terminal_security_device_lock_api/inc/TerminalControl3rdPartyAPI.h Thu Aug 19 10:44:50 2010 +0300 @@ -148,6 +148,22 @@ IMPORT_C TInt GetDeviceLockParameter(TInt aType, TDes8& aData); + /** + ResetDeviceLockParameters + + The function resets the Terminal Security parameters that were set by the calling application + (by earlier calls to SetDeviceLockParameter()) + + NOTE: + > The function resets only those parameters that the calling function had set. Parameters + not set by the calling application are not affected. + + > Calls to this function will not reset value of EPasscode. Device Lock Code will not be reset + + @param none + @return KErrNone Symbian error code + */ + IMPORT_C TInt ResetDeviceLockParameters(); }; #endif //__TERMINALCONTROL3RDPARTYAPI_H__ \ No newline at end of file diff -r 4af31167ea77 -r 13d7c31c74e0 syncmlfw/common/sosserver/inc/nsmlsosthread.h --- a/syncmlfw/common/sosserver/inc/nsmlsosthread.h Thu Jul 15 19:36:11 2010 +0300 +++ b/syncmlfw/common/sosserver/inc/nsmlsosthread.h Thu Aug 19 10:44:50 2010 +0300 @@ -128,6 +128,8 @@ CNSmlDMAgent* iDMAgent; CNSmlDSAgent* iDSAgent; CNSmlCancelTimeOut* iCancelTimeout; + // Fix for cancel not happening when cancel key is pressed + TBool iSyncCancelled; }; diff -r 4af31167ea77 -r 13d7c31c74e0 syncmlfw/common/sosserver/src/nsmlsosthread.cpp --- a/syncmlfw/common/sosserver/src/nsmlsosthread.cpp Thu Jul 15 19:36:11 2010 +0300 +++ b/syncmlfw/common/sosserver/src/nsmlsosthread.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -147,7 +147,9 @@ FeatureManager::InitializeLibL(); iThreadParams.iThreadEngine = this; iContentArray = new(ELeave) CArrayFixFlat(1); - + // Fix for cancel not happening when cancel key is + // pressed . + iSyncCancelled = EFalse; if ( iThreadParams.iCSArray ) { for (TInt i = 0; i < iThreadParams.iCSArray->Count(); i++) @@ -337,11 +339,63 @@ TInt status( KErrNone ); if ( iThreadParams.iCurrentJob.UsageType() == ESmlDevMan ) { + CRepository* centrep = NULL; + TRAPD( err, centrep = CRepository::NewL(KCRUidDeviceManagementInternalKeys)); + TInt phoneLock(0); + TInt factoryProfileID(0); + if (err==KErrNone ) + { + TInt err = centrep->Get( KLAWMOPhoneLock , phoneLock ); + err = centrep->Get( KLAWMOfactoryDmProfileID , factoryProfileID ); + delete centrep; + centrep = NULL; + } + if(phoneLock != 30) + { + _DBG_FILE("CNSmlThreadEngine phonelock != 30"); + if(factoryProfileID>0) + { + + TInt profileId = iThreadParams.iCurrentJob.ProfileId(); + + if(profileId!= factoryProfileID) + { + _DBG_FILE("CNSmlThreadEngine profid doesnt match with factory"); + TRequestStatus* stat = &iStatus; + User::RequestComplete( stat, KErrNone ); + return; + } + + } + else + { + _DBG_FILE("CNSmlThreadEngine factoryprofileid<0"); + TRequestStatus* stat = &iStatus; + User::RequestComplete( stat, KErrNone ); + return; + } + } + _DBG_FILE("CNSmlThreadEngine startDMSessionL"); TRAP( status, StartDMSessionL() ); } else { - TRAP( status, StartDSSessionL() ); + // Scenario 1: + // Fix for cancel not happening when cancel key is + // pressed . + if(!iSyncCancelled) + { + TRAP( status, StartDSSessionL() ); + } + else + { + // Sync is cancelled from the UI before the + // the job session has started. + // Fix for cancel not happening when cancel key is + // pressed . + status = KErrCancel; + iSyncCancelled = EFalse; + } } if ( status != KErrNone ) @@ -359,6 +413,11 @@ // void CNSmlThreadEngine::CancelJob() { + // Fix for cancel not happening when cancel key is + // pressed . + // job has been created but it is not running and from ui + // Cancel has been called + iSyncCancelled = ETrue; if ( iCancelTimeout ) { iCancelTimeout->SetJobCancelled( iThreadParams.iCurrentJob.UsageType() ); @@ -409,7 +468,15 @@ // Select correct sync method and start sync TNSmlSyncInitiation syncInit = (TNSmlSyncInitiation)iThreadParams.iSyncInit; - + // Scenario 2: + // Fix for cancel not happening when cancel key is + // pressed . + if(iSyncCancelled) + { + iSyncCancelled = EFalse; + User::Leave( KErrCancel ); + } + switch ( iThreadParams.iCurrentJob.JobType() ) { case EDSJobProfile: diff -r 4af31167ea77 -r 13d7c31c74e0 syncmlfw/common/syncagent/bld/DEF/bwinscwu.def --- a/syncmlfw/common/syncagent/bld/DEF/bwinscwu.def Thu Jul 15 19:36:11 2010 +0300 +++ b/syncmlfw/common/syncagent/bld/DEF/bwinscwu.def Thu Aug 19 10:44:50 2010 +0300 @@ -1,194 +1,196 @@ EXPORTS - ??0CNSmlAgentBase@@QAE@XZ @ 1 NONAME ; CNSmlAgentBase::CNSmlAgentBase(void) - ??0CNSmlCmdsBase@@QAE@XZ @ 2 NONAME ; CNSmlCmdsBase::CNSmlCmdsBase(void) - ??0TNSmlError@@QAE@XZ @ 3 NONAME ; TNSmlError::TNSmlError(void) - ??1CNSmlAgentBase@@UAE@XZ @ 4 NONAME ; CNSmlAgentBase::~CNSmlAgentBase(void) - ??1CNSmlCmdsBase@@UAE@XZ @ 5 NONAME ; CNSmlCmdsBase::~CNSmlCmdsBase(void) - ??1TNSmlError@@UAE@XZ @ 6 NONAME ; TNSmlError::~TNSmlError(void) - ??4CNSmlURI@@QAEAAV0@ABV0@@Z @ 7 NONAME ; class CNSmlURI & CNSmlURI::operator=(class CNSmlURI const &) - ?AddItemDataL@CNSmlStatusContainer@@QAEXHPBUsml_pcdata_s@@@Z @ 8 NONAME ; void CNSmlStatusContainer::AddItemDataL(int, struct sml_pcdata_s const *) - ?AddItemL@CNSmlResultsContainer@@QAEXHABVCBufBase@@ABVTDesC8@@1@Z @ 9 NONAME ; void CNSmlResultsContainer::AddItemL(int, class CBufBase const &, class TDesC8 const &, class TDesC8 const &) - ?AddSourceRefL@CNSmlStatusContainer@@QAEXHPBUsml_source_s@@@Z @ 10 NONAME ; void CNSmlStatusContainer::AddSourceRefL(int, struct sml_source_s const *) - ?AddTargetRefL@CNSmlStatusContainer@@QAEXHPBUsml_target_s@@@Z @ 11 NONAME ; void CNSmlStatusContainer::AddTargetRefL(int, struct sml_target_s const *) - ?AlertCode@CNSmlCmdsBase@@QBE?AVTPtr8@@PAUsml_alert_s@@@Z @ 12 NONAME ; class TPtr8 CNSmlCmdsBase::AlertCode(struct sml_alert_s *) const - ?AnyResults@CNSmlResultsContainer@@QBEHXZ @ 13 NONAME ; int CNSmlResultsContainer::AnyResults(void) const - ?AppIndex@CNSmlResponseController@@QBEHH@Z @ 14 NONAME ; int CNSmlResponseController::AppIndex(int) const - ?AuthenticationRequirementL@CNSmlAgentBase@@IAEHABVCNSmlResponseController@@H@Z @ 15 NONAME ; int CNSmlAgentBase::AuthenticationRequirementL(class CNSmlResponseController const &, int) - ?Begin@CNSmlResultsContainer@@QAEXXZ @ 16 NONAME ; void CNSmlResultsContainer::Begin(void) - ?Begin@CNSmlStatusContainer@@QAEXXZ @ 17 NONAME ; void CNSmlStatusContainer::Begin(void) - ?BeginningStateL@CNSmlAgentBase@@IAEXXZ @ 18 NONAME ; void CNSmlAgentBase::BeginningStateL(void) - ?BufferAreaForParsingL@CNSmlCmdsBase@@QAE?AVTPtr8@@XZ @ 19 NONAME ; class TPtr8 CNSmlCmdsBase::BufferAreaForParsingL(void) - ?BusyStatus@CNSmlCmdsBase@@QBEHXZ @ 20 NONAME ; int CNSmlCmdsBase::BusyStatus(void) const - ?CallbackCalled@CNSmlAgentBase@@QBEHXZ @ 21 NONAME ; int CNSmlAgentBase::CallbackCalled(void) const - ?ChalType@CNSmlResponseController@@QBE?AVTPtrC8@@H@Z @ 22 NONAME ; class TPtrC8 CNSmlResponseController::ChalType(int) const - ?Challenged@CNSmlAuth@@QBEHXZ @ 23 NONAME ; int CNSmlAuth::Challenged(void) const - ?CheckStatusCodesAreReceivedL@CNSmlAgentBase@@IAEHH@Z @ 24 NONAME ; int CNSmlAgentBase::CheckStatusCodesAreReceivedL(int) - ?ClientAlertNextMakingMapStateL@CNSmlAgentBase@@MAEXXZ @ 25 NONAME ; void CNSmlAgentBase::ClientAlertNextMakingMapStateL(void) - ?ClientAlertNextStateL@CNSmlAgentBase@@IAEXXZ @ 26 NONAME ; void CNSmlAgentBase::ClientAlertNextStateL(void) - ?ClientInitialisationStateL@CNSmlAgentBase@@IAEXXZ @ 27 NONAME ; void CNSmlAgentBase::ClientInitialisationStateL(void) - ?CloseIDMappingTableL@CNSmlCmdsBase@@UAEXXZ @ 28 NONAME ; void CNSmlCmdsBase::CloseIDMappingTableL(void) - ?Cmd@CNSmlResponseController@@QBEAAVTDesC8@@H@Z @ 29 NONAME ; class TDesC8 & CNSmlResponseController::Cmd(int) const - ?ConstructL@CNSmlAgentBase@@IAEXXZ @ 30 NONAME ; void CNSmlAgentBase::ConstructL(void) - ?ConstructL@CNSmlCmdsBase@@IAEXPAVCNSmlAgentBase@@ABVTDesC8@@1HABVHBufC16@@PAVCNSmlURI@@H@Z @ 31 NONAME ; void CNSmlCmdsBase::ConstructL(class CNSmlAgentBase *, class TDesC8 const &, class TDesC8 const &, int, class HBufC16 const &, class CNSmlURI *, int) - ?CreateAndInitResponseItemL@CNSmlCmdsBase@@IAEHABVTDesC8@@@Z @ 32 NONAME ; int CNSmlCmdsBase::CreateAndInitResponseItemL(class TDesC8 const &) - ?CreateNewResultsL@CNSmlResultsContainer@@QAEHABVTDesC8@@0PBUsml_target_s@@PBUsml_source_s@@@Z @ 33 NONAME ; int CNSmlResultsContainer::CreateNewResultsL(class TDesC8 const &, class TDesC8 const &, struct sml_target_s const *, struct sml_source_s const *) - ?CreateNewStatusElementL@CNSmlStatusContainer@@QAEHXZ @ 34 NONAME ; int CNSmlStatusContainer::CreateNewStatusElementL(void) - ?CurrentEntryID@CNSmlResultsContainer@@QBEHXZ @ 35 NONAME ; int CNSmlResultsContainer::CurrentEntryID(void) const - ?DataBaseWithoutRelativePrefix@CNSmlURI@@QAE?AVTPtrC16@@XZ @ 36 NONAME ; class TPtrC16 CNSmlURI::DataBaseWithoutRelativePrefix(void) - ?DataUpdateStatusMakingMapStateL@CNSmlAgentBase@@MAEXXZ @ 37 NONAME ; void CNSmlAgentBase::DataUpdateStatusMakingMapStateL(void) - ?DataUpdateStatusMakingResultsStateL@CNSmlAgentBase@@MAEXXZ @ 38 NONAME ; void CNSmlAgentBase::DataUpdateStatusMakingResultsStateL(void) - ?DataUpdateStatusStartingMessageStateBaseL@CNSmlAgentBase@@IAEXXZ @ 39 NONAME ; void CNSmlAgentBase::DataUpdateStatusStartingMessageStateBaseL(void) - ?DataUpdateStatusStateL@CNSmlAgentBase@@IAEXXZ @ 40 NONAME ; void CNSmlAgentBase::DataUpdateStatusStateL(void) - ?Database@CNSmlURI@@QAE?AVTPtrC16@@XZ @ 41 NONAME ; class TPtrC16 CNSmlURI::Database(void) - ?DatabaseMatchesL@CNSmlURI@@QAEHABVTDesC16@@@Z @ 42 NONAME ; int CNSmlURI::DatabaseMatchesL(class TDesC16 const &) - ?DeleteIDMappingTableL@CNSmlCmdsBase@@UAEHABVTDesC16@@0@Z @ 43 NONAME ; int CNSmlCmdsBase::DeleteIDMappingTableL(class TDesC16 const &, class TDesC16 const &) - ?DisconnectFromOtherServers@CNSmlCmdsBase@@UAEXXZ @ 44 NONAME ; void CNSmlCmdsBase::DisconnectFromOtherServers(void) - ?DoAnchorsL@CNSmlCmdsBase@@IBEXAAUsml_metinf_metinf_s@@PBVTDesC8@@1@Z @ 45 NONAME ; void CNSmlCmdsBase::DoAnchorsL(struct sml_metinf_metinf_s &, class TDesC8 const *, class TDesC8 const *) const - ?DoCancel@CNSmlAgentBase@@UAEXXZ @ 46 NONAME ; void CNSmlAgentBase::DoCancel(void) - ?DoCmdIdL@CNSmlCmdsBase@@IAEXAAPAUsml_pcdata_s@@@Z @ 47 NONAME ; void CNSmlCmdsBase::DoCmdIdL(struct sml_pcdata_s * &) - ?DoGenericAlertL@CNSmlCmdsBase@@UAEXABVTDesC8@@00H0@Z @ 48 NONAME ; void CNSmlCmdsBase::DoGenericAlertL(class TDesC8 const &, class TDesC8 const &, class TDesC8 const &, int, class TDesC8 const &) - ?DoGenericUserAlertL@CNSmlCmdsBase@@UAEHH@Z @ 49 NONAME ; int CNSmlCmdsBase::DoGenericUserAlertL(int) - ?DoMaxObjSizeL@CNSmlCmdsBase@@IBEXAAUsml_metinf_metinf_s@@H@Z @ 50 NONAME ; void CNSmlCmdsBase::DoMaxObjSizeL(struct sml_metinf_metinf_s &, int) const - ?DoMetInfLC@CNSmlCmdsBase@@QBEXAAPAUsml_metinf_metinf_s@@@Z @ 51 NONAME ; void CNSmlCmdsBase::DoMetInfLC(struct sml_metinf_metinf_s * &) const - ?DoMetaL@CNSmlCmdsBase@@QBEXAAPAUsml_pcdata_s@@PBUsml_metinf_metinf_s@@@Z @ 52 NONAME ; void CNSmlCmdsBase::DoMetaL(struct sml_pcdata_s * &, struct sml_metinf_metinf_s const *) const - ?DoOutsideCancel@CNSmlAgentBase@@UAEXXZ @ 53 NONAME ; void CNSmlAgentBase::DoOutsideCancel(void) - ?DoSourceL@CNSmlCmdsBase@@QBEXAAPAUsml_source_s@@ABVTDesC16@@1@Z @ 54 NONAME ; void CNSmlCmdsBase::DoSourceL(struct sml_source_s * &, class TDesC16 const &, class TDesC16 const &) const - ?DoSourceL@CNSmlCmdsBase@@QBEXAAPAUsml_source_s@@ABVTDesC16@@@Z @ 55 NONAME ; void CNSmlCmdsBase::DoSourceL(struct sml_source_s * &, class TDesC16 const &) const - ?DoSourceL@CNSmlCmdsBase@@QBEXAAPAUsml_source_s@@ABVTDesC8@@@Z @ 56 NONAME ; void CNSmlCmdsBase::DoSourceL(struct sml_source_s * &, class TDesC8 const &) const - ?DoStatusL@CNSmlCmdsBase@@QAE?AW4TReturnValue@1@PAUsml_status_s@@@Z @ 57 NONAME ; enum CNSmlCmdsBase::TReturnValue CNSmlCmdsBase::DoStatusL(struct sml_status_s *) - ?DoSyncHdrL@CNSmlCmdsBase@@UAEXXZ @ 58 NONAME ; void CNSmlCmdsBase::DoSyncHdrL(void) - ?DoTargetL@CNSmlCmdsBase@@QBEXAAPAUsml_target_s@@ABVTDesC16@@1@Z @ 59 NONAME ; void CNSmlCmdsBase::DoTargetL(struct sml_target_s * &, class TDesC16 const &, class TDesC16 const &) const - ?DoTargetL@CNSmlCmdsBase@@QBEXAAPAUsml_target_s@@ABVTDesC16@@@Z @ 60 NONAME ; void CNSmlCmdsBase::DoTargetL(struct sml_target_s * &, class TDesC16 const &) const - ?EndOfServerMessageL@CNSmlCmdsBase@@UBEXXZ @ 61 NONAME ; void CNSmlCmdsBase::EndOfServerMessageL(void) const - ?EntryID@CNSmlResponseController@@QBEHHH@Z @ 62 NONAME ; int CNSmlResponseController::EntryID(int, int) const - ?ErrorCodeConversion@TNSmlError@@MAEXXZ @ 63 NONAME ; void TNSmlError::ErrorCodeConversion(void) - ?FetchIDMappingTableL@CNSmlCmdsBase@@UAEXH@Z @ 64 NONAME ; void CNSmlCmdsBase::FetchIDMappingTableL(int) - ?FreeBaseResources@CNSmlAgentBase@@IAEXXZ @ 65 NONAME ; void CNSmlAgentBase::FreeBaseResources(void) - ?HBufC16InUnicodeL@NSmlUnicodeConverter@@SAHABVTDesC8@@AAPAVHBufC16@@@Z @ 66 NONAME ; int NSmlUnicodeConverter::HBufC16InUnicodeL(class TDesC8 const &, class HBufC16 * &) - ?HBufC16InUnicodeLC@NSmlUnicodeConverter@@SAHABVTDesC8@@AAPAVHBufC16@@@Z @ 67 NONAME ; int NSmlUnicodeConverter::HBufC16InUnicodeLC(class TDesC8 const &, class HBufC16 * &) - ?HBufC8InUTF8LC@NSmlUnicodeConverter@@SAHABVTDesC16@@AAPAVHBufC8@@@Z @ 68 NONAME ; int NSmlUnicodeConverter::HBufC8InUTF8LC(class TDesC16 const &, class HBufC8 * &) - ?HostName@CNSmlURI@@QAE?AVTPtrC16@@XZ @ 69 NONAME ; class TPtrC16 CNSmlURI::HostName(void) - ?HostNameInUTF8AllocLC@CNSmlURI@@QAEPAVHBufC8@@XZ @ 70 NONAME ; class HBufC8 * CNSmlURI::HostNameInUTF8AllocLC(void) - ?HostNameWithPortL@CNSmlURI@@QAE?AVTPtrC16@@H@Z @ 71 NONAME ; class TPtrC16 CNSmlURI::HostNameWithPortL(int) - ?InitAskingDeviceInfoStateL@CNSmlAgentBase@@MAEXXZ @ 72 NONAME ; void CNSmlAgentBase::InitAskingDeviceInfoStateL(void) - ?InitStartingMessageStateBaseL@CNSmlAgentBase@@IAEXXZ @ 73 NONAME ; void CNSmlAgentBase::InitStartingMessageStateBaseL(void) - ?IsEqualL@CNSmlURI@@QAEHABV1@H@Z @ 74 NONAME ; int CNSmlURI::IsEqualL(class CNSmlURI const &, int) - ?IsFlagSet@CNSmlCmdsBase@@IBEHABI0@Z @ 75 NONAME ; int CNSmlCmdsBase::IsFlagSet(unsigned int const &, unsigned int const &) const - ?LUID@CNSmlResponseController@@QBE?AVTPtrC8@@H@Z @ 76 NONAME ; class TPtrC8 CNSmlResponseController::LUID(int) const - ?LastEntryID@CNSmlStatusContainer@@QBEHXZ @ 77 NONAME ; int CNSmlStatusContainer::LastEntryID(void) const - ?MarkGenAlertsSentL@CNSmlCmdsBase@@UAEXABVTDesC8@@@Z @ 78 NONAME ; void CNSmlCmdsBase::MarkGenAlertsSentL(class TDesC8 const &) - ?MarkGenAlertsSentL@CNSmlCmdsBase@@UAEXXZ @ 79 NONAME ; void CNSmlCmdsBase::MarkGenAlertsSentL(void) - ?MetaFormatInUtf8LC@CNSmlCmdsBase@@IBEPAVHBufC8@@PBUsml_pcdata_s@@@Z @ 80 NONAME ; class HBufC8 * CNSmlCmdsBase::MetaFormatInUtf8LC(struct sml_pcdata_s const *) const - ?MetaTypeInUtf8LC@CNSmlCmdsBase@@IBEPAVHBufC8@@PBUsml_pcdata_s@@@Z @ 81 NONAME ; class HBufC8 * CNSmlCmdsBase::MetaTypeInUtf8LC(struct sml_pcdata_s const *) const - ?MetaTypeLC@CNSmlCmdsBase@@IBEPAVHBufC16@@PBUsml_pcdata_s@@@Z @ 82 NONAME ; class HBufC16 * CNSmlCmdsBase::MetaTypeLC(struct sml_pcdata_s const *) const - ?MoreData@CNSmlResponseController@@QBEHH@Z @ 83 NONAME ; int CNSmlResponseController::MoreData(int) const - ?MoreDataL@CNSmlCmdsBase@@IAE?AW4TNSmlSyncMLStatusCode@TNSmlError@@PBVHBufC8@@PBUsml_item_s@@PBUsml_pcdata_s@@AAPAVCBufBase@@@Z @ 84 NONAME ; enum TNSmlError::TNSmlSyncMLStatusCode CNSmlCmdsBase::MoreDataL(class HBufC8 const *, struct sml_item_s const *, struct sml_pcdata_s const *, class CBufBase * &) - ?NewL@CNSmlAuth@@SAPAV1@XZ @ 85 NONAME ; class CNSmlAuth * CNSmlAuth::NewL(void) - ?NewL@CNSmlPhoneInfo@@SAPAV1@XZ @ 86 NONAME ; class CNSmlPhoneInfo * CNSmlPhoneInfo::NewL(void) - ?NewL@CNSmlURI@@SAPAV1@ABVTDesC16@@H@Z @ 87 NONAME ; class CNSmlURI * CNSmlURI::NewL(class TDesC16 const &, int) - ?NewL@CNSmlURI@@SAPAV1@ABVTDesC8@@H@Z @ 88 NONAME ; class CNSmlURI * CNSmlURI::NewL(class TDesC8 const &, int) - ?NewL@CNSmlURI@@SAPAV1@XZ @ 89 NONAME ; class CNSmlURI * CNSmlURI::NewL(void) - ?NewLC@CNSmlPhoneInfo@@SAPAV1@XZ @ 90 NONAME ; class CNSmlPhoneInfo * CNSmlPhoneInfo::NewLC(void) - ?NewLC@CNSmlURI@@SAPAV1@ABVTDesC16@@H@Z @ 91 NONAME ; class CNSmlURI * CNSmlURI::NewLC(class TDesC16 const &, int) - ?NewLC@CNSmlURI@@SAPAV1@ABVTDesC8@@H@Z @ 92 NONAME ; class CNSmlURI * CNSmlURI::NewLC(class TDesC8 const &, int) - ?NewLC@CNSmlURI@@SAPAV1@XZ @ 93 NONAME ; class CNSmlURI * CNSmlURI::NewLC(void) - ?NextResultsElement@CNSmlResultsContainer@@QAEHAAPAUsml_results_s@@@Z @ 94 NONAME ; int CNSmlResultsContainer::NextResultsElement(struct sml_results_s * &) - ?NextStatusElement@CNSmlStatusContainer@@QAEHAAPAUsml_status_s@@H@Z @ 95 NONAME ; int CNSmlStatusContainer::NextStatusElement(struct sml_status_s * &, int) - ?PCDATAToUnicodeLC@CNSmlCmdsBase@@QBEXABUsml_pcdata_s@@AAPAVHBufC16@@@Z @ 96 NONAME ; void CNSmlCmdsBase::PCDATAToUnicodeLC(struct sml_pcdata_s const &, class HBufC16 * &) const - ?PcdataNewL@CNSmlCmdsBase@@QBEXAAPAUsml_pcdata_s@@ABVTDesC8@@@Z @ 97 NONAME ; void CNSmlCmdsBase::PcdataNewL(struct sml_pcdata_s * &, class TDesC8 const &) const - ?PhoneDataL@CNSmlPhoneInfo@@QBEXW4TPhoneIdType@1@AAVTDes16@@@Z @ 98 NONAME ; void CNSmlPhoneInfo::PhoneDataL(enum CNSmlPhoneInfo::TPhoneIdType, class TDes16 &) const - ?ProcessCopyCmdL@CNSmlCmdsBase@@UAEXPAUsml_generic_s@@@Z @ 99 NONAME ; void CNSmlCmdsBase::ProcessCopyCmdL(struct sml_generic_s *) - ?ProcessExecCmdL@CNSmlCmdsBase@@UAEXPAUsml_exec_s@@@Z @ 100 NONAME ; void CNSmlCmdsBase::ProcessExecCmdL(struct sml_exec_s *) - ?ProcessMapCmdL@CNSmlCmdsBase@@UAEXPAUsml_map_s@@@Z @ 101 NONAME ; void CNSmlCmdsBase::ProcessMapCmdL(struct sml_map_s *) - ?ProcessReceivedDataL@CNSmlCmdsBase@@QAEHXZ @ 102 NONAME ; int CNSmlCmdsBase::ProcessReceivedDataL(void) - ?ProcessSearchCmdL@CNSmlCmdsBase@@UAEXPAUsml_search_s@@@Z @ 103 NONAME ; void CNSmlCmdsBase::ProcessSearchCmdL(struct sml_search_s *) - ?ProcessStatusCmdL@CNSmlCmdsBase@@UAEXPAUsml_status_s@@@Z @ 104 NONAME ; void CNSmlCmdsBase::ProcessStatusCmdL(struct sml_status_s *) - ?ProcessSyncHdrL@CNSmlCmdsBase@@UAEXPAUsml_sync_hdr_s@@@Z @ 105 NONAME ; void CNSmlCmdsBase::ProcessSyncHdrL(struct sml_sync_hdr_s *) - ?ProfileId@CNSmlAgentBase@@QBEHXZ @ 106 NONAME ; int CNSmlAgentBase::ProfileId(void) const - ?ReceivingStateL@CNSmlAgentBase@@IAEXXZ @ 107 NONAME ; void CNSmlAgentBase::ReceivingStateL(void) - ?RemoveWritten@CNSmlResultsContainer@@QAEXH@Z @ 108 NONAME ; void CNSmlResultsContainer::RemoveWritten(int) - ?ResetGenericUserAlertL@CNSmlCmdsBase@@UAEXXZ @ 109 NONAME ; void CNSmlCmdsBase::ResetGenericUserAlertL(void) - ?ResetL@CNSmlResponseController@@QAEXXZ @ 110 NONAME ; void CNSmlResponseController::ResetL(void) - ?ResetLargeObjectBuffer@CNSmlCmdsBase@@QAEXXZ @ 111 NONAME ; void CNSmlCmdsBase::ResetLargeObjectBuffer(void) - ?RespURI@CNSmlCmdsBase@@QBEPAVCNSmlURI@@XZ @ 112 NONAME ; class CNSmlURI * CNSmlCmdsBase::RespURI(void) const - ?ResponseController@CNSmlCmdsBase@@QBEPAVCNSmlResponseController@@XZ @ 113 NONAME ; class CNSmlResponseController * CNSmlCmdsBase::ResponseController(void) const - ?ResponseDetail@CNSmlResponseController@@QBE?AW4TResponseDetail@1@H@Z @ 114 NONAME ; enum CNSmlResponseController::TResponseDetail CNSmlResponseController::ResponseDetail(int) const - ?ResultAlertStateL@CNSmlAgentBase@@IAEXXZ @ 115 NONAME ; void CNSmlAgentBase::ResultAlertStateL(void) - ?ResultsContainer@CNSmlCmdsBase@@QBEPAVCNSmlResultsContainer@@XZ @ 116 NONAME ; class CNSmlResultsContainer * CNSmlCmdsBase::ResultsContainer(void) const - ?RunL@CNSmlAgentBase@@UAEXXZ @ 117 NONAME ; void CNSmlAgentBase::RunL(void) - ?SaveIfNonceL@CNSmlAgentBase@@IBEXABVCNSmlResponseController@@H@Z @ 118 NONAME ; void CNSmlAgentBase::SaveIfNonceL(class CNSmlResponseController const &, int) const - ?SendingStateL@CNSmlAgentBase@@IAEXXZ @ 119 NONAME ; void CNSmlAgentBase::SendingStateL(void) - ?ServerAlertNextAlertCmdStateL@CNSmlAgentBase@@IAEXPAUsml_alert_s@@@Z @ 120 NONAME ; void CNSmlAgentBase::ServerAlertNextAlertCmdStateL(struct sml_alert_s *) - ?ServerAlertNextEndMessageStateL@CNSmlAgentBase@@IAEXH@Z @ 121 NONAME ; void CNSmlAgentBase::ServerAlertNextEndMessageStateL(int) - ?ServerAlertNextStartMessageStateL@CNSmlAgentBase@@IAEXPAUsml_sync_hdr_s@@@Z @ 122 NONAME ; void CNSmlAgentBase::ServerAlertNextStartMessageStateL(struct sml_sync_hdr_s *) - ?ServerAlertNextStateL@CNSmlAgentBase@@IAEXXZ @ 123 NONAME ; void CNSmlAgentBase::ServerAlertNextStateL(void) - ?ServerAlertNextStatusCmdStateL@CNSmlAgentBase@@IAEXPAUsml_status_s@@@Z @ 124 NONAME ; void CNSmlAgentBase::ServerAlertNextStatusCmdStateL(struct sml_status_s *) - ?ServerAuth@CNSmlCmdsBase@@QBEPAVCNSmlAuth@@XZ @ 125 NONAME ; class CNSmlAuth * CNSmlCmdsBase::ServerAuth(void) const - ?ServerMaxObjSize@CNSmlCmdsBase@@IBEHPBUsml_pcdata_s@@@Z @ 126 NONAME ; int CNSmlCmdsBase::ServerMaxObjSize(struct sml_pcdata_s const *) const - ?ServerModAlertCmdStateL@CNSmlAgentBase@@IAEXPAUsml_alert_s@@@Z @ 127 NONAME ; void CNSmlAgentBase::ServerModAlertCmdStateL(struct sml_alert_s *) - ?ServerModEndMessageStateL@CNSmlAgentBase@@IAEXH@Z @ 128 NONAME ; void CNSmlAgentBase::ServerModEndMessageStateL(int) - ?ServerModStartMessageStateL@CNSmlAgentBase@@IAEXPAUsml_sync_hdr_s@@@Z @ 129 NONAME ; void CNSmlAgentBase::ServerModStartMessageStateL(struct sml_sync_hdr_s *) - ?ServerModStatusCmdStateL@CNSmlAgentBase@@IAEXPAUsml_status_s@@@Z @ 130 NONAME ; void CNSmlAgentBase::ServerModStatusCmdStateL(struct sml_status_s *) - ?ServerNonceAllocL@CNSmlAgentBase@@UBEPAVHBufC16@@XZ @ 131 NONAME ; class HBufC16 * CNSmlAgentBase::ServerNonceAllocL(void) const - ?ServerObjectSize@CNSmlCmdsBase@@IBEHPBUsml_pcdata_s@@@Z @ 132 NONAME ; int CNSmlCmdsBase::ServerObjectSize(struct sml_pcdata_s const *) const - ?ServerPassword@CNSmlAgentBase@@MBE?AVTPtrC16@@XZ @ 133 NONAME ; class TPtrC16 CNSmlAgentBase::ServerPassword(void) const - ?ServerUserName@CNSmlAgentBase@@MBE?AVTPtrC16@@XZ @ 134 NONAME ; class TPtrC16 CNSmlAgentBase::ServerUserName(void) const - ?SetAppIndex@CNSmlResponseController@@QAEXHH@Z @ 135 NONAME ; void CNSmlResponseController::SetAppIndex(int, int) - ?SetAtomicOrSequenceId@CNSmlStatusContainer@@QAEXHH@Z @ 136 NONAME ; void CNSmlStatusContainer::SetAtomicOrSequenceId(int, int) - ?SetAuthRequiredL@CNSmlAuth@@QAEXXZ @ 137 NONAME ; void CNSmlAuth::SetAuthRequiredL(void) - ?SetCmdIDL@CNSmlResultsContainer@@QAEXHPBUsml_pcdata_s@@@Z @ 138 NONAME ; void CNSmlResultsContainer::SetCmdIDL(int, struct sml_pcdata_s const *) - ?SetCmdL@CNSmlStatusContainer@@QAEXHABVTDesC8@@@Z @ 139 NONAME ; void CNSmlStatusContainer::SetCmdL(int, class TDesC8 const &) - ?SetCmdRefL@CNSmlStatusContainer@@QAEXHPBUsml_pcdata_s@@@Z @ 140 NONAME ; void CNSmlStatusContainer::SetCmdRefL(int, struct sml_pcdata_s const *) - ?SetCredentialL@CNSmlAuth@@QAEXABVTDesC8@@@Z @ 141 NONAME ; void CNSmlAuth::SetCredentialL(class TDesC8 const &) - ?SetDatabaseL@CNSmlURI@@QAEXABVTDesC16@@H@Z @ 142 NONAME ; void CNSmlURI::SetDatabaseL(class TDesC16 const &, int) - ?SetDatabaseL@CNSmlURI@@QAEXABVTDesC8@@H@Z @ 143 NONAME ; void CNSmlURI::SetDatabaseL(class TDesC8 const &, int) - ?SetEndOfDataAlertRequest@CNSmlAgentBase@@QAEXXZ @ 144 NONAME ; void CNSmlAgentBase::SetEndOfDataAlertRequest(void) - ?SetErrorCode@TNSmlError@@QAEXH@Z @ 145 NONAME ; void TNSmlError::SetErrorCode(int) - ?SetHostNameL@CNSmlURI@@QAEXABVTDesC16@@H@Z @ 146 NONAME ; void CNSmlURI::SetHostNameL(class TDesC16 const &, int) - ?SetHostNameL@CNSmlURI@@QAEXABVTDesC8@@H@Z @ 147 NONAME ; void CNSmlURI::SetHostNameL(class TDesC8 const &, int) - ?SetLUIDL@CNSmlResponseController@@QAEXHABVTDesC8@@@Z @ 148 NONAME ; void CNSmlResponseController::SetLUIDL(int, class TDesC8 const &) - ?SetMaximumWorkspaceSize@CNSmlCmdsBase@@QAEXH@Z @ 149 NONAME ; void CNSmlCmdsBase::SetMaximumWorkspaceSize(int) - ?SetMoreData@CNSmlResponseController@@QAEXH@Z @ 150 NONAME ; void CNSmlResponseController::SetMoreData(int) - ?SetNoResponse@CNSmlStatusContainer@@QAEXHH@Z @ 151 NONAME ; void CNSmlStatusContainer::SetNoResponse(int, int) - ?SetOffCallbackCalled@CNSmlAgentBase@@QAEXXZ @ 152 NONAME ; void CNSmlAgentBase::SetOffCallbackCalled(void) - ?SetPerformedInAtomic@CNSmlStatusContainer@@QAEXH@Z @ 153 NONAME ; void CNSmlStatusContainer::SetPerformedInAtomic(int) - ?SetPort@CNSmlURI@@QAEXH@Z @ 154 NONAME ; void CNSmlURI::SetPort(int) - ?SetResponseDetail@CNSmlResponseController@@QAEXHW4TResponseDetail@1@@Z @ 155 NONAME ; void CNSmlResponseController::SetResponseDetail(int, enum CNSmlResponseController::TResponseDetail) - ?SetServerNonceL@CNSmlAgentBase@@UBEXABVTDesC16@@@Z @ 156 NONAME ; void CNSmlAgentBase::SetServerNonceL(class TDesC16 const &) const - ?SetStatusCodeL@CNSmlStatusContainer@@QAEXHHH@Z @ 157 NONAME ; void CNSmlStatusContainer::SetStatusCodeL(int, int, int) - ?SetStatusCodeToAtomicOrSequenceCmdL@CNSmlStatusContainer@@QAEXHHABVTDesC8@@@Z @ 158 NONAME ; void CNSmlStatusContainer::SetStatusCodeToAtomicOrSequenceCmdL(int, int, class TDesC8 const &) - ?SetStatusCodesInAtomicL@CNSmlStatusContainer@@QAEXHHH@Z @ 159 NONAME ; void CNSmlStatusContainer::SetStatusCodesInAtomicL(int, int, int) - ?SetStatusID@CNSmlResultsContainer@@QAEXHH@Z @ 160 NONAME ; void CNSmlResultsContainer::SetStatusID(int, int) - ?SetSyncAgent@CNSmlAuth@@QAEXPAVCNSmlAgentBase@@@Z @ 161 NONAME ; void CNSmlAuth::SetSyncAgent(class CNSmlAgentBase *) - ?SourceIsUnderItem@CNSmlCmdsBase@@IBEHPBUsml_item_list_s@@@Z @ 162 NONAME ; int CNSmlCmdsBase::SourceIsUnderItem(struct sml_item_list_s const *) const - ?StatusCode@CNSmlResponseController@@QBEHH@Z @ 163 NONAME ; int CNSmlResponseController::StatusCode(int) const - ?StatusContainer@CNSmlCmdsBase@@QBEPAVCNSmlStatusContainer@@XZ @ 164 NONAME ; class CNSmlStatusContainer * CNSmlCmdsBase::StatusContainer(void) const - ?StatusDataToCommandL@CNSmlCmdsBase@@IAEHABVTDesC8@@PBUsml_pcdata_s@@IPBUsml_item_s@@W4TNSmlSyncMLStatusCode@TNSmlError@@PBV2@@Z @ 165 NONAME ; int CNSmlCmdsBase::StatusDataToCommandL(class TDesC8 const &, struct sml_pcdata_s const *, unsigned int, struct sml_item_s const *, enum TNSmlError::TNSmlSyncMLStatusCode, class TDesC8 const *) - ?StatusDataToGenericCommandL@CNSmlCmdsBase@@IAEHABVTDesC8@@PBUsml_generic_s@@PBUsml_item_s@@W4TNSmlSyncMLStatusCode@TNSmlError@@PBV2@@Z @ 166 NONAME ; int CNSmlCmdsBase::StatusDataToGenericCommandL(class TDesC8 const &, struct sml_generic_s const *, struct sml_item_s const *, enum TNSmlError::TNSmlSyncMLStatusCode, class TDesC8 const *) - ?StatusDataToGetCommandL@CNSmlCmdsBase@@IAEHPBUsml_get_put_s@@PBUsml_item_s@@W4TNSmlSyncMLStatusCode@TNSmlError@@PBVTDesC8@@@Z @ 167 NONAME ; int CNSmlCmdsBase::StatusDataToGetCommandL(struct sml_get_put_s const *, struct sml_item_s const *, enum TNSmlError::TNSmlSyncMLStatusCode, class TDesC8 const *) - ?StatusID@CNSmlResultsContainer@@QBEHH@Z @ 168 NONAME ; int CNSmlResultsContainer::StatusID(int) const - ?StatusReference@CNSmlAgentBase@@QAEAAVTRequestStatus@@XZ @ 169 NONAME ; class TRequestStatus & CNSmlAgentBase::StatusReference(void) - ?StatusToUnsupportedCommandL@CNSmlCmdsBase@@QAEXHABVTDesC8@@PBUsml_pcdata_s@@I@Z @ 170 NONAME ; void CNSmlCmdsBase::StatusToUnsupportedCommandL(int, class TDesC8 const &, struct sml_pcdata_s const *, unsigned int) - ?SubtractConsumedFromPcData@CNSmlCmdsBase@@IAEXAAPAUsml_item_s@@H@Z @ 171 NONAME ; void CNSmlCmdsBase::SubtractConsumedFromPcData(struct sml_item_s * &, int) - ?SwVersionL@CNSmlPhoneInfo@@QAE?AVTPtrC8@@XZ @ 172 NONAME ; class TPtrC8 CNSmlPhoneInfo::SwVersionL(void) - ?SyncLog@CNSmlAgentBase@@QAEPAVCSyncMLHistoryJob@@XZ @ 173 NONAME ; class CSyncMLHistoryJob * CNSmlAgentBase::SyncLog(void) - ?SyncLogErrorCode@TNSmlError@@QAEHXZ @ 174 NONAME ; int TNSmlError::SyncLogErrorCode(void) - ?SyncLogMessageCode@TNSmlError@@UAEHXZ @ 175 NONAME ; int TNSmlError::SyncLogMessageCode(void) - ?SyncMLDatabaseAllocLC@CNSmlURI@@QAEPAVHBufC16@@XZ @ 176 NONAME ; class HBufC16 * CNSmlURI::SyncMLDatabaseAllocLC(void) - ?TargetIsUnderItem@CNSmlCmdsBase@@IBEHPBUsml_item_list_s@@@Z @ 177 NONAME ; int CNSmlCmdsBase::TargetIsUnderItem(struct sml_item_list_s const *) const - ?TrimRightSpaceAndNull@CNSmlCmdsBase@@IBEXAAVTDes8@@@Z @ 178 NONAME ; void CNSmlCmdsBase::TrimRightSpaceAndNull(class TDes8 &) const - ?WaitingLargeObjectChunk@CNSmlCmdsBase@@QBEHXZ @ 179 NONAME ; int CNSmlCmdsBase::WaitingLargeObjectChunk(void) const - ?WriteMappingInfoToDbL@CNSmlCmdsBase@@UBEHXZ @ 180 NONAME ; int CNSmlCmdsBase::WriteMappingInfoToDbL(void) const - ?smlAddCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_generic_s@@@Z @ 181 NONAME ; int CNSmlAgentBase::smlAddCmdFuncL(struct sml_generic_s *) - ?smlCopyCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_generic_s@@@Z @ 182 NONAME ; int CNSmlAgentBase::smlCopyCmdFuncL(struct sml_generic_s *) - ?smlDeleteCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_generic_s@@@Z @ 183 NONAME ; int CNSmlAgentBase::smlDeleteCmdFuncL(struct sml_generic_s *) - ?smlExecCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_exec_s@@@Z @ 184 NONAME ; int CNSmlAgentBase::smlExecCmdFuncL(struct sml_exec_s *) - ?smlMapCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_map_s@@@Z @ 185 NONAME ; int CNSmlAgentBase::smlMapCmdFuncL(struct sml_map_s *) - ?smlMoveCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_generic_s@@@Z @ 186 NONAME ; int CNSmlAgentBase::smlMoveCmdFuncL(struct sml_generic_s *) - ?smlReplaceCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_generic_s@@@Z @ 187 NONAME ; int CNSmlAgentBase::smlReplaceCmdFuncL(struct sml_generic_s *) - ?smlSearchCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_search_s@@@Z @ 188 NONAME ; int CNSmlAgentBase::smlSearchCmdFuncL(struct sml_search_s *) - ?LaunchAutoRestartL@CNSmlAgentBase@@UAEXH@Z @ 189 NONAME ; void CNSmlAgentBase::LaunchAutoRestartL(int) - ?CheckAPBearerTypeL@CNSmlAgentBase@@QAE?AW4TApBearerType@@K@Z @ 190 NONAME ; enum TApBearerType CNSmlAgentBase::CheckAPBearerTypeL(unsigned long) - ?DoGenericAlertL@CNSmlCmdsBase@@UAEXABVTDesC8@@ABV?$RArray@UCNSmlDMAlertItem@@@@@Z @ 191 NONAME ; void CNSmlCmdsBase::DoGenericAlertL(class TDesC8 const &, class RArray const &) - ?DoTargetL@CNSmlCmdsBase@@QBEXAAPAUsml_target_s@@ABVTDesC8@@@Z @ 192 NONAME ; void CNSmlCmdsBase::DoTargetL(struct sml_target_s * &, class TDesC8 const &) const + ?TrimRightSpaceAndNull@CNSmlCmdsBase@@IBEXAAVTDes8@@@Z @ 1 NONAME ; void CNSmlCmdsBase::TrimRightSpaceAndNull(class TDes8 &) const + ?DoMetInfLC@CNSmlCmdsBase@@QBEXAAPAUsml_metinf_metinf_s@@@Z @ 2 NONAME ; void CNSmlCmdsBase::DoMetInfLC(struct sml_metinf_metinf_s * &) const + ?NewL@CNSmlURI@@SAPAV1@ABVTDesC8@@H@Z @ 3 NONAME ; class CNSmlURI * CNSmlURI::NewL(class TDesC8 const &, int) + ?BufferAreaForParsingL@CNSmlCmdsBase@@QAE?AVTPtr8@@XZ @ 4 NONAME ; class TPtr8 CNSmlCmdsBase::BufferAreaForParsingL(void) + ?NewLC@CNSmlURI@@SAPAV1@ABVTDesC16@@H@Z @ 5 NONAME ; class CNSmlURI * CNSmlURI::NewLC(class TDesC16 const &, int) + ?SetLUIDL@CNSmlResponseController@@QAEXHABVTDesC8@@@Z @ 6 NONAME ; void CNSmlResponseController::SetLUIDL(int, class TDesC8 const &) + ?DoOutsideCancel@CNSmlAgentBase@@UAEXXZ @ 7 NONAME ; void CNSmlAgentBase::DoOutsideCancel(void) + ?SetCmdL@CNSmlStatusContainer@@QAEXHABVTDesC8@@@Z @ 8 NONAME ; void CNSmlStatusContainer::SetCmdL(int, class TDesC8 const &) + ?MetaTypeLC@CNSmlCmdsBase@@IBEPAVHBufC16@@PBUsml_pcdata_s@@@Z @ 9 NONAME ; class HBufC16 * CNSmlCmdsBase::MetaTypeLC(struct sml_pcdata_s const *) const + ?smlReplaceCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_generic_s@@@Z @ 10 NONAME ; int CNSmlAgentBase::smlReplaceCmdFuncL(struct sml_generic_s *) + ?BusyStatus@CNSmlCmdsBase@@QBEHXZ @ 11 NONAME ; int CNSmlCmdsBase::BusyStatus(void) const + ?HostNameWithPortL@CNSmlURI@@QAE?AVTPtrC16@@H@Z @ 12 NONAME ; class TPtrC16 CNSmlURI::HostNameWithPortL(int) + ?AlertCode@CNSmlCmdsBase@@QBE?AVTPtr8@@PAUsml_alert_s@@@Z @ 13 NONAME ; class TPtr8 CNSmlCmdsBase::AlertCode(struct sml_alert_s *) const + ?CheckStatusCodesAreReceivedL@CNSmlAgentBase@@IAEHH@Z @ 14 NONAME ; int CNSmlAgentBase::CheckStatusCodesAreReceivedL(int) + ?AddItemDataL@CNSmlStatusContainer@@QAEXHPBUsml_pcdata_s@@@Z @ 15 NONAME ; void CNSmlStatusContainer::AddItemDataL(int, struct sml_pcdata_s const *) + ?RunL@CNSmlAgentBase@@UAEXXZ @ 16 NONAME ; void CNSmlAgentBase::RunL(void) + ?smlAddCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_generic_s@@@Z @ 17 NONAME ; int CNSmlAgentBase::smlAddCmdFuncL(struct sml_generic_s *) + ?AddItemL@CNSmlResultsContainer@@QAEXHABVCBufBase@@ABVTDesC8@@1@Z @ 18 NONAME ; void CNSmlResultsContainer::AddItemL(int, class CBufBase const &, class TDesC8 const &, class TDesC8 const &) + ?MarkGenAlertsSentL@CNSmlCmdsBase@@UAEXXZ @ 19 NONAME ; void CNSmlCmdsBase::MarkGenAlertsSentL(void) + ?DoSourceL@CNSmlCmdsBase@@QBEXAAPAUsml_source_s@@ABVTDesC16@@1@Z @ 20 NONAME ; void CNSmlCmdsBase::DoSourceL(struct sml_source_s * &, class TDesC16 const &, class TDesC16 const &) const + ?ConstructL@CNSmlAgentBase@@IAEXXZ @ 21 NONAME ; void CNSmlAgentBase::ConstructL(void) + ?AddTargetRefL@CNSmlStatusContainer@@QAEXHPBUsml_target_s@@@Z @ 22 NONAME ; void CNSmlStatusContainer::AddTargetRefL(int, struct sml_target_s const *) + ?ClientInitialisationStateL@CNSmlAgentBase@@IAEXXZ @ 23 NONAME ; void CNSmlAgentBase::ClientInitialisationStateL(void) + ?LaunchAutoRestartL@CNSmlAgentBase@@UAEXH@Z @ 24 NONAME ; void CNSmlAgentBase::LaunchAutoRestartL(int) + ?CheckAPBearerTypeL@CNSmlAgentBase@@QAE?AW4TApBearerType@@K@Z @ 25 NONAME ; enum TApBearerType CNSmlAgentBase::CheckAPBearerTypeL(unsigned long) + ?SetCmdRefL@CNSmlStatusContainer@@QAEXHPBUsml_pcdata_s@@@Z @ 26 NONAME ; void CNSmlStatusContainer::SetCmdRefL(int, struct sml_pcdata_s const *) + ?ServerPassword@CNSmlAgentBase@@MBE?AVTPtrC16@@XZ @ 27 NONAME ; class TPtrC16 CNSmlAgentBase::ServerPassword(void) const + ?SetStatusCodesInAtomicL@CNSmlStatusContainer@@QAEXHHH@Z @ 28 NONAME ; void CNSmlStatusContainer::SetStatusCodesInAtomicL(int, int, int) + ?CreateAndInitResponseItemL@CNSmlCmdsBase@@IAEHABVTDesC8@@@Z @ 29 NONAME ; int CNSmlCmdsBase::CreateAndInitResponseItemL(class TDesC8 const &) + ?MoreDataL@CNSmlCmdsBase@@IAE?AW4TNSmlSyncMLStatusCode@TNSmlError@@PBVHBufC8@@PBUsml_item_s@@PBUsml_pcdata_s@@AAPAVCBufBase@@@Z @ 30 NONAME ; enum TNSmlError::TNSmlSyncMLStatusCode CNSmlCmdsBase::MoreDataL(class HBufC8 const *, struct sml_item_s const *, struct sml_pcdata_s const *, class CBufBase * &) + ?ServerModStatusCmdStateL@CNSmlAgentBase@@IAEXPAUsml_status_s@@@Z @ 31 NONAME ; void CNSmlAgentBase::ServerModStatusCmdStateL(struct sml_status_s *) + ?StatusToUnsupportedCommandL@CNSmlCmdsBase@@QAEXHABVTDesC8@@PBUsml_pcdata_s@@I@Z @ 32 NONAME ; void CNSmlCmdsBase::StatusToUnsupportedCommandL(int, class TDesC8 const &, struct sml_pcdata_s const *, unsigned int) + ?DoStatusL@CNSmlCmdsBase@@QAE?AW4TReturnValue@1@PAUsml_status_s@@@Z @ 33 NONAME ; enum CNSmlCmdsBase::TReturnValue CNSmlCmdsBase::DoStatusL(struct sml_status_s *) + ?PCDATAToUnicodeLC@CNSmlCmdsBase@@QBEXABUsml_pcdata_s@@AAPAVHBufC16@@@Z @ 34 NONAME ; void CNSmlCmdsBase::PCDATAToUnicodeLC(struct sml_pcdata_s const &, class HBufC16 * &) const + ??1CNSmlAgentBase@@UAE@XZ @ 35 NONAME ; CNSmlAgentBase::~CNSmlAgentBase(void) + ??0TNSmlError@@QAE@XZ @ 36 NONAME ; TNSmlError::TNSmlError(void) + ?SetNoResponse@CNSmlStatusContainer@@QAEXHH@Z @ 37 NONAME ; void CNSmlStatusContainer::SetNoResponse(int, int) + ?AnyResults@CNSmlResultsContainer@@QBEHXZ @ 38 NONAME ; int CNSmlResultsContainer::AnyResults(void) const + ?WriteMappingInfoToDbL@CNSmlCmdsBase@@UBEHXZ @ 39 NONAME ; int CNSmlCmdsBase::WriteMappingInfoToDbL(void) const + ?StatusContainer@CNSmlCmdsBase@@QBEPAVCNSmlStatusContainer@@XZ @ 40 NONAME ; class CNSmlStatusContainer * CNSmlCmdsBase::StatusContainer(void) const + ?smlMoveCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_generic_s@@@Z @ 41 NONAME ; int CNSmlAgentBase::smlMoveCmdFuncL(struct sml_generic_s *) + ?ServerModAlertCmdStateL@CNSmlAgentBase@@IAEXPAUsml_alert_s@@@Z @ 42 NONAME ; void CNSmlAgentBase::ServerModAlertCmdStateL(struct sml_alert_s *) + ?SetOffCallbackCalled@CNSmlAgentBase@@QAEXXZ @ 43 NONAME ; void CNSmlAgentBase::SetOffCallbackCalled(void) + ?InitAskingDeviceInfoStateL@CNSmlAgentBase@@MAEXXZ @ 44 NONAME ; void CNSmlAgentBase::InitAskingDeviceInfoStateL(void) + ?DoSyncHdrL@CNSmlCmdsBase@@UAEXXZ @ 45 NONAME ; void CNSmlCmdsBase::DoSyncHdrL(void) + ??1TNSmlError@@UAE@XZ @ 46 NONAME ; TNSmlError::~TNSmlError(void) + ?SetAuthRequiredL@CNSmlAuth@@QAEXXZ @ 47 NONAME ; void CNSmlAuth::SetAuthRequiredL(void) + ?SubtractConsumedFromPcData@CNSmlCmdsBase@@IAEXAAPAUsml_item_s@@H@Z @ 48 NONAME ; void CNSmlCmdsBase::SubtractConsumedFromPcData(struct sml_item_s * &, int) + ?StatusItem@CNSmlStatusContainer@@QAEPAUsml_status_s@@H@Z @ 49 NONAME ; struct sml_status_s * CNSmlStatusContainer::StatusItem(int) + ?ChalType@CNSmlResponseController@@QBE?AVTPtrC8@@H@Z @ 50 NONAME ; class TPtrC8 CNSmlResponseController::ChalType(int) const + ?SwVersionL@CNSmlPhoneInfo@@QAE?AVTPtrC8@@XZ @ 51 NONAME ; class TPtrC8 CNSmlPhoneInfo::SwVersionL(void) + ?RespURI@CNSmlCmdsBase@@QBEPAVCNSmlURI@@XZ @ 52 NONAME ; class CNSmlURI * CNSmlCmdsBase::RespURI(void) const + ?HostNameInUTF8AllocLC@CNSmlURI@@QAEPAVHBufC8@@XZ @ 53 NONAME ; class HBufC8 * CNSmlURI::HostNameInUTF8AllocLC(void) + ?SetAtomicOrSequenceId@CNSmlStatusContainer@@QAEXHH@Z @ 54 NONAME ; void CNSmlStatusContainer::SetAtomicOrSequenceId(int, int) + ?Begin@CNSmlStatusContainer@@QAEXXZ @ 55 NONAME ; void CNSmlStatusContainer::Begin(void) + ?ServerAlertNextEndMessageStateL@CNSmlAgentBase@@IAEXH@Z @ 56 NONAME ; void CNSmlAgentBase::ServerAlertNextEndMessageStateL(int) + ?DoMetaL@CNSmlCmdsBase@@QBEXAAPAUsml_pcdata_s@@PBUsml_metinf_metinf_s@@@Z @ 57 NONAME ; void CNSmlCmdsBase::DoMetaL(struct sml_pcdata_s * &, struct sml_metinf_metinf_s const *) const + ?SetHostNameL@CNSmlURI@@QAEXABVTDesC16@@H@Z @ 58 NONAME ; void CNSmlURI::SetHostNameL(class TDesC16 const &, int) + ?PhoneDataL@CNSmlPhoneInfo@@QBEXW4TPhoneIdType@1@AAVTDes16@@@Z @ 59 NONAME ; void CNSmlPhoneInfo::PhoneDataL(enum CNSmlPhoneInfo::TPhoneIdType, class TDes16 &) const + ?DataUpdateStatusStateL@CNSmlAgentBase@@IAEXXZ @ 60 NONAME ; void CNSmlAgentBase::DataUpdateStatusStateL(void) + ?MarkGenAlertsSentL@CNSmlCmdsBase@@UAEXABVTDesC8@@@Z @ 61 NONAME ; void CNSmlCmdsBase::MarkGenAlertsSentL(class TDesC8 const &) + ?Cmd@CNSmlResponseController@@QBEAAVTDesC8@@H@Z @ 62 NONAME ; class TDesC8 & CNSmlResponseController::Cmd(int) const + ?AddSourceRefL@CNSmlStatusContainer@@QAEXHPBUsml_source_s@@@Z @ 63 NONAME ; void CNSmlStatusContainer::AddSourceRefL(int, struct sml_source_s const *) + ?SetStatusCodeL@CNSmlStatusContainer@@QAEXHHH@Z @ 64 NONAME ; void CNSmlStatusContainer::SetStatusCodeL(int, int, int) + ?SetPort@CNSmlURI@@QAEXH@Z @ 65 NONAME ; void CNSmlURI::SetPort(int) + ?SetErrorCode@TNSmlError@@QAEXH@Z @ 66 NONAME ; void TNSmlError::SetErrorCode(int) + ?SendingStateL@CNSmlAgentBase@@IAEXXZ @ 67 NONAME ; void CNSmlAgentBase::SendingStateL(void) + ?NewL@CNSmlPhoneInfo@@SAPAV1@XZ @ 68 NONAME ; class CNSmlPhoneInfo * CNSmlPhoneInfo::NewL(void) + ?SetDatabaseL@CNSmlURI@@QAEXABVTDesC16@@H@Z @ 69 NONAME ; void CNSmlURI::SetDatabaseL(class TDesC16 const &, int) + ?ResetLargeObjectBuffer@CNSmlCmdsBase@@QAEXXZ @ 70 NONAME ; void CNSmlCmdsBase::ResetLargeObjectBuffer(void) + ?CloseIDMappingTableL@CNSmlCmdsBase@@UAEXXZ @ 71 NONAME ; void CNSmlCmdsBase::CloseIDMappingTableL(void) + ?EndOfServerMessageL@CNSmlCmdsBase@@UBEXXZ @ 72 NONAME ; void CNSmlCmdsBase::EndOfServerMessageL(void) const + ?ResetGenericUserAlertL@CNSmlCmdsBase@@UAEXXZ @ 73 NONAME ; void CNSmlCmdsBase::ResetGenericUserAlertL(void) + ?DoGenericAlertL@CNSmlCmdsBase@@UAEXABVTDesC8@@ABV?$RArray@UCNSmlDMAlertItem@@@@@Z @ 74 NONAME ; void CNSmlCmdsBase::DoGenericAlertL(class TDesC8 const &, class RArray const &) + ?DoTargetL@CNSmlCmdsBase@@QBEXAAPAUsml_target_s@@ABVTDesC16@@@Z @ 75 NONAME ; void CNSmlCmdsBase::DoTargetL(struct sml_target_s * &, class TDesC16 const &) const + ?CurrentEntryID@CNSmlResultsContainer@@QBEHXZ @ 76 NONAME ; int CNSmlResultsContainer::CurrentEntryID(void) const + ?SetStatusCodeToAtomicOrSequenceCmdL@CNSmlStatusContainer@@QAEXHHABVTDesC8@@@Z @ 77 NONAME ; void CNSmlStatusContainer::SetStatusCodeToAtomicOrSequenceCmdL(int, int, class TDesC8 const &) + ?HBufC16InUnicodeLC@NSmlUnicodeConverter@@SAHABVTDesC8@@AAPAVHBufC16@@@Z @ 78 NONAME ; int NSmlUnicodeConverter::HBufC16InUnicodeLC(class TDesC8 const &, class HBufC16 * &) + ?Challenged@CNSmlAuth@@QBEHXZ @ 79 NONAME ; int CNSmlAuth::Challenged(void) const + ?IsEqualL@CNSmlURI@@QAEHABV1@H@Z @ 80 NONAME ; int CNSmlURI::IsEqualL(class CNSmlURI const &, int) + ?SetHostNameL@CNSmlURI@@QAEXABVTDesC8@@H@Z @ 81 NONAME ; void CNSmlURI::SetHostNameL(class TDesC8 const &, int) + ?ServerObjectSize@CNSmlCmdsBase@@IBEHPBUsml_pcdata_s@@@Z @ 82 NONAME ; int CNSmlCmdsBase::ServerObjectSize(struct sml_pcdata_s const *) const + ??0CNSmlCmdsBase@@QAE@XZ @ 83 NONAME ; CNSmlCmdsBase::CNSmlCmdsBase(void) + ?DoSourceL@CNSmlCmdsBase@@QBEXAAPAUsml_source_s@@ABVTDesC16@@@Z @ 84 NONAME ; void CNSmlCmdsBase::DoSourceL(struct sml_source_s * &, class TDesC16 const &) const + ?smlMapCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_map_s@@@Z @ 85 NONAME ; int CNSmlAgentBase::smlMapCmdFuncL(struct sml_map_s *) + ?ResetL@CNSmlResponseController@@QAEXXZ @ 86 NONAME ; void CNSmlResponseController::ResetL(void) + ?FillItemDataL@CNSmlStatusContainer@@QAEXAAPAUsml_item_s@@@Z @ 87 NONAME ; void CNSmlStatusContainer::FillItemDataL(struct sml_item_s * &) + ?ProcessStatusCmdL@CNSmlCmdsBase@@UAEXPAUsml_status_s@@@Z @ 88 NONAME ; void CNSmlCmdsBase::ProcessStatusCmdL(struct sml_status_s *) + ?SetCmdIDL@CNSmlResultsContainer@@QAEXHPBUsml_pcdata_s@@@Z @ 89 NONAME ; void CNSmlResultsContainer::SetCmdIDL(int, struct sml_pcdata_s const *) + ?ServerAlertNextStatusCmdStateL@CNSmlAgentBase@@IAEXPAUsml_status_s@@@Z @ 90 NONAME ; void CNSmlAgentBase::ServerAlertNextStatusCmdStateL(struct sml_status_s *) + ?ProcessExecCmdL@CNSmlCmdsBase@@UAEXPAUsml_exec_s@@@Z @ 91 NONAME ; void CNSmlCmdsBase::ProcessExecCmdL(struct sml_exec_s *) + ?HostName@CNSmlURI@@QAE?AVTPtrC16@@XZ @ 92 NONAME ; class TPtrC16 CNSmlURI::HostName(void) + ?DoCancel@CNSmlAgentBase@@UAEXXZ @ 93 NONAME ; void CNSmlAgentBase::DoCancel(void) + ?SyncLog@CNSmlAgentBase@@QAEPAVCSyncMLHistoryJob@@XZ @ 94 NONAME ; class CSyncMLHistoryJob * CNSmlAgentBase::SyncLog(void) + ?StatusDataToGenericCommandL@CNSmlCmdsBase@@IAEHABVTDesC8@@PBUsml_generic_s@@PBUsml_item_s@@W4TNSmlSyncMLStatusCode@TNSmlError@@PBV2@@Z @ 95 NONAME ; int CNSmlCmdsBase::StatusDataToGenericCommandL(class TDesC8 const &, struct sml_generic_s const *, struct sml_item_s const *, enum TNSmlError::TNSmlSyncMLStatusCode, class TDesC8 const *) + ?ServerAlertNextAlertCmdStateL@CNSmlAgentBase@@IAEXPAUsml_alert_s@@@Z @ 96 NONAME ; void CNSmlAgentBase::ServerAlertNextAlertCmdStateL(struct sml_alert_s *) + ?SaveIfNonceL@CNSmlAgentBase@@IBEXABVCNSmlResponseController@@H@Z @ 97 NONAME ; void CNSmlAgentBase::SaveIfNonceL(class CNSmlResponseController const &, int) const + ?FetchIDMappingTableL@CNSmlCmdsBase@@UAEXH@Z @ 98 NONAME ; void CNSmlCmdsBase::FetchIDMappingTableL(int) + ?ServerAuth@CNSmlCmdsBase@@QBEPAVCNSmlAuth@@XZ @ 99 NONAME ; class CNSmlAuth * CNSmlCmdsBase::ServerAuth(void) const + ?NewLC@CNSmlPhoneInfo@@SAPAV1@XZ @ 100 NONAME ; class CNSmlPhoneInfo * CNSmlPhoneInfo::NewLC(void) + ?smlDeleteCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_generic_s@@@Z @ 101 NONAME ; int CNSmlAgentBase::smlDeleteCmdFuncL(struct sml_generic_s *) + ?InitStartingMessageStateBaseL@CNSmlAgentBase@@IAEXXZ @ 102 NONAME ; void CNSmlAgentBase::InitStartingMessageStateBaseL(void) + ?DeleteIDMappingTableL@CNSmlCmdsBase@@UAEHABVTDesC16@@0@Z @ 103 NONAME ; int CNSmlCmdsBase::DeleteIDMappingTableL(class TDesC16 const &, class TDesC16 const &) + ?StatusReference@CNSmlAgentBase@@QAEAAVTRequestStatus@@XZ @ 104 NONAME ; class TRequestStatus & CNSmlAgentBase::StatusReference(void) + ?SetCredentialL@CNSmlAuth@@QAEXABVTDesC8@@@Z @ 105 NONAME ; void CNSmlAuth::SetCredentialL(class TDesC8 const &) + ?DoAnchorsL@CNSmlCmdsBase@@IBEXAAUsml_metinf_metinf_s@@PBVTDesC8@@1@Z @ 106 NONAME ; void CNSmlCmdsBase::DoAnchorsL(struct sml_metinf_metinf_s &, class TDesC8 const *, class TDesC8 const *) const + ?DoSourceL@CNSmlCmdsBase@@QBEXAAPAUsml_source_s@@ABVTDesC8@@@Z @ 107 NONAME ; void CNSmlCmdsBase::DoSourceL(struct sml_source_s * &, class TDesC8 const &) const + ?DoTargetL@CNSmlCmdsBase@@QBEXAAPAUsml_target_s@@ABVTDesC16@@1@Z @ 108 NONAME ; void CNSmlCmdsBase::DoTargetL(struct sml_target_s * &, class TDesC16 const &, class TDesC16 const &) const + ?DoGenericAlertL@CNSmlCmdsBase@@UAEXABVTDesC8@@00H0@Z @ 109 NONAME ; void CNSmlCmdsBase::DoGenericAlertL(class TDesC8 const &, class TDesC8 const &, class TDesC8 const &, int, class TDesC8 const &) + ?ProcessMapCmdL@CNSmlCmdsBase@@UAEXPAUsml_map_s@@@Z @ 110 NONAME ; void CNSmlCmdsBase::ProcessMapCmdL(struct sml_map_s *) + ?ReceivingStateL@CNSmlAgentBase@@IAEXXZ @ 111 NONAME ; void CNSmlAgentBase::ReceivingStateL(void) + ??4CNSmlURI@@QAEAAV0@ABV0@@Z @ 112 NONAME ; class CNSmlURI & CNSmlURI::operator=(class CNSmlURI const &) + ?ProcessReceivedDataL@CNSmlCmdsBase@@QAEHXZ @ 113 NONAME ; int CNSmlCmdsBase::ProcessReceivedDataL(void) + ?SetPerformedInAtomic@CNSmlStatusContainer@@QAEXH@Z @ 114 NONAME ; void CNSmlStatusContainer::SetPerformedInAtomic(int) + ?SetMoreData@CNSmlResponseController@@QAEXH@Z @ 115 NONAME ; void CNSmlResponseController::SetMoreData(int) + ?DatabaseMatchesL@CNSmlURI@@QAEHABVTDesC16@@@Z @ 116 NONAME ; int CNSmlURI::DatabaseMatchesL(class TDesC16 const &) + ?LastEntryID@CNSmlStatusContainer@@QBEHXZ @ 117 NONAME ; int CNSmlStatusContainer::LastEntryID(void) const + ?ResponseController@CNSmlCmdsBase@@QBEPAVCNSmlResponseController@@XZ @ 118 NONAME ; class CNSmlResponseController * CNSmlCmdsBase::ResponseController(void) const + ?SetResponseDetail@CNSmlResponseController@@QAEXHW4TResponseDetail@1@@Z @ 119 NONAME ; void CNSmlResponseController::SetResponseDetail(int, enum CNSmlResponseController::TResponseDetail) + ?ResultAlertStateL@CNSmlAgentBase@@IAEXXZ @ 120 NONAME ; void CNSmlAgentBase::ResultAlertStateL(void) + ?ConstructL@CNSmlCmdsBase@@IAEXPAVCNSmlAgentBase@@ABVTDesC8@@1HABVHBufC16@@PAVCNSmlURI@@H@Z @ 121 NONAME ; void CNSmlCmdsBase::ConstructL(class CNSmlAgentBase *, class TDesC8 const &, class TDesC8 const &, int, class HBufC16 const &, class CNSmlURI *, int) + ?DoCmdIdL@CNSmlCmdsBase@@IAEXAAPAUsml_pcdata_s@@@Z @ 122 NONAME ; void CNSmlCmdsBase::DoCmdIdL(struct sml_pcdata_s * &) + ?smlSearchCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_search_s@@@Z @ 123 NONAME ; int CNSmlAgentBase::smlSearchCmdFuncL(struct sml_search_s *) + ?IsFlagSet@CNSmlCmdsBase@@IBEHABI0@Z @ 124 NONAME ; int CNSmlCmdsBase::IsFlagSet(unsigned int const &, unsigned int const &) const + ?SetServerNonceL@CNSmlAgentBase@@UBEXABVTDesC16@@@Z @ 125 NONAME ; void CNSmlAgentBase::SetServerNonceL(class TDesC16 const &) const + ?DoTargetL@CNSmlCmdsBase@@QBEXAAPAUsml_target_s@@ABVTDesC8@@@Z @ 126 NONAME ; void CNSmlCmdsBase::DoTargetL(struct sml_target_s * &, class TDesC8 const &) const + ?SetEndOfDataAlertRequest@CNSmlAgentBase@@QAEXXZ @ 127 NONAME ; void CNSmlAgentBase::SetEndOfDataAlertRequest(void) + ?ServerUserName@CNSmlAgentBase@@MBE?AVTPtrC16@@XZ @ 128 NONAME ; class TPtrC16 CNSmlAgentBase::ServerUserName(void) const + ?ClientAlertNextStateL@CNSmlAgentBase@@IAEXXZ @ 129 NONAME ; void CNSmlAgentBase::ClientAlertNextStateL(void) + ?NewLC@CNSmlURI@@SAPAV1@XZ @ 130 NONAME ; class CNSmlURI * CNSmlURI::NewLC(void) + ?DisconnectFromOtherServers@CNSmlCmdsBase@@UAEXXZ @ 131 NONAME ; void CNSmlCmdsBase::DisconnectFromOtherServers(void) + ?SyncLogMessageCode@TNSmlError@@UAEHXZ @ 132 NONAME ; int TNSmlError::SyncLogMessageCode(void) + ?ServerModEndMessageStateL@CNSmlAgentBase@@IAEXH@Z @ 133 NONAME ; void CNSmlAgentBase::ServerModEndMessageStateL(int) + ?HBufC8InUTF8LC@NSmlUnicodeConverter@@SAHABVTDesC16@@AAPAVHBufC8@@@Z @ 134 NONAME ; int NSmlUnicodeConverter::HBufC8InUTF8LC(class TDesC16 const &, class HBufC8 * &) + ?ProcessSearchCmdL@CNSmlCmdsBase@@UAEXPAUsml_search_s@@@Z @ 135 NONAME ; void CNSmlCmdsBase::ProcessSearchCmdL(struct sml_search_s *) + ?ProfileId@CNSmlAgentBase@@QBEHXZ @ 136 NONAME ; int CNSmlAgentBase::ProfileId(void) const + ?smlCopyCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_generic_s@@@Z @ 137 NONAME ; int CNSmlAgentBase::smlCopyCmdFuncL(struct sml_generic_s *) + ?NewL@CNSmlURI@@SAPAV1@XZ @ 138 NONAME ; class CNSmlURI * CNSmlURI::NewL(void) + ?DoGenericUserAlertL@CNSmlCmdsBase@@UAEHH@Z @ 139 NONAME ; int CNSmlCmdsBase::DoGenericUserAlertL(int) + ?HBufC16InUnicodeL@NSmlUnicodeConverter@@SAHABVTDesC8@@AAPAVHBufC16@@@Z @ 140 NONAME ; int NSmlUnicodeConverter::HBufC16InUnicodeL(class TDesC8 const &, class HBufC16 * &) + ?MoreData@CNSmlResponseController@@QBEHH@Z @ 141 NONAME ; int CNSmlResponseController::MoreData(int) const + ?RemoveWritten@CNSmlResultsContainer@@QAEXH@Z @ 142 NONAME ; void CNSmlResultsContainer::RemoveWritten(int) + ?MetaTypeInUtf8LC@CNSmlCmdsBase@@IBEPAVHBufC8@@PBUsml_pcdata_s@@@Z @ 143 NONAME ; class HBufC8 * CNSmlCmdsBase::MetaTypeInUtf8LC(struct sml_pcdata_s const *) const + ?StatusDataToGetCommandL@CNSmlCmdsBase@@IAEHPBUsml_get_put_s@@PBUsml_item_s@@W4TNSmlSyncMLStatusCode@TNSmlError@@PBVTDesC8@@@Z @ 144 NONAME ; int CNSmlCmdsBase::StatusDataToGetCommandL(struct sml_get_put_s const *, struct sml_item_s const *, enum TNSmlError::TNSmlSyncMLStatusCode, class TDesC8 const *) + ?AppIndex@CNSmlResponseController@@QBEHH@Z @ 145 NONAME ; int CNSmlResponseController::AppIndex(int) const + ?WaitingLargeObjectChunk@CNSmlCmdsBase@@QBEHXZ @ 146 NONAME ; int CNSmlCmdsBase::WaitingLargeObjectChunk(void) const + ?SetMaximumWorkspaceSize@CNSmlCmdsBase@@QAEXH@Z @ 147 NONAME ; void CNSmlCmdsBase::SetMaximumWorkspaceSize(int) + ?StatusCode@CNSmlResponseController@@QBEHH@Z @ 148 NONAME ; int CNSmlResponseController::StatusCode(int) const + ?smlExecCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_exec_s@@@Z @ 149 NONAME ; int CNSmlAgentBase::smlExecCmdFuncL(struct sml_exec_s *) + ?EntryID@CNSmlResponseController@@QBEHHH@Z @ 150 NONAME ; int CNSmlResponseController::EntryID(int, int) const + ?ProcessSyncHdrL@CNSmlCmdsBase@@UAEXPAUsml_sync_hdr_s@@@Z @ 151 NONAME ; void CNSmlCmdsBase::ProcessSyncHdrL(struct sml_sync_hdr_s *) + ?ProcessCopyCmdL@CNSmlCmdsBase@@UAEXPAUsml_generic_s@@@Z @ 152 NONAME ; void CNSmlCmdsBase::ProcessCopyCmdL(struct sml_generic_s *) + ?ServerNonceAllocL@CNSmlAgentBase@@UBEPAVHBufC16@@XZ @ 153 NONAME ; class HBufC16 * CNSmlAgentBase::ServerNonceAllocL(void) const + ?ResultsContainer@CNSmlCmdsBase@@QBEPAVCNSmlResultsContainer@@XZ @ 154 NONAME ; class CNSmlResultsContainer * CNSmlCmdsBase::ResultsContainer(void) const + ?DataUpdateStatusMakingMapStateL@CNSmlAgentBase@@MAEXXZ @ 155 NONAME ; void CNSmlAgentBase::DataUpdateStatusMakingMapStateL(void) + ?SetSyncAgent@CNSmlAuth@@QAEXPAVCNSmlAgentBase@@@Z @ 156 NONAME ; void CNSmlAuth::SetSyncAgent(class CNSmlAgentBase *) + ?MetaFormatInUtf8LC@CNSmlCmdsBase@@IBEPAVHBufC8@@PBUsml_pcdata_s@@@Z @ 157 NONAME ; class HBufC8 * CNSmlCmdsBase::MetaFormatInUtf8LC(struct sml_pcdata_s const *) const + ?ResponseDetail@CNSmlResponseController@@QBE?AW4TResponseDetail@1@H@Z @ 158 NONAME ; enum CNSmlResponseController::TResponseDetail CNSmlResponseController::ResponseDetail(int) const + ?StatusID@CNSmlResultsContainer@@QBEHH@Z @ 159 NONAME ; int CNSmlResultsContainer::StatusID(int) const + ?ErrorCodeConversion@TNSmlError@@MAEXXZ @ 160 NONAME ; void TNSmlError::ErrorCodeConversion(void) + ?ServerMaxObjSize@CNSmlCmdsBase@@IBEHPBUsml_pcdata_s@@@Z @ 161 NONAME ; int CNSmlCmdsBase::ServerMaxObjSize(struct sml_pcdata_s const *) const + ?ServerModStartMessageStateL@CNSmlAgentBase@@IAEXPAUsml_sync_hdr_s@@@Z @ 162 NONAME ; void CNSmlAgentBase::ServerModStartMessageStateL(struct sml_sync_hdr_s *) + ?CallbackCalled@CNSmlAgentBase@@QBEHXZ @ 163 NONAME ; int CNSmlAgentBase::CallbackCalled(void) const + ?PcdataNewL@CNSmlCmdsBase@@QBEXAAPAUsml_pcdata_s@@ABVTDesC8@@@Z @ 164 NONAME ; void CNSmlCmdsBase::PcdataNewL(struct sml_pcdata_s * &, class TDesC8 const &) const + ?NextResultsElement@CNSmlResultsContainer@@QAEHAAPAUsml_results_s@@@Z @ 165 NONAME ; int CNSmlResultsContainer::NextResultsElement(struct sml_results_s * &) + ?SetAppIndex@CNSmlResponseController@@QAEXHH@Z @ 166 NONAME ; void CNSmlResponseController::SetAppIndex(int, int) + ?Begin@CNSmlResultsContainer@@QAEXXZ @ 167 NONAME ; void CNSmlResultsContainer::Begin(void) + ?SetDatabaseL@CNSmlURI@@QAEXABVTDesC8@@H@Z @ 168 NONAME ; void CNSmlURI::SetDatabaseL(class TDesC8 const &, int) + ?CreateNewResultsL@CNSmlResultsContainer@@QAEHABVTDesC8@@0PBUsml_target_s@@PBUsml_source_s@@@Z @ 169 NONAME ; int CNSmlResultsContainer::CreateNewResultsL(class TDesC8 const &, class TDesC8 const &, struct sml_target_s const *, struct sml_source_s const *) + ?SyncMLDatabaseAllocLC@CNSmlURI@@QAEPAVHBufC16@@XZ @ 170 NONAME ; class HBufC16 * CNSmlURI::SyncMLDatabaseAllocLC(void) + ?DataUpdateStatusStartingMessageStateBaseL@CNSmlAgentBase@@IAEXXZ @ 171 NONAME ; void CNSmlAgentBase::DataUpdateStatusStartingMessageStateBaseL(void) + ?DataUpdateStatusMakingResultsStateL@CNSmlAgentBase@@MAEXXZ @ 172 NONAME ; void CNSmlAgentBase::DataUpdateStatusMakingResultsStateL(void) + ??0CNSmlAgentBase@@QAE@XZ @ 173 NONAME ; CNSmlAgentBase::CNSmlAgentBase(void) + ?NewLC@CNSmlURI@@SAPAV1@ABVTDesC8@@H@Z @ 174 NONAME ; class CNSmlURI * CNSmlURI::NewLC(class TDesC8 const &, int) + ?ServerAlertNextStateL@CNSmlAgentBase@@IAEXXZ @ 175 NONAME ; void CNSmlAgentBase::ServerAlertNextStateL(void) + ?LUID@CNSmlResponseController@@QBE?AVTPtrC8@@H@Z @ 176 NONAME ; class TPtrC8 CNSmlResponseController::LUID(int) const + ?NextStatusElement@CNSmlStatusContainer@@QAEHAAPAUsml_status_s@@H@Z @ 177 NONAME ; int CNSmlStatusContainer::NextStatusElement(struct sml_status_s * &, int) + ?AuthenticationRequirementL@CNSmlAgentBase@@IAEHABVCNSmlResponseController@@H@Z @ 178 NONAME ; int CNSmlAgentBase::AuthenticationRequirementL(class CNSmlResponseController const &, int) + ?StatusDataToCommandL@CNSmlCmdsBase@@IAEHABVTDesC8@@PBUsml_pcdata_s@@IPBUsml_item_s@@W4TNSmlSyncMLStatusCode@TNSmlError@@PBV2@@Z @ 179 NONAME ; int CNSmlCmdsBase::StatusDataToCommandL(class TDesC8 const &, struct sml_pcdata_s const *, unsigned int, struct sml_item_s const *, enum TNSmlError::TNSmlSyncMLStatusCode, class TDesC8 const *) + ?SourceIsUnderItem@CNSmlCmdsBase@@IBEHPBUsml_item_list_s@@@Z @ 180 NONAME ; int CNSmlCmdsBase::SourceIsUnderItem(struct sml_item_list_s const *) const + ?SetStatusID@CNSmlResultsContainer@@QAEXHH@Z @ 181 NONAME ; void CNSmlResultsContainer::SetStatusID(int, int) + ?CreateNewStatusElementL@CNSmlStatusContainer@@QAEHXZ @ 182 NONAME ; int CNSmlStatusContainer::CreateNewStatusElementL(void) + ?FreeBaseResources@CNSmlAgentBase@@IAEXXZ @ 183 NONAME ; void CNSmlAgentBase::FreeBaseResources(void) + ??1CNSmlCmdsBase@@UAE@XZ @ 184 NONAME ; CNSmlCmdsBase::~CNSmlCmdsBase(void) + ?NewL@CNSmlURI@@SAPAV1@ABVTDesC16@@H@Z @ 185 NONAME ; class CNSmlURI * CNSmlURI::NewL(class TDesC16 const &, int) + ?NewL@CNSmlAuth@@SAPAV1@XZ @ 186 NONAME ; class CNSmlAuth * CNSmlAuth::NewL(void) + ?DataBaseWithoutRelativePrefix@CNSmlURI@@QAE?AVTPtrC16@@XZ @ 187 NONAME ; class TPtrC16 CNSmlURI::DataBaseWithoutRelativePrefix(void) + ?Database@CNSmlURI@@QAE?AVTPtrC16@@XZ @ 188 NONAME ; class TPtrC16 CNSmlURI::Database(void) + ?DoMaxObjSizeL@CNSmlCmdsBase@@IBEXAAUsml_metinf_metinf_s@@H@Z @ 189 NONAME ; void CNSmlCmdsBase::DoMaxObjSizeL(struct sml_metinf_metinf_s &, int) const + ?SyncLogErrorCode@TNSmlError@@QAEHXZ @ 190 NONAME ; int TNSmlError::SyncLogErrorCode(void) + ?ClientAlertNextMakingMapStateL@CNSmlAgentBase@@MAEXXZ @ 191 NONAME ; void CNSmlAgentBase::ClientAlertNextMakingMapStateL(void) + ?TargetIsUnderItem@CNSmlCmdsBase@@IBEHPBUsml_item_list_s@@@Z @ 192 NONAME ; int CNSmlCmdsBase::TargetIsUnderItem(struct sml_item_list_s const *) const + ?ServerAlertNextStartMessageStateL@CNSmlAgentBase@@IAEXPAUsml_sync_hdr_s@@@Z @ 193 NONAME ; void CNSmlAgentBase::ServerAlertNextStartMessageStateL(struct sml_sync_hdr_s *) + ?BeginningStateL@CNSmlAgentBase@@IAEXXZ @ 194 NONAME ; void CNSmlAgentBase::BeginningStateL(void) diff -r 4af31167ea77 -r 13d7c31c74e0 syncmlfw/common/syncagent/bld/DEF/eabiu.def --- a/syncmlfw/common/syncagent/bld/DEF/eabiu.def Thu Jul 15 19:36:11 2010 +0300 +++ b/syncmlfw/common/syncagent/bld/DEF/eabiu.def Thu Aug 19 10:44:50 2010 +0300 @@ -11,217 +11,219 @@ _ZN13CNSmlCmdsBase10ConstructLEP14CNSmlAgentBaseRK6TDesC8S4_iRK7HBufC16P8CNSmlURIi @ 10 NONAME _ZN13CNSmlCmdsBase10DoSyncHdrLEv @ 11 NONAME _ZN13CNSmlCmdsBase14ProcessMapCmdLEP9sml_map_s @ 12 NONAME - _ZN13CNSmlCmdsBase15DoGenericAlertLERK6TDesC8S2_S2_iS2_ @ 13 NONAME - _ZN13CNSmlCmdsBase15ProcessCopyCmdLEP13sml_generic_s @ 14 NONAME - _ZN13CNSmlCmdsBase15ProcessExecCmdLEP10sml_exec_s @ 15 NONAME - _ZN13CNSmlCmdsBase15ProcessSyncHdrLEP14sml_sync_hdr_s @ 16 NONAME - _ZN13CNSmlCmdsBase17ProcessSearchCmdLEP12sml_search_s @ 17 NONAME - _ZN13CNSmlCmdsBase17ProcessStatusCmdLEP12sml_status_s @ 18 NONAME - _ZN13CNSmlCmdsBase18MarkGenAlertsSentLERK6TDesC8 @ 19 NONAME - _ZN13CNSmlCmdsBase18MarkGenAlertsSentLEv @ 20 NONAME - _ZN13CNSmlCmdsBase19DoGenericUserAlertLEi @ 21 NONAME - _ZN13CNSmlCmdsBase20CloseIDMappingTableLEv @ 22 NONAME - _ZN13CNSmlCmdsBase20FetchIDMappingTableLEi @ 23 NONAME - _ZN13CNSmlCmdsBase20ProcessReceivedDataLEv @ 24 NONAME - _ZN13CNSmlCmdsBase20StatusDataToCommandLERK6TDesC8PK12sml_pcdata_sjPK10sml_item_sN10TNSmlError21TNSmlSyncMLStatusCodeEPS1_ @ 25 NONAME - _ZN13CNSmlCmdsBase21BufferAreaForParsingLEv @ 26 NONAME - _ZN13CNSmlCmdsBase21DeleteIDMappingTableLERK7TDesC16S2_ @ 27 NONAME - _ZN13CNSmlCmdsBase22ResetGenericUserAlertLEv @ 28 NONAME - _ZN13CNSmlCmdsBase22ResetLargeObjectBufferEv @ 29 NONAME - _ZN13CNSmlCmdsBase23SetMaximumWorkspaceSizeEi @ 30 NONAME - _ZN13CNSmlCmdsBase23StatusDataToGetCommandLEPK13sml_get_put_sPK10sml_item_sN10TNSmlError21TNSmlSyncMLStatusCodeEPK6TDesC8 @ 31 NONAME - _ZN13CNSmlCmdsBase26CreateAndInitResponseItemLERK6TDesC8 @ 32 NONAME - _ZN13CNSmlCmdsBase26DisconnectFromOtherServersEv @ 33 NONAME - _ZN13CNSmlCmdsBase26SubtractConsumedFromPcDataERP10sml_item_si @ 34 NONAME - _ZN13CNSmlCmdsBase27StatusDataToGenericCommandLERK6TDesC8PK13sml_generic_sPK10sml_item_sN10TNSmlError21TNSmlSyncMLStatusCodeEPS1_ @ 35 NONAME - _ZN13CNSmlCmdsBase27StatusToUnsupportedCommandLEiRK6TDesC8PK12sml_pcdata_sj @ 36 NONAME - _ZN13CNSmlCmdsBase8DoCmdIdLERP12sml_pcdata_s @ 37 NONAME - _ZN13CNSmlCmdsBase9DoStatusLEP12sml_status_s @ 38 NONAME - _ZN13CNSmlCmdsBase9MoreDataLEPK6HBufC8PK10sml_item_sPK12sml_pcdata_sRP8CBufBase @ 39 NONAME - _ZN13CNSmlCmdsBaseC2Ev @ 40 NONAME - _ZN13CNSmlCmdsBaseD0Ev @ 41 NONAME - _ZN13CNSmlCmdsBaseD1Ev @ 42 NONAME - _ZN13CNSmlCmdsBaseD2Ev @ 43 NONAME - _ZN14CNSmlAgentBase10ConstructLEv @ 44 NONAME - _ZN14CNSmlAgentBase13SendingStateLEv @ 45 NONAME - _ZN14CNSmlAgentBase14smlAddCmdFuncLEP13sml_generic_s @ 46 NONAME - _ZN14CNSmlAgentBase14smlMapCmdFuncLEP9sml_map_s @ 47 NONAME - _ZN14CNSmlAgentBase15BeginningStateLEv @ 48 NONAME - _ZN14CNSmlAgentBase15DoOutsideCancelEv @ 49 NONAME - _ZN14CNSmlAgentBase15ReceivingStateLEv @ 50 NONAME - _ZN14CNSmlAgentBase15StatusReferenceEv @ 51 NONAME - _ZN14CNSmlAgentBase15smlCopyCmdFuncLEP13sml_generic_s @ 52 NONAME - _ZN14CNSmlAgentBase15smlExecCmdFuncLEP10sml_exec_s @ 53 NONAME - _ZN14CNSmlAgentBase15smlMoveCmdFuncLEP13sml_generic_s @ 54 NONAME - _ZN14CNSmlAgentBase17FreeBaseResourcesEv @ 55 NONAME - _ZN14CNSmlAgentBase17ResultAlertStateLEv @ 56 NONAME - _ZN14CNSmlAgentBase17smlDeleteCmdFuncLEP13sml_generic_s @ 57 NONAME - _ZN14CNSmlAgentBase17smlSearchCmdFuncLEP12sml_search_s @ 58 NONAME - _ZN14CNSmlAgentBase18smlReplaceCmdFuncLEP13sml_generic_s @ 59 NONAME - _ZN14CNSmlAgentBase20SetOffCallbackCalledEv @ 60 NONAME - _ZN14CNSmlAgentBase21ClientAlertNextStateLEv @ 61 NONAME - _ZN14CNSmlAgentBase21ServerAlertNextStateLEv @ 62 NONAME - _ZN14CNSmlAgentBase22DataUpdateStatusStateLEv @ 63 NONAME - _ZN14CNSmlAgentBase23ServerModAlertCmdStateLEP11sml_alert_s @ 64 NONAME - _ZN14CNSmlAgentBase24ServerModStatusCmdStateLEP12sml_status_s @ 65 NONAME - _ZN14CNSmlAgentBase24SetEndOfDataAlertRequestEv @ 66 NONAME - _ZN14CNSmlAgentBase25ServerModEndMessageStateLEi @ 67 NONAME - _ZN14CNSmlAgentBase26AuthenticationRequirementLERK23CNSmlResponseControlleri @ 68 NONAME - _ZN14CNSmlAgentBase26ClientInitialisationStateLEv @ 69 NONAME - _ZN14CNSmlAgentBase26InitAskingDeviceInfoStateLEv @ 70 NONAME - _ZN14CNSmlAgentBase27ServerModStartMessageStateLEP14sml_sync_hdr_s @ 71 NONAME - _ZN14CNSmlAgentBase28CheckStatusCodesAreReceivedLEi @ 72 NONAME - _ZN14CNSmlAgentBase29InitStartingMessageStateBaseLEv @ 73 NONAME - _ZN14CNSmlAgentBase29ServerAlertNextAlertCmdStateLEP11sml_alert_s @ 74 NONAME - _ZN14CNSmlAgentBase30ClientAlertNextMakingMapStateLEv @ 75 NONAME - _ZN14CNSmlAgentBase30ServerAlertNextStatusCmdStateLEP12sml_status_s @ 76 NONAME - _ZN14CNSmlAgentBase31DataUpdateStatusMakingMapStateLEv @ 77 NONAME - _ZN14CNSmlAgentBase31ServerAlertNextEndMessageStateLEi @ 78 NONAME - _ZN14CNSmlAgentBase33ServerAlertNextStartMessageStateLEP14sml_sync_hdr_s @ 79 NONAME - _ZN14CNSmlAgentBase35DataUpdateStatusMakingResultsStateLEv @ 80 NONAME - _ZN14CNSmlAgentBase41DataUpdateStatusStartingMessageStateBaseLEv @ 81 NONAME - _ZN14CNSmlAgentBase4RunLEv @ 82 NONAME - _ZN14CNSmlAgentBase7SyncLogEv @ 83 NONAME - _ZN14CNSmlAgentBase8DoCancelEv @ 84 NONAME - _ZN14CNSmlAgentBaseC2Ev @ 85 NONAME - _ZN14CNSmlAgentBaseD0Ev @ 86 NONAME - _ZN14CNSmlAgentBaseD1Ev @ 87 NONAME - _ZN14CNSmlAgentBaseD2Ev @ 88 NONAME - _ZN14CNSmlPhoneInfo10SwVersionLEv @ 89 NONAME - _ZN14CNSmlPhoneInfo4NewLEv @ 90 NONAME - _ZN14CNSmlPhoneInfo5NewLCEv @ 91 NONAME - _ZN20CNSmlStatusContainer10SetCmdRefLEiPK12sml_pcdata_s @ 92 NONAME - _ZN20CNSmlStatusContainer12AddItemDataLEiPK12sml_pcdata_s @ 93 NONAME - _ZN20CNSmlStatusContainer13AddSourceRefLEiPK12sml_source_s @ 94 NONAME - _ZN20CNSmlStatusContainer13AddTargetRefLEiPK12sml_target_s @ 95 NONAME - _ZN20CNSmlStatusContainer13SetNoResponseEii @ 96 NONAME - _ZN20CNSmlStatusContainer14SetStatusCodeLEiii @ 97 NONAME - _ZN20CNSmlStatusContainer17NextStatusElementERP12sml_status_si @ 98 NONAME - _ZN20CNSmlStatusContainer20SetPerformedInAtomicEi @ 99 NONAME - _ZN20CNSmlStatusContainer21SetAtomicOrSequenceIdEii @ 100 NONAME - _ZN20CNSmlStatusContainer23CreateNewStatusElementLEv @ 101 NONAME - _ZN20CNSmlStatusContainer23SetStatusCodesInAtomicLEiii @ 102 NONAME - _ZN20CNSmlStatusContainer35SetStatusCodeToAtomicOrSequenceCmdLEiiRK6TDesC8 @ 103 NONAME - _ZN20CNSmlStatusContainer5BeginEv @ 104 NONAME - _ZN20CNSmlStatusContainer7SetCmdLEiRK6TDesC8 @ 105 NONAME - _ZN20NSmlUnicodeConverter14HBufC8InUTF8LCERK7TDesC16RP6HBufC8 @ 106 NONAME - _ZN20NSmlUnicodeConverter17HBufC16InUnicodeLERK6TDesC8RP7HBufC16 @ 107 NONAME - _ZN20NSmlUnicodeConverter18HBufC16InUnicodeLCERK6TDesC8RP7HBufC16 @ 108 NONAME - _ZN21CNSmlResultsContainer11SetStatusIDEii @ 109 NONAME - _ZN21CNSmlResultsContainer13RemoveWrittenEi @ 110 NONAME - _ZN21CNSmlResultsContainer17CreateNewResultsLERK6TDesC8S2_PK12sml_target_sPK12sml_source_s @ 111 NONAME - _ZN21CNSmlResultsContainer18NextResultsElementERP13sml_results_s @ 112 NONAME - _ZN21CNSmlResultsContainer5BeginEv @ 113 NONAME - _ZN21CNSmlResultsContainer8AddItemLEiRK8CBufBaseRK6TDesC8S5_ @ 114 NONAME - _ZN21CNSmlResultsContainer9SetCmdIDLEiPK12sml_pcdata_s @ 115 NONAME - _ZN23CNSmlResponseController11SetAppIndexEii @ 116 NONAME - _ZN23CNSmlResponseController11SetMoreDataEi @ 117 NONAME - _ZN23CNSmlResponseController17SetResponseDetailEiNS_15TResponseDetailE @ 118 NONAME - _ZN23CNSmlResponseController6ResetLEv @ 119 NONAME - _ZN23CNSmlResponseController8SetLUIDLEiRK6TDesC8 @ 120 NONAME - _ZN8CNSmlURI12SetDatabaseLERK6TDesC8i @ 121 NONAME - _ZN8CNSmlURI12SetDatabaseLERK7TDesC16i @ 122 NONAME - _ZN8CNSmlURI12SetHostNameLERK6TDesC8i @ 123 NONAME - _ZN8CNSmlURI12SetHostNameLERK7TDesC16i @ 124 NONAME - _ZN8CNSmlURI16DatabaseMatchesLERK7TDesC16 @ 125 NONAME - _ZN8CNSmlURI17HostNameWithPortLEi @ 126 NONAME - _ZN8CNSmlURI21HostNameInUTF8AllocLCEv @ 127 NONAME - _ZN8CNSmlURI21SyncMLDatabaseAllocLCEv @ 128 NONAME - _ZN8CNSmlURI29DataBaseWithoutRelativePrefixEv @ 129 NONAME - _ZN8CNSmlURI4NewLERK6TDesC8i @ 130 NONAME - _ZN8CNSmlURI4NewLERK7TDesC16i @ 131 NONAME - _ZN8CNSmlURI4NewLEv @ 132 NONAME - _ZN8CNSmlURI5NewLCERK6TDesC8i @ 133 NONAME - _ZN8CNSmlURI5NewLCERK7TDesC16i @ 134 NONAME - _ZN8CNSmlURI5NewLCEv @ 135 NONAME - _ZN8CNSmlURI7SetPortEi @ 136 NONAME - _ZN8CNSmlURI8DatabaseEv @ 137 NONAME - _ZN8CNSmlURI8HostNameEv @ 138 NONAME - _ZN8CNSmlURI8IsEqualLERKS_i @ 139 NONAME - _ZN8CNSmlURIaSERKS_ @ 140 NONAME - _ZN9CNSmlAuth12SetSyncAgentEP14CNSmlAgentBase @ 141 NONAME - _ZN9CNSmlAuth14SetCredentialLERK6TDesC8 @ 142 NONAME - _ZN9CNSmlAuth16SetAuthRequiredLEv @ 143 NONAME - _ZN9CNSmlAuth4NewLEv @ 144 NONAME - _ZNK13CNSmlCmdsBase10BusyStatusEv @ 145 NONAME - _ZNK13CNSmlCmdsBase10DoAnchorsLER19sml_metinf_metinf_sPK6TDesC8S4_ @ 146 NONAME - _ZNK13CNSmlCmdsBase10DoMetInfLCERP19sml_metinf_metinf_s @ 147 NONAME - _ZNK13CNSmlCmdsBase10MetaTypeLCEPK12sml_pcdata_s @ 148 NONAME - _ZNK13CNSmlCmdsBase10PcdataNewLERP12sml_pcdata_sRK6TDesC8 @ 149 NONAME - _ZNK13CNSmlCmdsBase10ServerAuthEv @ 150 NONAME - _ZNK13CNSmlCmdsBase13DoMaxObjSizeLER19sml_metinf_metinf_si @ 151 NONAME - _ZNK13CNSmlCmdsBase15StatusContainerEv @ 152 NONAME - _ZNK13CNSmlCmdsBase16MetaTypeInUtf8LCEPK12sml_pcdata_s @ 153 NONAME - _ZNK13CNSmlCmdsBase16ResultsContainerEv @ 154 NONAME - _ZNK13CNSmlCmdsBase16ServerMaxObjSizeEPK12sml_pcdata_s @ 155 NONAME - _ZNK13CNSmlCmdsBase16ServerObjectSizeEPK12sml_pcdata_s @ 156 NONAME - _ZNK13CNSmlCmdsBase17PCDATAToUnicodeLCERK12sml_pcdata_sRP7HBufC16 @ 157 NONAME - _ZNK13CNSmlCmdsBase17SourceIsUnderItemEPK15sml_item_list_s @ 158 NONAME - _ZNK13CNSmlCmdsBase17TargetIsUnderItemEPK15sml_item_list_s @ 159 NONAME - _ZNK13CNSmlCmdsBase18MetaFormatInUtf8LCEPK12sml_pcdata_s @ 160 NONAME - _ZNK13CNSmlCmdsBase18ResponseControllerEv @ 161 NONAME - _ZNK13CNSmlCmdsBase19EndOfServerMessageLEv @ 162 NONAME - _ZNK13CNSmlCmdsBase21TrimRightSpaceAndNullER5TDes8 @ 163 NONAME - _ZNK13CNSmlCmdsBase21WriteMappingInfoToDbLEv @ 164 NONAME - _ZNK13CNSmlCmdsBase23WaitingLargeObjectChunkEv @ 165 NONAME - _ZNK13CNSmlCmdsBase7DoMetaLERP12sml_pcdata_sPK19sml_metinf_metinf_s @ 166 NONAME - _ZNK13CNSmlCmdsBase7RespURIEv @ 167 NONAME - _ZNK13CNSmlCmdsBase9AlertCodeEP11sml_alert_s @ 168 NONAME - _ZNK13CNSmlCmdsBase9DoSourceLERP12sml_source_sRK6TDesC8 @ 169 NONAME - _ZNK13CNSmlCmdsBase9DoSourceLERP12sml_source_sRK7TDesC16 @ 170 NONAME - _ZNK13CNSmlCmdsBase9DoSourceLERP12sml_source_sRK7TDesC16S5_ @ 171 NONAME - _ZNK13CNSmlCmdsBase9DoTargetLERP12sml_target_sRK7TDesC16 @ 172 NONAME - _ZNK13CNSmlCmdsBase9DoTargetLERP12sml_target_sRK7TDesC16S5_ @ 173 NONAME - _ZNK13CNSmlCmdsBase9IsFlagSetERKjS1_ @ 174 NONAME - _ZNK14CNSmlAgentBase12SaveIfNonceLERK23CNSmlResponseControlleri @ 175 NONAME - _ZNK14CNSmlAgentBase14CallbackCalledEv @ 176 NONAME - _ZNK14CNSmlAgentBase14ServerPasswordEv @ 177 NONAME - _ZNK14CNSmlAgentBase14ServerUserNameEv @ 178 NONAME - _ZNK14CNSmlAgentBase15SetServerNonceLERK7TDesC16 @ 179 NONAME - _ZNK14CNSmlAgentBase17ServerNonceAllocLEv @ 180 NONAME - _ZNK14CNSmlAgentBase9ProfileIdEv @ 181 NONAME - _ZNK14CNSmlPhoneInfo10PhoneDataLENS_12TPhoneIdTypeER6TDes16 @ 182 NONAME - _ZNK20CNSmlStatusContainer11LastEntryIDEv @ 183 NONAME - _ZNK21CNSmlResultsContainer10AnyResultsEv @ 184 NONAME - _ZNK21CNSmlResultsContainer14CurrentEntryIDEv @ 185 NONAME - _ZNK21CNSmlResultsContainer8StatusIDEi @ 186 NONAME - _ZNK23CNSmlResponseController10StatusCodeEi @ 187 NONAME - _ZNK23CNSmlResponseController14ResponseDetailEi @ 188 NONAME - _ZNK23CNSmlResponseController3CmdEi @ 189 NONAME - _ZNK23CNSmlResponseController4LUIDEi @ 190 NONAME - _ZNK23CNSmlResponseController7EntryIDEii @ 191 NONAME - _ZNK23CNSmlResponseController8AppIndexEi @ 192 NONAME - _ZNK23CNSmlResponseController8ChalTypeEi @ 193 NONAME - _ZNK23CNSmlResponseController8MoreDataEi @ 194 NONAME - _ZNK9CNSmlAuth10ChallengedEv @ 195 NONAME - _ZTI10TNSmlError @ 196 NONAME ; ## - _ZTI13CNSmlCmdsBase @ 197 NONAME ; ## - _ZTI14CNSmlAgentBase @ 198 NONAME ; ## - _ZTI14CNSmlPhoneInfo @ 199 NONAME ; ## - _ZTI20CNSmlStatusContainer @ 200 NONAME ; ## - _ZTI21CNSmlResultsContainer @ 201 NONAME ; ## - _ZTI23CNSmlResponseController @ 202 NONAME ; ## - _ZTI8CNSmlURI @ 203 NONAME ; ## - _ZTI9CNSmlAuth @ 204 NONAME ; ## - _ZTV10TNSmlError @ 205 NONAME ; ## - _ZTV13CNSmlCmdsBase @ 206 NONAME ; ## - _ZTV14CNSmlAgentBase @ 207 NONAME ; ## - _ZTV14CNSmlPhoneInfo @ 208 NONAME ; ## - _ZTV20CNSmlStatusContainer @ 209 NONAME ; ## - _ZTV21CNSmlResultsContainer @ 210 NONAME ; ## - _ZTV23CNSmlResponseController @ 211 NONAME ; ## - _ZTV8CNSmlURI @ 212 NONAME ; ## - _ZTV9CNSmlAuth @ 213 NONAME ; ## - _ZThn28_N14CNSmlAgentBase14smlAddCmdFuncLEP13sml_generic_s @ 214 NONAME ; ## - _ZThn28_N14CNSmlAgentBase14smlMapCmdFuncLEP9sml_map_s @ 215 NONAME ; ## - _ZThn28_N14CNSmlAgentBase15smlCopyCmdFuncLEP13sml_generic_s @ 216 NONAME ; ## - _ZThn28_N14CNSmlAgentBase15smlExecCmdFuncLEP10sml_exec_s @ 217 NONAME ; ## - _ZThn28_N14CNSmlAgentBase15smlMoveCmdFuncLEP13sml_generic_s @ 218 NONAME ; ## - _ZThn28_N14CNSmlAgentBase17smlDeleteCmdFuncLEP13sml_generic_s @ 219 NONAME ; ## - _ZThn28_N14CNSmlAgentBase17smlSearchCmdFuncLEP12sml_search_s @ 220 NONAME ; ## - _ZThn28_N14CNSmlAgentBase18smlReplaceCmdFuncLEP13sml_generic_s @ 221 NONAME ; ## - _ZN14CNSmlAgentBase18LaunchAutoRestartLEi @ 222 NONAME - _ZN14CNSmlAgentBase18CheckAPBearerTypeLEm @ 223 NONAME - _ZN13CNSmlCmdsBase15DoGenericAlertLERK6TDesC8RK6RArrayI16CNSmlDMAlertItemE @ 224 NONAME - _ZNK13CNSmlCmdsBase9DoTargetLERP12sml_target_sRK6TDesC8 @ 225 NONAME + _ZN13CNSmlCmdsBase15DoGenericAlertLERK6TDesC8RK6RArrayI16CNSmlDMAlertItemE @ 13 NONAME + _ZN13CNSmlCmdsBase15DoGenericAlertLERK6TDesC8S2_S2_iS2_ @ 14 NONAME + _ZN13CNSmlCmdsBase15ProcessCopyCmdLEP13sml_generic_s @ 15 NONAME + _ZN13CNSmlCmdsBase15ProcessExecCmdLEP10sml_exec_s @ 16 NONAME + _ZN13CNSmlCmdsBase15ProcessSyncHdrLEP14sml_sync_hdr_s @ 17 NONAME + _ZN13CNSmlCmdsBase17ProcessSearchCmdLEP12sml_search_s @ 18 NONAME + _ZN13CNSmlCmdsBase17ProcessStatusCmdLEP12sml_status_s @ 19 NONAME + _ZN13CNSmlCmdsBase18MarkGenAlertsSentLERK6TDesC8 @ 20 NONAME + _ZN13CNSmlCmdsBase18MarkGenAlertsSentLEv @ 21 NONAME + _ZN13CNSmlCmdsBase19DoGenericUserAlertLEi @ 22 NONAME + _ZN13CNSmlCmdsBase20CloseIDMappingTableLEv @ 23 NONAME + _ZN13CNSmlCmdsBase20FetchIDMappingTableLEi @ 24 NONAME + _ZN13CNSmlCmdsBase20ProcessReceivedDataLEv @ 25 NONAME + _ZN13CNSmlCmdsBase20StatusDataToCommandLERK6TDesC8PK12sml_pcdata_sjPK10sml_item_sN10TNSmlError21TNSmlSyncMLStatusCodeEPS1_ @ 26 NONAME + _ZN13CNSmlCmdsBase21BufferAreaForParsingLEv @ 27 NONAME + _ZN13CNSmlCmdsBase21DeleteIDMappingTableLERK7TDesC16S2_ @ 28 NONAME + _ZN13CNSmlCmdsBase22ResetGenericUserAlertLEv @ 29 NONAME + _ZN13CNSmlCmdsBase22ResetLargeObjectBufferEv @ 30 NONAME + _ZN13CNSmlCmdsBase23SetMaximumWorkspaceSizeEi @ 31 NONAME + _ZN13CNSmlCmdsBase23StatusDataToGetCommandLEPK13sml_get_put_sPK10sml_item_sN10TNSmlError21TNSmlSyncMLStatusCodeEPK6TDesC8 @ 32 NONAME + _ZN13CNSmlCmdsBase26CreateAndInitResponseItemLERK6TDesC8 @ 33 NONAME + _ZN13CNSmlCmdsBase26DisconnectFromOtherServersEv @ 34 NONAME + _ZN13CNSmlCmdsBase26SubtractConsumedFromPcDataERP10sml_item_si @ 35 NONAME + _ZN13CNSmlCmdsBase27StatusDataToGenericCommandLERK6TDesC8PK13sml_generic_sPK10sml_item_sN10TNSmlError21TNSmlSyncMLStatusCodeEPS1_ @ 36 NONAME + _ZN13CNSmlCmdsBase27StatusToUnsupportedCommandLEiRK6TDesC8PK12sml_pcdata_sj @ 37 NONAME + _ZN13CNSmlCmdsBase8DoCmdIdLERP12sml_pcdata_s @ 38 NONAME + _ZN13CNSmlCmdsBase9DoStatusLEP12sml_status_s @ 39 NONAME + _ZN13CNSmlCmdsBase9MoreDataLEPK6HBufC8PK10sml_item_sPK12sml_pcdata_sRP8CBufBase @ 40 NONAME + _ZN13CNSmlCmdsBaseC2Ev @ 41 NONAME + _ZN13CNSmlCmdsBaseD0Ev @ 42 NONAME + _ZN13CNSmlCmdsBaseD1Ev @ 43 NONAME + _ZN13CNSmlCmdsBaseD2Ev @ 44 NONAME + _ZN14CNSmlAgentBase10ConstructLEv @ 45 NONAME + _ZN14CNSmlAgentBase13SendingStateLEv @ 46 NONAME + _ZN14CNSmlAgentBase14smlAddCmdFuncLEP13sml_generic_s @ 47 NONAME + _ZN14CNSmlAgentBase14smlMapCmdFuncLEP9sml_map_s @ 48 NONAME + _ZN14CNSmlAgentBase15BeginningStateLEv @ 49 NONAME + _ZN14CNSmlAgentBase15DoOutsideCancelEv @ 50 NONAME + _ZN14CNSmlAgentBase15ReceivingStateLEv @ 51 NONAME + _ZN14CNSmlAgentBase15StatusReferenceEv @ 52 NONAME + _ZN14CNSmlAgentBase15smlCopyCmdFuncLEP13sml_generic_s @ 53 NONAME + _ZN14CNSmlAgentBase15smlExecCmdFuncLEP10sml_exec_s @ 54 NONAME + _ZN14CNSmlAgentBase15smlMoveCmdFuncLEP13sml_generic_s @ 55 NONAME + _ZN14CNSmlAgentBase17FreeBaseResourcesEv @ 56 NONAME + _ZN14CNSmlAgentBase17ResultAlertStateLEv @ 57 NONAME + _ZN14CNSmlAgentBase17smlDeleteCmdFuncLEP13sml_generic_s @ 58 NONAME + _ZN14CNSmlAgentBase17smlSearchCmdFuncLEP12sml_search_s @ 59 NONAME + _ZN14CNSmlAgentBase18CheckAPBearerTypeLEm @ 60 NONAME + _ZN14CNSmlAgentBase18LaunchAutoRestartLEi @ 61 NONAME + _ZN14CNSmlAgentBase18smlReplaceCmdFuncLEP13sml_generic_s @ 62 NONAME + _ZN14CNSmlAgentBase20SetOffCallbackCalledEv @ 63 NONAME + _ZN14CNSmlAgentBase21ClientAlertNextStateLEv @ 64 NONAME + _ZN14CNSmlAgentBase21ServerAlertNextStateLEv @ 65 NONAME + _ZN14CNSmlAgentBase22DataUpdateStatusStateLEv @ 66 NONAME + _ZN14CNSmlAgentBase23ServerModAlertCmdStateLEP11sml_alert_s @ 67 NONAME + _ZN14CNSmlAgentBase24ServerModStatusCmdStateLEP12sml_status_s @ 68 NONAME + _ZN14CNSmlAgentBase24SetEndOfDataAlertRequestEv @ 69 NONAME + _ZN14CNSmlAgentBase25ServerModEndMessageStateLEi @ 70 NONAME + _ZN14CNSmlAgentBase26AuthenticationRequirementLERK23CNSmlResponseControlleri @ 71 NONAME + _ZN14CNSmlAgentBase26ClientInitialisationStateLEv @ 72 NONAME + _ZN14CNSmlAgentBase26InitAskingDeviceInfoStateLEv @ 73 NONAME + _ZN14CNSmlAgentBase27ServerModStartMessageStateLEP14sml_sync_hdr_s @ 74 NONAME + _ZN14CNSmlAgentBase28CheckStatusCodesAreReceivedLEi @ 75 NONAME + _ZN14CNSmlAgentBase29InitStartingMessageStateBaseLEv @ 76 NONAME + _ZN14CNSmlAgentBase29ServerAlertNextAlertCmdStateLEP11sml_alert_s @ 77 NONAME + _ZN14CNSmlAgentBase30ClientAlertNextMakingMapStateLEv @ 78 NONAME + _ZN14CNSmlAgentBase30ServerAlertNextStatusCmdStateLEP12sml_status_s @ 79 NONAME + _ZN14CNSmlAgentBase31DataUpdateStatusMakingMapStateLEv @ 80 NONAME + _ZN14CNSmlAgentBase31ServerAlertNextEndMessageStateLEi @ 81 NONAME + _ZN14CNSmlAgentBase33ServerAlertNextStartMessageStateLEP14sml_sync_hdr_s @ 82 NONAME + _ZN14CNSmlAgentBase35DataUpdateStatusMakingResultsStateLEv @ 83 NONAME + _ZN14CNSmlAgentBase41DataUpdateStatusStartingMessageStateBaseLEv @ 84 NONAME + _ZN14CNSmlAgentBase4RunLEv @ 85 NONAME + _ZN14CNSmlAgentBase7SyncLogEv @ 86 NONAME + _ZN14CNSmlAgentBase8DoCancelEv @ 87 NONAME + _ZN14CNSmlAgentBaseC2Ev @ 88 NONAME + _ZN14CNSmlAgentBaseD0Ev @ 89 NONAME + _ZN14CNSmlAgentBaseD1Ev @ 90 NONAME + _ZN14CNSmlAgentBaseD2Ev @ 91 NONAME + _ZN14CNSmlPhoneInfo10SwVersionLEv @ 92 NONAME + _ZN14CNSmlPhoneInfo4NewLEv @ 93 NONAME + _ZN14CNSmlPhoneInfo5NewLCEv @ 94 NONAME + _ZN20CNSmlStatusContainer10SetCmdRefLEiPK12sml_pcdata_s @ 95 NONAME + _ZN20CNSmlStatusContainer10StatusItemEi @ 96 NONAME + _ZN20CNSmlStatusContainer12AddItemDataLEiPK12sml_pcdata_s @ 97 NONAME + _ZN20CNSmlStatusContainer13AddSourceRefLEiPK12sml_source_s @ 98 NONAME + _ZN20CNSmlStatusContainer13AddTargetRefLEiPK12sml_target_s @ 99 NONAME + _ZN20CNSmlStatusContainer13FillItemDataLERP10sml_item_s @ 100 NONAME + _ZN20CNSmlStatusContainer13SetNoResponseEii @ 101 NONAME + _ZN20CNSmlStatusContainer14SetStatusCodeLEiii @ 102 NONAME + _ZN20CNSmlStatusContainer17NextStatusElementERP12sml_status_si @ 103 NONAME + _ZN20CNSmlStatusContainer20SetPerformedInAtomicEi @ 104 NONAME + _ZN20CNSmlStatusContainer21SetAtomicOrSequenceIdEii @ 105 NONAME + _ZN20CNSmlStatusContainer23CreateNewStatusElementLEv @ 106 NONAME + _ZN20CNSmlStatusContainer23SetStatusCodesInAtomicLEiii @ 107 NONAME + _ZN20CNSmlStatusContainer35SetStatusCodeToAtomicOrSequenceCmdLEiiRK6TDesC8 @ 108 NONAME + _ZN20CNSmlStatusContainer5BeginEv @ 109 NONAME + _ZN20CNSmlStatusContainer7SetCmdLEiRK6TDesC8 @ 110 NONAME + _ZN20NSmlUnicodeConverter14HBufC8InUTF8LCERK7TDesC16RP6HBufC8 @ 111 NONAME + _ZN20NSmlUnicodeConverter17HBufC16InUnicodeLERK6TDesC8RP7HBufC16 @ 112 NONAME + _ZN20NSmlUnicodeConverter18HBufC16InUnicodeLCERK6TDesC8RP7HBufC16 @ 113 NONAME + _ZN21CNSmlResultsContainer11SetStatusIDEii @ 114 NONAME + _ZN21CNSmlResultsContainer13RemoveWrittenEi @ 115 NONAME + _ZN21CNSmlResultsContainer17CreateNewResultsLERK6TDesC8S2_PK12sml_target_sPK12sml_source_s @ 116 NONAME + _ZN21CNSmlResultsContainer18NextResultsElementERP13sml_results_s @ 117 NONAME + _ZN21CNSmlResultsContainer5BeginEv @ 118 NONAME + _ZN21CNSmlResultsContainer8AddItemLEiRK8CBufBaseRK6TDesC8S5_ @ 119 NONAME + _ZN21CNSmlResultsContainer9SetCmdIDLEiPK12sml_pcdata_s @ 120 NONAME + _ZN23CNSmlResponseController11SetAppIndexEii @ 121 NONAME + _ZN23CNSmlResponseController11SetMoreDataEi @ 122 NONAME + _ZN23CNSmlResponseController17SetResponseDetailEiNS_15TResponseDetailE @ 123 NONAME + _ZN23CNSmlResponseController6ResetLEv @ 124 NONAME + _ZN23CNSmlResponseController8SetLUIDLEiRK6TDesC8 @ 125 NONAME + _ZN8CNSmlURI12SetDatabaseLERK6TDesC8i @ 126 NONAME + _ZN8CNSmlURI12SetDatabaseLERK7TDesC16i @ 127 NONAME + _ZN8CNSmlURI12SetHostNameLERK6TDesC8i @ 128 NONAME + _ZN8CNSmlURI12SetHostNameLERK7TDesC16i @ 129 NONAME + _ZN8CNSmlURI16DatabaseMatchesLERK7TDesC16 @ 130 NONAME + _ZN8CNSmlURI17HostNameWithPortLEi @ 131 NONAME + _ZN8CNSmlURI21HostNameInUTF8AllocLCEv @ 132 NONAME + _ZN8CNSmlURI21SyncMLDatabaseAllocLCEv @ 133 NONAME + _ZN8CNSmlURI29DataBaseWithoutRelativePrefixEv @ 134 NONAME + _ZN8CNSmlURI4NewLERK6TDesC8i @ 135 NONAME + _ZN8CNSmlURI4NewLERK7TDesC16i @ 136 NONAME + _ZN8CNSmlURI4NewLEv @ 137 NONAME + _ZN8CNSmlURI5NewLCERK6TDesC8i @ 138 NONAME + _ZN8CNSmlURI5NewLCERK7TDesC16i @ 139 NONAME + _ZN8CNSmlURI5NewLCEv @ 140 NONAME + _ZN8CNSmlURI7SetPortEi @ 141 NONAME + _ZN8CNSmlURI8DatabaseEv @ 142 NONAME + _ZN8CNSmlURI8HostNameEv @ 143 NONAME + _ZN8CNSmlURI8IsEqualLERKS_i @ 144 NONAME + _ZN8CNSmlURIaSERKS_ @ 145 NONAME + _ZN9CNSmlAuth12SetSyncAgentEP14CNSmlAgentBase @ 146 NONAME + _ZN9CNSmlAuth14SetCredentialLERK6TDesC8 @ 147 NONAME + _ZN9CNSmlAuth16SetAuthRequiredLEv @ 148 NONAME + _ZN9CNSmlAuth4NewLEv @ 149 NONAME + _ZNK13CNSmlCmdsBase10BusyStatusEv @ 150 NONAME + _ZNK13CNSmlCmdsBase10DoAnchorsLER19sml_metinf_metinf_sPK6TDesC8S4_ @ 151 NONAME + _ZNK13CNSmlCmdsBase10DoMetInfLCERP19sml_metinf_metinf_s @ 152 NONAME + _ZNK13CNSmlCmdsBase10MetaTypeLCEPK12sml_pcdata_s @ 153 NONAME + _ZNK13CNSmlCmdsBase10PcdataNewLERP12sml_pcdata_sRK6TDesC8 @ 154 NONAME + _ZNK13CNSmlCmdsBase10ServerAuthEv @ 155 NONAME + _ZNK13CNSmlCmdsBase13DoMaxObjSizeLER19sml_metinf_metinf_si @ 156 NONAME + _ZNK13CNSmlCmdsBase15StatusContainerEv @ 157 NONAME + _ZNK13CNSmlCmdsBase16MetaTypeInUtf8LCEPK12sml_pcdata_s @ 158 NONAME + _ZNK13CNSmlCmdsBase16ResultsContainerEv @ 159 NONAME + _ZNK13CNSmlCmdsBase16ServerMaxObjSizeEPK12sml_pcdata_s @ 160 NONAME + _ZNK13CNSmlCmdsBase16ServerObjectSizeEPK12sml_pcdata_s @ 161 NONAME + _ZNK13CNSmlCmdsBase17PCDATAToUnicodeLCERK12sml_pcdata_sRP7HBufC16 @ 162 NONAME + _ZNK13CNSmlCmdsBase17SourceIsUnderItemEPK15sml_item_list_s @ 163 NONAME + _ZNK13CNSmlCmdsBase17TargetIsUnderItemEPK15sml_item_list_s @ 164 NONAME + _ZNK13CNSmlCmdsBase18MetaFormatInUtf8LCEPK12sml_pcdata_s @ 165 NONAME + _ZNK13CNSmlCmdsBase18ResponseControllerEv @ 166 NONAME + _ZNK13CNSmlCmdsBase19EndOfServerMessageLEv @ 167 NONAME + _ZNK13CNSmlCmdsBase21TrimRightSpaceAndNullER5TDes8 @ 168 NONAME + _ZNK13CNSmlCmdsBase21WriteMappingInfoToDbLEv @ 169 NONAME + _ZNK13CNSmlCmdsBase23WaitingLargeObjectChunkEv @ 170 NONAME + _ZNK13CNSmlCmdsBase7DoMetaLERP12sml_pcdata_sPK19sml_metinf_metinf_s @ 171 NONAME + _ZNK13CNSmlCmdsBase7RespURIEv @ 172 NONAME + _ZNK13CNSmlCmdsBase9AlertCodeEP11sml_alert_s @ 173 NONAME + _ZNK13CNSmlCmdsBase9DoSourceLERP12sml_source_sRK6TDesC8 @ 174 NONAME + _ZNK13CNSmlCmdsBase9DoSourceLERP12sml_source_sRK7TDesC16 @ 175 NONAME + _ZNK13CNSmlCmdsBase9DoSourceLERP12sml_source_sRK7TDesC16S5_ @ 176 NONAME + _ZNK13CNSmlCmdsBase9DoTargetLERP12sml_target_sRK6TDesC8 @ 177 NONAME + _ZNK13CNSmlCmdsBase9DoTargetLERP12sml_target_sRK7TDesC16 @ 178 NONAME + _ZNK13CNSmlCmdsBase9DoTargetLERP12sml_target_sRK7TDesC16S5_ @ 179 NONAME + _ZNK13CNSmlCmdsBase9IsFlagSetERKjS1_ @ 180 NONAME + _ZNK14CNSmlAgentBase12SaveIfNonceLERK23CNSmlResponseControlleri @ 181 NONAME + _ZNK14CNSmlAgentBase14CallbackCalledEv @ 182 NONAME + _ZNK14CNSmlAgentBase14ServerPasswordEv @ 183 NONAME + _ZNK14CNSmlAgentBase14ServerUserNameEv @ 184 NONAME + _ZNK14CNSmlAgentBase15SetServerNonceLERK7TDesC16 @ 185 NONAME + _ZNK14CNSmlAgentBase17ServerNonceAllocLEv @ 186 NONAME + _ZNK14CNSmlAgentBase9ProfileIdEv @ 187 NONAME + _ZNK14CNSmlPhoneInfo10PhoneDataLENS_12TPhoneIdTypeER6TDes16 @ 188 NONAME + _ZNK20CNSmlStatusContainer11LastEntryIDEv @ 189 NONAME + _ZNK21CNSmlResultsContainer10AnyResultsEv @ 190 NONAME + _ZNK21CNSmlResultsContainer14CurrentEntryIDEv @ 191 NONAME + _ZNK21CNSmlResultsContainer8StatusIDEi @ 192 NONAME + _ZNK23CNSmlResponseController10StatusCodeEi @ 193 NONAME + _ZNK23CNSmlResponseController14ResponseDetailEi @ 194 NONAME + _ZNK23CNSmlResponseController3CmdEi @ 195 NONAME + _ZNK23CNSmlResponseController4LUIDEi @ 196 NONAME + _ZNK23CNSmlResponseController7EntryIDEii @ 197 NONAME + _ZNK23CNSmlResponseController8AppIndexEi @ 198 NONAME + _ZNK23CNSmlResponseController8ChalTypeEi @ 199 NONAME + _ZNK23CNSmlResponseController8MoreDataEi @ 200 NONAME + _ZNK9CNSmlAuth10ChallengedEv @ 201 NONAME + _ZTI10TNSmlError @ 202 NONAME + _ZTI13CNSmlCmdsBase @ 203 NONAME + _ZTI14CNSmlAgentBase @ 204 NONAME + _ZTI14CNSmlPhoneInfo @ 205 NONAME + _ZTI20CNSmlStatusContainer @ 206 NONAME + _ZTI21CNSmlResultsContainer @ 207 NONAME + _ZTI23CNSmlResponseController @ 208 NONAME + _ZTI8CNSmlURI @ 209 NONAME + _ZTI9CNSmlAuth @ 210 NONAME + _ZTV10TNSmlError @ 211 NONAME + _ZTV13CNSmlCmdsBase @ 212 NONAME + _ZTV14CNSmlAgentBase @ 213 NONAME + _ZTV14CNSmlPhoneInfo @ 214 NONAME + _ZTV20CNSmlStatusContainer @ 215 NONAME + _ZTV21CNSmlResultsContainer @ 216 NONAME + _ZTV23CNSmlResponseController @ 217 NONAME + _ZTV8CNSmlURI @ 218 NONAME + _ZTV9CNSmlAuth @ 219 NONAME + _ZThn28_N14CNSmlAgentBase14smlAddCmdFuncLEP13sml_generic_s @ 220 NONAME + _ZThn28_N14CNSmlAgentBase14smlMapCmdFuncLEP9sml_map_s @ 221 NONAME + _ZThn28_N14CNSmlAgentBase15smlCopyCmdFuncLEP13sml_generic_s @ 222 NONAME + _ZThn28_N14CNSmlAgentBase15smlExecCmdFuncLEP10sml_exec_s @ 223 NONAME + _ZThn28_N14CNSmlAgentBase15smlMoveCmdFuncLEP13sml_generic_s @ 224 NONAME + _ZThn28_N14CNSmlAgentBase17smlDeleteCmdFuncLEP13sml_generic_s @ 225 NONAME + _ZThn28_N14CNSmlAgentBase17smlSearchCmdFuncLEP12sml_search_s @ 226 NONAME + _ZThn28_N14CNSmlAgentBase18smlReplaceCmdFuncLEP13sml_generic_s @ 227 NONAME diff -r 4af31167ea77 -r 13d7c31c74e0 syncmlfw/common/syncagent/inc/NSmlStatusContainer.h --- a/syncmlfw/common/syncagent/inc/NSmlStatusContainer.h Thu Jul 15 19:36:11 2010 +0300 +++ b/syncmlfw/common/syncagent/inc/NSmlStatusContainer.h Thu Aug 19 10:44:50 2010 +0300 @@ -70,6 +70,11 @@ // TBool AnyOtherThanOkSyncHdrStatus() const; + // Populates the Item structure + IMPORT_C void FillItemDataL( SmlItem_t*& aItem ); + // Retrieve the Status element bearing the ID provided + IMPORT_C SmlStatus_t* StatusItem( TInt aStatusID ); + private: void ConstructL( TBool aClearText); CNSmlStatusContainer(); diff -r 4af31167ea77 -r 13d7c31c74e0 syncmlfw/common/syncagent/src/nsmlstatuscontainer.cpp --- a/syncmlfw/common/syncagent/src/nsmlstatuscontainer.cpp Thu Jul 15 19:36:11 2010 +0300 +++ b/syncmlfw/common/syncagent/src/nsmlstatuscontainer.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -25,6 +25,9 @@ #include "nsmlerror.h" #include "smlmetinfdtd.h" +// CONSTANTS +_LIT8(KDbPersonal, "100000" ); + // --------------------------------------------------------- // CNSmlStatusContainer::CNSmlStatusContainer // Constructor, nothing special in here. @@ -220,32 +223,28 @@ { TPtrC8 sourcePath( (TUint8*) (*iStatusArray)[aEntryID-1].status->targetRefList->targetRef->content, (*iStatusArray)[aEntryID-1].status->targetRefList->targetRef->length ); - SmlSource_t* source = new( ELeave ) SmlSource_t; - source->locURI = new( ELeave ) SmlPcdata_t; - source->locURI->SetDataL( sourcePath ); - source->locURI->contentType = SML_PCDATA_OPAQUE; - source->locURI->extension = SML_EXT_UNDEFINED; - source->locName = NULL; + (*iStatusArray)[aEntryID-1].status->itemList = new ( ELeave ) SmlItemList_t; + (*iStatusArray)[aEntryID-1].status->itemList->item = new( ELeave ) SmlItem_t; + + (*iStatusArray)[aEntryID-1].status->itemList->item->source = new( ELeave ) SmlSource_t; + (*iStatusArray)[aEntryID-1].status->itemList->item->source->locURI = new( ELeave ) SmlPcdata_t; + (*iStatusArray)[aEntryID-1].status->itemList->item->source->locURI->SetDataL( sourcePath ); + (*iStatusArray)[aEntryID-1].status->itemList->item->source->locURI->contentType = SML_PCDATA_OPAQUE; + (*iStatusArray)[aEntryID-1].status->itemList->item->source->locURI->extension = SML_EXT_UNDEFINED; + (*iStatusArray)[aEntryID-1].status->itemList->item->source->locName = NULL; - SmlTarget_t* target = new( ELeave ) SmlTarget_t; - target->locURI = new( ELeave ) SmlPcdata_t; - target->locURI->SetDataL( targetPath ); - target->locURI->contentType = SML_PCDATA_OPAQUE; - target->locURI->extension = SML_EXT_UNDEFINED; - target->locName = NULL; - AddSourceRefL( aEntryID, source ); - - SmlTargetRefList_t** targetRefList; - targetRefList = &(*iStatusArray)[aEntryID-1].status->targetRefList; - while( *targetRefList ) - { - if ((*targetRefList)->next == NULL ) - break; - targetRefList = &(*targetRefList)->next; - } - *targetRefList = new( ELeave ) SmlTargetRefList_t; - CreateTargetRefL( target, (*targetRefList)->targetRef ); - + _LIT8( KNSmlNull, "null" ); + if(targetPath.Compare( KNSmlNull )!= 0) + { + (*iStatusArray)[aEntryID-1].status->itemList->item->target = new( ELeave ) SmlTarget_t; + (*iStatusArray)[aEntryID-1].status->itemList->item->target->locURI = new( ELeave ) SmlPcdata_t; + (*iStatusArray)[aEntryID-1].status->itemList->item->target->locURI->SetDataL( targetPath ); + (*iStatusArray)[aEntryID-1].status->itemList->item->target->locURI->contentType = SML_PCDATA_OPAQUE; + (*iStatusArray)[aEntryID-1].status->itemList->item->target->locURI->extension = SML_EXT_UNDEFINED; + (*iStatusArray)[aEntryID-1].status->itemList->item->target->locName = NULL; + } + (*iStatusArray)[aEntryID-1].status->targetRefList = NULL; + _LIT8(KNullString, ""); result = cenrep->Set( KNSmlDMSCOMOTargetRef, KNullString ); } @@ -254,6 +253,8 @@ } } + // TargertUri Fix Ends + CleanupStack::PopAndDestroy(); //statusCode } } @@ -536,6 +537,44 @@ return statusPresents; } // --------------------------------------------------------- +// CNSmlStatusContainer::FillItemDataL() +// Populates the Item structure +// --------------------------------------------------------- +EXPORT_C void CNSmlStatusContainer::FillItemDataL( SmlItem_t*& aItem ) + { + //Source + aItem->source = new( ELeave ) SmlSource_t; + SmlPcdata_t* srcdata = new( ELeave ) SmlPcdata_t; + srcdata->SetDataL( KDbPersonal ); + srcdata->contentType = SML_PCDATA_OPAQUE; + srcdata->extension = SML_EXT_UNDEFINED; + CopyPcdataL( srcdata, aItem->source->locURI ); + + // Source Parent + aItem->sourceParent = new( ELeave ) SmlSourceParent_t; + SmlPcdata_t* srcprntdata = new( ELeave ) SmlPcdata_t; + srcprntdata->SetDataL( _L8("/") ); + srcprntdata->contentType = SML_PCDATA_OPAQUE; + srcprntdata->extension = SML_EXT_UNDEFINED; + CopyPcdataL( srcprntdata, aItem->sourceParent->locURI ); + } +// --------------------------------------------------------- +// CNSmlStatusContainer::StatusItem() +// Retrieve the Status element bearing the ID provided +// --------------------------------------------------------- +EXPORT_C SmlStatus_t* CNSmlStatusContainer::StatusItem( TInt aStatusID ) + { + + if( ( iStatusArray ) && + ( iStatusArray->Count() <= aStatusID ) ) + { + + return (*iStatusArray)[aStatusID-1].status; + } + + return NULL; + } +// --------------------------------------------------------- // CNSmlStatusContainer::CreatePcdataL() // Creates Pcdata // Created element is not pushed to Cleanup stack diff -r 4af31167ea77 -r 13d7c31c74e0 syncmlfw/conf/datasync.confml Binary file syncmlfw/conf/datasync.confml has changed diff -r 4af31167ea77 -r 13d7c31c74e0 syncmlfw/conf/datasync_2000CF7E.crml Binary file syncmlfw/conf/datasync_2000CF7E.crml has changed diff -r 4af31167ea77 -r 13d7c31c74e0 syncmlfw/conf/devman.confml Binary file syncmlfw/conf/devman.confml has changed diff -r 4af31167ea77 -r 13d7c31c74e0 syncmlfw/conf/devman_101F9A0A.crml Binary file syncmlfw/conf/devman_101F9A0A.crml has changed diff -r 4af31167ea77 -r 13d7c31c74e0 syncmlfw/dm/adapters/inc/nsmldmimpluids.h --- a/syncmlfw/dm/adapters/inc/nsmldmimpluids.h Thu Jul 15 19:36:11 2010 +0300 +++ b/syncmlfw/dm/adapters/inc/nsmldmimpluids.h Thu Aug 19 10:44:50 2010 +0300 @@ -39,4 +39,5 @@ const TUint KNSmlDMFotaAdapterImplUid = 0x101F9A09; const TUint KNSmlDMAMAdapterImplUid = 0x20021336; const TUint KNSmlDMConnMOAdapterImplUid = 0x2001FE5F; +const TUint KNSmlDMLawMoAdapterImplUid = 0x2002EA23; #endif // __CNSMLDMIMPLUIDS_H__ diff -r 4af31167ea77 -r 13d7c31c74e0 syncmlfw/dm/settings/src/DMProfileContentHandler.cpp --- a/syncmlfw/dm/settings/src/DMProfileContentHandler.cpp Thu Jul 15 19:36:11 2010 +0300 +++ b/syncmlfw/dm/settings/src/DMProfileContentHandler.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -22,8 +22,10 @@ #include #include #include +#include #include "DMprofileContentHandler.h" #include "nsmldmsettings.h" +#include "DevManInternalCRKeys.h" #define DES_AS_8_BIT(str) (TPtrC8((TText8*)((str).Ptr()), (str).Size())) @@ -178,7 +180,8 @@ RemoveRSCEntryL(); TInt iapId = 0; - for ( TInt i = 0; i < iProfileArray->Count(); i++ ) + TInt count = iProfileArray->Count(); + for ( TInt i = 0; i < count; i++ ) { if(iProfileArray->At(i)->iAccessPoint) { @@ -210,6 +213,19 @@ CleanupStack::PopAndDestroy(); // profile } + CRepository* centrep = NULL; + TRAPD( err, centrep = CRepository::NewL(KCRUidDeviceManagementInternalKeys)); + if (err==KErrNone ) + { + TInt num(-1); + TInt err = centrep->Get( KMaxFactoryDMProfileId , num ); + if( num >= 0 ) + err = centrep->Set( KMaxFactoryDMProfileId , (count + num ) ); + else + err = centrep->Set( KMaxFactoryDMProfileId , count - 1); + delete centrep; + centrep = NULL; + } _DBG_FILE("CDMProfileContentHandler::SaveProfilesL(): end"); } // ----------------------------------------------------------------------------- diff -r 4af31167ea77 -r 13d7c31c74e0 syncmlfw/dm/settings/src/NSmlDMResourceProfiles.cpp --- a/syncmlfw/dm/settings/src/NSmlDMResourceProfiles.cpp Thu Jul 15 19:36:11 2010 +0300 +++ b/syncmlfw/dm/settings/src/NSmlDMResourceProfiles.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -18,9 +18,11 @@ // INCLUDE FILES +#include +#include #include "nsmldmsettings.h" #include "NSmlDMResourceProfile.h" -#include +#include "DevManInternalCRKeys.h" const TInt KNSmlDmBluetoothType = 0x101F99F1; // ---------------------------------------------------------- // CNSmlDMResourceProfiles implementation @@ -77,7 +79,8 @@ { RemoveDuplicateEntry(); RemoveObexEntryL(); - for ( TInt i = 0; i < iProfileArray->Count(); i++ ) + TInt count = iProfileArray->Count(); + for ( TInt i = 0; i < count ; i++ ) { CNSmlDMProfile* profile = iSettings->CreateProfileL(); CleanupStack::PushL( profile ); @@ -85,6 +88,14 @@ profile->SaveL(); CleanupStack::PopAndDestroy(); // profile } + CRepository* centrep = NULL; + TRAPD( err, centrep = CRepository::NewL(KCRUidDeviceManagementInternalKeys)); + if (err==KErrNone ) + { + TInt err = centrep->Set( KMaxFactoryDMProfileId , count-1 ); + delete centrep; + centrep = NULL; + } } // ---------------------------------------------------------- diff -r 4af31167ea77 -r 13d7c31c74e0 syncmlfw/dm/syncagent/src/nsmldmcmds.cpp --- a/syncmlfw/dm/syncagent/src/nsmldmcmds.cpp Thu Jul 15 19:36:11 2010 +0300 +++ b/syncmlfw/dm/syncagent/src/nsmldmcmds.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -656,6 +656,7 @@ TPtr8 targeturi = HBufC8::NewLC ( (*aItemList[i].iTarget).Length())->Des(); targeturi.Append ( *aItemList[i].iTarget); + if(targeturi.Compare(KNullDesC8)!=0) DoTargetL ( itemPtr->item->target, targeturi ); CleanupStack::PopAndDestroy(); // targeturi diff -r 4af31167ea77 -r 13d7c31c74e0 syncmlfw/dm/treemodule/src/nsmldmddf.cpp --- a/syncmlfw/dm/treemodule/src/nsmldmddf.cpp Thu Jul 15 19:36:11 2010 +0300 +++ b/syncmlfw/dm/treemodule/src/nsmldmddf.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -634,7 +634,8 @@ // FOTA // For the FOTA adapter put the correlator to aObject instead of // data. - if ( iAdapterId == KNSmlDMFotaAdapterImplUid || iAdapterId == KNSmlDMAMAdapterImplUid) + if ( iAdapterId == KNSmlDMFotaAdapterImplUid || iAdapterId == KNSmlDMAMAdapterImplUid + || iAdapterId == KNSmlDMLawMoAdapterImplUid) { iSessionArray[iSessionId-1].ExecuteCommandL(iAdapterId,*luid, aStatusRef,aURI,aCorrelator,aType,aLargeItem); diff -r 4af31167ea77 -r 13d7c31c74e0 syncmlfw/ds/syncagent/src/nsmldsagent.cpp --- a/syncmlfw/ds/syncagent/src/nsmldsagent.cpp Thu Jul 15 19:36:11 2010 +0300 +++ b/syncmlfw/ds/syncagent/src/nsmldsagent.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -3104,6 +3104,17 @@ } //RD_SUSPEND_RESUME break; + + /* Implementation of CMCC PIM v3 begins*/ + case TNSmlError::ESmlStatusDeviceFull: // 420 + if ( FeatureManager::FeatureSupported(KFeatureIdFfTdCmccpimpromptserverfullwhenreceive420statuscodefromserver) ) + { + // CMCC server full error enabled + iDSObserver->OnSyncMLSyncError( MSyncMLProgressObserver::ESmlFatalError, SyncMLError::KErrServerFull, 0, 0, 0); + error = ETrue; + } + break; + /* Implementation of CMCC PIM v3 ends*/ default: error = ETrue; diff -r 4af31167ea77 -r 13d7c31c74e0 syncmlfw/ds/syncagent/src/nsmldscmds.cpp --- a/syncmlfw/ds/syncagent/src/nsmldscmds.cpp Thu Jul 15 19:36:11 2010 +0300 +++ b/syncmlfw/ds/syncagent/src/nsmldscmds.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -65,6 +65,8 @@ // CONSTANTS _LIT8( KNSmlRoot, "/" ); static const TInt KMaxLength = 255; +const TUid KRepositoryId = { 0x2000CF7E }; +const TInt KNsmlDsOrphanEvent = 0xB ; // ============================ MEMBER FUNCTIONS =============================== @@ -3618,7 +3620,9 @@ } iItemOpened = EFalse; - + SmlStatus_t* status = NULL; + SmlItemList_t** itemList; + CRepository* rep = NULL; switch ( returnCode ) { case KErrNone: @@ -3654,6 +3658,57 @@ statusId = StatusDataToGenericCommandL( aCmd, aContent, aItem, TNSmlError::ESmlStatusUnsupportedMediaTypeOrFormat ); break; + case KErrPathNotFound: + // Read the Orphan Event ID from the cenrep + rep = CRepository::NewLC(KRepositoryId); + TRAPD( err, rep->Get(KNsmlDsOrphanEvent, iNewUid) ); + DBG_ARGS(_S("read the cenrep %d %d"), err, iNewUid); + User::LeaveIfError(err); + CleanupStack::PopAndDestroy(rep); + + _DBG_FILE(_S8("CNSmlDSCmds::ADD UpdateL : Invalid Parent")); + statusId = StatusDataToGenericCommandL( aCmd, aContent, aItem, TNSmlError::ESmlStatusMovedPermanently ); + DBG_ARGS(_S("Invalid parent: statusid %d"), statusId); + status = iStatusToServer->StatusItem( statusId ); + DBG_ARGS(_S("Invalid parent: status %d"), status); + if( status ) + { + SmlItemList_t* newItemList = new( ELeave ) SmlItemList_t; + _DBG_FILE(_S8("CNSmlDSCmds::ADD UpdateL : creating a new item")); + newItemList->item = new( ELeave ) SmlItem_t; + _DBG_FILE(_S8("CNSmlDSCmds::ADD UpdateL : creating a new data")); + iStatusToServer->FillItemDataL( newItemList->item ); + _DBG_FILE(_S8("CNSmlDSCmds::ADD UpdateL : updating")); + + itemList = &(status->itemList); + while ( *itemList ) + { + itemList = &(*itemList)->next; + } + *itemList = newItemList; + _DBG_FILE(_S8("CNSmlDSCmds::ADD UpdateL : updated")); + } + if ( !iBatchModeOn ) + { + iDSContent.IncreaseServerItemsAdded(); + clientModifications.iNumAdded = 1; + + if ( !iAtomicModeOn ) + { + iDSContent.CreateNewMapItemL( iNewUid, aUID, 0 ); + } + else + { + iDSContent.CreateNewMapItemL( iNewUid, aUID, iAtomicId ); + } + } + else + { + clientModifications.iNumAdded = 1; + iBatchBuffer->SetStatusEntryId( statusId ); + } + break; + default: statusId = StatusDataToGenericCommandL( aCmd, aContent, aItem, TNSmlError::ESmlStatusCommandFailed ); break; @@ -3811,6 +3866,11 @@ statusId = StatusDataToGenericCommandL( aCmd, aContent, aItem, TNSmlError::ESmlStatusUnsupportedMediaTypeOrFormat ); break; + case KErrPathNotFound: + _DBG_FILE(_S8("CNSmlDSCmds:: REPLACE UpdateL : Invalid Parent")); + statusId = StatusDataToGenericCommandL( aCmd, aContent, aItem, TNSmlError::ESmlStatusMovedPermanently ); + break; + default: statusId = StatusDataToGenericCommandL( aCmd, aContent, aItem, TNSmlError::ESmlStatusCommandFailed ); break; diff -r 4af31167ea77 -r 13d7c31c74e0 syncmlfw/syncmlnotifier/src/SyncMLDlgNotifier.cpp --- a/syncmlfw/syncmlnotifier/src/SyncMLDlgNotifier.cpp Thu Jul 15 19:36:11 2010 +0300 +++ b/syncmlfw/syncmlnotifier/src/SyncMLDlgNotifier.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -168,16 +168,6 @@ { User::Leave( KErrInUse ); } - - if ( AutoLockOnL() ) - { - // The phone is locked, access denied. - // Write results back to caller and complete message. - aMessage.Complete( KErrLocked ); - iNeedToCompleteMessage = EFalse; - return; - } - iMessage = aMessage; iNeedToCompleteMessage = ETrue; iReplySlot = aReplySlot; diff -r 4af31167ea77 -r 13d7c31c74e0 syncmlfw/syncmlnotifier/src/SyncMLTimedInputTextQuery.cpp --- a/syncmlfw/syncmlnotifier/src/SyncMLTimedInputTextQuery.cpp Thu Jul 15 19:36:11 2010 +0300 +++ b/syncmlfw/syncmlnotifier/src/SyncMLTimedInputTextQuery.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -153,38 +153,43 @@ // CSyncMLTimedInputTextQuery::HandleQueryEditorStateEventL // ----------------------------------------------------------------------------- // -TBool CSyncMLTimedInputTextQuery::HandleQueryEditorStateEventL(CAknQueryControl* aQueryControl, TQueryControlEvent aEventType, TQueryValidationStatus aStatus) +TBool CSyncMLTimedInputTextQuery::HandleQueryEditorStateEventL( + CAknQueryControl* aQueryControl, TQueryControlEvent aEventType, + TQueryValidationStatus aStatus ) { - if ( aQueryControl ) - { - if( EPhoneLayout == aQueryControl->QueryType() ) - { - if (aEventType == EEmergencyCallAttempted) - { - TryExitL(EEikBidCancel); - } - else - { - - TBuf PhoneNo; - aQueryControl->GetText( PhoneNo ); - TInt posplus = PhoneNo.LocateReverse('+'); - if(posplus==0 || posplus==KErrNotFound ) - { - CAknQueryDialog::HandleQueryEditorStateEventL(aQueryControl,aEventType,aStatus); - } - else - { - MakeLeftSoftkeyVisible(EFalse); - } - } - } - } - else //For all other layouts - { - CAknQueryDialog::HandleQueryEditorStateEventL(aQueryControl,aEventType,aStatus); - } - return EFalse; - } + if (aQueryControl) + { + if (EPhoneLayout == aQueryControl->QueryType()) + { + if (aEventType == EEmergencyCallAttempted) + { + TryExitL(EEikBidCancel); + } + else + { + + TBuf PhoneNo; + aQueryControl->GetText(PhoneNo); + TInt posplus = PhoneNo.LocateReverse('+'); + if (posplus == 0 || posplus == KErrNotFound) + { + CAknQueryDialog::HandleQueryEditorStateEventL( + aQueryControl, aEventType, aStatus); + } + else + { + MakeLeftSoftkeyVisible(EFalse); + } + } + } + + else //For all other layouts + { + CAknQueryDialog::HandleQueryEditorStateEventL(aQueryControl, + aEventType, aStatus); + } + } + return EFalse; + } // End of File diff -r 4af31167ea77 -r 13d7c31c74e0 terminalsecurity/SCP/SCPClient/data/SCPNotifier.rss --- a/terminalsecurity/SCP/SCPClient/data/SCPNotifier.rss Thu Jul 15 19:36:11 2010 +0300 +++ b/terminalsecurity/SCP/SCPClient/data/SCPNotifier.rss Thu Aug 19 10:44:50 2010 +0300 @@ -109,5 +109,29 @@ { buf = qtn_set_sec_code_setting_query_server; } + +RESOURCE TBUF r_scp_lawmo_locked + { + buf = qtn_device_locked_remotely; + } + +RESOURCE DIALOG r_dialog_warning +{ + flags = EAknWarningNoteFlags | EEikDialogFlagWait; + buttons = R_AVKON_SOFTKEYS_EMPTY; + items = + { + DLG_LINE + { + type = EAknCtNote; + id = EGeneralNote; + control = AVKON_NOTE + { + layout = EGeneralLayout; + animation = R_QGN_NOTE_WARNING_ANIM; + }; + } + }; +} // end of file diff -r 4af31167ea77 -r 13d7c31c74e0 terminalsecurity/SCP/SCPClient/group/SCPClient.mmp --- a/terminalsecurity/SCP/SCPClient/group/SCPClient.mmp Thu Jul 15 19:36:11 2010 +0300 +++ b/terminalsecurity/SCP/SCPClient/group/SCPClient.mmp Thu Aug 19 10:44:50 2010 +0300 @@ -66,6 +66,7 @@ LIBRARY centralrepository.lib // CenRep LIBRARY aknnotify.lib LIBRARY estor.lib +LIBRARY apgrfx.lib SMPSAFE diff -r 4af31167ea77 -r 13d7c31c74e0 terminalsecurity/SCP/SCPClient/inc/SCPQueryDialog.h --- a/terminalsecurity/SCP/SCPClient/inc/SCPQueryDialog.h Thu Jul 15 19:36:11 2010 +0300 +++ b/terminalsecurity/SCP/SCPClient/inc/SCPQueryDialog.h Thu Aug 19 10:44:50 2010 +0300 @@ -137,6 +137,7 @@ TInt iKeyUsed; CSCPLockObserver* iDeviceLockStatusObserver; CSCPLockObserver* iCallStatusObserver; + TBool iLockedByLawMo; }; #endif diff -r 4af31167ea77 -r 13d7c31c74e0 terminalsecurity/SCP/SCPClient/loc/SCPNotifier.loc --- a/terminalsecurity/SCP/SCPClient/loc/SCPNotifier.loc Thu Jul 15 19:36:11 2010 +0300 +++ b/terminalsecurity/SCP/SCPClient/loc/SCPNotifier.loc Thu Aug 19 10:44:50 2010 +0300 @@ -41,6 +41,8 @@ //l: popup_info_list_pane_t2/opt1 //r: 5.2 #define qtn_set_sec_code_setting_query_server "Lock Code has not been set. Please set the Lock Code." - +//d: The text informing user that phone is locked by an Operator server +//l: popup_query_data_window +#define qtn_device_locked_remotely "Locked by %U" // End of File diff -r 4af31167ea77 -r 13d7c31c74e0 terminalsecurity/SCP/SCPClient/src/SCPClient.cpp --- a/terminalsecurity/SCP/SCPClient/src/SCPClient.cpp Thu Jul 15 19:36:11 2010 +0300 +++ b/terminalsecurity/SCP/SCPClient/src/SCPClient.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -19,8 +19,10 @@ // INCLUDE FILES #include +#include #include #include +#include #include #include #include @@ -39,14 +41,22 @@ #include #include #include +#include #include #include #include //#endif // DEVICE_LOCK_ENHANCEMENTS +#include #include #include "SCPDebug.h" #include +#include +#include +#include +#include +#include + /*#ifdef _DEBUG #define __SCP_DEBUG #endif // _DEBUG @@ -63,12 +73,13 @@ static const TUint KDefaultMessageSlots = 3; static const TInt KSCPConnectRetries( 2 ); - +const TInt KLockedbyLawmo (30); //#ifdef __SAP_DEVICE_LOCK_ENHANCEMENTS _LIT( KDriveZ, "Z:" ); _LIT( KSCPResourceFilename, "\\Resource\\SCPNotifier.RSC" ); _LIT( KSCPSecUIResourceFilename, "\\Resource\\SecUi.RSC" ); +_LIT( KSCPTimestampPluginResFilename, "\\Resource\\SCPTimestampPluginLang.rsc"); //#endif // __SAP_DEVICE_LOCK_ENHANCEMENTS // Uid for the application; this should match the mmp file @@ -187,7 +198,7 @@ TUint aResId = 0, TDesC* aPrompt = NULL, TBool aECSSupport = EFalse, - CSCPQueryDialog :: TKeypadContext aContext = CSCPQueryDialog :: EContextSensitive + CSCPQueryDialog :: TKeypadContext aContext = CSCPQueryDialog :: ENumeric ) { Dprint(_L("[RSCPClient]-> RunDialogL() >>> ")); @@ -465,13 +476,76 @@ EXPORT_C TInt RSCPClient::SetPhoneLock( TBool aLocked ) { Dprint( (_L("--> RSCPClient::SetPhoneLock( %d)"), aLocked )); - + TInt autolockState = -1; + RProperty aProperty; + aProperty.Get(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, autolockState); + Dprint( (_L("RSCPClient::SetPhoneLock()Autolock state before %d"), autolockState )); + + if((aLocked==0)&&(autolockState != EAutolockStatusUninitialized)) + InformAutolockTask(); + Dprint( (_L("RSCPClient sendreceive") )); TInt ret = SendReceive(ESCPServSetPhoneLock, TIpcArgs( aLocked ) ); - + Dprint( (_L("RSCPClient sendreceive done") )); + aProperty.Get(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, autolockState); + Dprint( (_L("RSCPClient::SetPhoneLock()Autolock state after %d"), autolockState )); + // Put it here because, we cant change autolock status before sendreceive + // Uninitialised state is Only at Bootup. + if((autolockState == EAutolockStatusUninitialized)&&(aLocked==0)&&(ret==KErrNone)) + { + Dprint( (_L("RSCPClient::SetPhoneLock()setting autolock status") )); + aProperty.Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, EAutolockOff); + // This is startup and we are done with ISA unlock + // So set the Startup cenrep key so tht it is used in SeccodeQuery + CRepository* lRepository = NULL; + TInt returnv; + TRAP(returnv, lRepository = CRepository :: NewL(KCRUidSCPLockCode)); + returnv = lRepository->Set(KSCPStartupQuery, 1); + if(returnv==KErrNone) + Dprint( (_L("RSCPClient::SetPhoneLock()setting KSCPStartupQuery") )); + delete lRepository; + } Dprint( (_L("<-- RSCPClient::SetPhoneLock(): %d"), ret )); return ret; } +void RSCPClient::InformAutolockTask() + { + Dprint( (_L("RSCPClient::InformAutolockTask") )); + // Deactivation call, send the deactivation message to Autolock + RWsSession wsSession; + if ( wsSession.Connect() != KErrNone ) + { + Dprint( (_L("RSCPClient::InformAutolockTask():\ + WsSession connection failed") )); + User::Leave( KErrGeneral ); + } + CleanupClosePushL( wsSession ); + + TApaTaskList taskList( wsSession ); + TApaTask task = taskList.FindApp( TUid::Uid( 0x100059B5 ) ); // Autolock + + if ( task.Exists() ) + { + Dprint( (_L("RSCPClient::InformAutolockTask():\ + Autolock task found, sending msg") )); + // No parameters, just a dummy buffer + TBuf8<8> buf; + buf.Zero(); + const TPtrC8& message = buf; + User::LeaveIfError( + task.SendMessage( TUid::Uid( SCP_CMDUID_UNLOCK+1 ), message ) + ); + } + else + { + Dprint( (_L("RSCPClient::InformAutolockTask():\ + Autolock task not found") )); + User::Leave( KErrNotFound ); + } + + CleanupStack::PopAndDestroy(); // wsSession + } + // --------------------------------------------------------- // TBool RSCPClient::QueryAdminCmd( TSCPAdminCommand aCommand ) // Packs the command parameter into a buffer, and propagates @@ -586,6 +660,23 @@ } Dprint((_L("<-- RSCPClient::SecCodeQuery(): lStatus= %d, lErr= %d"), lStatus, lErr)); + CRepository* lRepository = NULL; + TInt startup = 0; + TInt returnv; + TRAP(returnv, lRepository = CRepository :: NewL(KCRUidSCPLockCode)); + returnv = lRepository->Get(KSCPStartupQuery, startup); + if(returnv == KErrNone) + Dprint( (_L("RSCPClient::SecCodeQuery()KSCPStartupQuery get done"))); + lRepository->Set(KSCPStartupQuery, 0); + delete lRepository; + Dprint((_L("RSCPClient::SecCodeQuery(): startup ? %d"), startup )); + //Check if this is Startup Query and tht device is remote unlocked now ? + if(startup) + { + Dprint((_L("[RSCPClient] SecCodeQuery() startup remote Unlocked"))); + return KErrNone; + } + else return (lErr != KErrNone) ? lErr : lStatus; } @@ -761,6 +852,7 @@ return ret; } EXPORT_C TInt RSCPClient :: PerformCleanupL(RArray& aAppIDs) { + Dprint((_L("RSCPClient::PerformCleanupL() >>>"))); TInt lCount = aAppIDs.Count(); if(lCount < 1) { @@ -779,6 +871,7 @@ lWriteStream.CommitL(); TInt lStatus = SendReceive(ESCPApplicationUninstalled, TIpcArgs(ESCPApplicationUninstalled, &lBuff->Des())); CleanupStack :: PopAndDestroy(2); // lBuff, lWriteStream + Dprint((_L("RSCPClient::PerformCleanupL() <<<"))); return lStatus; } // --------------------------------------------------------- @@ -898,16 +991,15 @@ maxLen, R_SECUI_TEXT_ENTER_NEW_SEC_CODE, NULL, - ecSupport, - CSCPQueryDialog :: EAlphaNumeric) ); + ecSupport) ); if ( ( ret ) && ( ret != ESecUiEmergencyCall ) && ( err == KErrNone ) ) { verifyCodeBuffer.Zero(); - TChar ch = static_cast(newCodeBuffer[0]); - - CSCPQueryDialog :: TKeypadContext lKPContext = - (ch.IsDigit() ? CSCPQueryDialog :: ENumeric : CSCPQueryDialog :: EAlphaNumeric); + /*TChar ch = static_cast(newCodeBuffer[0]); + + CSCPQueryDialog :: TKeypadContext lKPContext = + (ch.IsDigit() ? CSCPQueryDialog :: ENumeric : CSCPQueryDialog :: EAlphaNumeric);*/ TRAP( err, ret = RunDialogL( verifyCodeBuffer, bConfig, @@ -915,8 +1007,7 @@ maxLen, R_SECUI_TEXT_VERIFY_NEW_SEC_CODE, NULL, - ecSupport, - lKPContext)); + ecSupport)); } if ( ( !ret ) || ( err != KErrNone ) || ( ret == ESecUiEmergencyCall ) ) @@ -1070,8 +1161,28 @@ codeBuf.Zero(); ret = theParams->Get( KSCPParamPassword, codeBuf ); + if ( ret == KErrNone ) { + TInt lResFile = 0; + TFileName resFile; + resFile.Copy( KDriveZ ); + resFile.Append( KSCPTimestampPluginResFilename ); + BaflUtils :: NearestLanguageFile( CCoeEnv :: Static()->FsSession(), resFile ); + lResFile = CCoeEnv :: Static()->AddResourceFileL(resFile); + + CAknNoteDialog* lNoteDlg = new (ELeave) CAknNoteDialog(CAknNoteDialog :: ENoTone, CAknNoteDialog :: ELongTimeout); + CleanupStack :: PushL(lNoteDlg); + + HBufC* lExpNoteMsg = CEikonEnv :: Static()->AllocReadResourceLC(R_SET_SEC_CODE_AGING); + lNoteDlg->SetTextL(lExpNoteMsg->Des()); + + lNoteDlg->ExecuteLD(R_DIALOG_WARNING); + CleanupStack :: PopAndDestroy(1); //lExpNoteMsg + CleanupStack :: Pop(1); //lNoteDlg + + CCoeEnv :: Static()->DeleteResourceFile( lResFile ); + TSCPSecCode newDOSCode; ret = GetNewCodeAndChange( codeBuf, KSCPForcedChange, &newDOSCode ); @@ -1233,13 +1344,55 @@ CleanupStack :: PopAndDestroy(lRepository); return lRet; } - + TInt currentLawmoState(0); + Dprint( (_L("CSCPClient::lawmo cenrep") )); + CRepository* crep = CRepository::NewLC( KCRUidDeviceManagementInternalKeys ); + TInt reterr = crep->Get( KLAWMOPhoneLock, currentLawmoState ); + Dprint( (_L("CSCPClient::lawmo cenrep done") )); + if(reterr != KErrNone) + { + Dprint(_L("[RSCPClient]-> ERROR: Unable to perform get on CenRep lawmo, lErr=%d"), lRet); + CleanupStack :: PopAndDestroy(crep); + return reterr; + } HBufC* codeHBuf = HBufC :: NewLC(KSCPPasscodeMaxLength + 1); HBufC8* addParamsHBuf = HBufC8 :: NewLC(KSCPMaxTARMNotifParamLen); TPtr codeBuffer = codeHBuf->Des(); TPtr8 addParams = addParamsHBuf->Des(); + if(currentLawmoState!=KLockedbyLawmo) + { + // rundialog with a new resource file + Dprint((_L("[RSCPClient]-> lawmo current state !=30"))); + TBuf<255> serverId; + serverId.Zero(); + reterr = crep->Get( KLAWMOfactoryDmServerName, serverId ); + Dprint( (_L("RSCPClient::SetSecurityCode serverid: %s"), serverId.PtrZ() )); + HBufC* prompt = StringLoader::LoadLC(R_SCP_LAWMO_LOCKED, serverId); + Dprint( (_L("RSCPClient::SetSecurityCode stringval: %s"), (prompt->Des()).PtrZ() )); - if(lDefCode == 0) { + lRet = RunDialogL(codeBuffer, aButtonsShown, KSCPPasscodeMinLength, KSCPPasscodeMaxLength, + 0, prompt, aECSSupport); + if((lRet) && (lRet != ESecUiEmergencyCall) && (lRet != EAknSoftkeyEmergencyCall)) + { + Dprint(_L("[RSCPClient]-> INFO: LL User has updated the lock code...")); + + lRet = SendReceive( ESCPServAuthenticateS60, TIpcArgs( &codeBuffer, &aPassword, &addParams, aFlags)); + + Dprint((_L("[RSCPClient]-> INFO: LL addParams.Length()=%d")), addParams.Length()); + Dprint((_L("[RSCPClient]-> INFO: LL lRet=%d")), lRet); + } + else + { + switch(lRet) + { + case 0: + lRet = KErrCancel; + break; + } + } + CleanupStack::PopAndDestroy(1); + } + else if(lDefCode == 0) { Dprint(_L("[RSCPClient]-> INFO: Default lock code has been set already by the user...")); lRet = RunDialogL(codeBuffer, aButtonsShown, KSCPPasscodeMinLength, KSCPPasscodeMaxLength, @@ -1353,7 +1506,13 @@ if(lTempRet == KErrNone) { CSCPParamObject* outParams = NULL; - ProcessServerCommandsL(addParams, &outParams); + /* + * aECSSupport when passed to ProcessServerCommandsL decides if the expiry note and subsequently change device lock + * code has to be shown or not. Normally if the lock code has expired, the same has to be prompted from the user and + * has to be done only during device unlock. aECSSupport value is being passed to ensure that new lock code is prompted + * only during device unlock. + */ + ProcessServerCommandsL(addParams, &outParams, !aECSSupport); if(outParams != NULL) { TSCPSecCode newSecCode; @@ -1369,7 +1528,7 @@ CleanupStack :: PopAndDestroy(tmp); } - CleanupStack :: PopAndDestroy(3); // repository, addParamsHBuf, codeHBuf + CleanupStack :: PopAndDestroy(4); // repository * 2, addParamsHBuf, codeHBuf Dprint(_L("[RSCPClient]-> SetSecurityCodeL() <<< lRet=%d"), lRet); return lRet; } diff -r 4af31167ea77 -r 13d7c31c74e0 terminalsecurity/SCP/SCPClient/src/SCPLockObserver.cpp --- a/terminalsecurity/SCP/SCPClient/src/SCPLockObserver.cpp Thu Jul 15 19:36:11 2010 +0300 +++ b/terminalsecurity/SCP/SCPClient/src/SCPLockObserver.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -170,6 +170,12 @@ iDialog->TryCancelQueryL(ESecUiDeviceLocked); iSubscribedToEvent = EFalse; } + else if((autolockState == EAutolockOff)||(autolockState == EAutolockStatusUninitialized)) + { + Dprint(_L("CSCPLockObserver::RunL() TryCancelQueryL Device UnLocked")); + iDialog->TryCancelQueryL(ESecUiNone); + iSubscribedToEvent = EFalse; + } break; case ESecUiCallStateObserver: { TInt callState; diff -r 4af31167ea77 -r 13d7c31c74e0 terminalsecurity/SCP/SCPClient/src/SCPQueryDialog.cpp --- a/terminalsecurity/SCP/SCPClient/src/SCPQueryDialog.cpp Thu Jul 15 19:36:11 2010 +0300 +++ b/terminalsecurity/SCP/SCPClient/src/SCPQueryDialog.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -33,6 +33,7 @@ #include #include #include "SCPCodePrivateCRKeys.h" +#include #include /*#ifdef _DEBUG @@ -50,7 +51,7 @@ #endif // _DEBUG*/ const TInt KSCPSpecialDeleteEvent( 63529 ); - +const TInt KLockedbyLawmo (30); // ================= MEMBER FUNCTIONS ======================= // // ---------------------------------------------------------- @@ -77,6 +78,7 @@ iPreviousCharacterWasInvalid( EFalse ), iPrioritySet( EFalse ), iPriorityDropped( EFalse ), + iLockedByLawMo( EFalse ), iKeyUsed ( NULL ), iContextSensitive(aContextSensitive) { @@ -336,6 +338,28 @@ static_cast(iEikonEnv->EikAppUi())->KeySounds()->LockContext(); iFront = ETrue; + TInt currentLawmoState(0); + Dprint( (_L("CSCPQueryDialog::lawmo cenrep") )); + CRepository* crep = CRepository::NewLC( KCRUidDeviceManagementInternalKeys ); + TInt reterr = crep->Get( KLAWMOPhoneLock, currentLawmoState ); + Dprint( (_L("CSCPQueryDialog::lawmo cenrep done") )); + + if(reterr != KErrNone) + { + Dprint(_L("[RSCPClient]-> ERROR: Unable to perform get on CenRep lawmo, lErr=%d"), reterr); + CleanupStack :: PopAndDestroy(crep); + return; + } + + if(currentLawmoState!=KLockedbyLawmo) + { + // Hide the OK key + Dprint( (_L("CSCPQueryDialog::lawmo state !=30, dim key") )); + iLockedByLawMo = ETrue; + ButtonGroupContainer().MakeCommandVisible( EAknSoftkeyOk, ETrue ); + ButtonGroupContainer().DimCommand(EAknSoftkeyOk, ETrue); + } + CleanupStack::PopAndDestroy(); } // // --------------------------------------------------------- @@ -630,6 +654,11 @@ ButtonGroupContainer().RemoveCommandFromStack(0,EAknSoftkeyOk); } TRAP ( err , ButtonGroupContainer().AddCommandToStackL(0,EAknSoftkeyOk,*cbaLabel) ); + if(iLockedByLawMo) + { + ButtonGroupContainer().MakeCommandVisible( EAknSoftkeyOk, ETrue ); + ButtonGroupContainer().DimCommand(EAknSoftkeyOk, ETrue); + } ButtonGroupContainer().DrawDeferred(); delete cbaLabel; } @@ -647,6 +676,13 @@ else { return CAknTextQueryDialog::OfferKeyEventL(aKeyEvent,aType); + } + + if(iLockedByLawMo) + { + Dprint( (_L("dim key hit 2") )); + ButtonGroupContainer().MakeCommandVisible( EAknSoftkeyOk, ETrue ); + ButtonGroupContainer().DimCommand(EAknSoftkeyOk, ETrue); } } // @@ -765,6 +801,11 @@ ButtonGroupContainer().RemoveCommandFromStack(0,EAknSoftkeyOk); } TRAP ( err , ButtonGroupContainer().AddCommandToStackL(0, EAknSoftkeyOk, *cbaLabel) ); + if(iLockedByLawMo) + { + ButtonGroupContainer().MakeCommandVisible( EAknSoftkeyOk, ETrue ); + ButtonGroupContainer().DimCommand(EAknSoftkeyOk, ETrue); + } ButtonGroupContainer().DrawDeferred(); delete cbaLabel; } @@ -799,7 +840,7 @@ } void CSCPQueryDialog::TryCancelQueryL(TInt aReason) { - Dprint( (_L("CSCPQueryDialog::TryCancelQueryL()")) ); + Dprint( (_L("CSCPQueryDialog::TryCancelQueryL() >>>")) ); switch(aReason) { case CSCPLockObserver :: EEnded: @@ -828,8 +869,14 @@ Dprint(_L("[CSCPQueryDialog]-> TryExitL 4")); TryExitL(EAknSoftkeyCancel); break; + case ESecUiNone: + Dprint(_L("[CSCPQueryDialog]-> TryExitL 5")); + TryExitL(EAknSoftkeyOk); + break; default: break; } + + Dprint( (_L("CSCPQueryDialog::TryCancelQueryL() <<<")) ); } // End of file diff -r 4af31167ea77 -r 13d7c31c74e0 terminalsecurity/SCP/SCPDatabase/src/SCPParamDBController.cpp --- a/terminalsecurity/SCP/SCPDatabase/src/SCPParamDBController.cpp Thu Jul 15 19:36:11 2010 +0300 +++ b/terminalsecurity/SCP/SCPDatabase/src/SCPParamDBController.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -106,6 +106,7 @@ EXPORT_C TInt CSCPParamDBController :: SetValueL(TInt aParamID, const TInt32 aValue, const TInt32 aApp) { switch(aParamID) { + case RTerminalControl3rdPartySession :: ETimeout: case RTerminalControl3rdPartySession :: EMaxTimeout: case RTerminalControl3rdPartySession :: EPasscodeMinLength: case RTerminalControl3rdPartySession :: EPasscodeMaxLength: @@ -146,6 +147,7 @@ EXPORT_C TInt CSCPParamDBController :: GetValueL(TInt aParamID, TInt32& aValue, TInt32& aApp) { switch(aParamID) { + case RTerminalControl3rdPartySession :: ETimeout: case RTerminalControl3rdPartySession :: EMaxTimeout: case RTerminalControl3rdPartySession :: EPasscodeMinLength: case RTerminalControl3rdPartySession :: EPasscodeMaxLength: @@ -190,6 +192,7 @@ EXPORT_C TInt CSCPParamDBController :: DropValuesL(TInt aParamID, const TInt32 aApp) { switch(aParamID) { + case RTerminalControl3rdPartySession :: ETimeout: case RTerminalControl3rdPartySession :: EMaxTimeout: case RTerminalControl3rdPartySession :: EPasscodeMinLength: case RTerminalControl3rdPartySession :: EPasscodeMaxLength: @@ -216,6 +219,7 @@ EXPORT_C TInt CSCPParamDBController :: DropValuesL(TInt aParamID, RPointerArray & aParamValues, const TInt32 aApp) { switch(aParamID) { + case RTerminalControl3rdPartySession :: ETimeout: case RTerminalControl3rdPartySession :: EMaxTimeout: case RTerminalControl3rdPartySession :: EPasscodeMinLength: case RTerminalControl3rdPartySession :: EPasscodeMaxLength: diff -r 4af31167ea77 -r 13d7c31c74e0 terminalsecurity/SCP/SCPServer/inc/SCPConfiguration.h --- a/terminalsecurity/SCP/SCPServer/inc/SCPConfiguration.h Thu Jul 15 19:36:11 2010 +0300 +++ b/terminalsecurity/SCP/SCPServer/inc/SCPConfiguration.h Thu Aug 19 10:44:50 2010 +0300 @@ -29,9 +29,8 @@ enum TSCPParamType { EParTypeInt = 0, - EParTypeDesc, - EParTypeBool - }; + EParTypeDesc + }; // LOCAL CONSTANTS @@ -57,11 +56,10 @@ const TInt KParamIDBlockedInOOS = 7; // ID number for the encrypted security code. const TInt KParamIDCryptoCode = 8; -//ID number for the boolean for the configuartion check -const TInt KParamIDConfigChecked = 9; + // Total number of Param IDs -const TInt KTotalParamIDs = 9; +const TInt KTotalParamIDs = 8; //#ifdef __SAP_DEVICE_LOCK_ENHANCEMENTS #define SCP_PARAMETERS_WithFlag { &iConfigFlag, \ @@ -71,9 +69,8 @@ &iFailedAttempts, \ &iBlockedAtTime, \ &iBlockedInOOS, \ - &iCryptoCode, \ - &iConfigChecked \ - }; + &iCryptoCode \ + }; #define SCP_PARAMIDS_WithFlag { KParamIDConfigFlag, \ KParamIDMaxTimeout, \ @@ -82,9 +79,8 @@ KParamIDFailedAttempts, \ KParamIDBlockedAtTime, \ KParamIDBlockedInOOS, \ - KParamIDCryptoCode, \ - KParamIDConfigChecked \ - }; + KParamIDCryptoCode \ + }; #define SCP_PARAMTYPES_WithFlag { EParTypeInt, \ EParTypeInt, \ @@ -93,9 +89,8 @@ EParTypeInt, \ EParTypeDesc, \ EParTypeInt, \ - EParTypeDesc, \ - EParTypeBool \ - }; + EParTypeDesc\ + }; //#else // !__SAP_DEVICE_LOCK_ENHANCEMENTS @@ -189,10 +184,7 @@ /** The name of the main configuration file */ TFileName iConfigFileName; TInt iBlockedInOOS; - - //Flag to check whether Configuration checked already - TBool iConfigChecked; - + /** A ptr to a connected RFs, not owned */ RFs* iFsSession; diff -r 4af31167ea77 -r 13d7c31c74e0 terminalsecurity/SCP/SCPServer/inc/SCPServer.h --- a/terminalsecurity/SCP/SCPServer/inc/SCPServer.h Thu Jul 15 19:36:11 2010 +0300 +++ b/terminalsecurity/SCP/SCPServer/inc/SCPServer.h Thu Aug 19 10:44:50 2010 +0300 @@ -136,7 +136,7 @@ // Only Autolock allowed for the Check configuration call }, { - _INIT_SECURITY_POLICY_S0( KSCPEvntHndlrUid ), + _INIT_SECURITY_POLICY_C1( ECapability_None ), CPolicyServer::EFailClient }, { diff -r 4af31167ea77 -r 13d7c31c74e0 terminalsecurity/SCP/SCPServer/src/SCPConfiguration.cpp --- a/terminalsecurity/SCP/SCPServer/src/SCPConfiguration.cpp Thu Jul 15 19:36:11 2010 +0300 +++ b/terminalsecurity/SCP/SCPServer/src/SCPConfiguration.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -155,12 +155,6 @@ break; } - case ( EParTypeBool ): - { - ret = params->Get( KParamIDs[i], *(reinterpret_cast( KParameters[i] )) ); - break; - } - default: // No implementation needed break; @@ -301,13 +295,7 @@ ret = params->Set( KParamIDs[i], *(reinterpret_cast( KParameters[i] )) ); break; } - - case ( EParTypeBool ): - { - ret = params->Set( KParamIDs[i], *(reinterpret_cast( KParameters[i] )) ); - break; - } - + default: // No implementation needed break; diff -r 4af31167ea77 -r 13d7c31c74e0 terminalsecurity/SCP/SCPServer/src/SCPServer.cpp --- a/terminalsecurity/SCP/SCPServer/src/SCPServer.cpp Thu Jul 15 19:36:11 2010 +0300 +++ b/terminalsecurity/SCP/SCPServer/src/SCPServer.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -129,7 +129,7 @@ // Assign default config flag iConfiguration.iConfigFlag = KSCPConfigUnknown; - iConfiguration.iConfigChecked = EFalse; + // Assign the default codes iConfiguration.iSecCode.Zero(); @@ -169,7 +169,7 @@ //#endif // Assign the default max timeout - iConfiguration.iMaxTimeout = KSCPDefaultMaxTO; + iConfiguration.iMaxTimeout = 0; iConfiguration.iBlockedInOOS = 0; // Read the configuration, overwriting the default values @@ -186,24 +186,8 @@ } - //If Configuration is not validated already, validate it - - if (!iConfiguration.iConfigChecked) - { - TInt valerr = KErrNone; - TRAP( valerr, ValidateConfigurationL( KSCPComplete )); - if (valerr != KErrNone) - { - Dprint( (_L("CSCPServer::ConstructL(): Configuration Validation failed: %d"), valerr )); - } - else - { - Dprint( (_L("CSCPServer::ConstructL(): Configuration Validation Passed"))); - } - } - - - + + Dprint( (_L("CSCPServer::ConstructL(): Connecting to CenRep") )); iALPeriodRep = CRepository::NewL( KCRUidSecuritySettings ); @@ -668,155 +652,91 @@ // void CSCPServer::ValidateConfigurationL( TInt aMode ) { - Dprint( (_L("--> CSCPServer::ValidateConfigurationL()") )); - RDebug::Print(_L("--> CSCPServer::ValidateConfigurationL()")); - TInt startupReason(ENormalStartup); - RProperty::Get(KPSUidStartup, KPSStartupReason, startupReason); - Dprint( (_L("CSCPServer::ValidateConfigurationL(): startupReason = %d"), startupReason)); - if((startupReason == ENormalRFSReset)||(startupReason == EDeepRFSReset)||(startupReason == EFirmwareUpdate)||(iConfiguration.iConfigFlag == KSCPConfigUnknown)) - { + if (aMode == KSCPInitial) { + // Return here, must be checked by complete mode + RDebug::Print(_L("--> CSCPServer::ValidateConfigurationL()@@aMode == KSCPInitial ")); + User::Leave(KErrAccessDenied); + } - RMobilePhone::TMobilePassword storedCode; + RMobilePhone::TMobilePassword storedCode; storedCode.Zero(); User::LeaveIfError(GetCode(storedCode)); - - - Dprint( (_L("CSCPServer::ValidateConfigurationL(): Checking code: %s"), storedCode.PtrZ() )); - // Check that the ISA code is stored correctly - TRAPD( err, CheckISACodeL( storedCode ) ); - //Bool for the correction of Defaultlockcode cenrep - TBool lCorrectDefaultlockcode = EFalse; - - Dprint( (_L("CSCPServer::ValidateConfigurationL(): iConfigFlag = %d, iConfigChecked = %d"), iConfiguration.iConfigFlag, iConfiguration.iConfigChecked)); - - if ((iConfiguration.iConfigFlag == KSCPConfigOK) - && (iConfiguration.iConfigChecked) && (err == KErrNone)) - { - // The configuration has already been checked, exit - Dprint( (_L("CSCPServer::ValidateConfigurationL(): Configuration is non-default.") )); - User::Leave( KErrNone ); - } - else if ( aMode == KSCPInitial ) - { - // Return here, must be checked by complete mode - User::Leave( KErrAccessDenied ); - } - - - TInt hashedISAcode; - TSCPSecCode hashedCode; -//#ifdef __SAP_DEVICE_LOCK_ENHANCEMENTS -if(FeatureManager::FeatureSupported(KFeatureIdSapDeviceLockEnhancements)) -{ - /*TInt*/ hashedISAcode = HashISACode( iConfiguration.iEnhSecCode ); - // TSCPSecCode hashedCode; - hashedCode.Zero(); - hashedCode.AppendNum( hashedISAcode ); -} -//#endif // __SAP_DEVICE_LOCK_ENHANCEMENTS - - + TBool isDefaultLockcode = ETrue; + TInt err = KErrNone; - - if (err != KErrNone) - { - lCorrectDefaultlockcode = ETrue; + RMobilePhone::TMobilePassword defaultLockcode; + defaultLockcode.Zero(); + defaultLockcode.Copy(KSCPDefaultSecCode); + if (storedCode.Compare(KSCPDefaultSecCode) == 0) { + RDebug::Print(_L("--> CSCPServer::ValidateConfigurationL()@config has KSCPDefaultSecCode ")); + TRAP( err, CheckISACodeL( defaultLockcode ) ); + if (err == KErrNone) { + RDebug::Print(_L("--> CSCPServer::ValidateConfigurationL()@ISA also has KSCPDefaultSecCode ")); + iConfiguration.iConfigFlag = KSCPConfigOK; + isDefaultLockcode = ETrue; } - if ( err == KErrNone ) - { - iConfiguration.iConfigFlag = KSCPConfigOK; - } - else if ( err == KErrAccessDenied ) - { - iConfiguration.iConfigFlag = KSCPConfigInvalid; - } - else if ( err == KErrLocked ) - { - Dprint( (_L("CSCPServer::ValidateConfigurationL(): ISA code locked.") )); + else { + RDebug::Print(_L("--> CSCPServer::ValidateConfigurationL()@ISA doesn't has KSCPDefaultSecCode ")); + iConfiguration.iConfigFlag = KSCPConfigInvalid; + iConfiguration.iFailedAttempts++; + isDefaultLockcode = EFalse; } - else - { - Dprint( (_L("CSCPServer::ValidateConfigurationL(): ERROR in validation.") )); + } + else { + RDebug::Print(_L("CSCPServer::CheckISACodeL(): config lock code %s"), storedCode.PtrZ()); + TRAP( err, CheckISACodeL( storedCode ) ); + if (err == KErrNone) { + RDebug::Print(_L("--> CSCPServer::ValidateConfigurationL()@ISA and config are in SYNC !! ")); + iConfiguration.iConfigFlag = KSCPConfigOK; + isDefaultLockcode = EFalse; } - -//#ifdef __SAP_DEVICE_LOCK_ENHANCEMENTS -if(FeatureManager::FeatureSupported(KFeatureIdSapDeviceLockEnhancements)) -{ - if ( err == KErrNone ) - { - // Check that the codes are in-sync with each other. Especially the default ISA code must - // be changed according to the default enhanced code. - if ( storedCode.Compare( hashedCode ) != 0 ) + else { + iConfiguration.iSecCode.Zero(); + iConfiguration.iSecCode.Append(KSCPDefaultSecCode); + RDebug::Print(_L("--> CSCPServer::ValidateConfigurationL()@May be ISA has KSCPDefaultSecCode ")); + TRAP(err,ChangeISACodeL(storedCode)); + if (err == KErrNone) { + RDebug::Print(_L("--> CSCPServer::ValidateConfigurationL()chnaged ISA code with config value ")); + iConfiguration.iConfigFlag = KSCPConfigOK; + isDefaultLockcode = EFalse; + } + else { - Dprint( (_L("CSCPServer::ValidateConfigurationL(): Correct ISA code stored.\ - Changing ISA code to match enhanced code => %d"), hashedISAcode )); - - storedCode.Copy( hashedCode ); - // Change the ISA code to match the hashed code - ChangeISACodeL( storedCode ); + RDebug::Print(_L("--> CSCPServer::ValidateConfigurationL()it shouldn't reach this :( ")); } } - else if ( ( err == KErrAccessDenied ) && ( storedCode.Compare( hashedCode ) != 0 ) ) - { - // Try again with the hashed code - TRAP( err, CheckISACodeL( hashedCode ) ); - - if ( err == KErrNone ) - { - Dprint( (_L("CSCPServer::ValidateConfigurationL(): Hashed code is correct.\ - Storing hashed code(%d)"), hashedISAcode )); - - if ( StoreCode( hashedCode ) == KErrNone ) - { - iConfiguration.iConfigFlag = KSCPConfigOK; - lCorrectDefaultlockcode = ETrue; - } - } - } + } + + CRepository* repository = CRepository::NewL(KCRUidSCPLockCode); + CleanupStack::PushL(repository); + if (isDefaultLockcode ) { + RDebug::Print(_L("--> CSCPServer::ValidateConfigurationL()setting def. lockcode to 12345 ")); + repository->Set(KSCPLockCodeDefaultLockCode, 12345); + } + else { + RDebug::Print(_L("--> CSCPServer::ValidateConfigurationL()setting def. lockcode to 0 ")); + repository->Set(KSCPLockCodeDefaultLockCode, 0); + } + CleanupStack::PopAndDestroy(repository); - //If Correction of Defaultlockcode cenrep is required for the mismatch between Config and ISA - if (lCorrectDefaultlockcode) - { - TInt lDefCode = -1; - CRepository* lRepository = CRepository::NewL(KCRUidSCPLockCode); - CleanupStack::PushL(lRepository); - TInt lRet = lRepository->Get(KSCPLockCodeDefaultLockCode, - lDefCode); - if (lRet == KErrNone && lDefCode != -1) - { - if (lDefCode == 12345) - { - //Although lock code is already set, due to some unexpected condition - //like C drive wipe, cenrep status is wrongly shown. Correcting it here. - lRepository->Set(KSCPLockCodeDefaultLockCode, 0); - Dprint( (_L("RSCPClient::ValidateConfigurationL(): Corrected the Default lock code cenrep status to 0") )); - } - else if (lDefCode == 0) - { - //If only ISA side is formatted, then the lock code on ISA side is default; - //Cenrep status remains wrongly as the lock code is already set. Correcting it here. - lRepository->Set(KSCPLockCodeDefaultLockCode, 12345); - Dprint( (_L("RSCPClient::ValidateConfigurationL(): Corrected the Default lock code cenrep status to 12345") )); - } - } - CleanupStack::PopAndDestroy(lRepository); - } - } -//#endif // __SAP_DEVICE_LOCK_ENHANCEMENTS - //Set the flag to True, after config is validated - iConfiguration.iConfigChecked = ETrue; - - TRAPD( err2, iConfiguration.WriteSetupL() ); - if ( err2 != KErrNone ) - { + TRAP( err, iConfiguration.WriteSetupL() ); + if (err != KErrNone) { Dprint( (_L("CSCPServer::ValidateConfigurationL(): WARNING: failed to write configuration\ - : %d"), err2 )); - } - - User::LeaveIfError( err ); - } - Dprint( (_L("<-- CSCPServer::ValidateConfigurationL()") )); + : %d"), err )); + } + + if (iConfiguration.iConfigFlag == KSCPConfigOK) { + RDebug::Print(_L("--> CSCPServer::ValidateConfigurationL()@iConfigFlag == KSCPConfigOK ")); + err = KErrNone; } + else { + RDebug::Print(_L("--> CSCPServer::ValidateConfigurationL()@iConfigFlag == KErrAccessDenied ")); + err = KErrAccessDenied; + } + + User::LeaveIfError(err); +} + @@ -837,7 +757,10 @@ (void)aCode; #endif // __WINS__ - + + +Dprint( (_L("CSCPServer::CheckISACodeL(): current lock code %s"), aCode.PtrZ() )); +RDebug::Print(_L("CSCPServer::CheckISACodeL(): current lock code %s"), aCode.PtrZ()); RMobilePhone::TMobilePhoneSecurityCode secCodeType; secCodeType = RMobilePhone::ESecurityCodePhonePassword; @@ -873,6 +796,7 @@ { iConfiguration.iBlockedInOOS = 0; Dprint( (_L("CSCPServer::CheckISACodeL():iBlockedInOOS = 0, KErrAccessDenied") )); + RDebug::Print(_L("--> CSCPServer::CheckISACodeL()@@iBlockedInOOS = 0, KErrAccessDenie")); } ret = KErrAccessDenied; } @@ -881,17 +805,20 @@ Dprint( (_L("CSCPServer::CheckISACodeL(): ISA code BLOCKED") )); if (ret==KErrGsmSSPasswordAttemptsViolation) { - Dprint( (_L("CSCPServer::CheckISACodeL(): KErrGsmSSPasswordAttemptsViolation") )); + Dprint( (_L("CSCPServer::CheckISACodeL(): KErrGsmSSPasswordAttemptsViolation") )); + RDebug::Print(_L("--> CSCPServer::CheckISACodeL()@@KErrGsmSSPasswordAttemptsViolation")); } else { Dprint( (_L("CSCPServer::CheckISACodeL(): KErrLocked") )); + RDebug::Print(_L("--> CSCPServer::CheckISACodeL()@@KErrLocked")); } ret = KErrLocked; if (iConfiguration.iBlockedInOOS == 0) { iConfiguration.iBlockedInOOS = 1; Dprint( (_L("CSCPServer::CheckISACodeL():iBlockedInOOS = 1, KSCPErrCodeBlockStarted") )); + RDebug::Print(_L("--> CSCPServer::CheckISACodeL()@@@@@")); ret = KSCPErrCodeBlockStarted; } } @@ -899,6 +826,7 @@ { Dprint( (_L("CSCPServer::CheckISACodeL(): ERROR reply checking ISA code: %d"), status.Int() )); + RDebug::Print(_L("--> CSCPServer::ValidateConfigurationL()")); } } TRAPD( err, iConfiguration.WriteSetupL() ); @@ -1016,6 +944,7 @@ TRAP(err, repository = CRepository :: NewL(KCRUidSCPLockCode)); if(err == KErrNone) { + RDebug::Print(_L("<-- CSCPServer::StoreEnhCode() setting KSCPLockCodeDefaultLockCode to 0")); err = repository->Set(KSCPLockCodeDefaultLockCode, 0); delete repository; } @@ -1351,84 +1280,74 @@ TInt lRetStatus(KErrNone); Dprint(_L("[CSCPServer]-> Initiating branching on parameter...")); - switch ( aID ) - { - case ( ESCPAutolockPeriod ): - // Flow through - case ( ESCPMaxAutolockPeriod ): - { + switch(aID) { + case ESCPAutolockPeriod: + case ESCPMaxAutolockPeriod: { // Convert the value, and set it TInt value; TLex lex(aValue); lRetStatus = lex.Val(value); - if((lRetStatus != KErrNone ) || ( value < 0) || ( value > KSCPAutolockPeriodMaximum )) { lRetStatus = KErrArgument; break; - } + } //Check if the device memory is encrypted or not. TBool encryptionEnabled = IsDeviceMemoryEncrypted(); + CSCPParamDBController* lParamDB = CSCPParamDBController :: NewLC(); // Value OK - if(aID == ESCPMaxAutolockPeriod) - { - if ( encryptionEnabled ) - { - Dprint(_L("Memory is encrypted")); - if (( 0 == value) || value > KMaxAutolockPeriod) - { - Dprint((_L("Denying setting of max auto lock as value is %d"), value)); - User::Leave( KErrPermissionDenied ); - } - - } - else - { + if(aID == ESCPMaxAutolockPeriod) { + if( encryptionEnabled ) { + Dprint(_L("[CSCPServer]-> Memory is encrypted")); + + if(( 0 == value) || value > KMaxAutolockPeriod) { + Dprint((_L("[CSCPServer]-> Denying setting of max auto lock as value is %d"), value)); + User :: Leave( KErrPermissionDenied ); + } + } + else { Dprint(_L("Memory is decrypted, hence no restrictions to max autolock")); - } + } - Dprint(_L("[CSCPServer]-> Branched to ESCPMaxAutolockPeriod...")); - CSCPParamDBController* lParamDB = CSCPParamDBController :: NewLC(); + Dprint(_L("[CSCPServer]-> Branched to ESCPMaxAutolockPeriod...")); lRetStatus = SetBestPolicyL(RTerminalControl3rdPartySession :: EMaxTimeout, aValue, aCallerIdentity, lParamDB); - if(lRetStatus == KErrNone) - { + if(lRetStatus == KErrNone) { // Do we have to change the Autolock period as well? TInt currentALperiod; lRetStatus = GetAutolockPeriodL(currentALperiod); - if(lRetStatus == KErrNone) - { - if((iConfiguration.iMaxTimeout > 0) && ((iConfiguration.iMaxTimeout < currentALperiod) || (currentALperiod == 0))) - { + if(lRetStatus == KErrNone) { + if( (iConfiguration.iMaxTimeout > 0) && + ((iConfiguration.iMaxTimeout < currentALperiod) || + (currentALperiod == 0))) { + Dprint((_L("[CSCPServer]-> Changing AL period to Max. AL period (Current ALP: %d, Max. ALP: %d)"), currentALperiod, value)); - lRetStatus = SetAutolockPeriodL(value); + //lRetStatus = SetAutolockPeriodL(value); + /* + * Call to SetBestPolicyL will not check for Stronger/Weaker. The value of ETimeout just gets stored in + * both the internal DB and the CenRep + */ + lRetStatus = SetBestPolicyL(RTerminalControl3rdPartySession :: ETimeout, aValue, aCallerIdentity, lParamDB); } } - else - { + else { Dprint((_L("[CSCPServer]-> ERROR: Couldn't get the Autolock period: %d"), lRetStatus)); } } + } + // Autolock Period + else { + //Code is commented as it is already taken care by the below condition #1343 irrespective of the drive encryption state. + /* if ( 0 == value ) { + if(encryptionEnabled) { + Dprint(_L("Permission denied!")); + User :: Leave(KErrPermissionDenied); + } + }*/ - CleanupStack :: PopAndDestroy(); //lParamDB - } - - else - { // Autolock Period - - //Code is commented as it is already taken care by the below condition #1343 irrespective of the drive encryption state. - /* if ( 0 == value ) - { - if ( encryptionEnabled ) - { - Dprint(_L("Permission denied!")); - User::Leave( KErrPermissionDenied ); - } - }*/ - Dprint(_L("[CSCPServer]-> Branched to ESCPAutolockPeriod...")); // Check if this value is not allowed by the Max. Autolock period if ((iConfiguration.iMaxTimeout > 0) && ((iConfiguration.iMaxTimeout < value) || (value == 0))) { @@ -1437,13 +1356,20 @@ lRetStatus = KErrArgument; } else { - lRetStatus = SetAutolockPeriodL(value); + //lRetStatus = SetAutolockPeriodL(value); + /* + * Call to SetBestPolicyL will not check for Stronger/Weaker. The value of ETimeout just gets stored in + * both the internal DB and the CenRep + */ + lRetStatus = SetBestPolicyL(RTerminalControl3rdPartySession :: ETimeout, aValue, aCallerIdentity, lParamDB); if(lRetStatus != KErrNone) { Dprint((_L("[CSCPServer]-> ERROR: Couldn't set the Autolock period: %d"), lRetStatus)); } } } + + CleanupStack :: PopAndDestroy(); //lParamDB } break; case ESCPCodeChangePolicy: @@ -2083,13 +2009,13 @@ // TInt CSCPServer::IsCorrectEnhCode( TDes& aCode, TInt aFlags ) { - + Dprint( (_L("CSCPServer::IsCorrectEnhCode(): ") )); if(!FeatureManager::FeatureSupported(KFeatureIdSapDeviceLockEnhancements)) { return KErrNotSupported; } TInt ret = KErrAccessDenied; - + // Hash the code TBuf hashBuf; hashBuf.Zero(); @@ -2104,14 +2030,17 @@ TBool enhancedCodeMatches = EFalse; if ( hashBuf.Compare( iConfiguration.iEnhSecCode ) == 0 ) { + Dprint( (_L("CSCPServer::IsCorrectEnhCode(): enh code matches.") )); enhancedCodeMatches = ETrue; } // Check if the code is blocked (don't check if we're out-of-sync) if ( ( iConfiguration.iConfigFlag == KSCPConfigOK ) && ( IsCodeBlocked() ) ) { + Dprint( (_L("CSCPServer::IsCorrectEnhCode(): 1") )); if ( aFlags & KSCPEtelRequest ) { + Dprint( (_L("CSCPServer::IsCorrectEnhCode(): 2") )); // Check if the code is correct if ( enhancedCodeMatches ) { @@ -2125,6 +2054,7 @@ else { // OK, the code is already invalid + Dprint( (_L("CSCPServer::IsCorrectEnhCode(): 3") )); SendInvalidDOSCode( pswCandidate ); } } @@ -2137,6 +2067,7 @@ { // Normal situation: we have the correct code stored. // Compare the hashes (hashing error will result in EFalse ) + Dprint( (_L("CSCPServer::IsCorrectEnhCode(): 4") )); if ( enhancedCodeMatches ) { ret = KErrNone; @@ -2144,6 +2075,7 @@ if ( aFlags & KSCPEtelRequest ) { // Send the correct code to DOS side + Dprint( (_L("CSCPServer::IsCorrectEnhCode(): 5") )); TRAP( ret, CheckISACodeL( pswCandidate ) ); } @@ -2152,7 +2084,7 @@ if ( iConfiguration.iFailedAttempts > 0 ) { iConfiguration.iFailedAttempts = 0; - Dprint( (_L("CSCPServer::IsCorrectEnhCode():KErrAccessDenied: iFailedAttempts (%d)."), iConfiguration.iFailedAttempts )); + Dprint( (_L("CSCPServer::IsCorrectEnhCode():: iFailedAttempts (%d)."), iConfiguration.iFailedAttempts )); writeSetup = ETrue; } } @@ -2167,11 +2099,12 @@ ret = KErrAccessDenied; iConfiguration.iFailedAttempts++; - Dprint( (_L("CSCPServer::IsCorrectEnhCode():KErrAccessDenied: iFailedAttempts (%d)."), iConfiguration.iFailedAttempts )); + Dprint( (_L("CSCPServer::IsCorrectEnhCode():@@@: iFailedAttempts (%d)."), iConfiguration.iFailedAttempts )); writeSetup = ETrue; if ( iConfiguration.iFailedAttempts == KSCPCodeBlockLimit ) { + Dprint( (_L("CSCPServer::IsCorrectEnhCode(): KSCPCodeBlockLimit ") )); // Block the code TTime curTime; curTime.UniversalTime(); @@ -2192,63 +2125,60 @@ else { // iConfiguration.iConfigFlag == KSCPConfigInvalid or KSCPConfigUnknown - + // We might be out-of-sync, no idea about the real code. // Check if the DOS code hashed from the given code is correct. Dprint( (_L("CSCPServer::IsCorrectEnhCode(): Attempting to correct OoS situation.") )); - + if (IsCodeBlocked()) { + Dprint( (_L("CSCPServer::IsCorrectEnhCode(): OOS ->KErrLocked ") )); + return KErrLocked; + } TRAP( ret, CheckISACodeL( pswCandidate ) ); - if ( ret == KErrNone ) - { + if (ret == KErrNone) { // OK, we must assume that this is the correct code, since // the hashed DOS code is correct. Save the codes, and return OK. Dprint( (_L("CSCPServer::IsCorrectEnhCode(): Given code has the correct hash (%d)\ , saving codes."), ISACode )); - + iConfiguration.iEnhSecCode.Zero(); - iConfiguration.iEnhSecCode.Copy( hashBuf ); + iConfiguration.iEnhSecCode.Copy(hashBuf); iConfiguration.iSecCode.Zero(); - iConfiguration.iSecCode.AppendNum( ISACode ); - + iConfiguration.iSecCode.AppendNum(ISACode); + // Unset the invalid configuration flag iConfiguration.iConfigFlag = KSCPConfigOK; writeSetup = ETrue; - } - else - { - - Dprint( (_L("CSCPServer::IsCorrectEnhCode(): Given code does not have the \ - correct hash: ret; %d user enter password: %d"), ret )); - TRAP( ret, CheckISACodeL( aCode ) ); - if (ret == KErrNone) - { - //store this code in our interal storage as it is used as oldpassword while changing at ISA side in next command - //ChangeISACodeL. - iConfiguration.iSecCode.Zero(); - iConfiguration.iSecCode.Append( aCode ); - TRAP(ret,ChangeISACodeL(pswCandidate)); - } - if (ret == KErrNone) - { - iConfiguration.iEnhSecCode.Zero(); - iConfiguration.iEnhSecCode.Copy( hashBuf ); + } + else { + ret = KErrAccessDenied; + + iConfiguration.iFailedAttempts++; + Dprint( (_L("CSCPServer::IsCorrectEnhCode():@@@: iFailedAttempts (%d)."), iConfiguration.iFailedAttempts )); + writeSetup = ETrue; - iConfiguration.iSecCode.Zero(); - iConfiguration.iSecCode.AppendNum( ISACode ); - - // Unset the invalid configuration flag - iConfiguration.iConfigFlag = KSCPConfigOK; - writeSetup = ETrue; - } + if (iConfiguration.iFailedAttempts == KSCPCodeBlockLimit) { + Dprint( (_L("CSCPServer::IsCorrectEnhCode(): KSCPCodeBlockLimit ") )); + // Block the code + TTime curTime; + curTime.UniversalTime(); + + iConfiguration.iBlockedAtTime.Zero(); + iConfiguration.iBlockedAtTime.AppendNum(curTime.Int64()); + + // The code will be blocked for now on + ret = KSCPErrCodeBlockStarted; } } + + } // Write setup if needed if ( writeSetup ) { + Dprint( (_L("CSCPServer::IsCorrectEnhCode(): 7 ") )); TRAPD( err, iConfiguration.WriteSetupL() ); if ( err != KErrNone ) { @@ -2667,9 +2597,10 @@ TBool lFirstTime(EFalse); TInt32 lNumValue (-1); TInt32 lNumValDB (-1); - TInt32 lRetStatus = KErrNone; + TInt lRetStatus = KErrNone; switch(aID) { + case RTerminalControl3rdPartySession :: ETimeout: case RTerminalControl3rdPartySession :: EMaxTimeout: case RTerminalControl3rdPartySession :: EPasscodeMinLength: case RTerminalControl3rdPartySession :: EPasscodeMaxLength: @@ -2711,6 +2642,9 @@ else { // Fetch the previous value of the parameter from the private database switch(aID) { + case RTerminalControl3rdPartySession :: ETimeout: + // No need to fetch previous value for ETimeout since Stronger/Weaker check is not required for it. + break; case RTerminalControl3rdPartySession :: EMaxTimeout: case RTerminalControl3rdPartySession :: EPasscodeMinLength: case RTerminalControl3rdPartySession :: EPasscodeMaxLength: @@ -2779,6 +2713,12 @@ // Decision code that verifies if policy is strongest switch(aID) { + case RTerminalControl3rdPartySession :: ETimeout: + /* + * No need to check stronger/weaker for ETimeout. The value just has to be maintained in both + * DB and the CenRep + */ + break; case RTerminalControl3rdPartySession :: EMaxTimeout: case RTerminalControl3rdPartySession :: EPasscodeMaxRepeatedCharacters: case RTerminalControl3rdPartySession :: EPasscodeExpiration: @@ -2832,11 +2772,17 @@ */ if (lRetStatus == KErrNone) { switch (aID) { + case RTerminalControl3rdPartySession :: ETimeout: + lRetStatus = SetAutolockPeriodL(TInt(lNumValue)); + Dprint(_L("[CSCPServer]-> After setting ETimeout lRetStatus = %d "), lRetStatus); + break; + case RTerminalControl3rdPartySession :: EMaxTimeout: iConfiguration.iMaxTimeout = lNumValue; lRetStatus = iConfiguration.WriteSetupL(); Dprint(_L("[CSCPServer]-> After setting EMaxTimeout lRetStatus = %d "), lRetStatus); break; + default: TUint16* ptr = const_cast(aValue.Ptr()); TPtr valBuf(ptr, aValue.Length(), aValue.Length()); @@ -2931,14 +2877,31 @@ Dprint(_L("[CSCPServer]-> Old Index of EPasscodeHistoryBuffer=%d"), lHistBuffIndex); Dprint(_L("[CSCPServer]-> Old Index of EPasscodeMinChangeTolerance=%d"), lMinTolIndex); } + + /* + * If both ETimeout and EMaxTimeout are marked for cleanup then interchange the cleanup order of + * ETimeout and EMaxTimeout since AutoLock (ETimeout) cannot be disabled + * if MaxAutolock (EMaxTimeout) is still enabled + */ + if( lParamIds[0] == RTerminalControl3rdPartySession :: ETimeout && + lParamIds[1] == RTerminalControl3rdPartySession :: EMaxTimeout) { + + lParamIds[0] = RTerminalControl3rdPartySession :: EMaxTimeout; + lParamIds[1] = RTerminalControl3rdPartySession :: ETimeout; + } } for(TInt j=0; j < lCount; j++) { TInt lCurrParamID = lParamIds[j]; lDefValueBuf->Des().Zero(); lDefValueBuf->Des().Format(_L("%d "), 0); + // Initialize the default values here... switch(lCurrParamID) { + case RTerminalControl3rdPartySession :: ETimeout: + // lDefValueBuf already has the default value, 0 initialized... + lCurrParamID = ESCPAutolockPeriod; + break; case RTerminalControl3rdPartySession :: EMaxTimeout: // lDefValueBuf already has the default value, 0 initialized... lCurrParamID = ESCPMaxAutolockPeriod; @@ -2967,6 +2930,7 @@ for(TInt k=0; k < lDesCount; k++) { TRAP(lStatus, lStatus = SetParameterValueL(lCurrParamID, lDesArr[k]->Des(), lAppID)); + if(KErrNone != lStatus) { Dprint(_L("[CSCPServer]-> ERROR: Unable to cleanup parameter %d error %d"), lParamIds[j], lStatus); lSubOpsFailed = ETrue; @@ -2980,6 +2944,40 @@ CleanupStack :: PopAndDestroy(1); // lDesArray } break; + + case ESCPAutolockPeriod: { + TInt32 lParamValueDB(0); + TInt lParamValueCenRep(0); + TInt32 lCurrParamOwner(0); + + lStatus = lParamDB->GetValueL(RTerminalControl3rdPartySession :: ETimeout, lParamValueDB, lCurrParamOwner); + + if(lStatus != KErrNone) { + Dprint(_L("[CSCPServer]-> ERROR: Unable to get current value of ETimeout from DB...")); + lSubOpsFailed = ETrue; + break; + } + + lStatus = GetAutolockPeriodL(lParamValueCenRep); + + if(lStatus != KErrNone) { + Dprint(_L("[CSCPServer]-> ERROR: Unable to get current value of ETimeout from CenRep...")); + lSubOpsFailed = ETrue; + break; + } + + /* + * It is possible that AutoLock set from UI is different. In that case internal DB and CenRep + * are not in sync. Compare the two values and if they are same assume that the values are in sync. + * Limitation is that if the user sets the AutoLock with the same value as set by the current app then + * AutoLock will get disabled. + * + */ + if(lParamValueCenRep != lParamValueDB) { + break; + } + } + default: { iOverrideForCleanup = ETrue; TRAP(lStatus, lStatus = SetParameterValueL(lCurrParamID, lDefValueBuf->Des(), lAppID)); @@ -2996,7 +2994,8 @@ aParamValArray.AppendL(lTmpBuffer); } } - } + break; + }; if(KErrNone != lStatus) { Dprint(_L("[CSCPServer]-> ERROR: Unable to cleanup parameter %d error %d"), lParamIds[j], lStatus); diff -r 4af31167ea77 -r 13d7c31c74e0 terminalsecurity/SCP/SCPServer/src/SCPSession.cpp --- a/terminalsecurity/SCP/SCPServer/src/SCPSession.cpp Thu Jul 15 19:36:11 2010 +0300 +++ b/terminalsecurity/SCP/SCPServer/src/SCPSession.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -1553,20 +1553,26 @@ Dprint(_L("[CSCPSession]-> NotifyAllStakeHoldersL() <<<")); return KErrNone; } + TInt CSCPSession :: HandleCleanupL(const RMessage2& aMessage) { + Dprint((_L("[CSCPSession]-> HandleCleanupL() >>>"))); + + if( (aMessage.SecureId().iId != KSCPServerSIDTerminalControl) && + (aMessage.SecureId().iId != KSCPEvntHndlrUid)) { + + Dprint((_L("[CSCPSession]-> ERROR: caller app id=%ld. Permission denied..."), aMessage.SecureId().iId)); + User :: Leave(KErrPermissionDenied); + } + // Copy the client data into a local buffer TInt32 lCount = aMessage.GetDesLength(1); -/* // If the caller is not SCPEventHandler the deny access - if(aMessage.SecureId() != KSCPEvntHndlrUid) { - return KErrPermissionDenied; - }*/ - // Atleast one application id has to be present in the received message (atleast 8 bytes) if(lCount < sizeof(TInt32)) { return KErrArgument; } + TInt lStatus = KErrNone; RArray lChangeArray; CleanupClosePushL(lChangeArray); @@ -1575,9 +1581,7 @@ HBufC8* lBuffer = HBufC8 :: NewLC(lCount); TPtr8 bufPtr = lBuffer->Des(); - aMessage.ReadL(1, bufPtr); - - TInt lStatus = KErrNone; + aMessage.ReadL(1, bufPtr); TRAPD(lErr, lStatus = iServer.PerformCleanupL(lBuffer, lChangeArray, lParamValArray)); @@ -1601,8 +1605,10 @@ lParamValArray.ResetAndDestroy(); CleanupStack :: PopAndDestroy(3); // lParamIDArray lParamValArray lBuffer + Dprint((_L("[CSCPSession]-> HandleCleanupL() <<<"))); return lStatus; } + TInt CSCPSession :: HandleSetALPeriodL( const RMessage2& aMessage ) { Dprint((_L("[CSCPSession]-> HandleSetParamMessageL() >>>"))); TBool oldALState = EFalse; diff -r 4af31167ea77 -r 13d7c31c74e0 terminalsecurity/SCP/SCPTimestampPlugin/src/SCPTimestampPlugin.cpp --- a/terminalsecurity/SCP/SCPTimestampPlugin/src/SCPTimestampPlugin.cpp Thu Jul 15 19:36:11 2010 +0300 +++ b/terminalsecurity/SCP/SCPTimestampPlugin/src/SCPTimestampPlugin.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -26,7 +26,6 @@ #include #include #include -#include // For wipe //#include //#include @@ -583,27 +582,6 @@ if ( ( IsAfter( KSCPLastChangeTime, iExpiration, KSCPTypeDays ) == KSCPIsAfter ) || ( expireNow ) ) { - // Force password change - - HBufC16* resText = NULL; - TRAPD( err, resText = LoadResourceL( R_SET_SEC_CODE_AGING ) ); - FormatResourceString(*resText); - if ( err == KErrNone ) // If this fails, go on anyway to signal the psw change - { - TPtr16 bufDes = resText->Des(); - - TRAP_IGNORE( - CAknGlobalNote* note = CAknGlobalNote::NewLC(); - note->ShowNoteL( EAknGlobalWarningNote, bufDes ); - CleanupStack::PopAndDestroy( note ); - ); - - // Wait here a while so the dialog won't appear on top of the note - User::After( KSCPNoteTimeout ); - - delete resText; - } - // Refill the parameters to inform the client that the password // should be changed. aRetParams = CSCPParamObject::NewL(); diff -r 4af31167ea77 -r 13d7c31c74e0 terminalsecurity/SCP/inc/SCPLockCode.h --- a/terminalsecurity/SCP/inc/SCPLockCode.h Thu Jul 15 19:36:11 2010 +0300 +++ b/terminalsecurity/SCP/inc/SCPLockCode.h Thu Aug 19 10:44:50 2010 +0300 @@ -36,7 +36,13 @@ * Default value: 12345 */ const TUint32 KSCPLockCodeDefaultLockCode = 0x00000001; - +/** + * + * The value assigned to this key is used to get and set ifits startup + * Possible values: 0 or 1 + * Default value: 0 +*/ +const TUint32 KSCPStartupQuery = 0x00000002; #endif// End of File diff -r 4af31167ea77 -r 13d7c31c74e0 terminalsecurity/client/BWINS/TerminalControlu.def --- a/terminalsecurity/client/BWINS/TerminalControlu.def Thu Jul 15 19:36:11 2010 +0300 +++ b/terminalsecurity/client/BWINS/TerminalControlu.def Thu Aug 19 10:44:50 2010 +0300 @@ -60,4 +60,5 @@ ?GetPasscodeMinSpecialCharacters@RTerminalControlSession@@QAEHAAJ@Z @ 59 NONAME ; int RTerminalControlSession::GetPasscodeMinSpecialCharacters(long &) ?GetPasscodeDisallowSimple@RTerminalControlSession@@QAEHAAH@Z @ 60 NONAME ; int RTerminalControlSession::GetPasscodeDisallowSimple(int &) ?SetPasscodeDisallowSimple@RTerminalControlSession@@QAEHH@Z @ 61 NONAME ; int RTerminalControlSession::SetPasscodeDisallowSimple(int) + ?ResetDeviceLockParameters@RTerminalControl3rdPartySession@@QAEHXZ @ 62 NONAME ; int RTerminalControl3rdPartySession::ResetDeviceLockParameters(void) diff -r 4af31167ea77 -r 13d7c31c74e0 terminalsecurity/client/eabi/TerminalControlu.def --- a/terminalsecurity/client/eabi/TerminalControlu.def Thu Jul 15 19:36:11 2010 +0300 +++ b/terminalsecurity/client/eabi/TerminalControlu.def Thu Aug 19 10:44:50 2010 +0300 @@ -60,4 +60,5 @@ _ZN23RTerminalControlSession31SetPasscodeMinSpecialCharactersEl @ 59 NONAME _ZN23RTerminalControlSession25GetPasscodeDisallowSimpleERi @ 60 NONAME _ZN23RTerminalControlSession25SetPasscodeDisallowSimpleEi @ 61 NONAME + _ZN31RTerminalControl3rdPartySession25ResetDeviceLockParametersEv @ 62 NONAME diff -r 4af31167ea77 -r 13d7c31c74e0 terminalsecurity/client/src/TerminalControlClient.cpp --- a/terminalsecurity/client/src/TerminalControlClient.cpp Thu Jul 15 19:36:11 2010 +0300 +++ b/terminalsecurity/client/src/TerminalControlClient.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -1317,4 +1317,9 @@ return SendReceive( E3rdPartySetterGet, args1 ); } +EXPORT_C TInt RTerminalControl3rdPartySession :: ResetDeviceLockParameters() { + RDEBUG("RTerminalControl3rdPartySession::SetDeviceLockParameter"); + TIpcArgs args1; + return SendReceive(E3rdPartySetterReset, args1); +} diff -r 4af31167ea77 -r 13d7c31c74e0 terminalsecurity/conf/Keys_SCPLockCode.confml Binary file terminalsecurity/conf/Keys_SCPLockCode.confml has changed diff -r 4af31167ea77 -r 13d7c31c74e0 terminalsecurity/conf/Keys_SCPLockCode_2002677B.crml Binary file terminalsecurity/conf/Keys_SCPLockCode_2002677B.crml has changed diff -r 4af31167ea77 -r 13d7c31c74e0 terminalsecurity/inc/TerminalControlClientServer.h --- a/terminalsecurity/inc/TerminalControlClientServer.h Thu Jul 15 19:36:11 2010 +0300 +++ b/terminalsecurity/inc/TerminalControlClientServer.h Thu Aug 19 10:44:50 2010 +0300 @@ -97,6 +97,7 @@ E3rdPartySetterGet, E3rdPartySetterGetSize, E3rdPartySetterSet, + E3rdPartySetterReset }; #endif// __TERMINALCONTROLCLIENTSERVER_H__ diff -r 4af31167ea77 -r 13d7c31c74e0 terminalsecurity/server/inc/TerminalControlServer.h --- a/terminalsecurity/server/inc/TerminalControlServer.h Thu Jul 15 19:36:11 2010 +0300 +++ b/terminalsecurity/server/inc/TerminalControlServer.h Thu Aug 19 10:44:50 2010 +0300 @@ -158,6 +158,7 @@ void StopProcessByFullNameL ( const TDesC8& aName ); TBool GetPasscodePolicyL ( ); void SetPasscodePolicyL ( TBool aIsSet ); + void ResetParametersL(TInt32 aAppID); private: void SetIntValueL( TInt avalue, TInt aSCPCommandEnum ); diff -r 4af31167ea77 -r 13d7c31c74e0 terminalsecurity/server/src/TerminalControlServer.cpp --- a/terminalsecurity/server/src/TerminalControlServer.cpp Thu Jul 15 19:36:11 2010 +0300 +++ b/terminalsecurity/server/src/TerminalControlServer.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -1195,5 +1195,14 @@ ,policySet, this->Message().SecureId().iId)); } +void CTerminalControlServer :: ResetParametersL(TInt32 aAppID) { + RDEBUG("CTerminalControlServer::ResetParametersL >>>"); + RArray lAppIdArray; + CleanupClosePushL(lAppIdArray); + lAppIdArray.AppendL(TUid :: Uid(aAppID)); + User :: LeaveIfError(iSCPClient.PerformCleanupL(lAppIdArray)); + CleanupStack :: PopAndDestroy(1); //lAppIdArray + RDEBUG("CTerminalControlServer::ResetParametersL <<<"); +} // ---------------------------------------------------------------------------------------- // End of file diff -r 4af31167ea77 -r 13d7c31c74e0 terminalsecurity/server/src/TerminalControlSession.cpp --- a/terminalsecurity/server/src/TerminalControlSession.cpp Thu Jul 15 19:36:11 2010 +0300 +++ b/terminalsecurity/server/src/TerminalControlSession.cpp Thu Aug 19 10:44:50 2010 +0300 @@ -177,6 +177,10 @@ case E3rdPartySetterSet: SetDeviceLockParameterL( aMessage ); break; + + case E3rdPartySetterReset: + Server().ResetParametersL(aMessage.SecureId().iId); + break; } }