# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1266618131 -7200 # Node ID 1422c6cd3f0c2b8452ef92acbd504fcedab1540e # Parent a579325b79dd3e3536e00d16922e73874de9e69e Revision: 201007 Kit: 201007 diff -r a579325b79dd -r 1422c6cd3f0c esockapiextensions/internetsockets/inc/in6_if.h --- a/esockapiextensions/internetsockets/inc/in6_if.h Tue Feb 02 01:27:53 2010 +0200 +++ b/esockapiextensions/internetsockets/inc/in6_if.h Sat Feb 20 00:22:11 2010 +0200 @@ -28,7 +28,7 @@ #define __IN6_IF_H__ #include -#include "in_iface.h" // TSoIfInfo +#include // CNifIfBase::Control(aLevel, aName, aOption, ..) // aLevel is KSOLInterface defined in in_iface.h in standard EPOC @@ -83,6 +83,38 @@ */ const TUint KIfNeedsND = 0x00000100; +const TUint KMaxInterfaceName=32; + +/** + * Holds the name of a network interface. + * + * This is used in TSoIfInfo. + * + */ +typedef TBuf TInterfaceName; + +class TSoIfInfo +// Socket option structure for KSoIfInfo +/** + * Current network interface operation parameters. + * + * It is returned by RSocket::GetOpt(), when that function is called with anOptionLevel + * set to KSOLInterface and anOptionName set to KSoIfInfo. + * + */ + { +public: + /** Feature flags. Possible values are defined in in_iface.h. */ + TUint iFeatures; // Feature flags + /** Maximum transmission unit. */ + TInt iMtu; // Max frame size + /** An approximation of the interface speed in Kbps. */ + TInt iSpeedMetric; // Indication of performance, approx to Kbps + /** Interface protocol name, ipcp::\. */ + TInterfaceName iName; + }; + + class TSoIfInfo6 : public TSoIfInfo // aOption when aName == KSoIfInfo /** * Extends the TSoIfInfo for the receive MTU. @@ -112,6 +144,19 @@ TInt iRMtu; }; +class TSoIfConfigBase +/** + * Base class for TSoInetIfConfig, which simply identifies the protocol family + * using the interface. + * + * @internalComponent + */ + { +public: + /** The protocol family, e.g. KAfInet. */ + TUint iFamily; + }; + class TSoInet6IfConfig : public TSoIfConfigBase /** * IPv6 interface configuration. diff -r a579325b79dd -r 1422c6cd3f0c esockapiextensions/internetsockets/inc/in_iface.h --- a/esockapiextensions/internetsockets/inc/in_iface.h Tue Feb 02 01:27:53 2010 +0200 +++ b/esockapiextensions/internetsockets/inc/in_iface.h Sat Feb 20 00:22:11 2010 +0200 @@ -31,7 +31,7 @@ #if !defined(__NIFVAR_H__) #include #endif - +#include // Feature Flags /** @@ -149,20 +149,6 @@ */ const TUint KSoIfGetConnectionInfo = 0xf001; // Retrieve IAP and NID information -/** -@internalComponent -*/ -const TUint KMaxInterfaceName=32; - -/** - * Holds the name of a network interface. - * - * This is used in TSoIfInfo. - * - * @internalTechnology - */ -typedef TBuf TInterfaceName; - class TInetIfConfig // Information which allows IP to enter route table entries /** @@ -188,28 +174,6 @@ TInetAddr iNameSer2; }; -class TSoIfInfo -// Socket option structure for KSoIfInfo -/** - * Current network interface operation parameters. - * - * It is returned by RSocket::GetOpt(), when that function is called with anOptionLevel - * set to KSOLInterface and anOptionName set to KSoIfInfo. - * - * @internalTechnology - */ - { -public: - /** Feature flags. Possible values are defined in in_iface.h. */ - TUint iFeatures; // Feature flags - /** Maximum transmission unit. */ - TInt iMtu; // Max frame size - /** An approximation of the interface speed in Kbps. */ - TInt iSpeedMetric; // Indication of performance, approx to Kbps - /** Interface protocol name, ipcp::\. */ - TInterfaceName iName; - }; - class TSoIfHardwareAddr // Socket option structure for KSoIfHardwareAddr /** @@ -225,19 +189,6 @@ TSockAddr iHardwareAddr; }; -class TSoIfConfigBase -/** - * Base class for TSoInetIfConfig, which simply identifies the protocol family - * using the interface. - * - * @internalComponent - */ - { -public: - /** The protocol family, e.g. KAfInet. */ - TUint iFamily; - }; - class TSoInetIfConfig : public TSoIfConfigBase /** * Describes the current interface routing configuration. diff -r a579325b79dd -r 1422c6cd3f0c linklayercontrol/networkinterfacemgr/inc/NIFIF.H --- a/linklayercontrol/networkinterfacemgr/inc/NIFIF.H Tue Feb 02 01:27:53 2010 +0200 +++ b/linklayercontrol/networkinterfacemgr/inc/NIFIF.H Sat Feb 20 00:22:11 2010 +0200 @@ -28,11 +28,13 @@ #define SYMBIAN_NETWORKING_UPS #include +#include #include #ifndef SYMBIAN_ENABLE_SPLIT_HEADERS #include #endif +class RMBufChain; /** The direction of data transfer diff -r a579325b79dd -r 1422c6cd3f0c linklayercontrol/networkinterfacemgr/inc/NIFMAN.H --- a/linklayercontrol/networkinterfacemgr/inc/NIFMAN.H Tue Feb 02 01:27:53 2010 +0200 +++ b/linklayercontrol/networkinterfacemgr/inc/NIFMAN.H Sat Feb 20 00:22:11 2010 +0200 @@ -23,9 +23,7 @@ #if !defined(__NIFMAN_H__) #define __NIFMAN_H__ -#include #include -#include #ifndef SYMBIAN_ENABLE_SPLIT_HEADERS #include diff -r a579325b79dd -r 1422c6cd3f0c linklayercontrol/networkinterfacemgr/netcfgext/src/netcfgextnbase.cpp --- a/linklayercontrol/networkinterfacemgr/netcfgext/src/netcfgextnbase.cpp Tue Feb 02 01:27:53 2010 +0200 +++ b/linklayercontrol/networkinterfacemgr/netcfgext/src/netcfgextnbase.cpp Sat Feb 20 00:22:11 2010 +0200 @@ -25,6 +25,7 @@ #include #include #include +#include #ifdef _DEBUG diff -r a579325b79dd -r 1422c6cd3f0c linklayercontrol/networkinterfacemgr/netcfgext/src/nifconfigurationcontrol.cpp --- a/linklayercontrol/networkinterfacemgr/netcfgext/src/nifconfigurationcontrol.cpp Tue Feb 02 01:27:53 2010 +0200 +++ b/linklayercontrol/networkinterfacemgr/netcfgext/src/nifconfigurationcontrol.cpp Sat Feb 20 00:22:11 2010 +0200 @@ -22,6 +22,7 @@ #include #include "nifnullconfiguration.h" #include +#include #include #include #include diff -r a579325b79dd -r 1422c6cd3f0c linklayerprotocols/ethernetnif/EthInt/CLanIp4Bearer.cpp --- a/linklayerprotocols/ethernetnif/EthInt/CLanIp4Bearer.cpp Tue Feb 02 01:27:53 2010 +0200 +++ b/linklayerprotocols/ethernetnif/EthInt/CLanIp4Bearer.cpp Sat Feb 20 00:22:11 2010 +0200 @@ -36,6 +36,7 @@ #include "ProtocolHeaders.h" #include #include "EthProvision.h" +#include using namespace ESock; diff -r a579325b79dd -r 1422c6cd3f0c linklayerprotocols/ethernetnif/EthInt/CLanIp6Bearer.cpp --- a/linklayerprotocols/ethernetnif/EthInt/CLanIp6Bearer.cpp Tue Feb 02 01:27:53 2010 +0200 +++ b/linklayerprotocols/ethernetnif/EthInt/CLanIp6Bearer.cpp Sat Feb 20 00:22:11 2010 +0200 @@ -30,6 +30,7 @@ #include "EthProto.h" #include #include "EthProvision.h" +#include using namespace ESock; diff -r a579325b79dd -r 1422c6cd3f0c linklayerprotocols/ethernetnif/INC/CLanxBearer.h --- a/linklayerprotocols/ethernetnif/INC/CLanxBearer.h Tue Feb 02 01:27:53 2010 +0200 +++ b/linklayerprotocols/ethernetnif/INC/CLanxBearer.h Sat Feb 20 00:22:11 2010 +0200 @@ -35,6 +35,7 @@ #include #include #include +#include class CLANLinkCommon; class TLanProvision; diff -r a579325b79dd -r 1422c6cd3f0c linklayerprotocols/ethernetnif/IRLAN/IRLAN.H --- a/linklayerprotocols/ethernetnif/IRLAN/IRLAN.H Tue Feb 02 01:27:53 2010 +0200 +++ b/linklayerprotocols/ethernetnif/IRLAN/IRLAN.H Sat Feb 20 00:22:11 2010 +0200 @@ -30,6 +30,7 @@ #include "IRLANDAT.H" #include +#include const TUint KIrlanMajorVersionNumber=1; //< Constant specifies Major version number. const TUint KIrlanMinorVersionNumber=0; //< Constant specifies Minor version number. diff -r a579325b79dd -r 1422c6cd3f0c linklayerprotocols/ethernetnif/IRLAN/IRLANCTL.CPP --- a/linklayerprotocols/ethernetnif/IRLAN/IRLANCTL.CPP Tue Feb 02 01:27:53 2010 +0200 +++ b/linklayerprotocols/ethernetnif/IRLAN/IRLANCTL.CPP Sat Feb 20 00:22:11 2010 +0200 @@ -33,6 +33,7 @@ #include "IRLANBUF.H" #include "IRLANDAT.H" #include "irlantimer.h" +#include //#define __TRACEWIN__ #ifdef __TRACEWIN__ diff -r a579325b79dd -r 1422c6cd3f0c linklayerprotocols/pppnif/te_ppp/dummyppp/src/dummypppnif.cpp --- a/linklayerprotocols/pppnif/te_ppp/dummyppp/src/dummypppnif.cpp Tue Feb 02 01:27:53 2010 +0200 +++ b/linklayerprotocols/pppnif/te_ppp/dummyppp/src/dummypppnif.cpp Sat Feb 20 00:22:11 2010 +0200 @@ -23,6 +23,7 @@ #include #include #include +#include #include //New ppp progress states file diff -r a579325b79dd -r 1422c6cd3f0c linklayerprotocols/slipnif/SRC/SLIP.CPP --- a/linklayerprotocols/slipnif/SRC/SLIP.CPP Tue Feb 02 01:27:53 2010 +0200 +++ b/linklayerprotocols/slipnif/SRC/SLIP.CPP Sat Feb 20 00:22:11 2010 +0200 @@ -20,6 +20,7 @@ #include #include #include +#include #include "SLIP.H" #include "SLIP_VER.H" diff -r a579325b79dd -r 1422c6cd3f0c linklayerprotocols/slipnif/SRC/SLIP.H --- a/linklayerprotocols/slipnif/SRC/SLIP.H Tue Feb 02 01:27:53 2010 +0200 +++ b/linklayerprotocols/slipnif/SRC/SLIP.H Sat Feb 20 00:22:11 2010 +0200 @@ -28,6 +28,7 @@ #include #include #include +#include //////////////////////////////////////////////////////////////////////////////// diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipnetworklayer/src/IPProtoSCPRStates.cpp --- a/networkcontrol/ipnetworklayer/src/IPProtoSCPRStates.cpp Tue Feb 02 01:27:53 2010 +0200 +++ b/networkcontrol/ipnetworklayer/src/IPProtoSCPRStates.cpp Sat Feb 20 00:22:11 2010 +0200 @@ -21,6 +21,7 @@ */ #include +#include #include #include #include diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipnetworklayer/src/ipprotodeftscprstates.cpp --- a/networkcontrol/ipnetworklayer/src/ipprotodeftscprstates.cpp Tue Feb 02 01:27:53 2010 +0200 +++ b/networkcontrol/ipnetworklayer/src/ipprotodeftscprstates.cpp Sat Feb 20 00:22:11 2010 +0200 @@ -21,6 +21,7 @@ */ #include +#include #include #include #include diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/iptransportlayer/inc/netmcpr.h --- a/networkcontrol/iptransportlayer/inc/netmcpr.h Tue Feb 02 01:27:53 2010 +0200 +++ b/networkcontrol/iptransportlayer/inc/netmcpr.h Sat Feb 20 00:22:11 2010 +0200 @@ -29,6 +29,8 @@ #include "netmcprstates.h" #include "IPMessages.h" +#include +#include #include #include #include diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/dialogcreator/bwins/ipupsdialogu.def --- a/networkcontrol/ipupsplugins/dialogcreator/bwins/ipupsdialogu.def Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -EXPORTS - ?ImplementationGroupProxy@@YAPBUTImplementationProxy@@AAH@Z @ 1 NONAME ; struct TImplementationProxy const * ImplementationGroupProxy(int &) - ?KTestNotifierImplementationId@@3KB @ 2 NONAME ; unsigned long const KTestNotifierImplementationId - ?KNotifierImplementationId@@3KB @ 3 NONAME ; unsigned long const KNotifierImplementationId - diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/dialogcreator/eabi/ipupsdialogu.def --- a/networkcontrol/ipupsplugins/dialogcreator/eabi/ipupsdialogu.def Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -EXPORTS - _Z24ImplementationGroupProxyRi @ 1 NONAME - KNotifierImplementationId @ 2 NONAME DATA 4 - KTestNotifierImplementationId @ 3 NONAME DATA 4 - diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/dialogcreator/group/bld.inf --- a/networkcontrol/ipupsplugins/dialogcreator/group/bld.inf Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// Component description file -// -// - -PRJ_EXPORTS -../group/ipupsdialog.iby /epoc32/rom/include/ipupsdialog.iby - -PRJ_MMPFILES -ipupsdialog.mmp - -PRJ_PLATFORMS -DEFAULT diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/dialogcreator/group/ipupsdialog.iby --- a/networkcontrol/ipupsplugins/dialogcreator/group/ipupsdialog.iby Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* -* 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: -* -*/ -#ifndef SYMBIAN_IPUPSDIALOG_IBY -#define SYMBIAN_IPUPSDIALOG_IBY - -REM IP UPS Dialog Creator - -#ifdef TEXT_ONLY_ROM -#include -#endif - -define ZDRIVE \epoc32\data\Z - -data=ZDRIVE\system\data\ups_101F7989_10281DD8.rsc system\data\ups_101F7989_10281DD8.rsc - - - -#ifdef _DEBUG -ECOM_PLUGIN_UDEB(ipupsdialog.dll,10285A7B.rss) -#else -ECOM_PLUGIN(ipupsdialog.dll,10285A7B.rss) -#endif - -// If NETWORKING_UPS_NOTIFIERUID is defined, then patch the Dialog Creator to use that Notifier UID. -// Otherwise if _STARTUPMODE1 is defined then use Networking UPS Test Notifier UID, otherwise don't patch. - -#ifndef NETWORKING_UPS_NOTIFIERUID -#ifdef _STARTUPMODE1 -#define NETWORKING_UPS_NOTIFIERUID 0x1028369b -#endif -#endif - -#ifdef NETWORKING_UPS_NOTIFIERUID -patchdata ipupsdialog.dll@KNotifierImplementationId NETWORKING_UPS_NOTIFIERUID -#endif - -#endif //SYMBIAN_IPUPSDIALOG_IBY diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/dialogcreator/group/ipupsdialog.mmp --- a/networkcontrol/ipupsplugins/dialogcreator/group/ipupsdialog.mmp Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// IP implementation of User Prompt Service dialog creator ECOM plug-in -// -// - -/** - @file -*/ - -target ipupsdialog.dll -capability protserv trustedui -targettype plugin -deffile ipupsdialog.def - -uid 0x10009D8D 0x10285A7B -vendorid 0x70000001 - -userinclude ../source -userinclude ../inc - -// OS_LAYER_SYSTEMINCLUDE_SYMBIAN illegal dependency on apaid.h -MW_LAYER_SYSTEMINCLUDE_SYMBIAN - -sourcepath ../source -source ipupsdialog.cpp -source ipupsconst.cpp - -sourcepath ../resource -start resource 10285A7B.rss -target ipupsdialog.rsc -end - -// -// Default reference policy file for IP UPS -// -// This policy file is not installed by default in the proper UPS policy file directory -// (/private/10283558/policies/), as it is intended to be copied there as required. - -sourcepath ../../policyfile -start resource ups_101F7989_10281DD8.rss -targetpath /system/data -end - -library apgrfx.lib apparc.lib ecom.lib euser.lib upspolicies.lib -library upsclient.lib ipcstream.lib estor.lib sisregistryclient.lib upsnotifierutil.lib - -SMPSAFE diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/dialogcreator/inc/ipupsconst.h --- a/networkcontrol/ipupsplugins/dialogcreator/inc/ipupsconst.h Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// This file specifies the constants which are used to configure -// the NetUps during testing. The associated enumerations are to -// to be found in netupstls.h. -// @internalComponent -// @prototype -// -// - -#ifndef IPUPSCONST_H -#define IPUPSCONST_H - -#include - -/** @SYMPatchable Disable UPS IP functionality -*/ -IMPORT_C extern const TUint32 KNotifierImplementationId; -IMPORT_C extern const TUint32 KTestNotifierImplementationId; - - -#endif // IPUPSCONST_H \ No newline at end of file diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/dialogcreator/inc/ipupsdialog.h --- a/networkcontrol/ipupsplugins/dialogcreator/inc/ipupsdialog.h Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,98 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// Class declaration for Reference dialog creator plug-in for IP. -// -// - -/** - @file - @internalTechnology - @prototype -*/ - -#ifndef IPUPSDIALOG_H -#define IPUPSDIALOG_H - -#include -#include -#include -#include -#include - -using namespace UserPromptService; - -/** - Reference implementation of a User Prompt Service dialog creator ECOM plug-in for IP. - */ -NONSHARABLE_CLASS(CIpUpsDialog) : public CDialogCreator - { - public: - typedef enum - { - EIdle, - EPrepareDialog, - EDisplayDialog, - EProcessResult - } TState; - static CIpUpsDialog* CreateDialogCreatorL(); - ~CIpUpsDialog(); - -protected: - // From CActive - void DoCancel(); - void RunL(); - TInt RunError(TInt aError); - - // From CDialogCreator - void PrepareDialog( - const CPromptRequest& aRequest, const CPolicy& aPolicy, - const RPointerArray& aFingerprints, const CClientEntity* aClientEntity, - const TAny* aDialogCreatorParams, TRequestStatus& aStatus); - void DisplayDialog(CPolicy::TOptions& aOptionSelcted, const CFingerprint*& aFingerprint, - TUint& aEvaluatorInfo, TRequestStatus& aStatus); - -private: - CIpUpsDialog(); - void ConstructL(); - void ResolveClientNameL(const TSecureId& aSid); - TBool ResolveClientNameFromAppArcL(const TSecureId& aSid); - TBool ResolveClientNameFromSisRegistryL(const TSecureId& aSid); - void ResolveVendorNameL(const TVendorId& aVid); - void DoPrepareDialogL(); - void DoDisplayDialogL(); - void DoProcessResultL(); - - // Const data from UPS & policy evaluator - const CPromptRequest* iRequest; //< Request data from system server - const CPolicy* iPolicy; //< The policy that matches iRequest - const RPointerArray* iFingerprints; //< Fingerprints generated by policy evaluator from iRequest - const TAny* iEvalPrivateData; //< Extra data generated by policy evaluator - - TRequestStatus* iClientStatus; //< UPS's request object - - // Return data for DisplayDialog - CPolicy::TOptions* iOptionSelected; //< The option selected by the user - const CFingerprint** iFingerprint; //< The fingerprint for the new decision if Always or Never selected - TUint* iEvaluatorInfo; //< Plug-in specific field in decision record - - CPromptData* iPromptData; //< Data used by notifier to render dialog - RBuf8 iPromptDataDes; //< Externalized prompt data - TPromptResult iPromptResult; //< Response buffer for notifier - TPckg iPromptResultPckg; //< Packages iPromptResult - RNotifier iNotifier; //< Connection to notifier framework - TState iState; //< Current state - TUint iNotifierId; //< User prompting user Id - }; -#endif // SMSUPSDIALOG_H - diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/dialogcreator/resource/10285A7B.rss --- a/networkcontrol/ipupsplugins/dialogcreator/resource/10285A7B.rss Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// UIDs quick-ref -// ECOM DLL UID: 0x10285A7B -// ECOM interface UID: KUidUpsDialogCreatorInterface -// ECOM Implementation: 0x10285A7C -// -// - - -#include -#include - -RESOURCE REGISTRY_INFO r_registry - { - dll_uid = 0x10285A7B; - interfaces = - { - INTERFACE_INFO - { - interface_uid = KUidUpsDialogCreatorInterface; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x10285A7C; - version_no = 1; - display_name = "IP Reference dialog creator"; - default_data = ""; - opaque_data = ""; - } - }; - } - }; - } diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/dialogcreator/source/ipupsconst.cpp --- a/networkcontrol/ipupsplugins/dialogcreator/source/ipupsconst.cpp Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// This file provides the definition of the patchable constants -// used in debugging. -// @internalAll -// @prototype -// -// - -#include - -/** @SYMPatchable Disable UPS IP functionality -*/ -EXPORT_C extern const TUint32 KNotifierImplementationId = 0x1028369b; -EXPORT_C extern const TUint32 KTestNotifierImplementationId = 0x10285887; - - diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/dialogcreator/source/ipupsdialog.cpp --- a/networkcontrol/ipupsplugins/dialogcreator/source/ipupsdialog.cpp Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,440 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// -#include // Included here, since removal of Platform headers from public headers[f32file.h] for TB92SDK -#include "ipupsdialog.h" -#include -#include -#include -#include -#include -#include -#include -#include - -#include "ipupsconst.h" - -static const TUint KIpDialogCreatorImplementationId = 0x10285A7C; - -CIpUpsDialog* CIpUpsDialog::CreateDialogCreatorL() -/** -Factory method that instantiates a new dialog creator ECOM plug-in. - -@return A pointer to the new reference dialog creator object. -*/ - { - CIpUpsDialog* self = new (ELeave)CIpUpsDialog(); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - return self; - } - -const TImplementationProxy ImplementationTable[] = - { - IMPLEMENTATION_PROXY_ENTRY(KIpDialogCreatorImplementationId, CIpUpsDialog::CreateDialogCreatorL) - }; - -EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount) -/** -Standard ECOM factory -*/ - { - aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy); - return ImplementationTable; - } - - -CIpUpsDialog::CIpUpsDialog() -/** -Constructor -*/ - : CDialogCreator(), iPromptResult(),iPromptResultPckg(iPromptResult), iState(EIdle) - { - CActiveScheduler::Add(this); - } - -CIpUpsDialog::~CIpUpsDialog() -/** -Destructor -*/ - { - Deque(); - iPromptDataDes.Close(); - delete iPromptData; - iNotifier.Close(); - } - -void CIpUpsDialog::ConstructL() -/** -Second phase constructor -*/ - { - User::LeaveIfError(iNotifier.Connect()); - - // setup the value for the notifier. Test or reference -#if (defined (__EABI__) || defined (__GCCXML__)) - // this value is patched via the patchable constant mechanism - iNotifierId = KNotifierImplementationId; -#else - TUint notifierUidVal = 0; - TInt retCode = UserSvr::HalFunction(EHalGroupEmulator, EEmulatorHalIntProperty, - (TAny*)"NETWORKING_UPS_NOTIFIERUID", ¬ifierUidVal); - - if (retCode == KErrNone) - { - iNotifierId = notifierUidVal; - } - else - { - TUint startupModeVal = 0; - retCode = UserSvr::HalFunction(EHalGroupEmulator, EEmulatorHalIntProperty, - (TAny*)"startupmode", &startupModeVal); - - if(retCode == KErrNone && startupModeVal == 1) - iNotifierId = KTestNotifierImplementationId; - else - iNotifierId = KNotifierImplementationId; - } -#endif - } - -void CIpUpsDialog::DoCancel() - { - if (iState == EProcessResult) - { - iNotifier.CancelNotifier(TUid::Uid(iNotifierId)); - } - - if (iClientStatus) - { - User::RequestComplete(iClientStatus, KErrCancel); - } - } - -TInt CIpUpsDialog::RunError(TInt aError) - { - if (iClientStatus) - { - User::RequestComplete(iClientStatus, aError); - } - return KErrNone; - } - -void CIpUpsDialog::RunL() - { - User::LeaveIfError(iStatus.Int()); - switch (iState) - { - case EPrepareDialog: - DoPrepareDialogL(); - break; - case EDisplayDialog: - DoDisplayDialogL(); - break; - case EProcessResult: - DoProcessResultL(); - break; - default: - ASSERT(EFalse); - } - } - -void CIpUpsDialog::DoPrepareDialogL() - { - iPromptData = CPromptData::NewL(); - - // Only one state at the moment but more should be - // added for long running operators e.g. querying the SIS registry - // or resolving the client entity. - ResolveClientNameL(iRequest->ClientSid()); - - // Get the vendor name for the client process - ResolveVendorNameL(iRequest->ClientVid()); - - // pass the destination information through. - iPromptData->iDestination.Create(iRequest->Destination()); - - // Pass any opaque data from the user to the notifier - iPromptData->iOpaqueData.Create(iRequest->OpaqueData()); - - // Server / Service localized names generated in notifier plug-in. - iPromptData->iServerSid = iRequest->ServerSid(); - iPromptData->iServiceId = iRequest->ServiceId(); - - // Different dialog text is displayed depending on whether the client application - // is signed. - // N.B. Protected SID is assumed to be signed or included at ROM build. - if (iRequest->IsClientSidProtected()) iPromptData->iFlags |= ETrustedClient; - - // Use the options specified by the policy - iPromptData->iOptions = iPolicy->Options(); - - // Add the descriptions of the fingerprints. This could be used - // to allow the user to grant access to all destinations - // or a single destination. - TInt count = iFingerprints->Count(); - for (TInt i = 0; i < count; ++i) - { - HBufC* description = (*iFingerprints)[i]->Description().AllocLC(); - iPromptData->iDescriptions.AppendL(description); - CleanupStack::Pop(description); - } - - User::RequestComplete(iClientStatus, KErrNone); - // DisplayDialog is invoked by the UPS, this just verifies - // that PrepareDialog was called first. - iState = EDisplayDialog; - } - -void CIpUpsDialog::DoDisplayDialogL() -/** -Uses the notifier framework to display the dialog. -*/ - { - // Externalize the prompt data to a descriptor - RNullWriteStream ns; - ns << *iPromptData; - ns.CommitL(); - iPromptDataDes.CreateL(ns.BytesWritten()); - RDesWriteStream ws; - ws.Open(iPromptDataDes); - ws << *iPromptData; - ws.CommitL(); - iNotifier.StartNotifierAndGetResponse(iStatus, TUid::Uid(iNotifierId), - iPromptDataDes, iPromptResultPckg); - SetActive(); - iState = EProcessResult; - } - -void CIpUpsDialog::DoProcessResultL() -/** -Processes the result returned by the notifier. -*/ - { - if(iPromptResult.iSelected == CPolicy::EAlways || iPromptResult.iSelected == CPolicy::ENever) - { - // The Always or Never option was selected so return the fingerprint - // for the new decision record. - // - // In this implementation a copy of the original fingerprint is returned. However, - // it is permitted to return a different fingerprint e.g. a modifier description. - if(iPromptResult.iDestination >= 0 && iPromptResult.iDestination < iFingerprints->Count()) - { - *iFingerprint = (*iFingerprints)[iPromptResult.iDestination]; - } - else - { - ASSERT(EFalse); // should never happen, unless notifier is buggy. - } - } - - // ensure the notifier has returned a valid option specified in policy file - if(iPromptResult.iSelected & iPromptData->iOptions) - { - *iOptionSelected = iPromptResult.iSelected; - } - else - { - ASSERT(EFalse); - } - - iState = EIdle; - User::RequestComplete(iClientStatus, KErrNone); - } - -void CIpUpsDialog::ResolveVendorNameL(const TVendorId& aVid) -/** -Looks up the localized vendor name for the client process and writes -this to iPromptData.iVendorName. - -Typically, this would be resolved from the SIS registry or a lookup table. - -@param aVid The vendor id of the client process. -*/ - { - if (iPromptData->iVendorName.Length() != 0) - { - // already obtained vendor name from SIS registry - return; - } - - if (aVid.iId == 0x70000001) - { - _LIT(KSymbian, "Symbian Software Ltd"); - iPromptData->iVendorName.Create(KSymbian); - } - else - { - _LIT(KUnknown, "Unknown vendor"); - iPromptData->iVendorName.Create(KUnknown); - } - } - -void CIpUpsDialog::ResolveClientNameL(const TSecureId& aSid) -/** -Generates a human readable name for the client process. In order of -preference the following data is returned - -- The AppArc caption name. -- The localized package name that owns this SID. -- A value from a lookup table. -- The filename for the client process executable. - -@param aSid The secure id of the client process. -*/ - { - TBool found = EFalse; - - // Although the client name from AppArc takes precedance the SIS - // registry is always invoked in order to retrieve the vendor name - found |= ResolveClientNameFromSisRegistryL(aSid); - found |= ResolveClientNameFromAppArcL(aSid); - - // A lookup that maps secure-ids to application names could - // be used here. - - // Fall back to the filename of the client process - // The original thread may have exited so the process handle is used instead. - // because the client-side object e.g. RSocket may be shared between threads. - - // If the process has exited then it's o.k. to leave. - if (! found) - { - RProcess clientProcess; - User::LeaveIfError(clientProcess.Open(iRequest->ClientProcessId())); - CleanupClosePushL(clientProcess); - iPromptData->iClientName.Create(clientProcess.FileName()); - CleanupStack::PopAndDestroy(&clientProcess); - } - } - -TBool CIpUpsDialog::ResolveClientNameFromAppArcL(const TSecureId& aSid) -/** -Gets the caption name for the application from AppArc (if available). - -@param aSid The secure id of the client process. -@return ETrue if a match was found in apparc; otherwise, EFalse is returned. -*/ - { - TBool found(EFalse); - - RApaLsSession apa; - CleanupClosePushL(apa); - TInt err = apa.Connect(); - if (err == KErrNone) - { - TApaAppInfo* info = new(ELeave) TApaAppInfo(); - CleanupStack::PushL(info); - - err = apa.GetAppInfo(*info, TUid::Uid(aSid)); - - if (err == KErrNone) - { - iPromptData->iClientName.Close(); - iPromptData->iClientName.Create(info->iCaption); - found = ETrue; - } - else if (err != KErrNotFound) - { - User::Leave(err); - } - - CleanupStack::PopAndDestroy(info); - } - else if (err != KErrNotFound) - { - // If the connection to apparc failed with KErrNotFound - // then the error is ignored becase we assume the dialog - // creator was invoked from text-shell - User::Leave(err); - } - - CleanupStack::PopAndDestroy(&apa); - return found; - } - -TBool CIpUpsDialog::ResolveClientNameFromSisRegistryL(const TSecureId& aSid) -/** -Retrieves the client and vendor information from the SIS registry. -@param aSid The secure-id of the client application to lookup in the registry. -@return ETrue, if the lookup was successful; otherwise, EFalse is returned. -*/ - { - TBool found(EFalse); - Swi::RSisRegistrySession r; - User::LeaveIfError(r.Connect()); - CleanupClosePushL(r); - - Swi::CSisRegistryPackage* p(0); - TRAPD(err, p = r.SidToPackageL(aSid)); - if (err == KErrNone) - { - iPromptData->iClientName.Create(p->Name()); - iPromptData->iVendorName.Create(p->Vendor()); - found = ETrue; - delete p; - } - - CleanupStack::PopAndDestroy(&r); - return found; - } - -// From CDialogCreator -void CIpUpsDialog::PrepareDialog(const UserPromptService::CPromptRequest& aRequest, - const CPolicy& aPolicy, - const RPointerArray& aFingerprints, - const CClientEntity* aClientEntity, - const TAny* aEvalPrivateData, - TRequestStatus& aStatus) - { - aStatus = KRequestPending; - iClientStatus = &aStatus; - - iRequest = &aRequest; - iPolicy = &aPolicy; - iFingerprints = &aFingerprints; - iEvalPrivateData = aEvalPrivateData; - (void) aClientEntity; - - // Kick off dialog creator state machine - iState = EPrepareDialog; - iStatus = KRequestPending; - TRequestStatus* status = &iStatus; - SetActive(); - User::RequestComplete(status, KErrNone); - } - -void CIpUpsDialog::DisplayDialog(CPolicy::TOptions& aOptions, - const CFingerprint*& aFingerprint, - TUint& aEvaluatorInfo, - TRequestStatus& aStatus) - { - aStatus = KRequestPending; - iClientStatus = &aStatus; - - iOptionSelected = &aOptions; - iFingerprint = &aFingerprint; - aFingerprint = 0; - iEvaluatorInfo = &aEvaluatorInfo; - iClientStatus = &aStatus; - - // Start state machine - ASSERT(iState == EDisplayDialog); // PrepareDialog should have been called first - iStatus = KRequestPending; - TRequestStatus* status = &iStatus; - SetActive(); - User::RequestComplete(status, KErrNone); - } - diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/group/bld.inf --- a/networkcontrol/ipupsplugins/group/bld.inf Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// UPS Plugins and Utilities for IP Networking -// -// - -/** - @file -*/ - -#define SYMBIAN_NETWORKING_UPS - -#ifdef SYMBIAN_NETWORKING_UPS - -#include "../dialogcreator/group/bld.inf" - -PRJ_PLATFORMS -DEFAULT - -PRJ_TESTEXPORTS -../test/te_ipups/scripts/te_ipups.script z:/testdata/scripts/te_ipups/te_ipups.script -../test/te_ipups/data/te_ipups.ini z:/testdata/configs/te_ipups/te_ipups.ini - -../test/te_ipups/group/te_ipups.iby /epoc32/rom/include/te_ipups.iby - -PRJ_TESTMMPFILES -../test/te_ipups/group/te_ipups.mmp - -#endif diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/group/networking_ipups.mrp --- a/networkcontrol/ipupsplugins/group/networking_ipups.mrp Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -# -# 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: -# - -component networking_ipups -source \sf\os\networkingsrv\networkcontrol\ipupsplugins -binary \sf\os\networkingsrv\networkcontrol\ipupsplugins\group all -exports \sf\os\networkingsrv\networkcontrol\ipupsplugins\group -notes_source \component_defs\release.src - - -ipr E -ipr T \sf\os\networkingsrv\networkcontrol\ipupsplugins\test diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/policyfile/ups_101F7989_10281DD8.rss --- a/networkcontrol/ipupsplugins/policyfile/ups_101F7989_10281DD8.rss Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// - -#include - -UID2 KUidUpsPolicyResourceFile - -//New Unique identifier for this policy file -UID3 0x10282FBE - - -// UPS policy file for IP -RESOURCE POLICIES IP_Default_policies - { - header = POLICY_HEADER - { - authorisationpolicy = ECheckUnprotectedSids; - dialogcreator = 0x10285A7C; - // Use default policy evaluator - policyevaluator = 0x00000000; - }; - policies = - { - POLICY - { - sid_classes = KAllSids; - destination = "*"; - options = KSessionYes | KSessionNo | KAlways | KNever; - } - - }; - } diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/test/te_ipups/data/te_ipups.ini --- a/networkcontrol/ipupsplugins/test/te_ipups/data/te_ipups.ini Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,260 +0,0 @@ -//DialogOptionSelection (multiple options could be specified using delimeter ',') = Always/Never/SessionYes/SessionNo -//ExpectedDialogOptions (Optional) = Always/Never/SessionYes/SessionNo -//PlatSecPass = True/False -//ExpectedUpsDecision (Optional, multiple options could be specified using delimeter ',') = Yes/No/SessionYes/SessionNo -//PromptTriggerCount (Optional) = Expected number of times prompt would be triggered by test -//NoOfAuthoriseCalls = 1..N (N - Maximum number of iterations , 10 is the limit) -//AlwaysOpenNewSession (Each iteration open the session in the beiginning of the iteration and close at the end if set to True) = True/False -//UseSameSubSession (Optional, Each iteration uses same SubSession if set to True) = True/False -//UseSameSubSessionAfterClose (Optional, Each iteration uses same SubSession after closing it at the end of iteration) = True/False -//AlwaysOpenNewSubSession (Optional, Always open new SubSession for each iteration) = True/False - - -[ProtSidPlatSecFail] -ServiceId = 10281DD8 -Destination = 0776655443 -OpaqueData = NoOpaqueData -DialogOptionSelection = SessionYes -PlatSecPass = False -ExpectedUpsDecision = SessionYes -PromptTriggerCount = 1 - -[UnProtSidPlatSecPass] -ServiceId = 10281DD8 -Destination = 0776655443 -OpaqueData = NoOpaqueData -DialogOptionSelection = SessionYes -PlatSecPass = True -ExpectedUpsDecision = SessionYes -PromptTriggerCount = 1 - -[UnProtSidPlatSecFail] -ServiceId = 10281DD8 -Destination = 0776655443 -OpaqueData = NoOpaqueData -DialogOptionSelection = SessionYes -PlatSecPass = False -ExpectedUpsDecision = SessionYes -PromptTriggerCount = 1 - -[ProtSidPlatSecPass] -ServiceId = 10281DD8 -Destination = 0776655443 -OpaqueData = NoOpaqueData -DialogOptionSelection = SessionYes -PlatSecPass = True -ExpectedUpsDecision = Yes -PromptTriggerCount = 0 - -[ValidPromptResponse] -ServiceId = 10281DD8 -Destination = 0776655443 -OpaqueData = NoOpaqueData -DialogOptionSelection = SessionYes -PlatSecPass = False -ExpectedUpsDecision = SessionYes -PromptTriggerCount = 1 -ExpectedDialogOptions = Always/Never/SessionYes/SessionNo - -[ValidDestinationIPPrompted] -ServiceId = 10281DD8 -Destination = 10.0.0.10 -OpaqueData = NoOpaqueData -DialogOptionSelection = SessionYes -PlatSecPass = False -ExpectedUpsDecision = SessionYes -PromptTriggerCount = 1 - -[UserResponseSessionYes] -ServiceId = 10281DD8 -Destination = 10.0.0.10 -OpaqueData = NoOpaqueData -DialogOptionSelection = SessionYes -PlatSecPass = False -ExpectedUpsDecision = SessionYes -PromptTriggerCount = 1 - -[PromptAgainAfterSessionYes] -ServiceId = 10281DD8 -Destination = 0789012345 -OpaqueData = NoOpaqueData -DialogOptionSelection = SessionYes -PlatSecPass = False -ExpectedUpsDecision = SessionYes -PromptTriggerCount = 2 -NoOfAuthoriseCalls = 2 - -[PromptAfterSessionYesWithNewSubSession] -ServiceId = 10281DD8 -Destination = 0789012345 -OpaqueData = NoOpaqueData -DialogOptionSelection = SessionYes -PlatSecPass = False -ExpectedUpsDecision = SessionYes -PromptTriggerCount = 2 -NoOfAuthoriseCalls = 2 -UseSameSubSessionAfterClose = True - -[PromptAgainAfterSessionNo] -ServiceId = 10281DD8 -Destination = 0789012345 -OpaqueData = NoOpaqueData -DialogOptionSelection = SessionNo -PlatSecPass = False -ExpectedUpsDecision = SessionNo -PromptTriggerCount = 2 -NoOfAuthoriseCalls = 2 - -[PromptAfterSessionNoWithNewSubSession] -ServiceId = 10281DD8 -Destination = 0789012345 -OpaqueData = NoOpaqueData -DialogOptionSelection = SessionNo -PlatSecPass = False -ExpectedUpsDecision = SessionNo -PromptTriggerCount = 2 -NoOfAuthoriseCalls = 2 -UseSameSubSessionAfterClose = True - -[NoPromptAfterAlwaysResponse] -ServiceId = 10281DD8 -Destination = 0789012345 -OpaqueData = NoOpaqueData -DialogOptionSelection = Always -PlatSecPass = False -ExpectedUpsDecision = SessionYes -PromptTriggerCount = 1 -NoOfAuthoriseCalls = 2 - -[NoPromptInNewSessionAfterAlways] -ServiceId = 10281DD8 -Destination = 0789012345 -OpaqueData = NoOpaqueData -DialogOptionSelection = Always -PlatSecPass = False -ExpectedUpsDecision = SessionYes -PromptTriggerCount = 1 -NoOfAuthoriseCalls = 2 -AlwaysOpenNewSession = True -UseSameSubSessionAfterClose = True - -[NoPromptInSameSessionAfterNever] -ServiceId = 10281DD8 -Destination = 0789012345 -OpaqueData = NoOpaqueData -DialogOptionSelection = Never -PlatSecPass = False -ExpectedUpsDecision = SessionNo -PromptTriggerCount = 1 -NoOfAuthoriseCalls = 2 - -[NoPromptInNewSessionAfterNever] -ServiceId = 10281DD8 -Destination = 0789012345 -OpaqueData = NoOpaqueData -DialogOptionSelection = Never -PlatSecPass = False -ExpectedUpsDecision = SessionNo -PromptTriggerCount = 1 -NoOfAuthoriseCalls = 2 -AlwaysOpenNewSession = True -UseSameSubSessionAfterClose = True - -[UserResponseYes] -ServiceId = 10281DD8 -Destination = 0789012345 -OpaqueData = NoOpaqueData -DialogOptionSelection = SessionYes -PlatSecPass = False -ExpectedUpsDecision = SessionYes -PromptTriggerCount = 1 - -[UserResponseNo] -ServiceId = 10281DD8 -Destination = 10.0.0.1 -OpaqueData = NoOpaqueData -DialogOptionSelection = SessionNo -PlatSecPass = False -ExpectedUpsDecision = SessionNo -PromptTriggerCount = 1 - -[Client1UserResponseSessionYes] -ServiceId = 10281DD8 -Destination = 20.0.0.1 -OpaqueData = NoOpaqueData -DialogOptionSelection = SessionYes -PlatSecPass = False -ExpectedUpsDecision = SessionYes - -[Client2UserResponseSessionNo] -ServiceId = 10281DD8 -Destination = 20.0.0.2 -OpaqueData = NoOpaqueData -DialogOptionSelection = SessionNo -PlatSecPass = False -ExpectedUpsDecision = SessionNo - -[Client1UserResponseAlways] -ServiceId = 10281DD8 -Destination = 20.0.0.1 -OpaqueData = NoOpaqueData -DialogOptionSelection = Always -PlatSecPass = False -ExpectedUpsDecision = SessionYes - -[Client2UserResponseNever] -ServiceId = 10281DD8 -Destination = 20.0.0.2 -OpaqueData = NoOpaqueData -DialogOptionSelection = Never -PlatSecPass = False -ExpectedUpsDecision = SessionNo - -[Client2UserResponseSessionNo] -ServiceId = 10281DD8 -Destination = 20.0.0.2 -OpaqueData = NoOpaqueData -DialogOptionSelection = SessionNo -PlatSecPass = False -ExpectedUpsDecision = SessionNo - -[MultipleSubSessionsWithAlways] -ServiceId = 10281DD8 -Destination = 20.0.0.1 -OpaqueData = NoOpaqueData -DialogOptionSelection = Always -PlatSecPass = False -ExpectedUpsDecision = SessionYes -PromptTriggerCount = 1 -NoOfAuthoriseCalls = 2 -AlwaysOpenNewSubSession = True - -[MultipleSubSessionsWithSessionYes] -ServiceId = 10281DD8 -Destination = 20.0.0.1 -OpaqueData = NoOpaqueData -DialogOptionSelection = SessionYes,Always -PlatSecPass = False -ExpectedUpsDecision = SessionYes,SessionYes -PromptTriggerCount = 2 -NoOfAuthoriseCalls = 2 -AlwaysOpenNewSubSession = True - -[CancelPromptCall] -ServiceId = 10281DD8 -Destination = 20.0.0.1 -OpaqueData = NoOpaqueData -DialogOptionSelection = SessionYes -PlatSecPass = False -CancelPromptCall = True -PromptTriggerCount = 0 - -[StorePromptTriggerCount] -StorePromptTriggerCount = True - -[PromptCount_2] -PromptTriggerCount = 2 - -[PromptCount_3] -PromptTriggerCount = 3 - diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/test/te_ipups/group/te_ipups.iby --- a/networkcontrol/ipupsplugins/test/te_ipups/group/te_ipups.iby Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// tups_ipups.iby -// -// - -#ifndef __TE_IPUPS_IBY__ -#define __TE_IPUPS_IBY__ - -#include -#include -#include - -#ifdef NETWORKING_UPS_TESTS -data=ABI_DIR\BUILD_DIR\te_ipups.exe \sys\bin\te_ipups.exe -#endif - -REM Test policy files export -data=ZDRIVE\private\10283558\policies\ups_10285B91_10281DD8.rsc \private\10283558\policies\ups_10285B91_10281DD8.rsc -data=ZDRIVE\private\10283558\policies\ups_A0000001_10281DD8.rsc \private\10283558\policies\ups_A0000001_10281DD8.rsc -data=ZDRIVE\private\10283558\policies\ups_10000001_10281DD8.rsc \private\10283558\policies\ups_10000001_10281DD8.rsc -data=ZDRIVE\private\10283558\policies\ups_10000002_10281DD8.rsc \private\10283558\policies\ups_10000002_10281DD8.rsc -data=ZDRIVE\system\data\ups_test_always_101F7989_10281DD8.rsc \system\data\ups_test_always_101F7989_10281DD8.rsc - -#ifdef NETWORKING_UPS_TESTS -REM Test script and data files export -data = ZDRIVE\testdata\scripts\te_ipups\te_ipups.script \testdata\scripts\te_ipups\te_ipups.script -data = ZDRIVE\testdata\configs\te_ipups\te_ipups.ini \testdata\configs\te_ipups\te_ipups.ini -#endif - -#endif diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/test/te_ipups/group/te_ipups.mmp --- a/networkcontrol/ipupsplugins/test/te_ipups/group/te_ipups.mmp Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,86 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// - -/** - @file - @test -*/ - - - - -TARGET te_ipups.exe -TARGETTYPE exe -UID 0x1000007A 0x10285B91 -VENDORID 0x70000001 - -CAPABILITY ALL -TCB - -SOURCEPATH ../src -SOURCE te_ipups_stepbase.cpp -SOURCE te_ipups_server.cpp -SOURCE te_ipups_ups_step.cpp -SOURCE te_ipups_notify_count.cpp -SOURCE te_ipups_delete_decision_db.cpp - -USERINCLUDE ../inc - -SOURCEPATH ../policyfile - -START RESOURCE ups_10285B91_10281DD8.rss -TARGETPATH /private/10283558/policies -END - -START RESOURCE ups_10285B91_10281DD8.rss -TARGETPATH /private/10283558/policies -TARGET ups_a0000001_10281dd8.rsc -END - -START RESOURCE ups_10285B91_10281DD8.rss -TARGETPATH /private/10283558/policies -TARGET ups_10000001_10281dd8.rsc -END - -START RESOURCE ups_10285B91_10281DD8.rss -TARGETPATH /private/10283558/policies -TARGET ups_10000002_10281dd8.rsc -END - -START RESOURCE ups_test_always_101F7989_10281DD8.rss -TARGETPATH /system/data -TARGET ups_test_always_101F7989_10281DD8.rss -END - -#ifdef SYMBIAN_OLD_EXPORT_LOCATION -SYSTEMINCLUDE /epoc32/include -SYSTEMINCLUDE /epoc32/include/ups -SYSTEMINCLUDE /epoc32/include/test -#else -OS_LAYER_SYSTEMINCLUDE_SYMBIAN -SYSTEMINCLUDE /epoc32/include/platform/test -#endif - -LIBRARY euser.lib -LIBRARY testexecuteutils.lib -LIBRARY testexecutelogclient.lib -LIBRARY bafl.lib -LIBRARY efsrv.lib -LIBRARY numberconversion.lib -LIBRARY upsclient.lib -LIBRARY upsmanagement.lib -LIBRARY upsnotifierutil.lib -LIBRARY estor.lib - -SMPSAFE diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/test/te_ipups/inc/te_ipups_delete_decision_db.h --- a/networkcontrol/ipupsplugins/test/te_ipups/inc/te_ipups_delete_decision_db.h Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// te_ipups_notify_count.h -// -// - -/** - @file - @test - @internalComponent - Internal Symbian test code -*/ - - -#if (!defined DELETE_DECISION_DB_STEP_H) -#define DELETE_DECISION_DB_STEP_H -#include - -class CIpUpsDeleteDecisionDB : public CTeIpUpsStepBase - { -public: - CIpUpsDeleteDecisionDB(); - virtual ~CIpUpsDeleteDecisionDB(); - virtual TVerdict doTestStepPreambleL(); - virtual TVerdict doTestStepL(); - virtual TVerdict doTestStepPostambleL(); - }; - -_LIT(KIpUpsDeleteDecisionDB,"IpUpsDeleteDecisionDB"); - - -#endif diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/test/te_ipups/inc/te_ipups_notify_count.h --- a/networkcontrol/ipupsplugins/test/te_ipups/inc/te_ipups_notify_count.h Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// - -/** - @file - @test - @internalComponent - Internal Symbian test code -*/ - - -#if (!defined NOTIFY_COUNT_STEP_H) -#define NOTIFY_COUNT_STEP_H -#include - -class CIpUpsNotifyCount : public CTeIpUpsStepBase - { -public: - CIpUpsNotifyCount(); - virtual ~CIpUpsNotifyCount(); - virtual TVerdict doTestStepPreambleL(); - virtual TVerdict doTestStepL(); - virtual TVerdict doTestStepPostambleL(); - }; - -_LIT(KIpUpsNotifyCount,"IpUpsNotifyCount"); - -_LIT(KIpUpsStorePromptTriggerCount, "StorePromptTriggerCount"); - -#endif diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/test/te_ipups/inc/te_ipups_server.h --- a/networkcontrol/ipupsplugins/test/te_ipups/inc/te_ipups_server.h Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// - -/** - @file - @test - @internalComponent - Internal Symbian test code -*/ - -#if (!defined TE_IPUPS_SERVER_H) -#define TE_IPUPS_SERVER_H -#include - - -class CTeIpUpsSuite : public CTestServer - { -public: - static CTeIpUpsSuite* NewL(const TDesC& aName); - - virtual CTestStep* CreateTestStep(const TDesC& aStepName); - - }; - -#endif diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/test/te_ipups/inc/te_ipups_stepbase.h --- a/networkcontrol/ipupsplugins/test/te_ipups/inc/te_ipups_stepbase.h Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// - -/** - @file - @test - @internalComponent - Internal Symbian test code -*/ - -#if (!defined TE_IPUPS_STEP_BASE) -#define TE_IPUPS_STEP_BASE -#include -#include - -class CTeIpUpsStepBase : public CTestStep - { -public: - virtual ~CTeIpUpsStepBase(); - CTeIpUpsStepBase(); - virtual TVerdict doTestStepPreambleL(); - virtual TVerdict doTestStepPostambleL(); - }; - -#endif diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/test/te_ipups/inc/te_ipups_ups_step.h --- a/networkcontrol/ipupsplugins/test/te_ipups/inc/te_ipups_ups_step.h Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,93 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// - -/** - @file - @test - @internalComponent - Internal Symbian test code -*/ - - -#if (!defined TE_IPUPS_UPS_STEP_H) -#define TE_IPUPS_UPS_STEP_H -#include -#include "te_ipups_stepbase.h" -#include - -class CIpUpsStep : public CTeIpUpsStepBase - { -public: - CIpUpsStep(); - ~CIpUpsStep(); - virtual TVerdict doTestStepPreambleL(); - virtual TVerdict doTestStepL(); - virtual TVerdict doTestStepPostambleL(); -private: - UserPromptService::CPolicy::TOptions ButtonToOption(const TPtrC& aButton); - TPtrC TUpsDecisionToString(TUpsDecision aDecision); - TUpsDecision TUpsDecisionFromString(const TPtrC& aDecision); - TBool OptionsFlagToString(TUint aOptions, TDes& aOptionString, TBool aCheckAgainstExpectedOpt=ETrue); - TBool VerifyAndPrintPromptDataL(); - void GetValueAt(const TInt aPos, const TPtrC& aArrayString, const TChar aDelimeter, TDes& aValue); - - void GetSessionAndSubSession(UserPromptService::RUpsSession& aUpsSession, UserPromptService::RUpsSubsession& aUpsSubsession); - - TInt iNotifyCount; - UserPromptService::CPromptData* iPromptData; - - TInt iServiceUID; - TPtrC iServerName; - TPtrC iDestination; - TPtrC iOpaqueData; - TBuf8<64> iOpaqueDataStored; - TPtrC iDialogOption; - TPtrC iExpectedDialogOptions; - TBool iPlatSecPass; - TPtrC iExpectedUpsDecision; - TInt iPromptTriggerCount; - TInt iNoOfAuthoriseCalls; - TBool iCancelPromptCall; - - TBool iAlwaysOpenNewSession; - - TBool iUseSameSubSession; - TBool iUseSameSubSessionAfterClose; - TBool iAlwaysOpenNewSubSession; - TInt iTestNotifierMode; - }; - -_LIT(KIpUpsClientStep,"IpUpsStep"); - -_LIT(KIpUpsServiceId, "ServiceId"); -_LIT(KIpUpsDestination, "Destination"); -_LIT(KIpUpsOpaqueData, "OpaqueData"); -_LIT(KIpUpsDialogOptionSelection, "DialogOptionSelection"); -_LIT(KExpectedDialogOptions, "ExpectedDialogOptions"); -_LIT(KIpUpsPlatSecPass, "PlatSecPass"); -_LIT(KIpUpsExpectedDecision, "ExpectedUpsDecision"); -_LIT(KIpUpsPromptTriggerCount, "PromptTriggerCount"); -_LIT(KIpUpsNoOfAuthoriseCalls, "NoOfAuthoriseCalls"); -_LIT(KIpUpsCancelPromptCall, "CancelPromptCall"); - -_LIT(KIpUpsAlwaysOpenNewSession, "AlwaysOpenNewSession"); - -_LIT(KIpUpsUseSameSubSession, "UseSameSubSession"); -_LIT(KIpUpsUseSameSubSessionAfterClose, "UseSameSubSessionAfterClose"); -_LIT(KIpUpsAlwaysOpenNewSubSession, "AlwaysOpenNewSubSession"); - -const TInt KMaxNoOfAuthoriseCalls = 10; -const TChar KIniFileDelimeter = ','; - -#endif diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/test/te_ipups/policyfile/ups_10285B91_10281DD8.rss --- a/networkcontrol/ipupsplugins/test/te_ipups/policyfile/ups_10285B91_10281DD8.rss Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// - -#include - -UID2 KUidUpsPolicyResourceFile - -//New Unique identifier for this policy file -UID3 0x10285B92 - - -// UPS policy file for IP -RESOURCE POLICIES IP_Default_policies - { - header = POLICY_HEADER - { - authorisationpolicy = ECheckUnprotectedSids; - dialogcreator = 0x10285A7C; - policyevaluator = 0x00000000; - }; - policies = - { - POLICY - { - sid_classes = KAllSids; - destination = "*"; - options = KSessionYes | KSessionNo | KAlways | KNever; - } - - }; - } diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/test/te_ipups/policyfile/ups_test_always_101F7989_10281DD8.rss --- a/networkcontrol/ipupsplugins/test/te_ipups/policyfile/ups_test_always_101F7989_10281DD8.rss Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// - -#include - -UID2 KUidUpsPolicyResourceFile - -//New Unique identifier for this policy file -UID3 0x10282FBE - - -// UPS policy file for IP -RESOURCE POLICIES IP_Default_policies - { - header = POLICY_HEADER - { - authorisationpolicy = EAlwaysCheck; - dialogcreator = 0x10285A7C; - // Use default policy evaluator - policyevaluator = 0x00000000; - }; - policies = - { - POLICY - { - sid_classes = KAllSids; - destination = "*"; - options = KSessionYes | KSessionNo | KAlways | KNever; - } - - }; - } diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/test/te_ipups/scripts/te_ipups.script --- a/networkcontrol/ipupsplugins/test/te_ipups/scripts/te_ipups.script Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,372 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// Contains integration tests for UPS server. -// -// - -PRINT Run Basic integration test cases for PREQ1116 ( IP Networking User Prompting ) - -RUN_PROGRAM -1 SETCAP te_ipups.exe 0003FFFE -SID A0000001 te_ipups_un_prot_sid.exe -RUN_PROGRAM -1 SETCAP te_ipups.exe 0003FFFE -SID 10000001 te_ipups_1.exe -RUN_PROGRAM -1 SETCAP te_ipups.exe 0003FFFE -SID 10000002 te_ipups_2.exe - -LOAD_SUITE te_ipups -LOAD_SUITE te_ipups_1 -LOAD_SUITE te_ipups_2 -LOAD_SUITE te_ipups_un_prot_sid - - -START_TESTCASE ProtSidPlatSecFail -//!@SYMTestCaseID NET-IP-UPS-1001 -//!@SYMPREQ PREQ1116 -//!@SYMTestCaseDesc Prompt when protected SID, platsec fails. -//!@SYMTestPriority Critical -//!@SYMTestActions Start UPS Session, SubSession and call Authorise. -//!@SYMTestExpectedResults Pass -//!@SYMTestType CIT - -RUN_TEST_STEP 100 te_ipups IpUpsDeleteDecisionDB -RUN_TEST_STEP 100 te_ipups IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini ProtSidPlatSecFail -END_TESTCASE ProtSidPlatSecFail - -START_TESTCASE UnProtSidPlatSecPass -//!@SYMTestCaseID NET-IP-UPS-1002 -//!@SYMPREQ PREQ1116 -//!@SYMTestCaseDesc Prompt when unprotected SID, platsec passes. -//!@SYMTestPriority Critical -//!@SYMTestActions Start UPS Session, SubSession and call Authorise. -//!@SYMTestExpectedResults Pass -//!@SYMTestType CIT - -RUN_TEST_STEP 100 te_ipups IpUpsDeleteDecisionDB -RUN_TEST_STEP 100 te_ipups_un_prot_sid IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini UnProtSidPlatSecPass -END_TESTCASE UnProtSidPlatSecPass - -START_TESTCASE UnProtSidPlatSecFail -//!@SYMTestCaseID NET-IP-UPS-1003 -//!@SYMPREQ PREQ1116 -//!@SYMTestCaseDesc Prompt when unprotected SID, platsec fails. -//!@SYMTestPriority Critical -//!@SYMTestActions Start UPS Session, SubSession and call Authorise. -//!@SYMTestExpectedResults Pass -//!@SYMTestType CIT - -RUN_TEST_STEP 100 te_ipups IpUpsDeleteDecisionDB -RUN_TEST_STEP 100 te_ipups_un_prot_sid IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini UnProtSidPlatSecFail -END_TESTCASE UnProtSidPlatSecFail - -START_TESTCASE ProtSidPlatSecPass -//!@SYMTestCaseID NET-IP-UPS-1004 -//!@SYMPREQ PREQ1116 -//!@SYMTestCaseDesc No Prompt when protected SID, platsec passes. -//!@SYMTestPriority Critical -//!@SYMTestActions Start UPS Session, SubSession and call Authorise. -//!@SYMTestExpectedResults Pass -//!@SYMTestType CIT - -RUN_TEST_STEP 100 te_ipups IpUpsDeleteDecisionDB -RUN_TEST_STEP 100 te_ipups IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini ProtSidPlatSecPass -END_TESTCASE ProtSidPlatSecPass - -START_TESTCASE ValidPromptResponse -//!@SYMTestCaseID NET-IP-UPS-1005 -//!@SYMPREQ PREQ1116 -//!@SYMTestCaseDesc Prompt only offers SessionYes, SessionNo, Always & Never. -//!@SYMTestPriority Critical -//!@SYMTestActions Start UPS Session, SubSession and call Authorise. -//!@SYMTestExpectedResults Pass -//!@SYMTestType CIT - -RUN_TEST_STEP 100 te_ipups IpUpsDeleteDecisionDB -RUN_TEST_STEP 100 te_ipups IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini ValidPromptResponse -END_TESTCASE ValidPromptResponse - -START_TESTCASE ValidDestinationIPPrompted -//!@SYMTestCaseID NET-IP-UPS-1006 -//!@SYMPREQ PREQ1116 -//!@SYMTestCaseDesc Prompt contains details of client. -//!@SYMTestPriority Critical -//!@SYMTestActions Start UPS Session, SubSession and call Authorise. -//!@SYMTestExpectedResults Pass -//!@SYMTestType CIT - -RUN_TEST_STEP 100 te_ipups IpUpsDeleteDecisionDB -RUN_TEST_STEP 100 te_ipups IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini ValidDestinationIPPrompted -END_TESTCASE ValidDestinationIPPrompted - -START_TESTCASE UserResponseSessionYes -//!@SYMTestCaseID NET-IP-UPS-1007 -//!@SYMPREQ PREQ1116 -//!@SYMTestCaseDesc Client receives correct SessionYes response. -//!@SYMTestPriority Critical -//!@SYMTestActions Start UPS Session, SubSession and call Authorise. -//!@SYMTestExpectedResults Pass -//!@SYMTestType CIT - -RUN_TEST_STEP 100 te_ipups IpUpsDeleteDecisionDB -RUN_TEST_STEP 100 te_ipups IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini UserResponseSessionYes -END_TESTCASE UserResponseSessionYes - -START_TESTCASE PromptAgainAfterSessionYes -//!@SYMTestCaseID NET-IP-UPS-1008 -//!@SYMPREQ PREQ1116 -//!@SYMTestCaseDesc Prompt again after response first SessionYes response. -//!@SYMTestPriority Critical -//!@SYMTestActions Start UPS Session, SubSession and call Authorise. -//!@SYMTestExpectedResults Pass -//!@SYMTestType CIT - -RUN_TEST_STEP 100 te_ipups IpUpsDeleteDecisionDB -RUN_TEST_STEP 100 te_ipups IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini PromptAgainAfterSessionYes -END_TESTCASE PromptAgainAfterSessionYes - -START_TESTCASE PromptAfterSessionYesWithNewSubSession -//!@SYMTestCaseID NET-IP-UPS-1009 -//!@SYMPREQ PREQ1116 -//!@SYMTestCaseDesc Prompt when starting subsequent sub session after initial SessionYes. -//!@SYMTestPriority Critical -//!@SYMTestActions Start UPS Session, SubSession and call Authorise. -//!@SYMTestExpectedResults Pass -//!@SYMTestType CIT - -RUN_TEST_STEP 100 te_ipups IpUpsDeleteDecisionDB -RUN_TEST_STEP 100 te_ipups IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini PromptAfterSessionYesWithNewSubSession -END_TESTCASE PromptAfterSessionYesWithNewSubSession - -START_TESTCASE PromptAgainAfterSessionNo -//!@SYMTestCaseID NET-IP-UPS-1010 -//!@SYMPREQ PREQ1116 -//!@SYMTestCaseDesc Prompt again after response SessionNo. -//!@SYMTestPriority Critical -//!@SYMTestActions Start UPS Session, SubSession and call Authorise. -//!@SYMTestExpectedResults Pass -//!@SYMTestType CIT - -RUN_TEST_STEP 100 te_ipups IpUpsDeleteDecisionDB -RUN_TEST_STEP 100 te_ipups IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini PromptAgainAfterSessionNo -END_TESTCASE PromptAgainAfterSessionNo - -START_TESTCASE PromptAfterSessionNoWithNewSubSession -//!@SYMTestCaseID NET-IP-UPS-1011 -//!@SYMPREQ PREQ1116 -//!@SYMTestCaseDesc Prompt when starting subsequent sub session after initial SessionNo. -//!@SYMTestPriority Critical -//!@SYMTestActions Start UPS Session, SubSession and call Authorise. -//!@SYMTestExpectedResults Pass -//!@SYMTestType CIT - -RUN_TEST_STEP 100 te_ipups IpUpsDeleteDecisionDB -RUN_TEST_STEP 100 te_ipups IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini PromptAfterSessionNoWithNewSubSession -END_TESTCASE PromptAfterSessionNoWithNewSubSession - -START_TESTCASE NoPromptAfterAlwaysResponse -//!@SYMTestCaseID NET-IP-UPS-1012 -//!@SYMPREQ PREQ1116 -//!@SYMTestCaseDesc User response Always - No further Prompting in same session. -//!@SYMTestPriority Critical -//!@SYMTestActions Start UPS Session, SubSession and call Authorise. -//!@SYMTestExpectedResults Pass -//!@SYMTestType CIT - -RUN_TEST_STEP 100 te_ipups IpUpsDeleteDecisionDB -RUN_TEST_STEP 100 te_ipups IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini NoPromptAfterAlwaysResponse -END_TESTCASE NoPromptAfterAlwaysResponse - -START_TESTCASE NoPromptInNewSessionAfterAlways -//!@SYMTestCaseID NET-IP-UPS-1013 -//!@SYMPREQ PREQ1116 -//!@SYMTestCaseDesc User response Always - No further Prompting in subsequent session. -//!@SYMTestPriority Critical -//!@SYMTestActions Start UPS Session, SubSession and call Authorise. -//!@SYMTestExpectedResults Pass -//!@SYMTestType CIT - -RUN_TEST_STEP 100 te_ipups IpUpsDeleteDecisionDB -RUN_TEST_STEP 100 te_ipups IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini NoPromptInNewSessionAfterAlways -END_TESTCASE NoPromptInNewSessionAfterAlways - -START_TESTCASE NoPromptInSameSessionAfterNever -//!@SYMTestCaseID NET-IP-UPS-1014 -//!@SYMPREQ PREQ1116 -//!@SYMTestCaseDesc User response Never - No further Prompting in same session. -//!@SYMTestPriority Critical -//!@SYMTestActions Start UPS Session, SubSession and call Authorise. -//!@SYMTestExpectedResults Pass -//!@SYMTestType CIT - -RUN_TEST_STEP 100 te_ipups IpUpsDeleteDecisionDB -RUN_TEST_STEP 100 te_ipups IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini NoPromptInSameSessionAfterNever -END_TESTCASE NoPromptInSameSessionAfterNever - -START_TESTCASE NoPromptInNewSessionAfterNever -//!@SYMTestCaseID NET-IP-UPS-1015 -//!@SYMPREQ PREQ1116 -//!@SYMTestCaseDesc User response Never - No further Prompting in subsequent session. -//!@SYMTestPriority Critical -//!@SYMTestActions Start UPS Session, SubSession and call Authorise. -//!@SYMTestExpectedResults Pass -//!@SYMTestType CIT - -RUN_TEST_STEP 100 te_ipups IpUpsDeleteDecisionDB -RUN_TEST_STEP 100 te_ipups IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini NoPromptInNewSessionAfterNever -END_TESTCASE NoPromptInNewSessionAfterNever - -START_TESTCASE UserResponseYes -//!@SYMTestCaseID NET-IP-UPS-1016 -//!@SYMPREQ PREQ1116 -//!@SYMTestCaseDesc User returned response SessionYes and receives same. -//!@SYMTestPriority Critical -//!@SYMTestActions Start UPS Session, SubSession and call Authorise. -//!@SYMTestExpectedResults Pass -//!@SYMTestType CIT - -RUN_TEST_STEP 100 te_ipups IpUpsDeleteDecisionDB -RUN_TEST_STEP 100 te_ipups IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini UserResponseYes -END_TESTCASE UserResponseYes - -START_TESTCASE UserResponseNo -//!@SYMTestCaseID NET-IP-UPS-1017 -//!@SYMPREQ PREQ1116 -//!@SYMTestCaseDesc User returned response SessionNo and receives same. -//!@SYMTestPriority Critical -//!@SYMTestActions Start UPS Session, SubSession and call Authorise. -//!@SYMTestExpectedResults Pass -//!@SYMTestType CIT - -RUN_TEST_STEP 100 te_ipups IpUpsDeleteDecisionDB -RUN_TEST_STEP 100 te_ipups IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini UserResponseNo -END_TESTCASE UserResponseNo - -START_TESTCASE MultipleClientWithSessionYesAndSessionNo -//!@SYMTestCaseID NET-IP-UPS-1018 -//!@SYMPREQ PREQ1116 -//!@SYMTestCaseDesc Multiple UPS SubSessions and clients - SessionYes + SessionNo User response. -//!@SYMTestPriority Critical -//!@SYMTestActions Start UPS Session, SubSession and call Authorise. -//!@SYMTestExpectedResults Pass -//!@SYMTestType CIT - -RUN_TEST_STEP 100 te_ipups IpUpsDeleteDecisionDB -RUN_TEST_STEP 100 te_ipups IpUpsNotifyCount z:\testdata\configs\te_ipups\te_ipups.ini StorePromptTriggerCount -CONCURRENT -RUN_TEST_STEP 100 te_ipups_1 IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini Client1UserResponseSessionYes -DELAY 1 -RUN_TEST_STEP 100 te_ipups_2 IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini Client2UserResponseSessionNo -DELAY 1 -RUN_TEST_STEP 100 te_ipups IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini Client2UserResponseSessionNo -CONSECUTIVE -RUN_TEST_STEP 100 te_ipups IpUpsNotifyCount z:\testdata\configs\te_ipups\te_ipups.ini PromptCount_3 -END_TESTCASE MultipleClientWithSessionYesAndSessionNo - -START_TESTCASE MultipleClientWithAlwaysAndNever -//!@SYMTestCaseID NET-IP-UPS-1019 -//!@SYMPREQ PREQ1116 -//!@SYMTestCaseDesc Multiple UPS SubSessions and Clients - Always + Never User responses. -//!@SYMTestPriority Critical -//!@SYMTestActions Start UPS Session, SubSession and call Authorise. -//!@SYMTestExpectedResults Pass -//!@SYMTestType CIT - -RUN_TEST_STEP 100 te_ipups IpUpsDeleteDecisionDB -RUN_TEST_STEP 100 te_ipups IpUpsNotifyCount z:\testdata\configs\te_ipups\te_ipups.ini StorePromptTriggerCount -CONCURRENT -RUN_TEST_STEP 100 te_ipups_1 IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini Client1UserResponseAlways -DELAY 1 -RUN_TEST_STEP 100 te_ipups_2 IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini Client2UserResponseNever -DELAY 1 -RUN_TEST_STEP 100 te_ipups IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini Client2UserResponseNever -CONSECUTIVE -RUN_TEST_STEP 100 te_ipups IpUpsNotifyCount z:\testdata\configs\te_ipups\te_ipups.ini PromptCount_3 -END_TESTCASE MultipleClientWithAlwaysAndNever - -START_TESTCASE MultipleClientWithAlwaysAndSessionNo -//!@SYMTestCaseID NET-IP-UPS-1020 -//!@SYMPREQ PREQ1116 -//!@SYMTestCaseDesc Multiple UPS SubSessions and clients - Always + SessionNo User Responses. -//!@SYMTestPriority Critical -//!@SYMTestActions Start UPS Session, SubSession and call Authorise. -//!@SYMTestExpectedResults Pass -//!@SYMTestType CIT - -RUN_TEST_STEP 100 te_ipups IpUpsDeleteDecisionDB -RUN_TEST_STEP 100 te_ipups IpUpsNotifyCount z:\testdata\configs\te_ipups\te_ipups.ini StorePromptTriggerCount -CONCURRENT -RUN_TEST_STEP 100 te_ipups_1 IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini Client1UserResponseAlways -DELAY 1 -RUN_TEST_STEP 100 te_ipups_2 IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini Client2UserResponseSessionNo -DELAY 1 -RUN_TEST_STEP 100 te_ipups IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini Client2UserResponseSessionNo -CONSECUTIVE -RUN_TEST_STEP 100 te_ipups IpUpsNotifyCount z:\testdata\configs\te_ipups\te_ipups.ini PromptCount_3 -END_TESTCASE MultipleClientWithAlwaysAndSessionNo - -START_TESTCASE MultipleClientWithSessionYesAndNever -//!@SYMTestCaseID NET-IP-UPS-1021 -//!@SYMPREQ PREQ1116 -//!@SYMTestCaseDesc Multiple UPS SubSessions and clients - SessionYes + Never User Responses. -//!@SYMTestPriority Critical -//!@SYMTestActions Start UPS Session, SubSession and call Authorise. -//!@SYMTestExpectedResults Pass -//!@SYMTestType CIT - -RUN_TEST_STEP 100 te_ipups IpUpsDeleteDecisionDB -RUN_TEST_STEP 100 te_ipups IpUpsNotifyCount z:\testdata\configs\te_ipups\te_ipups.ini StorePromptTriggerCount -CONCURRENT -RUN_TEST_STEP 100 te_ipups_1 IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini Client1UserResponseSessionYes -DELAY 1 -RUN_TEST_STEP 100 te_ipups_2 IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini Client2UserResponseNever -DELAY 1 -RUN_TEST_STEP 100 te_ipups IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini Client2UserResponseNever -CONSECUTIVE -RUN_TEST_STEP 100 te_ipups IpUpsNotifyCount z:\testdata\configs\te_ipups\te_ipups.ini PromptCount_3 -END_TESTCASE MultipleClientWithSessionYesAndNever - -START_TESTCASE MultipleSubSessionsWithAlways -//!@SYMTestCaseID NET-IP-UPS-1022 -//!@SYMPREQ PREQ1116 -//!@SYMTestCaseDesc Multiple UPS SubSessions, single client - Always + No prompt. -//!@SYMTestPriority Critical -//!@SYMTestActions Start UPS Session, SubSession and call Authorise. -//!@SYMTestExpectedResults Pass -//!@SYMTestType CIT - -RUN_TEST_STEP 100 te_ipups IpUpsDeleteDecisionDB -RUN_TEST_STEP 100 te_ipups IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini MultipleSubSessionsWithAlways -END_TESTCASE MultipleSubSessionsWithAlways - -START_TESTCASE MultipleSubSessionsWithSessionYes -//!@SYMTestCaseID NET-IP-UPS-1023 -//!@SYMPREQ PREQ1116 -//!@SYMTestCaseDesc Multiple UPS SubSessions, single client - SessionYes + Prompt. -//!@SYMTestPriority Critical -//!@SYMTestActions Start UPS Session, SubSession and call Authorise. -//!@SYMTestExpectedResults Pass -//!@SYMTestType CIT - -RUN_TEST_STEP 100 te_ipups IpUpsDeleteDecisionDB -RUN_TEST_STEP 100 te_ipups IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini MultipleSubSessionsWithSessionYes -END_TESTCASE MultipleSubSessionsWithSessionYes - -START_TESTCASE CancelPromptCall -//!@SYMTestCaseID NET-IP-UPS-1024 -//!@SYMPREQ PREQ1116 -//!@SYMTestCaseDesc Cancel authorisation request mid-prompting. -//!@SYMTestPriority Critical -//!@SYMTestActions Start UPS Session, SubSession and call Authorise. -//!@SYMTestExpectedResults Pass -//!@SYMTestType CIT - -RUN_TEST_STEP 100 te_ipups IpUpsDeleteDecisionDB -RUN_TEST_STEP_RESULT -3 100 te_ipups IpUpsStep z:\testdata\configs\te_ipups\te_ipups.ini CancelPromptCall -END_TESTCASE CancelPromptCall diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/test/te_ipups/src/te_ipups_delete_decision_db.cpp --- a/networkcontrol/ipupsplugins/test/te_ipups/src/te_ipups_delete_decision_db.cpp Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,82 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// - -/** - @file - @test - @internalComponent - Internal Symbian test code -*/ - -#include "te_ipups_stepbase.h" -#include "te_ipups_delete_decision_db.h" - -CIpUpsDeleteDecisionDB::CIpUpsDeleteDecisionDB() -/** - * Constructor - */ - { - SetTestStepName(KIpUpsDeleteDecisionDB); - } - -CIpUpsDeleteDecisionDB::~CIpUpsDeleteDecisionDB() -/** - * Destructor - */ - { - } - -TVerdict CIpUpsDeleteDecisionDB::doTestStepPreambleL() -/** - * @return - TVerdict code - */ - { - SetTestStepResult(EPass); - return TestStepResult(); - } - -TVerdict CIpUpsDeleteDecisionDB::doTestStepL() -/** - * @return - TVerdict code - */ - { - UserPromptService::RUpsManagement upsManagement; - - //Connect to the UPS Manager - User::LeaveIfError(upsManagement.Connect()); - - //Delete the contents of the Decision Database - TRAPD(err, upsManagement.DeleteDatabaseL()); - - if (err != KErrNone) - { - ERR_PRINTF2(_L("UPS Database Deletion attempt failed ( %d )"), err); - } - else - { - INFO_PRINTF1(_L("UPS Database Deleted.")); - } - - SetTestStepError(err); - - return TestStepResult(); - } - -TVerdict CIpUpsDeleteDecisionDB::doTestStepPostambleL() -/** - * @return - TVerdict code - */ - { - return TestStepResult(); - } diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/test/te_ipups/src/te_ipups_notify_count.cpp --- a/networkcontrol/ipupsplugins/test/te_ipups/src/te_ipups_notify_count.cpp Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,113 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// - -/** - @file - @test - @internalComponent - Internal Symbian test code -*/ - -#include "te_ipups_ups_step.h" -#include "te_ipups_notify_count.h" -#include "upstestnotifierproperties.h" - -CIpUpsNotifyCount::CIpUpsNotifyCount() -/** - * Constructor - */ - { - SetTestStepName(KIpUpsNotifyCount); - } - -CIpUpsNotifyCount::~CIpUpsNotifyCount() -/** - * Destructor - */ - { - } - -TVerdict CIpUpsNotifyCount::doTestStepPreambleL() -/** - * @return - TVerdict code - */ - { - TSecurityPolicy nullPolicy(ECapability_None); - TInt err; - - //Properties modified to be returned to test harness from test notifier - err = RProperty::Define(KUidPSUPSTestNotifCategory, KUnStart, KUnCountKeyType, nullPolicy, nullPolicy); - if (err != KErrAlreadyExists && err != KErrNone) - { - User::LeaveIfError(err); - } - - //Define a new Property which would be used to store the count to retreive later for comparison - err = RProperty::Define(KUidPSUPSTestNotifCategory, KUnStoredNotifyCount, KUnStoredCountKeyType, nullPolicy, nullPolicy); - if (err != KErrAlreadyExists && err != KErrNone) - { - User::LeaveIfError(err); - } - - SetTestStepResult(EPass); - return TestStepResult(); - } - -TVerdict CIpUpsNotifyCount::doTestStepL() -/** - * NotifyCount test step either stores the count retireved and store it in separate property defined or - * it compares the retireved notify count with the stored value + count increment expected relative to stored. - * @return - TVerdict code - */ - { - TBool storePromptTriggerCount = EFalse; - - GetBoolFromConfig(ConfigSection(),KIpUpsStorePromptTriggerCount, storePromptTriggerCount); - - if (storePromptTriggerCount) - { - TInt notifyCountReturned = 0; - User::LeaveIfError(RProperty::Get(KUidPSUPSTestNotifCategory, KUnNotifyCount, notifyCountReturned)); - - User::LeaveIfError(RProperty::Set(KUidPSUPSTestNotifCategory, KUnStoredNotifyCount, notifyCountReturned)); - - INFO_PRINTF2(_L("NotifyCount Stored ( %d )"), notifyCountReturned); - } - else - { - TInt promptTriggerCount = 0; - - GetIntFromConfig(ConfigSection(),KIpUpsPromptTriggerCount, promptTriggerCount); - - TInt notifyCountReturned = 0; - User::LeaveIfError(RProperty::Get(KUidPSUPSTestNotifCategory, KUnNotifyCount, notifyCountReturned)); - - TInt sotredPromptTriggerCount = 0; - User::LeaveIfError(RProperty::Get(KUidPSUPSTestNotifCategory, KUnStart+2, sotredPromptTriggerCount)); - - INFO_PRINTF3(_L("NotifyCount Expected ( %d ) <> NotifyCount Returned ( %d )"), promptTriggerCount+sotredPromptTriggerCount, notifyCountReturned); - - TEST ( (promptTriggerCount + sotredPromptTriggerCount) == notifyCountReturned); - } - - return TestStepResult(); - } - -TVerdict CIpUpsNotifyCount::doTestStepPostambleL() -/** - * @return - TVerdict code - */ - { - return TestStepResult(); - } diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/test/te_ipups/src/te_ipups_server.cpp --- a/networkcontrol/ipupsplugins/test/te_ipups/src/te_ipups_server.cpp Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,111 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// - -/** - @file - @test - @internalComponent - Internal Symbian test code -*/ - -#include "te_ipups_server.h" -#include "te_ipups_ups_step.h" -#include "te_ipups_notify_count.h" -#include "te_ipups_delete_decision_db.h" -#include - -CTeIpUpsSuite* CTeIpUpsSuite::NewL(const TDesC& aName) -/** - * @return - Instance of the test server - */ - { - CTeIpUpsSuite * server = new (ELeave) CTeIpUpsSuite(); - CleanupStack::PushL(server); - server->ConstructL(aName); - CleanupStack::Pop(server); - return server; - } - - -LOCAL_C void MainL() -/** - * Main implementation - */ - { - CActiveScheduler* sched=NULL; - sched=new(ELeave) CActiveScheduler; - CActiveScheduler::Install(sched); - CTeIpUpsSuite* server = NULL; - - CCommandLineArguments* args = CCommandLineArguments::NewLC(); - TPtrC exeName = args->Arg(0); - TParse fullName; - fullName.Set(exeName, NULL, NULL); - CleanupStack::PopAndDestroy(args); - - // Create the CTestServer derived server - TRAPD(err,server = CTeIpUpsSuite::NewL(fullName.Name())); - if(!err) - { - // Sync with the client and enter the active scheduler - RProcess::Rendezvous(KErrNone); - sched->Start(); - } - delete server; - delete sched; - } - - - -GLDEF_C TInt E32Main() -/** - * @return - Standard Epoc error code on process exit - * Process entry point. Called by client using RProcess API - */ - { - __UHEAP_MARK; - CTrapCleanup* cleanup = CTrapCleanup::New(); - if(cleanup == NULL) - { - return KErrNoMemory; - } - TRAPD(err,MainL()); - delete cleanup; - __UHEAP_MARKEND; - return err; - } - - -CTestStep* CTeIpUpsSuite::CreateTestStep(const TDesC& aStepName) -/** - * @return - A CTestStep derived instance - */ - { - CTestStep* testStep = NULL; - - if(aStepName == KIpUpsClientStep) - { - testStep = new CIpUpsStep(); - } - else if(aStepName == KIpUpsNotifyCount) - { - testStep = new CIpUpsNotifyCount(); - } - else if(aStepName == KIpUpsDeleteDecisionDB) - { - testStep = new CIpUpsDeleteDecisionDB(); - } - - return testStep; - } diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/test/te_ipups/src/te_ipups_stepbase.cpp --- a/networkcontrol/ipupsplugins/test/te_ipups/src/te_ipups_stepbase.cpp Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// - -/** - @file - @test - @internalComponent - Internal Symbian test code -*/ - -#include "te_ipups_stepbase.h" - -TVerdict CTeIpUpsStepBase::doTestStepPreambleL() -/** - * @return - TVerdict - */ - { - SetTestStepResult(EPass); - return TestStepResult(); - } - -TVerdict CTeIpUpsStepBase::doTestStepPostambleL() -/** - * @return - TVerdict - */ - { - return TestStepResult(); - } - -CTeIpUpsStepBase::~CTeIpUpsStepBase() - { - } - -CTeIpUpsStepBase::CTeIpUpsStepBase() - { - } diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/ipupsplugins/test/te_ipups/src/te_ipups_ups_step.cpp --- a/networkcontrol/ipupsplugins/test/te_ipups/src/te_ipups_ups_step.cpp Tue Feb 02 01:27:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,613 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// - -/** - @file - @test - @internalComponent - Internal Symbian test code -*/ - -#include "te_ipups_ups_step.h" -#include "upstestnotifierproperties.h" -#include - -static TInt ThreadFunction(TAny *) - { - return KErrNone; - } - -CIpUpsStep::~CIpUpsStep() -/** - * Destructor - */ - { - } // End of function - - -CIpUpsStep::CIpUpsStep() -/** - * Constructor - */ - { - SetTestStepName(KIpUpsClientStep); - } // End of function - - -TVerdict CIpUpsStep::doTestStepPreambleL() -/** - * @return - TVerdict code - * Override of base class virtual - */ - { - TSecurityPolicy nullPolicy(ECapability_None); - TInt err; - - //Properties modified to be returned to test harness from test notifier - err = RProperty::Define(KUidPSUPSTestNotifCategory, KUnNotifyCount, KUnCountKeyType, nullPolicy, nullPolicy); - if (err != KErrAlreadyExists && err != KErrNone) - { - User::LeaveIfError(err); - } - - err = RProperty::Define(KUidPSUPSTestNotifCategory, KUnNotifyValues, KUnNotifyValuesKeyType, nullPolicy, nullPolicy); - if (err != KErrAlreadyExists && err != KErrNone) - { - User::LeaveIfError(err); - } - - //Properties test notifier requires from test harness about the button press and delay - err = RProperty::Define(KUidPSUPSTestNotifCategory, KUtButtonPress, KUtButtonPressKeyType, nullPolicy, nullPolicy); - if (err != KErrAlreadyExists && err != KErrNone) - { - User::LeaveIfError(err); - } - - err = RProperty::Define(KUidPSUPSTestNotifCategory, KUtButtonPressDelay, KUtButtonPressDelayKeyType, nullPolicy, nullPolicy); - if (err != KErrAlreadyExists && err != KErrNone) - { - User::LeaveIfError(err); - } - - //Get the testNotifier working mode, filemode or P&S mode - User::LeaveIfError(RProperty::Get(KUidPSUPSTestNotifCategory, KUtFileOverride, iTestNotifierMode)); - - //Set the property to override working of testNotifier in P&S mode instead of filemode - User::LeaveIfError(RProperty::Set(KUidPSUPSTestNotifCategory, KUtFileOverride, KFileOverride)); - - //Initialise optional data iNoOfAuthoriseCalls (should be '1' minimum). - iNoOfAuthoriseCalls = 1; - - //Initialise optional data iPromptTriggerCount (Initialising with '-1' means no check if user not specfied in INI file). - iPromptTriggerCount = -1; - - //Read data from INI file - GetHexFromConfig(ConfigSection(), KIpUpsServiceId, iServiceUID); - GetStringFromConfig(ConfigSection(),KIpUpsDestination, iDestination); - GetStringFromConfig(ConfigSection(),KIpUpsOpaqueData, iOpaqueData); - GetStringFromConfig(ConfigSection(),KIpUpsDialogOptionSelection, iDialogOption); - GetBoolFromConfig(ConfigSection(),KIpUpsPlatSecPass, iPlatSecPass); - GetStringFromConfig(ConfigSection(),KIpUpsExpectedDecision, iExpectedUpsDecision); - GetIntFromConfig(ConfigSection(),KIpUpsPromptTriggerCount, iPromptTriggerCount); - GetIntFromConfig(ConfigSection(),KIpUpsNoOfAuthoriseCalls, iNoOfAuthoriseCalls); - GetBoolFromConfig(ConfigSection(),KIpUpsCancelPromptCall, iCancelPromptCall); - - GetBoolFromConfig(ConfigSection(),KIpUpsAlwaysOpenNewSession, iAlwaysOpenNewSession); - - GetBoolFromConfig(ConfigSection(),KIpUpsUseSameSubSession, iUseSameSubSession); - GetBoolFromConfig(ConfigSection(),KIpUpsUseSameSubSessionAfterClose, iUseSameSubSessionAfterClose); - GetBoolFromConfig(ConfigSection(),KIpUpsAlwaysOpenNewSubSession, iAlwaysOpenNewSubSession); - - //Keep the initial count of the notifier recorded, should be '0' - User::LeaveIfError(RProperty::Get(KUidPSUPSTestNotifCategory, KUnNotifyCount, iNotifyCount)); - - SetTestStepResult(EPass); - return TestStepResult(); - } // End of function. - - -TVerdict CIpUpsStep::doTestStepL() -/** - * @return - TVerdict code - * Override of base class virtual - */ - { - UserPromptService::RUpsSession upsSession; - UserPromptService::RUpsSubsession upsSubSession[KMaxNoOfAuthoriseCalls]; - - RThread dummyThread[KMaxNoOfAuthoriseCalls]; - TRequestStatus threadStatus; - - TInt notifyCountBeforeTest = iNotifyCount; - TInt notifyCountAfterTest = 0; - - TServiceId serviceId = TUid::Uid(iServiceUID); - - TInt subSessionCntr = 0; - - //Repeat call to Authorise as specified in INI file (through NoOfAuthoriseCalls data) - for (TInt cntr=0; cntr dummyThreadName; - dummyThreadName.Copy(_L("DummyThread_0123456789")); - - User::LeaveIfError(dummyThread[subSessionCntr].Create(dummyThreadName.Right(dummyThreadName.Length()-subSessionCntr), ThreadFunction, 4096, 4096, 4096, 0, EOwnerThread)); - - dummyThread[subSessionCntr].Rendezvous(threadStatus); - dummyThread[subSessionCntr].Resume(); - User::WaitForRequest(threadStatus); - - upsSubSession[subSessionCntr] = UserPromptService::RUpsSubsession(); - User::LeaveIfError(upsSubSession[subSessionCntr].Initialise(upsSession, dummyThread[subSessionCntr])); - INFO_PRINTF1(_L("UPS SubSession Initialised.")); - } - - //Get the dialog option for this iteration (specified in the INI file through - //DialogOptionSelection data, separated using KIniFileDelimeter). - TBuf<32> dialogOption; - GetValueAt(cntr, iDialogOption, KIniFileDelimeter, dialogOption); - - UserPromptService::TPromptResult promptResult; - promptResult.iSelected = ButtonToOption(dialogOption); - - TPckg resultPckg(promptResult); - - //Set the Dialog Option selection by user (specifies through DialogOptionSelection data value in INI file). - User::LeaveIfError(RProperty::Set(KUidPSUPSTestNotifCategory, KUtButtonPress, resultPckg)); - User::LeaveIfError(RProperty::Set(KUidPSUPSTestNotifCategory, KUtButtonPressDelay, iCancelPromptCall?1:0)); - - INFO_PRINTF2(_L("Dialog Option Selection ( %S )."), &dialogOption); - - //Get the Notify Count BEFORE call to Authorise - User::LeaveIfError(RProperty::Get(KUidPSUPSTestNotifCategory, KUnNotifyCount, notifyCountBeforeTest)); - - TUpsDecision upsDecision; - TRequestStatus status; - - if ( iOpaqueData.Length() > 0 ) - { - HBufC8* converter = HBufC8::NewLC(iOpaqueData.Length()); - converter->Des().Copy(iOpaqueData); - iOpaqueDataStored = converter->Ptr(); - CleanupStack::PopAndDestroy(); //converter - - INFO_PRINTF1(_L("Opaque data present.")); - upsSubSession[subSessionCntr].Authorise(iPlatSecPass, serviceId, iDestination, iOpaqueDataStored, upsDecision, status); - } - else - { - INFO_PRINTF1(_L("Opaque data NOT present.")); - upsSubSession[subSessionCntr].Authorise(iPlatSecPass, serviceId, iDestination, upsDecision, status); - } - - - if (iCancelPromptCall) - { - upsSubSession[subSessionCntr].CancelPrompt(); - INFO_PRINTF1(_L("CancelPrompt called on UPS SubSession.")); - } - - User::WaitForRequest(status); - - SetTestStepError(status.Int()); - User::LeaveIfError(status.Int()); - - //Get the Notify Count AFTER call to Authorise - User::LeaveIfError(RProperty::Get(KUidPSUPSTestNotifCategory, KUnNotifyCount, notifyCountAfterTest)); - - INFO_PRINTF3(_L("NotifyCount Before Authorise ( %d ) <> NotifyCount After Authorise ( %d )"), notifyCountBeforeTest, notifyCountAfterTest); - - if ( iExpectedUpsDecision.Length() > 0 ) - { - //Get the expected UPS decision for this iteration (specified in the INI file through - //ExpectedUpsDecision data, separated using KIniFileDelimeter). - TBuf<32> expectedUpsDecision; - GetValueAt(cntr, iExpectedUpsDecision, KIniFileDelimeter, expectedUpsDecision); - - TPtrC upsDecisionString = TUpsDecisionToString(upsDecision); - - INFO_PRINTF3(_L("UPS Decision Expected ( %S ) <> UPS Decision Returned ( %S )"), &expectedUpsDecision, &upsDecisionString); - - //Compare the expected and returned UPS decision - TEST( expectedUpsDecision.Compare(TUpsDecisionToString(upsDecision)) == 0); - } - - VerifyAndPrintPromptDataL(); - - //Check what user requested to do with SubSession for further iterations (if any). - if ( iUseSameSubSession ) - { - INFO_PRINTF2(_L("Using UPS SubSession ( %d )."), subSessionCntr); - } - if ( iUseSameSubSessionAfterClose || iAlwaysOpenNewSession ) - { - upsSubSession[subSessionCntr].Close(); - INFO_PRINTF2(_L("UPS SubSession Closed ( %d )."), subSessionCntr); - dummyThread[subSessionCntr].Close(); - } - else if ( iAlwaysOpenNewSubSession ) - { - ++subSessionCntr; - } - - if ( iAlwaysOpenNewSession ) - { - upsSession.Close(); - INFO_PRINTF1(_L("UPS Session Closed.")); - } - } //End - for loop - - - //As with multiple clients , its better not to try to synchronize the calls which change the notify count. - //When all the concurrent calls are done , check the count finally through test step notifycount. - if (iPromptTriggerCount >= 0) - { - TEST( notifyCountAfterTest == (iNotifyCount+iPromptTriggerCount) ); - } - - //Ensure all sub sessions are closed - for (TInt cntr=0; cntrDes()); - - User::LeaveIfError(RProperty::Get(KUidPSUPSTestNotifCategory, KUnNotifyValues, bufPtr)); - - RDesReadStream promptDataStream(bufPtr); - - iPromptData = UserPromptService::CPromptData::NewL(); - CleanupStack::PushL(iPromptData); - iPromptData->InternalizeL(promptDataStream); - - INFO_PRINTF2(_L("Client Name ( %S )"), &iPromptData->iClientName); - INFO_PRINTF2(_L("Vendor Name ( %S )"), &iPromptData->iVendorName); - INFO_PRINTF2(_L("Destination ( %S )"), &iPromptData->iDestination); - INFO_PRINTF2(_L("ClientSid ( %08x )"), iPromptData->iClientSid.iId); - INFO_PRINTF2(_L("ServerSid ( %08x )"), iPromptData->iServerSid.iId); - INFO_PRINTF2(_L("ServiceId ( %08x )"), iPromptData->iServiceId); - - TInt count = iPromptData->iDescriptions.Count(); - for (TInt cntr = 0; cntr < count; ++cntr) - { - INFO_PRINTF3(_L("Descriptions(%d) : %S "), cntr, iPromptData->iDescriptions[cntr]); - } - - //Print Dialog Flags - TBuf<64> dialogFlags; - - if ( iPromptData->iFlags & UserPromptService::ETrustedClient ) - { - dialogFlags.Append(_L(" TrustedClient ")); - } - if ( iPromptData->iFlags & UserPromptService::EBuiltInApp ) - { - dialogFlags.Append(_L(" BuiltInApp ")); - } - INFO_PRINTF2(_L("DialogFlags Set to ( %S )"), &dialogFlags); - - TPtrC expectedDialogOptions; - TBuf<64> bufOptions; - - GetStringFromConfig(ConfigSection(),KExpectedDialogOptions, iExpectedDialogOptions); - - if (iExpectedDialogOptions.Length() > 0) - { - INFO_PRINTF2(_L("Options Expected ( %S )"), &iExpectedDialogOptions); - - //Check if options presented are as expected - TBool result = OptionsFlagToString(iPromptData->iOptions, bufOptions); - TEST(result != EFalse); - } - else - { - OptionsFlagToString(iPromptData->iOptions, bufOptions, EFalse); - } - - INFO_PRINTF2(_L("Options Presented ( %S )"), &bufOptions); - - TEST(iPromptData->iServiceId.iUid == iServiceUID); - TEST(iPromptData->iDestination == iDestination); - - CleanupStack::PopAndDestroy(2); //buf, iPromptData - - return EFalse; - } // End of function. - -TBool CIpUpsStep::OptionsFlagToString(TUint aOptions, TDes& aOptionString, TBool aCheckAgainstExpectedOpt) -/** OptionsFlagToString converts the dialog option(s) presented to string and check if the presented option - * is amongst the one which is expected(from INI file) or not if aCheckAgainstExpectedOpt is set to ETrue. - * - * @return - TBool - ETrue if presented options are the ones which are expected as specified in the INI file. - * - */ - { - _LIT(KOptionYes, "Yes"); - _LIT(KOptionNo, "No"); - _LIT(KOptionSessionYes, "SessionYes"); - _LIT(KOptionAlways, "Always"); - _LIT(KOptionNever, "Never"); - _LIT(KOptionSessionNo, "SessionNo"); - - const TPtrC policyOptions[] = {KOptionYes(), KOptionNo(), KOptionSessionYes(), KOptionAlways(), - KOptionNever(), KOptionSessionNo()}; - - TInt optionsCntr = 0; - TBool isOptionExpected = ETrue; - - aOptionString.Append(_L("-")); - - if (aOptions & UserPromptService::CPolicy::EYes) - { - aOptionString.Copy(policyOptions[optionsCntr]); - aOptionString.Append(_L("-")); - - if (aCheckAgainstExpectedOpt) - { - if (iExpectedDialogOptions.FindF(policyOptions[optionsCntr]) == KErrNotFound) - { - isOptionExpected = EFalse; - } - } - } - ++optionsCntr; - - if (aOptions & UserPromptService::CPolicy::ENo) - { - aOptionString.Append(policyOptions[optionsCntr]); - aOptionString.Append(_L("-")); - - if (aCheckAgainstExpectedOpt) - { - if (iExpectedDialogOptions.FindF(policyOptions[optionsCntr]) == KErrNotFound) - { - isOptionExpected = EFalse; - } - } - } - ++optionsCntr; - - if (aOptions & UserPromptService::CPolicy::ESessionYes) - { - aOptionString.Append(policyOptions[optionsCntr]); - aOptionString.Append(_L("-")); - - if (aCheckAgainstExpectedOpt) - { - if (iExpectedDialogOptions.FindF(policyOptions[optionsCntr]) == KErrNotFound) - { - isOptionExpected = EFalse; - } - } - } - ++optionsCntr; - - if (aOptions & UserPromptService::CPolicy::EAlways) - { - aOptionString.Append(policyOptions[optionsCntr]); - aOptionString.Append(_L("-")); - - if (aCheckAgainstExpectedOpt) - { - if (iExpectedDialogOptions.FindF(policyOptions[optionsCntr]) == KErrNotFound) - { - isOptionExpected = EFalse; - } - } - } - ++optionsCntr; - - if (aOptions & UserPromptService::CPolicy::ENever) - { - aOptionString.Append(policyOptions[optionsCntr]); - aOptionString.Append(_L("-")); - - if (aCheckAgainstExpectedOpt) - { - if (iExpectedDialogOptions.FindF(policyOptions[optionsCntr]) == KErrNotFound) - { - isOptionExpected = EFalse; - } - } - } - ++optionsCntr; - - if (aOptions & UserPromptService::CPolicy::ESessionNo) - { - aOptionString.Append(policyOptions[optionsCntr]); - aOptionString.Append(_L("-")); - - if (aCheckAgainstExpectedOpt) - { - if (iExpectedDialogOptions.FindF(policyOptions[optionsCntr]) == KErrNotFound) - { - isOptionExpected = EFalse; - } - } - } - - return isOptionExpected; - } // End of function. - -/** GetValueAt provides the value of data at a specific index (specified by aPos) -* String containing the values is specified thorugh aArrayString and multiple values -* are separated by delimeter aDelimeter. -* aValue is returned. -*/ -void CIpUpsStep::GetValueAt(const TInt aPos, const TPtrC& aArrayString, const TChar aDelimeter, TDes& aValue) - { - TInt posCntr=0; - TInt itemCntr = -1; - - //Initialise it with blank string to avoid any previous copies - aValue.Copy(_L("")); - - while (posCntr < aArrayString.Length() && itemCntr != aPos) - { - if (aArrayString[posCntr] != aDelimeter) - { - aValue.Append(aArrayString[posCntr]); - } - else - { - ++itemCntr; - //Is this the item we are looking for, if not, make space to next one - if (itemCntr != aPos) - { - aValue.Copy(_L("")); - } - } - ++posCntr; - } - } - -/* TUpsDecisionToString converts TUpsDecision to string. -*/ -TPtrC CIpUpsStep::TUpsDecisionToString(TUpsDecision aDecision) - { - if(aDecision == EUpsDecYes) - { - return _L("Yes"); - } - else if(aDecision == EUpsDecNo) - { - return _L("No"); - } - else if(aDecision == EUpsDecSessionYes) - { - return _L("SessionYes"); - } - else if(aDecision == EUpsDecSessionNo) - { - return _L("SessionNo"); - } - else - { - ERR_PRINTF1(_L("Invalid UPS Descision, returning No by default.")); - return _L("No"); - } - } // End of function. - -/* TUpsDecisionFromString converts string value to TUpsDecision. -*/ -TUpsDecision CIpUpsStep::TUpsDecisionFromString(const TPtrC& aDecision) - { - if(aDecision.CompareF(_L("Yes"))==0) - { - return EUpsDecYes; - } - else if(aDecision.CompareF(_L("No"))==0) - { - return EUpsDecNo; - } - else if(aDecision.CompareF(_L("SessionYes"))==0) - { - return EUpsDecSessionYes; - } - else if(aDecision.CompareF(_L("SessionNo"))==0) - { - return EUpsDecSessionNo; - } - else - { - ERR_PRINTF1(_L("Invalid UPS Descision, returning No by default.")); - return EUpsDecNo; - } - } // End of function. - -/* ButtonToOption converts string value of button presented to CPolicy::TOptions. -*/ -UserPromptService::CPolicy::TOptions CIpUpsStep::ButtonToOption(const TPtrC& aButton) - { - if(aButton.CompareF(_L("Yes"))==0) - { - return UserPromptService::CPolicy::EYes; - } - else if(aButton.CompareF(_L("No"))==0) - { - return UserPromptService::CPolicy::ENo; - } - else if(aButton.CompareF(_L("Session"))==0) - { - return UserPromptService::CPolicy::ESession; - } - else if(aButton.CompareF(_L("SessionYes"))==0) - { - return UserPromptService::CPolicy::ESessionYes; - } - else if(aButton.CompareF(_L("Always"))==0) - { - return UserPromptService::CPolicy::EAlways; - } - else if(aButton.CompareF(_L("Never"))==0) - { - return UserPromptService::CPolicy::ENever; - } - else if(aButton.CompareF(_L("SessionNo"))==0) - { - return UserPromptService::CPolicy::ESessionNo; - } - else - { - ERR_PRINTF1(_L("Invalid Button Option, returning Policy Option No by default.")); - return UserPromptService::CPolicy::ENo; - } - } // End of function. diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/qosipscpr/inc/ip_subconparams.h --- a/networkcontrol/qosipscpr/inc/ip_subconparams.h Tue Feb 02 01:27:53 2010 +0200 +++ b/networkcontrol/qosipscpr/inc/ip_subconparams.h Sat Feb 20 00:22:11 2010 +0200 @@ -27,9 +27,7 @@ #define __IP_SUBCONPARAMS_H__ #include -#include -#include -#include +#include // NOTE: This Uid may be changed - See #ifdef at bottom of the file diff -r a579325b79dd -r 1422c6cd3f0c networkcontrol/qosipscpr/src/ipscpr.cpp --- a/networkcontrol/qosipscpr/src/ipscpr.cpp Tue Feb 02 01:27:53 2010 +0200 +++ b/networkcontrol/qosipscpr/src/ipscpr.cpp Sat Feb 20 00:22:11 2010 +0200 @@ -20,6 +20,7 @@ @internalComponent */ +#include #include "IPSCPRStates.h" #include "IPSCPR.h" #include "ipdeftbasescpr.h" diff -r a579325b79dd -r 1422c6cd3f0c networkingtestandutils/networkingunittest/DummyNifProtos/inc/Dummynifbinder.h --- a/networkingtestandutils/networkingunittest/DummyNifProtos/inc/Dummynifbinder.h Tue Feb 02 01:27:53 2010 +0200 +++ b/networkingtestandutils/networkingunittest/DummyNifProtos/inc/Dummynifbinder.h Sat Feb 20 00:22:11 2010 +0200 @@ -32,6 +32,7 @@ #include #include #include +#include #include "es_protbinder.h" #include "DummyNifFlow.h" diff -r a579325b79dd -r 1422c6cd3f0c networkingtestandutils/networkingunittest/DummyNifProtos/src/Dummynifbinder.cpp --- a/networkingtestandutils/networkingunittest/DummyNifProtos/src/Dummynifbinder.cpp Tue Feb 02 01:27:53 2010 +0200 +++ b/networkingtestandutils/networkingunittest/DummyNifProtos/src/Dummynifbinder.cpp Sat Feb 20 00:22:11 2010 +0200 @@ -27,6 +27,7 @@ #include #include #include +#include #include "dummynifvar.h" #include "Dummynifbinder.h" #include "DummyProvision.h" diff -r a579325b79dd -r 1422c6cd3f0c networkingtestandutils/networkingunittest/dummynif/dummynif.cpp --- a/networkingtestandutils/networkingunittest/dummynif/dummynif.cpp Tue Feb 02 01:27:53 2010 +0200 +++ b/networkingtestandutils/networkingunittest/dummynif/dummynif.cpp Sat Feb 20 00:22:11 2010 +0200 @@ -32,6 +32,8 @@ #include #include #include +#include +#include #include "dummynifvar.h" #include "dummynif.h" diff -r a579325b79dd -r 1422c6cd3f0c networkingtestandutils/networkingunittest/dummynif/dummynif.h --- a/networkingtestandutils/networkingunittest/dummynif/dummynif.h Tue Feb 02 01:27:53 2010 +0200 +++ b/networkingtestandutils/networkingunittest/dummynif/dummynif.h Sat Feb 20 00:22:11 2010 +0200 @@ -23,6 +23,7 @@ #include #include #include // TE64Addr +#include #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS #include #endif diff -r a579325b79dd -r 1422c6cd3f0c networkingtestandutils/networkingunittest/dummynif/dummynif6.cpp --- a/networkingtestandutils/networkingunittest/dummynif/dummynif6.cpp Tue Feb 02 01:27:53 2010 +0200 +++ b/networkingtestandutils/networkingunittest/dummynif/dummynif6.cpp Sat Feb 20 00:22:11 2010 +0200 @@ -25,6 +25,8 @@ #include #include #include // KSoIface*, KIf*, TSoInet6IfConfig +#include +#include #include "dummynifvar.h" #include "dummynif.h" diff -r a579325b79dd -r 1422c6cd3f0c networkprotocols/iphook/inhook6/group/bld.inf --- a/networkprotocols/iphook/inhook6/group/bld.inf Tue Feb 02 01:27:53 2010 +0200 +++ b/networkprotocols/iphook/inhook6/group/bld.inf Sat Feb 20 00:22:11 2010 +0200 @@ -27,6 +27,7 @@ ../include/in_bind.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(in_bind.h) ../include/ip6_hook.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ip6_hook.h) ../include/in_pkt.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(in_pkt.h) +../include/in_pkt_platform.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(in_pkt_platform.h) ../include/ip6_hdr.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(ip6_hdr.h) ../include/in_hdr.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(in_hdr.h) ../include/ip4_hdr.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(ip4_hdr.h) diff -r a579325b79dd -r 1422c6cd3f0c networkprotocols/iphook/inhook6/include/flow.h --- a/networkprotocols/iphook/inhook6/include/flow.h Tue Feb 02 01:27:53 2010 +0200 +++ b/networkprotocols/iphook/inhook6/include/flow.h Sat Feb 20 00:22:11 2010 +0200 @@ -32,6 +32,7 @@ #include #include "in_pkt.h" #include "apibase.h" +#include "in_pkt_platform.h" // // TFlowStatus diff -r a579325b79dd -r 1422c6cd3f0c networkprotocols/iphook/inhook6/include/in_chk.h --- a/networkprotocols/iphook/inhook6/include/in_chk.h Tue Feb 02 01:27:53 2010 +0200 +++ b/networkprotocols/iphook/inhook6/include/in_chk.h Sat Feb 20 00:22:11 2010 +0200 @@ -26,8 +26,9 @@ #ifndef __IN_CHK_H__ #define __IN_CHK_H__ -#include #include "in_pkt.h" +class RMBufChain; +class RMBufPktInfo; /** Checksum calculation. diff -r a579325b79dd -r 1422c6cd3f0c networkprotocols/iphook/inhook6/include/in_pkt.h --- a/networkprotocols/iphook/inhook6/include/in_pkt.h Tue Feb 02 01:27:53 2010 +0200 +++ b/networkprotocols/iphook/inhook6/include/in_pkt.h Sat Feb 20 00:22:11 2010 +0200 @@ -26,9 +26,10 @@ #ifndef __IN_PKT_H__ #define __IN_PKT_H__ -#include #include "ip6_hdr.h" // ..should eventually be ? -- msa #include "ip4_hdr.h" +class RMBufChain; + #define TPACKETHEAD_FRAGMENT 1 //< Enable iFragment in TPacketHead @@ -102,345 +103,6 @@ }; -// RMBufPacketPeek -// *************** -class RMBufPacketPeek : public RMBufChain - /** - Extends RMBufChain to add functions to read packet data as a descriptor - and as an IP header. - - The RMBufChain is assumed to contain the raw packet, without - the info block prepended (e.g. if this class is used for RMBufPacketBase - derived handle, it must be in "unpacked" state). - - @since v7.0 - @publishedAll - @released - */ - { -public: - IMPORT_C TPtr8 Access(TInt aSize, TUint aOffset = 0); - IMPORT_C TIpHeader *GetIpHeader(); - }; - -// TPacketHead -// *********** -class TPacketHead - /** - Storage for some precomputed information for an outbound packet flow. - - The outbound TPacketHead is part of the flow context (CFlowContext). - - The CFlowContext::Connect initializes the content from the parameters - of the flow (TFlowInfo) and runs the connection process.. The connection - process (MIp6Hook::OpenL and MFlowHook::ReadyL phases) completes the - information. After this, as long as the flow is connected, the content - is mostly frozen and must not be modified by anyone. - - When there is a need to change any flow information, the changes must - be done to the flow parameters (and not to TPacketHead). The change of - flow parameters also sets the CFlowContext::iChanged flag, and this - eventually causes a new CFlowContext::Connect, which re-initializes - the TPacketHead with the new information. - - For each field in the TPacketHead, the hook writer must follow the - basic rule (only for fields that it intends to change): - - - if some field is changed in MIp6Hook::OpenL, then the previous - value should be restored in the MFlowHook::ReadyL. - - an exeception: the hook must omit the restore, if the - previous value was unspecified value (for example, the source - address). - - the content of #iPacket (and #iOffset) are special: they cannot - be modified in the MIp6Hook::OpenL phase. A hook can - modify them only in the MFlowHook::ReadyL phase. And, if the hook - is adding an IP header for tunneling, it must save the current content - of these fields in the ReadyL function, and then clear out the fields - (it must make the iPacket empty and zero iOffset). The hook must add - the saved iPacket content below the added tunnel header in - MFlowHook::ApplyL . - - @since v7.0 - @publishedAll - @released - */ - { -public: - IMPORT_C TBool ExtHdrGet(TInt aType, TInt& aOfs, TInt& aLen); - IMPORT_C TBool ExtHdrGetOrPrependL(TInt aType, TInt& aOfs, TInt& aLen); - IMPORT_C TBool ExtHdrGetOrAppendL(TInt aType, TInt& aOfs, TInt& aLen); - IMPORT_C void AddDestinationOptionL(const TPtrC8& aOption, TUint8 aAlign=0, TUint8 aModulo=4); - IMPORT_C void AddDestinationOptionL(const TUint8* aOption, TUint8 aLen, TUint8 aAlign=0, TUint8 aModulo=4); - -public: - /** - "Virtual" IP header. The IPv6 header stucture is used, but the same - format is also used for the IPv4 destinations (Version() == 4, - even though the header format is still IPv6!) - - This header is initialized in the beginning of the OpenL phase - as follows: - @li Version = 0 - @li Traffic Class, copied from the flow iOptions.iTrafficClass - @li Flow Label = 0 - @li Payload Length = 0 (dummy field, not used) - @li Next Header, copied from the flow iProtocol - @li Hop Limit, copied from the flow iOptions.iHopLimit - @li Src Address, copied from the flow Local Address (usually unspecified) - @li Dst Address, copied from the flow Remote Address - - At beginning of the ReadyL phase (= at end of OpenL), the destination - address (and iDstId) are used to find a route on the interface. Depending - on whether this address is IPv4 (mapped) or IPv6, the Version field is set - accordingly to either 4 or 6. - - After succesfull completion of the ReadyL, this used for *each* packet - which needs an IP header to be generated on send. The Version() determines - whether IPv4 or IPv6 frame is to be generated (this is the initial - header in the packet, *before* running outbound ApplyL hooks): - - @verbatim - IPv6 IPv4 - Version == 6 ==4 - Traffic Class used as is used as TOS - Flow Label used as is ignored - Payload Length ignored ignored - Next Header used as is used as Protocol - Hop Limit used as is used as TTL - Src Address used as is used as IPv4 mapped - Dst Address used as is used as IPv4 mapped - @endverbatim - */ - TInet6HeaderIP ip6; - /** - Contains the scope id associated with the destination address - which is stored in #ip6 Dst Address. This id and address must - always be considered as a unit. Logically, any change changes - both values. - - iDstId is initialized from the flow context TFlowInfo::iRemote.Scope() at - beginning of the flow connect phase. If application does not define - this scope id, then the system will attempt to choose a default value - at beginning of the connect phase. If the default cannot be determined, - the flow is put into pending state (and no connect happens). - - @par MIp6Hook::OpenL - On entry to the OpenL, the iDstId is always non-zero and destination - address is specified. If a hook changes the destination address in - OpenL method, it must provide the correct id value - which goes with the new destination. If it cannot do this, it - must either abort the connect by leaving with an error state, or it - can leave with PENDING (> 0) status to signal there is no route - for the new destination. - If the stack cannot find suitable interface for the destination, then - it aborts the connect phase, and the flow is placed into holding state. - - @note - Only a tunneling hook can safely change the destination - address (a use of routing header can also be a kind of - tunneling). - - @par MFlowHook::ReadyL - If the hook changed the destination address (or id) in the OpenL, - the ReadyL must restore the original values back. - - */ - TUint32 iDstId; - /** - Contains the scope id associated with the source address - which is stored in #ip6 Src address. This is defined when the source - address is defined, and otherwise undefined. - - iSrcId is initialized from TFlowInfo::iLocal.Scope() at beginning of the - flow connect phase. If application defines the source address, - but does not specify this scope id, then the system chooses - the id based on the interface defined by the source address. - If scope and address are both specified, they must match the - selected interface. - - @par MIp6Hook::OpenL - On entry to the OpenL, the iSrcId (and source address) may be - undefined (#iSourceSet = 0). If defined (iSourceSet = 1), then - both address and iSrcId are defined (iSrcId != 0). A hook may - force a reselection of the source just by zeroing the - iSourceSet. - - @par MFlowHook::ReadyL - If the hook changed the source address (or id) in the OpenL, - the ReadyL must restore the original values back, but only - if the original value was defined (#iSourceSet = 1 in OpenL). - */ - TUint32 iSrcId; - /** - The source address has been set. - - This bit indicates whether the value stored in #ip6 src field - and #iSrcId is to be used as a source address as is. - - Initialized from TFlowInfo::iLocalSet, which tells whether user - specified tbe source address or not (e.g used RSocket Bind method). - The stack checks the value after each MIp6Hook::OpenL call, and - if the flag is set, the source in ip6 is used as is. If the flag - is zero, then the stack performs the normal source address selection - based on the current destination address (#iSrcId and destination - address). - - @par MIp6Hook::OpenL - On entry, this flag is always set and source address is defined. - A hook may clear this flag, if it wants the - stack choose the source address based on current destination. - The clearing operation is normally needed only by a tunneling - hook. - - @note - If the hook specifies the source address, it must be either - a valid source address for the interface or unspecified - address. - - @par MFlowHook::ReadyL - Upon entry to the ReadyL, the source address is always fully - known (the hook can assume that #iSrcId and the #ip6 source - addresses are valid). - If the source address was set before the OpenL, then this - must restore the original value (along with the #iSrcId - and source address). - */ - TUint iSourceSet:1; -#ifdef TPACKETHEAD_FRAGMENT - /** - The fragment processing alredy done. - - This bit is meaningful only in OpenL phase. If already set, - then some ealier hook has requested that the packet must - be fragmented to fit the mtu. - - A tunneling hook can set this bit in OpenL, if it needs - the fragmenting to happen before the ApplyL is called (e.g. - the fragments are tunneled instead of fragmenting the - tunneling). - - This bit can only be set or left as is. It cannot be cleared - once set. - */ - TUint iFragment:1; -#endif - /** - Selector info, the upper layer protocol. - - iProtocol has the same value as ip6.NextHeader() when iPacket is empty, - and otherwise it is the same as NextHeader() of the last extension - header in the iPacket. - - The values of the other selector fields: #iIcmpType, #iIcmpCode - #iSrcPort and #iDstPort depend on iProtocol. Whenever iProtocol - is changed, the other fields must be updated accordingly. - - @par MIp6Hook::OpenL - Because iPacket cannot be modified during the OpenL phase, the - content of this field and the Next Header (protocol) field in - the #ip6 pseudoheader must always be the same. This field should - be considered as read-only, unless the hook intends to - apply IP-in-IP tunneling, in which case the hook must - change the value to the appropriate tunneling protocol - (#KProtocolInet6Ipip or #KProtocolInetIpip). - - @par MFlowHook::ReadyL - Only a tunneling hook needs to restore the value here to match - the original upper layer protocol. See #iPacket for - more detailed information. - */ - TUint8 iProtocol; - /** - Selector field whose value depends on #iProtocol. - - If this field does not have meaning with the protocol, - the field content should be set to ZERO. - */ - TUint8 iIcmpType; - /** - Selector field whose value depends on #iProtocol. - - If this field does not have meaning with the protocol, - the field content should be set to ZERO. - */ - TUint8 iIcmpCode; - /** - Selector field whose value depends on #iProtocol. - - If this field does not have meaning with the protocol, - the field content should be set to ZERO. - */ - TUint16 iSrcPort; - /** - Selector field whose value depends on #iProtocol. - - If this field does not have meaning with the protocol, - the field content should be set to ZERO. - */ - TUint16 iDstPort; - /** - The amount of pre-computed IPv6 extension headers in iPacket which - are copied to the beginning of each outgoing packet - - If iOffset > 0, then #iPacket includes that much of extension - headers that are copied in front of each packet. - */ - TInt iOffset; - /** - Pre-computed extension headers for all packets in this flow. - - These can only be added in the ReadyL phase. If any of the - ReadyL's adds extension headers into this, it must take care - of maintaining the correct Next Header in the virtual IP header - (and the original upper layer protocol must be placed in the - next header of the last extension header added. - - Stack copies the content of this to each outgoing packet, just below - the IP header, before running the ApplyL functions of the outbound - flow hooks. - - @par MIp6Hook::OpenL - The iPacket must not be modified during the OpenL phase. - - @par MFlowHook::ReadyL - A non-tunneling hook may add extension headers into the current - iPacket. A tunneling hook has more complex requirements: - it must save the current iPacket and #iOffset and initialize - iOffset = 0, and iPacket as empty. - - @par MFlowHook::ApplyL - When a tunneling hook adds the tunneling IP header, it - must also copy the saved iPacket below the added IP header. - */ - RMBufPacketPeek iPacket; - /** - The received packet which caused an ICMP error reply to be sent. - - This is only used for ICMP error repply flows, and should be - ignored by others -- mainly for IPSEC hook. The packet, if - present, is in unpacked state. - */ - RMBufPacketBase iIcmp; - /** - The current destination interface. - - This is ONLY used during connect/OpenL phase. - - The value is maintained by the stack, and is intended as - read-only information for the hooks that have a use for - it (for example, IPSEC implementing VPN specific policies). - - A hook must not modify this value (the stack will recompute - the value after each OpenL, based on the possibly changed - address parameters in the TPacketHead) - - @par MIp6Hook::OpenL - read-only - @par MFlowHook::ReadyL - read-only - */ - TUint32 iInterfaceIndex; - }; class TInet6PacketBase /** @@ -593,121 +255,4 @@ }; -// TPacketPoker -// ************ -class TPacketPoker - /** - Provides a utility for linear scanning of a chain of RMBuf objects (an RMBufChain). - - An object of this type maintains a current point in the RMBufChain. This point - can only move forward, and a leave occurs if the point advances beyond the - end of the chain. - - Any pointers and aligns arranged before the current point, remain valid: for - example, you can save a reference and advance the pointer, and the reference - remains usable. - - If instead you need to go to a single specified offset, then use - RMBufChain::Goto() or RMBufPacketPeek::Access(). - - @post - A Generic implementation assert: - after construct, iTail == 0 iff iCurrent == 0 (all scanned), or - in other words: as long as there are bytes after current point, - iTail will be non-zero (and More() returns ETrue). - All methods maintain this invariant or leave, if impossible. - - Some other utility methods, not directly related to scanning, are also included. - @since v7.0 - @publishedAll - @released - */ - { -public: - IMPORT_C TPacketPoker(RMBufChain &aChain); - - inline void SkipL(TInt aSize) - /** - Moves the current point forward a specified number of bytes. - - @param aSize Number of bytes to move forward - @leave KErrEof - if the request cannot be satisfied. - */ - { if (aSize < iTail) { iTail -= aSize; iOffset += aSize; } else OverL(aSize); } - - inline TUint8 *Ptr() const - /** - Raw pointer to the current point (can be invalid, if iTail = 0). - - @note Internal "unsafe" method - */ - {return iCurrent->Ptr() + iOffset; } - - inline TUint8 *ReferenceL(TInt aSize = 1) - /** - Gets a pointer to the current point, such that - at least the specified minimum number of bytes can be read. - - @param aSize - Specified minimum number of bytes to be read through - the returned pointer. - @return Raw data pointer - @leave KErrEof - if the request cannot be satisfied. - */ - { if (iTail >= aSize) return Ptr(); else return AdjustL(aSize); } - - inline TUint8 *ReferenceAndSkipL(TInt aSize) - /** - Gets a pointer to the current point, such that at least the - specified minimum number of bytes can be read, - and moves the point the specified number of bytes forward. - - @param aSize - Specified minimum number of bytes to be read through the returned - pointer, and the number of bytes to move forward - @return - Raw data pointer - @leave KErrEof - if the request cannot be satisfied. - */ - { TUint8 *x = ReferenceL(aSize); SkipL(aSize); return x; } - - inline TInt Remainder() const - /** - Gets the length of the contiguous space after the current point. - - @return Length after the current point - */ - { return iTail; } - - inline TBool AtBegin() const - /** - Tests whether the current point is at the beginning of an RMBuf. - - @return ETrue if current point is at the beginning - */ - { return iOffset == 0; } - - inline TBool More() const - /** - Tests whether there is more data to scan. - - @return ETrue if there is more data to scan - */ - { return iTail > 0; } - - IMPORT_C static TBool IsExtensionHeader(TInt aProtocolId); -private: - IMPORT_C void OverL(TInt aSize); - IMPORT_C TUint8 *AdjustL(TInt aSize); - /** The RMBuf of the current point. */ - RMBuf *iCurrent; - /** The offset of the current point in the RMBuf. */ - TInt iOffset; - /** Remaining bytes starting from the current point in the RMBuf. */ - TInt iTail; - }; - #endif diff -r a579325b79dd -r 1422c6cd3f0c networkprotocols/iphook/inhook6/include/in_pkt_platform.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/networkprotocols/iphook/inhook6/include/in_pkt_platform.h Sat Feb 20 00:22:11 2010 +0200 @@ -0,0 +1,488 @@ +// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "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: +// in_pkt.h - packet handling routines +// Generic packet handling utility for mapping packet handling to the RMBufChain. +// + + + +/** + @file in_pkt_partner.h + @publishedPartner + @released +*/ + +#ifndef __IN_PKTPARTNER_H__ +#define __IN_PKTPARTNER_H__ + +#include + +// RMBufPacketPeek +// *************** +class RMBufPacketPeek : public RMBufChain + /** + Extends RMBufChain to add functions to read packet data as a descriptor + and as an IP header. + + The RMBufChain is assumed to contain the raw packet, without + the info block prepended (e.g. if this class is used for RMBufPacketBase + derived handle, it must be in "unpacked" state). + + @since v7.0 + @publishedAll + @released + */ + { +public: + IMPORT_C TPtr8 Access(TInt aSize, TUint aOffset = 0); + IMPORT_C TIpHeader *GetIpHeader(); + }; + +// TPacketHead +// *********** +class TPacketHead + /** + Storage for some precomputed information for an outbound packet flow. + + The outbound TPacketHead is part of the flow context (CFlowContext). + + The CFlowContext::Connect initializes the content from the parameters + of the flow (TFlowInfo) and runs the connection process.. The connection + process (MIp6Hook::OpenL and MFlowHook::ReadyL phases) completes the + information. After this, as long as the flow is connected, the content + is mostly frozen and must not be modified by anyone. + + When there is a need to change any flow information, the changes must + be done to the flow parameters (and not to TPacketHead). The change of + flow parameters also sets the CFlowContext::iChanged flag, and this + eventually causes a new CFlowContext::Connect, which re-initializes + the TPacketHead with the new information. + + For each field in the TPacketHead, the hook writer must follow the + basic rule (only for fields that it intends to change): + + - if some field is changed in MIp6Hook::OpenL, then the previous + value should be restored in the MFlowHook::ReadyL. + - an exeception: the hook must omit the restore, if the + previous value was unspecified value (for example, the source + address). + - the content of #iPacket (and #iOffset) are special: they cannot + be modified in the MIp6Hook::OpenL phase. A hook can + modify them only in the MFlowHook::ReadyL phase. And, if the hook + is adding an IP header for tunneling, it must save the current content + of these fields in the ReadyL function, and then clear out the fields + (it must make the iPacket empty and zero iOffset). The hook must add + the saved iPacket content below the added tunnel header in + MFlowHook::ApplyL . + + @since v7.0 + @publishedAll + @released + */ + { +public: + IMPORT_C TBool ExtHdrGet(TInt aType, TInt& aOfs, TInt& aLen); + IMPORT_C TBool ExtHdrGetOrPrependL(TInt aType, TInt& aOfs, TInt& aLen); + IMPORT_C TBool ExtHdrGetOrAppendL(TInt aType, TInt& aOfs, TInt& aLen); + IMPORT_C void AddDestinationOptionL(const TPtrC8& aOption, TUint8 aAlign=0, TUint8 aModulo=4); + IMPORT_C void AddDestinationOptionL(const TUint8* aOption, TUint8 aLen, TUint8 aAlign=0, TUint8 aModulo=4); + +public: + /** + "Virtual" IP header. The IPv6 header stucture is used, but the same + format is also used for the IPv4 destinations (Version() == 4, + even though the header format is still IPv6!) + + This header is initialized in the beginning of the OpenL phase + as follows: + @li Version = 0 + @li Traffic Class, copied from the flow iOptions.iTrafficClass + @li Flow Label = 0 + @li Payload Length = 0 (dummy field, not used) + @li Next Header, copied from the flow iProtocol + @li Hop Limit, copied from the flow iOptions.iHopLimit + @li Src Address, copied from the flow Local Address (usually unspecified) + @li Dst Address, copied from the flow Remote Address + + At beginning of the ReadyL phase (= at end of OpenL), the destination + address (and iDstId) are used to find a route on the interface. Depending + on whether this address is IPv4 (mapped) or IPv6, the Version field is set + accordingly to either 4 or 6. + + After succesfull completion of the ReadyL, this used for *each* packet + which needs an IP header to be generated on send. The Version() determines + whether IPv4 or IPv6 frame is to be generated (this is the initial + header in the packet, *before* running outbound ApplyL hooks): + + @verbatim + IPv6 IPv4 + Version == 6 ==4 + Traffic Class used as is used as TOS + Flow Label used as is ignored + Payload Length ignored ignored + Next Header used as is used as Protocol + Hop Limit used as is used as TTL + Src Address used as is used as IPv4 mapped + Dst Address used as is used as IPv4 mapped + @endverbatim + */ + TInet6HeaderIP ip6; + /** + Contains the scope id associated with the destination address + which is stored in #ip6 Dst Address. This id and address must + always be considered as a unit. Logically, any change changes + both values. + + iDstId is initialized from the flow context TFlowInfo::iRemote.Scope() at + beginning of the flow connect phase. If application does not define + this scope id, then the system will attempt to choose a default value + at beginning of the connect phase. If the default cannot be determined, + the flow is put into pending state (and no connect happens). + + @par MIp6Hook::OpenL + On entry to the OpenL, the iDstId is always non-zero and destination + address is specified. If a hook changes the destination address in + OpenL method, it must provide the correct id value + which goes with the new destination. If it cannot do this, it + must either abort the connect by leaving with an error state, or it + can leave with PENDING (> 0) status to signal there is no route + for the new destination. + If the stack cannot find suitable interface for the destination, then + it aborts the connect phase, and the flow is placed into holding state. + + @note + Only a tunneling hook can safely change the destination + address (a use of routing header can also be a kind of + tunneling). + + @par MFlowHook::ReadyL + If the hook changed the destination address (or id) in the OpenL, + the ReadyL must restore the original values back. + + */ + TUint32 iDstId; + /** + Contains the scope id associated with the source address + which is stored in #ip6 Src address. This is defined when the source + address is defined, and otherwise undefined. + + iSrcId is initialized from TFlowInfo::iLocal.Scope() at beginning of the + flow connect phase. If application defines the source address, + but does not specify this scope id, then the system chooses + the id based on the interface defined by the source address. + If scope and address are both specified, they must match the + selected interface. + + @par MIp6Hook::OpenL + On entry to the OpenL, the iSrcId (and source address) may be + undefined (#iSourceSet = 0). If defined (iSourceSet = 1), then + both address and iSrcId are defined (iSrcId != 0). A hook may + force a reselection of the source just by zeroing the + iSourceSet. + + @par MFlowHook::ReadyL + If the hook changed the source address (or id) in the OpenL, + the ReadyL must restore the original values back, but only + if the original value was defined (#iSourceSet = 1 in OpenL). + */ + TUint32 iSrcId; + /** + The source address has been set. + + This bit indicates whether the value stored in #ip6 src field + and #iSrcId is to be used as a source address as is. + + Initialized from TFlowInfo::iLocalSet, which tells whether user + specified tbe source address or not (e.g used RSocket Bind method). + The stack checks the value after each MIp6Hook::OpenL call, and + if the flag is set, the source in ip6 is used as is. If the flag + is zero, then the stack performs the normal source address selection + based on the current destination address (#iSrcId and destination + address). + + @par MIp6Hook::OpenL + On entry, this flag is always set and source address is defined. + A hook may clear this flag, if it wants the + stack choose the source address based on current destination. + The clearing operation is normally needed only by a tunneling + hook. + + @note + If the hook specifies the source address, it must be either + a valid source address for the interface or unspecified + address. + + @par MFlowHook::ReadyL + Upon entry to the ReadyL, the source address is always fully + known (the hook can assume that #iSrcId and the #ip6 source + addresses are valid). + If the source address was set before the OpenL, then this + must restore the original value (along with the #iSrcId + and source address). + */ + TUint iSourceSet:1; +#ifdef TPACKETHEAD_FRAGMENT + /** + The fragment processing alredy done. + + This bit is meaningful only in OpenL phase. If already set, + then some ealier hook has requested that the packet must + be fragmented to fit the mtu. + + A tunneling hook can set this bit in OpenL, if it needs + the fragmenting to happen before the ApplyL is called (e.g. + the fragments are tunneled instead of fragmenting the + tunneling). + + This bit can only be set or left as is. It cannot be cleared + once set. + */ + TUint iFragment:1; +#endif + /** + Selector info, the upper layer protocol. + + iProtocol has the same value as ip6.NextHeader() when iPacket is empty, + and otherwise it is the same as NextHeader() of the last extension + header in the iPacket. + + The values of the other selector fields: #iIcmpType, #iIcmpCode + #iSrcPort and #iDstPort depend on iProtocol. Whenever iProtocol + is changed, the other fields must be updated accordingly. + + @par MIp6Hook::OpenL + Because iPacket cannot be modified during the OpenL phase, the + content of this field and the Next Header (protocol) field in + the #ip6 pseudoheader must always be the same. This field should + be considered as read-only, unless the hook intends to + apply IP-in-IP tunneling, in which case the hook must + change the value to the appropriate tunneling protocol + (#KProtocolInet6Ipip or #KProtocolInetIpip). + + @par MFlowHook::ReadyL + Only a tunneling hook needs to restore the value here to match + the original upper layer protocol. See #iPacket for + more detailed information. + */ + TUint8 iProtocol; + /** + Selector field whose value depends on #iProtocol. + + If this field does not have meaning with the protocol, + the field content should be set to ZERO. + */ + TUint8 iIcmpType; + /** + Selector field whose value depends on #iProtocol. + + If this field does not have meaning with the protocol, + the field content should be set to ZERO. + */ + TUint8 iIcmpCode; + /** + Selector field whose value depends on #iProtocol. + + If this field does not have meaning with the protocol, + the field content should be set to ZERO. + */ + TUint16 iSrcPort; + /** + Selector field whose value depends on #iProtocol. + + If this field does not have meaning with the protocol, + the field content should be set to ZERO. + */ + TUint16 iDstPort; + /** + The amount of pre-computed IPv6 extension headers in iPacket which + are copied to the beginning of each outgoing packet + + If iOffset > 0, then #iPacket includes that much of extension + headers that are copied in front of each packet. + */ + TInt iOffset; + /** + Pre-computed extension headers for all packets in this flow. + + These can only be added in the ReadyL phase. If any of the + ReadyL's adds extension headers into this, it must take care + of maintaining the correct Next Header in the virtual IP header + (and the original upper layer protocol must be placed in the + next header of the last extension header added. + + Stack copies the content of this to each outgoing packet, just below + the IP header, before running the ApplyL functions of the outbound + flow hooks. + + @par MIp6Hook::OpenL + The iPacket must not be modified during the OpenL phase. + + @par MFlowHook::ReadyL + A non-tunneling hook may add extension headers into the current + iPacket. A tunneling hook has more complex requirements: + it must save the current iPacket and #iOffset and initialize + iOffset = 0, and iPacket as empty. + + @par MFlowHook::ApplyL + When a tunneling hook adds the tunneling IP header, it + must also copy the saved iPacket below the added IP header. + */ + RMBufPacketPeek iPacket; + /** + The received packet which caused an ICMP error reply to be sent. + + This is only used for ICMP error repply flows, and should be + ignored by others -- mainly for IPSEC hook. The packet, if + present, is in unpacked state. + */ + RMBufPacketBase iIcmp; + /** + The current destination interface. + + This is ONLY used during connect/OpenL phase. + + The value is maintained by the stack, and is intended as + read-only information for the hooks that have a use for + it (for example, IPSEC implementing VPN specific policies). + + A hook must not modify this value (the stack will recompute + the value after each OpenL, based on the possibly changed + address parameters in the TPacketHead) + + @par MIp6Hook::OpenL + read-only + @par MFlowHook::ReadyL + read-only + */ + TUint32 iInterfaceIndex; + }; + +// TPacketPoker +// ************ +class TPacketPoker + /** + Provides a utility for linear scanning of a chain of RMBuf objects (an RMBufChain). + + An object of this type maintains a current point in the RMBufChain. This point + can only move forward, and a leave occurs if the point advances beyond the + end of the chain. + + Any pointers and aligns arranged before the current point, remain valid: for + example, you can save a reference and advance the pointer, and the reference + remains usable. + + If instead you need to go to a single specified offset, then use + RMBufChain::Goto() or RMBufPacketPeek::Access(). + + @post + A Generic implementation assert: + after construct, iTail == 0 iff iCurrent == 0 (all scanned), or + in other words: as long as there are bytes after current point, + iTail will be non-zero (and More() returns ETrue). + All methods maintain this invariant or leave, if impossible. + + Some other utility methods, not directly related to scanning, are also included. + @since v7.0 + @publishedAll + @released + */ + { +public: + IMPORT_C TPacketPoker(RMBufChain &aChain); + + inline void SkipL(TInt aSize) + /** + Moves the current point forward a specified number of bytes. + + @param aSize Number of bytes to move forward + @leave KErrEof + if the request cannot be satisfied. + */ + { if (aSize < iTail) { iTail -= aSize; iOffset += aSize; } else OverL(aSize); } + + inline TUint8 *Ptr() const + /** + Raw pointer to the current point (can be invalid, if iTail = 0). + + @note Internal "unsafe" method + */ + {return iCurrent->Ptr() + iOffset; } + + inline TUint8 *ReferenceL(TInt aSize = 1) + /** + Gets a pointer to the current point, such that + at least the specified minimum number of bytes can be read. + + @param aSize + Specified minimum number of bytes to be read through + the returned pointer. + @return Raw data pointer + @leave KErrEof + if the request cannot be satisfied. + */ + { if (iTail >= aSize) return Ptr(); else return AdjustL(aSize); } + + inline TUint8 *ReferenceAndSkipL(TInt aSize) + /** + Gets a pointer to the current point, such that at least the + specified minimum number of bytes can be read, + and moves the point the specified number of bytes forward. + + @param aSize + Specified minimum number of bytes to be read through the returned + pointer, and the number of bytes to move forward + @return + Raw data pointer + @leave KErrEof + if the request cannot be satisfied. + */ + { TUint8 *x = ReferenceL(aSize); SkipL(aSize); return x; } + + inline TInt Remainder() const + /** + Gets the length of the contiguous space after the current point. + + @return Length after the current point + */ + { return iTail; } + + inline TBool AtBegin() const + /** + Tests whether the current point is at the beginning of an RMBuf. + + @return ETrue if current point is at the beginning + */ + { return iOffset == 0; } + + inline TBool More() const + /** + Tests whether there is more data to scan. + + @return ETrue if there is more data to scan + */ + { return iTail > 0; } + + IMPORT_C static TBool IsExtensionHeader(TInt aProtocolId); +private: + IMPORT_C void OverL(TInt aSize); + IMPORT_C TUint8 *AdjustL(TInt aSize); + /** The RMBuf of the current point. */ + RMBuf *iCurrent; + /** The offset of the current point in the RMBuf. */ + TInt iOffset; + /** Remaining bytes starting from the current point in the RMBuf. */ + TInt iTail; + }; + +#endif diff -r a579325b79dd -r 1422c6cd3f0c networkprotocols/iphook/inhook6/src/in_chk.cpp --- a/networkprotocols/iphook/inhook6/src/in_chk.cpp Tue Feb 02 01:27:53 2010 +0200 +++ b/networkprotocols/iphook/inhook6/src/in_chk.cpp Sat Feb 20 00:22:11 2010 +0200 @@ -16,6 +16,7 @@ #include // IPv6 enhanced in_sock.h #include "in_chk.h" +#include "in_pkt_platform.h" EXPORT_C void TChecksum::Add(RMBufChain &aPacket, TInt aOffset) diff -r a579325b79dd -r 1422c6cd3f0c networkprotocols/iphook/inhook6/src/in_pkt.cpp --- a/networkprotocols/iphook/inhook6/src/in_pkt.cpp Tue Feb 02 01:27:53 2010 +0200 +++ b/networkprotocols/iphook/inhook6/src/in_pkt.cpp Sat Feb 20 00:22:11 2010 +0200 @@ -18,7 +18,9 @@ // #include "in_pkt.h" +#include "in_pkt_platform.h" #include "ext_hdr.h" +#include #define OPTIMIZE_PADDING diff -r a579325b79dd -r 1422c6cd3f0c networkprotocols/tcpipv4v6prt/inc/loop6.h --- a/networkprotocols/tcpipv4v6prt/inc/loop6.h Tue Feb 02 01:27:53 2010 +0200 +++ b/networkprotocols/tcpipv4v6prt/inc/loop6.h Sat Feb 20 00:22:11 2010 +0200 @@ -29,6 +29,7 @@ #include # include // ..for CNifIfBase in Epoc R6 and later #include +#include const TUint KProtocolInet6Loop = 0x1F00; // Virtual diff -r a579325b79dd -r 1422c6cd3f0c networkprotocols/tcpipv4v6prt/src/iface.cpp --- a/networkprotocols/tcpipv4v6prt/src/iface.cpp Tue Feb 02 01:27:53 2010 +0200 +++ b/networkprotocols/tcpipv4v6prt/src/iface.cpp Sat Feb 20 00:22:11 2010 +0200 @@ -75,7 +75,7 @@ #include #include "inet6log.h" #include "iface.h" -#include // IPv6 driver API specifications +#include // IPv6 driver API specifications #include #include #include @@ -5538,12 +5538,20 @@ // Should this also check whether address type is same? // Changing just type does not work with this code! // -- msa 24.10.2003 - if (aId.IsSet() && aPrefix == aId.iPrefix && aAddr.IsEqual(aId.iId)) - return 0; // Id is same as before, no change! if (aPrefix < 0 || aPrefix > 128) return 0; // Invalid length, do nothing! if (TIp46Addr::Cast(aAddr).IsMulticast()) return 0; // A multicast address cannot be my own. + if (aId.IsSet() && aPrefix == aId.iPrefix && aAddr.IsEqual(aId.iId)) + { + // Id has not changed but expecting some change in any of + // the other interface fields. So raising a Interface change event + // for the subscribers to keep themselves updated + + // Send notification to the event service + NotifyInterfaceEvent(EventTypeModify); + return 1; + } UpdateIdRoutes(aId, 0); // Remove old route (if needed) aId.iId = aAddr; diff -r a579325b79dd -r 1422c6cd3f0c networkprotocols/tcpipv4v6prt/src/loop6.cpp --- a/networkprotocols/tcpipv4v6prt/src/loop6.cpp Tue Feb 02 01:27:53 2010 +0200 +++ b/networkprotocols/tcpipv4v6prt/src/loop6.cpp Sat Feb 20 00:22:11 2010 +0200 @@ -16,7 +16,7 @@ #include "in_fmly.h" #include "loop6.h" -#include // KSoIf* +#include // KSoIf* #include "networkinfo.h" CIfLoop6::CIfLoop6() diff -r a579325b79dd -r 1422c6cd3f0c package_definition.xml --- a/package_definition.xml Tue Feb 02 01:27:53 2010 +0200 +++ b/package_definition.xml Sat Feb 20 00:22:11 2010 +0200 @@ -92,9 +92,6 @@ - - - diff -r a579325b79dd -r 1422c6cd3f0c tcpiputils/dhcp/src/DHCPDb.cpp --- a/tcpiputils/dhcp/src/DHCPDb.cpp Tue Feb 02 01:27:53 2010 +0200 +++ b/tcpiputils/dhcp/src/DHCPDb.cpp Sat Feb 20 00:22:11 2010 +0200 @@ -27,6 +27,7 @@ #include #include #include +#include #include "DhcpIP6Msg.h" using namespace CommsDat; diff -r a579325b79dd -r 1422c6cd3f0c tcpiputils/dhcp/te_dhcp/include/te_dhcpTestServer.h --- a/tcpiputils/dhcp/te_dhcp/include/te_dhcpTestServer.h Tue Feb 02 01:27:53 2010 +0200 +++ b/tcpiputils/dhcp/te_dhcp/include/te_dhcpTestServer.h Sat Feb 20 00:22:11 2010 +0200 @@ -25,6 +25,8 @@ #include #include +#include +#include #include #include //#include "DHCPIP4Msg.h" diff -r a579325b79dd -r 1422c6cd3f0c tcpiputils/networkaddressandporttranslation/inc/naptutil.h --- a/tcpiputils/networkaddressandporttranslation/inc/naptutil.h Tue Feb 02 01:27:53 2010 +0200 +++ b/tcpiputils/networkaddressandporttranslation/inc/naptutil.h Sat Feb 20 00:22:11 2010 +0200 @@ -24,6 +24,8 @@ #include #include #include +#include +#include #include #include #include