Automatic merge from PDK_3.0.h CompilerCompatibility
authorWilliam Roberts <williamr@symbian.org>
Sun, 14 Mar 2010 13:15:53 +0000
branchCompilerCompatibility
changeset 9 7e9ef0db0a3d
parent 7 53c7f3ef2709 (current diff)
parent 6 e7dfaa7b0b8d (diff)
Automatic merge from PDK_3.0.h
networkcontrol/ipupsplugins/dialogcreator/bwins/ipupsdialogu.def
networkcontrol/ipupsplugins/dialogcreator/eabi/ipupsdialogu.def
networkcontrol/ipupsplugins/dialogcreator/group/bld.inf
networkcontrol/ipupsplugins/dialogcreator/group/ipupsdialog.iby
networkcontrol/ipupsplugins/dialogcreator/group/ipupsdialog.mmp
networkcontrol/ipupsplugins/dialogcreator/inc/ipupsconst.h
networkcontrol/ipupsplugins/dialogcreator/inc/ipupsdialog.h
networkcontrol/ipupsplugins/dialogcreator/resource/10285A7B.rss
networkcontrol/ipupsplugins/dialogcreator/source/ipupsconst.cpp
networkcontrol/ipupsplugins/dialogcreator/source/ipupsdialog.cpp
networkcontrol/ipupsplugins/group/bld.inf
networkcontrol/ipupsplugins/group/networking_ipups.mrp
networkcontrol/ipupsplugins/policyfile/ups_101F7989_10281DD8.rss
networkcontrol/ipupsplugins/test/te_ipups/data/te_ipups.ini
networkcontrol/ipupsplugins/test/te_ipups/group/te_ipups.iby
networkcontrol/ipupsplugins/test/te_ipups/group/te_ipups.mmp
networkcontrol/ipupsplugins/test/te_ipups/inc/te_ipups_delete_decision_db.h
networkcontrol/ipupsplugins/test/te_ipups/inc/te_ipups_notify_count.h
networkcontrol/ipupsplugins/test/te_ipups/inc/te_ipups_server.h
networkcontrol/ipupsplugins/test/te_ipups/inc/te_ipups_stepbase.h
networkcontrol/ipupsplugins/test/te_ipups/inc/te_ipups_ups_step.h
networkcontrol/ipupsplugins/test/te_ipups/policyfile/ups_10285B91_10281DD8.rss
networkcontrol/ipupsplugins/test/te_ipups/policyfile/ups_test_always_101F7989_10281DD8.rss
networkcontrol/ipupsplugins/test/te_ipups/scripts/te_ipups.script
networkcontrol/ipupsplugins/test/te_ipups/src/te_ipups_delete_decision_db.cpp
networkcontrol/ipupsplugins/test/te_ipups/src/te_ipups_notify_count.cpp
networkcontrol/ipupsplugins/test/te_ipups/src/te_ipups_server.cpp
networkcontrol/ipupsplugins/test/te_ipups/src/te_ipups_stepbase.cpp
networkcontrol/ipupsplugins/test/te_ipups/src/te_ipups_ups_step.cpp
--- a/esockapiextensions/internetsockets/inc/in6_if.h	Mon Mar 08 21:44:54 2010 +0000
+++ b/esockapiextensions/internetsockets/inc/in6_if.h	Sun Mar 14 13:15:53 2010 +0000
@@ -28,7 +28,7 @@
 #define __IN6_IF_H__
 
 #include <e32std.h>
-#include "in_iface.h"	// TSoIfInfo
+#include <in_sock.h>
 
 //	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<KMaxInterfaceName> 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::\<port\>. */
+	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.
--- a/esockapiextensions/internetsockets/inc/in_iface.h	Mon Mar 08 21:44:54 2010 +0000
+++ b/esockapiextensions/internetsockets/inc/in_iface.h	Sun Mar 14 13:15:53 2010 +0000
@@ -31,7 +31,7 @@
 #if !defined(__NIFVAR_H__)
 #include <nifvar.h>
 #endif
-
+#include <in6_if.h>
 // 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<KMaxInterfaceName> 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::\<port\>. */
-	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. 
--- a/linklayercontrol/networkinterfacemgr/inc/NIFIF.H	Mon Mar 08 21:44:54 2010 +0000
+++ b/linklayercontrol/networkinterfacemgr/inc/NIFIF.H	Sun Mar 14 13:15:53 2010 +0000
@@ -28,11 +28,13 @@
 #define SYMBIAN_NETWORKING_UPS
 
 #include <nifman.h>
+#include <e32property.h>
 #include <comms-infras/nifprvar.h>
 #ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <comms-infras/nifif_internal.h>
 #endif
 
+class RMBufChain;
 
 /**
  The direction of data transfer
--- a/linklayercontrol/networkinterfacemgr/inc/NIFMAN.H	Mon Mar 08 21:44:54 2010 +0000
+++ b/linklayercontrol/networkinterfacemgr/inc/NIFMAN.H	Sun Mar 14 13:15:53 2010 +0000
@@ -23,9 +23,7 @@
 #if !defined(__NIFMAN_H__)
 #define __NIFMAN_H__
 
-#include <es_prot.h>
 #include <nifvar.h>
-#include <cdbover.h>
 
 #ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <nifman_internal.h>
--- a/linklayercontrol/networkinterfacemgr/netcfgext/src/netcfgextnbase.cpp	Mon Mar 08 21:44:54 2010 +0000
+++ b/linklayercontrol/networkinterfacemgr/netcfgext/src/netcfgextnbase.cpp	Sun Mar 14 13:15:53 2010 +0000
@@ -25,6 +25,7 @@
 #include <comms-infras/ca_startserver.h>
 #include <cdbcols.h>
 #include <comms-infras/commsdebugutility.h>
+#include <cdblen.h>
 
 
 #ifdef _DEBUG
--- a/linklayercontrol/networkinterfacemgr/netcfgext/src/nifconfigurationcontrol.cpp	Mon Mar 08 21:44:54 2010 +0000
+++ b/linklayercontrol/networkinterfacemgr/netcfgext/src/nifconfigurationcontrol.cpp	Sun Mar 14 13:15:53 2010 +0000
@@ -22,6 +22,7 @@
 #include <comms-infras/ss_log.h>
 #include "nifnullconfiguration.h"
 #include <comms-infras/nifif.h>
+#include <metadatabase.h>
 #include <commsdattypeinfov1_1.h>
 #include <cdbcols.h>
 #include <cdblen.h>
--- a/linklayerprotocols/ethernetnif/EthInt/CLanIp4Bearer.cpp	Mon Mar 08 21:44:54 2010 +0000
+++ b/linklayerprotocols/ethernetnif/EthInt/CLanIp4Bearer.cpp	Sun Mar 14 13:15:53 2010 +0000
@@ -36,6 +36,7 @@
 #include "ProtocolHeaders.h"
 #include <comms-infras/es_protbinder.h>
 #include "EthProvision.h"
+#include <nifmbuf.h>
 
 using namespace ESock;
 
--- a/linklayerprotocols/ethernetnif/EthInt/CLanIp6Bearer.cpp	Mon Mar 08 21:44:54 2010 +0000
+++ b/linklayerprotocols/ethernetnif/EthInt/CLanIp6Bearer.cpp	Sun Mar 14 13:15:53 2010 +0000
@@ -30,6 +30,7 @@
 #include "EthProto.h"
 #include <comms-infras/es_protbinder.h>
 #include "EthProvision.h"
+#include <nifmbuf.h>
 
 using namespace ESock;
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/linklayerprotocols/ethernetnif/EtherPkt/CardCtl.cpp	Sun Mar 14 13:15:53 2010 +0000
@@ -0,0 +1,452 @@
+// Copyright (c) 1997-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:
+// Control engine for ethernet packet driver 
+// 
+//
+
+/**
+ @file
+*/
+
+#include <nifman.h>
+#include <nifvar.h>
+#include <nifutl.h>
+#include <es_mbuf.h>
+#include <es_ini.h>
+#include <ir_sock.h>
+#include "PKTDRV.H"
+#include "ETHINTER.H"
+#include "Cardctl.h"
+#include <f32file.h>
+#include <e32svr.h>
+
+//#define __DebugCardCtl__ 1
+
+
+
+/**
+Create a new CPcCardControlEngine object.
+@param aPktDrv Pointer to PC Card Packet Driver.
+@return A pointer to CPcCardControlEngine object.
+*/
+CPcCardControlEngine *CPcCardControlEngine::NewL(CPcCardPktDrv* aPktDrv)
+{
+	CPcCardControlEngine *cc=new (ELeave) CPcCardControlEngine(aPktDrv);
+	CleanupStack::PushL(cc);
+	cc->ConstructL();
+	CleanupStack::Pop();
+	return cc;
+}
+
+/**
+Physical device driver settings
+@internalComponent
+*/
+_LIT(KPddSection,"pdd_settings");
+ 
+/**
+PCMCIA Socket Number
+@internalComponent
+*/
+_LIT(KSocketNumber,"PCMCIA_socket"); 
+
+/**
+Create the CPcCardControlEngine object.
+*/
+void CPcCardControlEngine::ConstructL()
+{
+	iSender = CPcCardSender::NewL(this);
+	iReceiver = CPcCardReceiver::NewL(this);
+	iEventHandler = CPcCardEventHandler::NewL(this);
+
+	LoadDeviceDriversL();
+
+	CESockIniData* ini = CESockIniData::NewL(ETHER802_CONFIG_FILENAME);
+	CleanupStack::PushL(ini);
+
+	TInt socket;
+	if(!ini->FindVar(KPddSection,KSocketNumber,socket))
+		{
+		User::Leave(KErrNotFound);
+		}
+	
+	CleanupStack::PopAndDestroy(ini);
+
+	TInt error = iCard.Open(socket);
+	User::LeaveIfError(error);
+}
+
+/**
+Open the Card LDD
+*/
+void CPcCardControlEngine::StartL()
+{
+	iCardOpen = ETrue;
+	iReceiver->QueueRead();
+	LinkLayerUp();
+}
+
+/**
+Find and loads the LDD and the PDD if the logical device driver loaded OK.
+The driver names are read from the LAN bearer table in commdb.
+*/
+void CPcCardControlEngine::LoadDeviceDriversL()
+{
+	TInt err;
+
+	//
+	// Get the device driver filenames for loading
+	//
+	TBuf<KCommsDbSvrDefaultTextFieldLength> pddOrLddFileName;
+	
+	// LDD first...
+	TBuf<KCommsDbSvrMaxColumnNameLength> columnName=TPtrC(LAN_BEARER);
+	columnName.Append(TChar(KSlashChar));
+	columnName.Append(TPtrC(LAN_BEARER_LDD_FILENAME));
+	
+	err = iNotify->NifNotify()->ReadDes(columnName, pddOrLddFileName); // Get the LDD name from commdb
+	
+	if(err!=KErrNone)
+		{
+		__FLOG_STATIC(KEther802LogTag1,KEthLogTag3, _L("Could not find LDD filename in commdb - is .cfg file up-to-date?  See ether802.ini for information on required fields in commdb."));
+		User::Leave(err);
+		}
+	
+	err=User::LoadLogicalDevice(pddOrLddFileName);
+	if(err != KErrNone && err != KErrAlreadyExists)
+		{
+		User::Leave(err);
+		}
+	
+	// ...and now the PDD
+	columnName.Zero();
+	columnName.Append(TPtrC(LAN_BEARER));
+	columnName.Append(TChar(KSlashChar));
+	columnName.Append(TPtrC(LAN_BEARER_PDD_FILENAME));
+
+	err = iNotify->NifNotify()->ReadDes(columnName, pddOrLddFileName); // Get the PDD filename from commdb
+
+	if(err!=KErrNone)
+		{
+		__FLOG_STATIC(KEther802LogTag1,KEthLogTag3, _L("Could not find PDD filename in commdb - is .cfg file up-to-date?  See ether802.ini for information on required fields in commdb."));
+		User::Leave(err);
+		}
+
+	err = User::LoadPhysicalDevice(pddOrLddFileName);
+	if (err != KErrNone && err != KErrAlreadyExists)
+		{
+		User::Leave(err);
+		}
+
+	//
+	// Get device driver names for unloading
+	//
+	columnName.Zero();
+	columnName.Append(TPtrC(LAN_BEARER));
+	columnName.Append(TChar(KSlashChar));
+	columnName.Append(TPtrC(LAN_BEARER_PDD_NAME));
+
+	err = iNotify->NifNotify()->ReadDes(columnName, iPDDName); // Get the PDD name from commdb (so we can close it when we've finished with it)
+
+	if(err!=KErrNone)
+		{
+		__FLOG_STATIC(KEther802LogTag1,KEthLogTag3, _L("Could not find PDD name in commdb - is .cfg file up-to-date?  See ether802.ini for information on required fields in commdb."));
+
+#ifdef _DEBUG
+		// Not being able to unload the device drivers is not a fatal error, so don't worry too 
+		// much if we can't read the field out of commdb in release builds, but if the user is 
+		// using a debug nif they ought to get it right...
+		User::Leave(err);
+#endif // _DEBUG
+		}
+
+	// Rather than fiddle around trying to reuse the contents of the descriptor (problems with field name lengths), just zero and start again
+	columnName.Zero();
+	columnName.Append(TPtrC(LAN_BEARER));
+	columnName.Append(TChar(KSlashChar));
+	columnName.Append(TPtrC(LAN_BEARER_LDD_NAME));
+
+	err = iNotify->NifNotify()->ReadDes(columnName, iLDDName); // Get the LDD name from commdb (so we can close it when we've finished with it)
+	
+	if(err!=KErrNone)
+		{
+		__FLOG_STATIC(KEther802LogTag1,KEthLogTag3, _L("Could not find LDD name in commdb - is .cfg file up-to-date?  See ether802.ini for information on required fields in commdb."));
+
+#ifdef _DEBUG
+		User::Leave(err);	// see reasoning for LDD above
+#endif // _DEBUG
+		}
+
+	__FLOG_STATIC(KEther802LogTag1,KEthLogTag3, _L("Device drivers loaded"));
+}
+
+/**
+Cancel I/O and close the Card LDD.
+*/
+void CPcCardControlEngine::Stop()
+{
+	// LDD Performs status checks on Read and Write
+	// Completes requests with an error code if they are pending
+	iCard.WriteCancel();
+	iSender->EmptyQueue();
+	iSender->Cancel();
+
+	iCard.ReadCancel();
+	iCardOpen = EFalse;
+	iCard.Close();
+}
+
+CPcCardControlEngine::CPcCardControlEngine(CPcCardPktDrv* aPktDrv)
+:iCardOpen(EFalse), iNotify(aPktDrv)
+/**
+Constructor.
+@param aPktDrv Pointer to PC Card Packet Driver.
+*/
+{
+
+}		
+
+/**
+Destructor.
+*/
+CPcCardControlEngine::~CPcCardControlEngine()
+{
+#ifdef _DEBUG
+	// see reasoning for only doing this in debug builds in LoadPacketDrivers()
+	User::FreeLogicalDevice(iLDDName);
+	User::FreePhysicalDevice(iPDDName);
+#endif
+
+	delete iReceiver;
+	delete iSender;
+	delete iEventHandler;
+}
+
+/**
+Upwards notify
+@param aBuffer A Reference to a buffer holding data.
+*/
+void CPcCardControlEngine::ProcessReceivedPacket(TDesC8& aBuffer)
+{
+	iNotify->ReadDataAvailable(aBuffer);
+}
+
+/**
+Resume Sending is a notification call into NIF from the lower layer telling the NIF that a 
+previous sending congestion situation has been cleared and it can accept more downstack data.
+*/
+void CPcCardControlEngine::ResumeSending()
+{
+	iNotify->ResumeSending();
+}
+
+/**
+Resume Sending is a notification call into NIF from the lower layer telling the NIF that 
+the interface is now up and can accept and transmit data. NIF subsequently calls all the 
+bearers' StartSending() methods directly.
+*/
+void CPcCardControlEngine::LinkLayerUp()
+{
+	iNotify->LinkLayerUp();
+}
+
+/**
+Sender class handles queueing and takes ownership of the HBuf and the CIOBuffer.
+@param aBuffer The data to be send is set.
+@return 0 Tells the higher layer to send no more data.
+		1 Tells higher layer that it can send more data.
+*/
+TInt CPcCardControlEngine::Send(HBufC8* aBuffer)
+{
+	CIOBuffer* buf = NULL;
+	TRAPD(err,buf = CIOBuffer::NewL(aBuffer));
+	if(err != KErrNone)
+		{
+		delete aBuffer;
+		}
+	else
+		{
+		err = iSender->Send(buf);
+		}
+	return err;
+}
+
+/**
+Call to LDD or subordinate object to get the Hardware address of the LAN Device
+@return NULL Failure.
+		(NULL Terminated Binary String) The Hardware Address of the interface. LAN Device 
+		Specific
+*/
+TUint8* CPcCardControlEngine::GetInterfaceAddress()
+{
+	iConfig.SetMax();
+	iCard.Config(iConfig);
+	return ((TUint8*)iConfig.Ptr())+2; // The MAC address is located 2 bytes
+					   // from the start of the buffer
+}
+
+#if !defined(__WINS__)
+//
+
+/** 
+ethermac.dat reading - work around for mac address problem 
+@internal component
+*/
+_LIT(KEtherMacFileName,"C:\\System\\Data\\EtherMac.dat");
+
+/**
+Parse the Machine Address from the File.
+*/
+void CPcCardControlEngine::ParseMACFromFileL()
+{
+
+	TBuf8<64> controlBuf;  // the size of this is defined in the driver as 64.
+	TBuf8<12> macAddress = 0;
+	RFile macFile;
+	RFs fileSrv;
+	
+	User::LeaveIfError(fileSrv.Connect());
+	User::LeaveIfError(macFile.Open(fileSrv,KEtherMacFileName,EFileRead));
+	User::LeaveIfError(macFile.Read(macAddress,12));
+	macFile.Close();
+	fileSrv.Close();
+	controlBuf.SetLength(8);	
+	controlBuf[0] = KEthSpeed10BaseT;
+	controlBuf[1] = KEthDuplexHalf;
+
+	TBuf<20> validChars(_L("0123456789abcdef"));
+	TUint8 value;
+	TUint8 upper=0;
+	TChar c;
+	TInt pos; 
+	iConfig.SetMax(); // MAC Address fix
+	for(TInt i=0; i<6; i++)
+	{
+		c = macAddress[2*i];
+		c.LowerCase();
+		if((pos = validChars.Locate(c))==KErrNotFound)
+		{
+			pos = upper;
+			break;
+		}
+		upper = (TUint8)pos;
+		c = macAddress[(2*i)+1];
+		c.LowerCase();
+		if((pos = validChars.Locate(c))==KErrNotFound)
+		{
+			User::Leave(KErrNotFound);
+		}
+		value = (TUint8)pos;
+		value = (TUint8)((upper<<4) | value);
+		controlBuf.Append(value);
+		iConfig[i+2]=value; // MAC Address fix 21/05/01
+	}
+	TRequestStatus status = 0;
+	
+	User::LeaveIfError(iCard.SetMAC(controlBuf));
+
+	User::WaitForRequest(status);
+	User::LeaveIfError(status.Int());
+}
+#endif
+
+/**
+Constructor. Generic Buffer class
+Currently used for transmit buffers
+*/
+CIOBuffer::CIOBuffer() : iBufPtr(NULL,0)
+{
+}
+
+/**
+Destructor. Free the HBuf if there is one
+*/
+CIOBuffer::~CIOBuffer()
+{
+	FreeData();
+}
+
+/**
+Creation where we new the HBuf.
+@param aSize Length of the Buffer.
+@return A pointer to CIOBuffer object.
+*/
+CIOBuffer* CIOBuffer::NewL(const TInt aSize)
+{
+	CIOBuffer * self = new (ELeave) CIOBuffer;
+	CleanupStack::PushL(self);
+	self->ConstructL(aSize);
+	CleanupStack::Pop();
+	return self;
+}
+
+/**
+Construction where we new the HBuf
+@param aSize Length of the Buffer.
+*/
+void CIOBuffer::ConstructL(const TInt aSize)
+{
+	iBuf = HBufC8::NewL(aSize);
+	TPtr8 temp=iBuf->Des();
+	iBufPtr.Set(temp);
+}
+
+/**
+HBuf provided. 
+@param aBuf The data to be assigned 
+@return A pointer to CIOBuffer object.
+*/
+CIOBuffer* CIOBuffer::NewL(HBufC8* aBuf)
+{
+	CIOBuffer * self = new (ELeave) CIOBuffer;
+	self->Assign(aBuf);
+	return self;
+}
+
+/**
+Offset 
+*/
+TInt CIOBuffer::LinkOffset()
+{
+	return _FOFF(CIOBuffer,iLink);	
+}
+
+/**
+Assigns the data from buffer to pointer.
+
+@param aBuffer The data to be assigned  
+*/
+void CIOBuffer::Assign(HBufC8* aBuffer)
+{
+	FreeData();
+	iBuf = aBuffer;
+	if(aBuffer)
+		{
+		TPtr8 temp=iBuf->Des();
+		iBufPtr.Set(temp);
+		}
+}
+
+/**
+Frees the data.
+*/
+void CIOBuffer::FreeData()
+{
+	if(iBuf)
+		{
+		delete iBuf;
+		iBuf = NULL;
+		}
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/linklayerprotocols/ethernetnif/EtherPkt/CardDll.cpp	Sun Mar 14 13:15:53 2010 +0000
@@ -0,0 +1,365 @@
+// Copyright (c) 1997-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 <nifman.h>
+#include <nifvar.h>
+#include <nifutl.h>
+#include <es_mbuf.h>
+#include <nifmbuf.h>
+#include "PKTDRV.H"
+#include "ETHINTER.H"
+#include "Cardctl.h"
+
+
+/**
+@internalComponent
+*/
+extern "C"
+{
+	IMPORT_C CPktDrvFactory * NewPcCardPktDrvFactoryL();	//< Force export 
+}
+
+/**
+Library file is opened and this is the the first and only export.
+@internalComponent
+@return A pointer to CPktDrvFactory object.
+*/
+EXPORT_C CPktDrvFactory* NewPcCardPktDrvFactoryL()
+{
+	CPktDrvFactory *f=new (ELeave) CPcCardPktDrvFactory;
+	return f;
+}
+
+/**
+Create the packet driver object
+@param aParent Pointer to the parent Ethint NIF class.
+@return A pointer to CPktDrvBase object.
+*/
+CPktDrvBase* CPcCardPktDrvFactory::NewDriverL(CLANLinkCommon* aParent)
+{
+	CPktDrvBase *drv = new (ELeave) CPcCardPktDrv(*this);
+	CleanupStack::PushL(drv);
+	drv->ConstructL(aParent);
+	CleanupStack::Pop();
+	return drv;
+}
+
+/**
+Constructor.
+*/
+CPcCardPktDrvFactory::CPcCardPktDrvFactory()
+{
+	
+}
+
+/**
+Packet Driver version number.
+@return Version number of the Packet Driver
+*/
+TVersion CPcCardPktDrvFactory::Version() const
+{
+	return(TVersion(KPcCardDrvMajorVersionNumber,KPcCardDrvMinorVersionNumber,KPcCardDrvBuildVersionNumber));
+}
+
+
+/**
+Constructor. Packet Driver object. 
+*/
+CPcCardPktDrv::CPcCardPktDrv(CPktDrvFactory& aFactory) : CPktDrvBase(aFactory)
+{
+	
+}
+
+/**
+Only one object owned
+Destructor.
+*/
+CPcCardPktDrv::~CPcCardPktDrv()
+{
+	delete iControl;
+}
+
+/**
+Pure Virtual Construction of the CPktDrvBase object
+@param aParent Pointer to the CLANLinkCommon class.
+*/
+void CPcCardPktDrv::ConstructL(CLANLinkCommon* aParent)
+{
+	iParent = aParent;
+	// Card control engine
+	iControl=CPcCardControlEngine::NewL(this);
+}
+
+/**
+Pure Virtual Downstack call. "	Call to LDD or subordinate object to start/initialise the 
+Physical device
+@return KErrNone		 if Successful 
+		KErrNotSupported LAN Device does not support.
+		Implementation specific Error Code  Failure
+*/
+TInt CPcCardPktDrv::StartInterface()
+{
+	// Opens the card and queues a read
+	// Control engine validates
+	TRAPD(err,iControl->StartL());
+	return err;
+}
+ 
+/**
+Call to LDD or subordinate object to stop/de-initialise the Physical device
+@return KErrNone		 if Successful 
+		KErrNotSupported LAN Device does not support.
+		Implementation specific Error Code  Failure
+*/
+TInt CPcCardPktDrv::StopInterface()
+{
+	// Closes the card
+	// Control engine validates
+	iControl->Stop();
+	return KErrNone;
+}
+
+/**
+Call to LDD or subordinate object to reset/re-initialise the Physical device
+@return KErrNone		 if Successful 
+		KErrNotSupported LAN Device does not support.
+		Implementation specific Error Code  Failure
+*/
+TInt CPcCardPktDrv::ResetInterface()
+{
+	iControl->Stop();
+	TRAPD(err,iControl->StartL());
+	return err;
+}
+
+/**
+Sender Class is generic and does not want to know about RMBuf's
+Copy to a Heap Buffer and Free the packet. EtherII MAC layer comments
+Say we should free the packet buffer
+RMBuf could contain a chain so get into a contiguous buffer
+@param aPacket Reference to a chain of data buffers to be passed to the line.
+@return 0 Tells the higher layer to send no more data.
+		1 Tells higher layer that it can send more data.
+*/
+TInt CPcCardPktDrv::Send(RMBufChain &aPacket)
+{
+	if(!iControl->CardOpen())
+		{
+		aPacket.Free();
+		return KErrNotReady;
+		}
+	HBufC8 * buf = NULL;
+	TRAPD(err,buf = HBufC8::NewMaxL(aPacket.Length()));
+	if(err != KErrNone)
+		{
+		aPacket.Free();
+		return err;
+		}
+	TPtr8 ptr = buf->Des();
+	aPacket.CopyOut(ptr);
+	aPacket.Free();
+	return(iControl->Send(buf));
+}
+
+/**
+Read the Available data.
+@param aBuffer A Reference to a buffer holding data.
+*/
+void CPcCardPktDrv::ReadDataAvailable(TDesC8& aBuffer)
+{
+	RMBufPacket frame;
+	TRAPD(ret,frame.CreateL(aBuffer,0));
+	if (ret == KErrNone)
+		{
+		frame.Pack();
+		iParent->Process(frame);
+		}
+}
+
+/**
+Resume Sending is a notification call into NIF from the lower layer telling the NIF that a 
+previous sending congestion situation has been cleared and it can accept more downstack data.
+*/
+void CPcCardPktDrv::ResumeSending()
+{
+	iParent->ResumeSending();
+}
+
+/**
+Call to LDD or subordinate object to set the receive mode of the LAN Device
+@param aMode The mode to be set for the LAN Device.			
+@return KErrNotSupported LAN Device does not support.
+*/
+TInt CPcCardPktDrv::SetRxMode(TRxMode /*aMode*/)
+{
+	return KErrNotSupported;
+}
+
+/**
+Call to LDD or subordinate object to Get the receive mode of the LAN Device
+@return KErrNotSupported LAN Device does not support.
+*/
+TInt CPcCardPktDrv::GetRxMode() const
+{
+	return KErrNotSupported;
+}
+
+/**
+Specifies the AccessType.
+@return KErrNotSupported LAN Device does not support.
+*/
+TInt CPcCardPktDrv::AccessType()
+{
+	return KErrNotSupported;
+}
+
+/**
+Specifies the ReleaseType.
+@return KErrNotSupported LAN Device does not support.
+*/
+TInt CPcCardPktDrv::ReleaseType()
+{
+	return KErrNotSupported;
+}
+
+/**
+Call to LDD or subordinate object to get the Hardware address of the LAN Device
+@return NULL Failure.
+		(NULL Terminated Binary String) The Hardware Address of the interface. LAN Device 
+		Specific
+*/
+TUint8* CPcCardPktDrv::GetInterfaceAddress()const
+{
+	return (iControl->GetInterfaceAddress());
+}
+
+/**
+Call to LDD or subordinate object to set the Hardware address of the LAN Device.
+@param THWAddr Address of where the Multicast list should be written.
+@return KErrNone		 if Successful 
+		KErrNotSupported LAN Device does not support.
+		Implementation specific Error Code  Failure
+*/
+TInt CPcCardPktDrv::SetInterfaceAddress(const THWAddr&)
+{
+	return KErrNotSupported;
+}
+
+/**
+Call to LDD or subordinate object to retrieve the Multicast List from the LAN Device
+@param aAddr Address of where the Multicast list should be written.
+@param n Output Parameter , number of Addresses written
+@return KErrNone		 if Successful 
+		KErrNotSupported LAN Device does not support.
+		Implementation specific Error Code  Failure
+*/
+TInt CPcCardPktDrv::GetMulticastList(const THWAddr* /*aAddr*/, TInt& /*n*/) const
+{
+	return KErrNotSupported;
+}
+
+/**
+Call to LDD or subordinate object to set the Multicast List for the LAN Device.
+@param aAddr Address of where the Multicast list should be written.
+@param n Output Parameter , number of Addresses written
+@return KErrNone		 if Successful 
+		KErrNotSupported LAN Device does not support.
+		Implementation specific Error Code  Failure
+*/
+TInt CPcCardPktDrv::SetMulticastList(const THWAddr* /*aAddr*/, TInt /*n*/)
+{
+	return KErrNotSupported;
+}
+
+/**
+Call to LDD or subordinate object to power up the LAN Device.
+@return KErrNone		 if Successful 
+		KErrNotSupported LAN Device does not support.
+		Implementation specific Error Code  Failure
+*/
+TInt CPcCardPktDrv::InterfacePowerUp()
+{
+	return KErrNotSupported;
+}
+	
+/**
+Call to LDD or subordinate object to power down the LAN Device
+@return KErrNone		 if Successful 
+		KErrNotSupported LAN Device does not support.
+		Implementation specific Error Code  Failure
+*/
+TInt CPcCardPktDrv::InterfacePowerDown()
+{
+	return KErrNotSupported;
+}
+
+/**
+Call to LDD or subordinate object to suspend the LAN Device.
+@return KErrNone		 if Successful 
+		KErrNotSupported LAN Device does not support.
+		Implementation specific Error Code  Failure
+*/
+TInt CPcCardPktDrv::InterfaceSleep()
+{
+	return KErrNotSupported;
+}
+
+/**
+Call to LDD or subordinate object to resume the LAN Device.
+@return KErrNone		 if Successful 
+		KErrNotSupported LAN Device does not support.
+		Implementation specific Error Code  Failure
+*/
+TInt CPcCardPktDrv::InterfaceResume()
+{
+	return KErrNotSupported;
+}
+
+/**
+Resume Sending is a notification call into NIF from the lower layer telling the NIF that 
+the interface is now up and can accept and transmit data. NIF subsequently calls all the 
+bearers' StartSending() methods directly.
+*/
+void CPcCardPktDrv::LinkLayerUp()
+{
+	iParent->LinkLayerUp();
+}
+
+/**
+Receive notifications from agent
+*/
+TInt CPcCardPktDrv::Notification(enum TAgentToNifEventType /*aEvent*/, void* /*aInfo*/)
+{
+	return KErrNotSupported;
+}
+	
+/**
+Receive Control() calls from agent/nifman/connection
+*/
+TInt CPcCardPktDrv::Control(TUint /*aLevel*/,TUint /*aName*/,TDes8& /*aOption*/, TAny* /*aSource*/)
+{
+	return KErrNotSupported;
+}
+
+/**
+Return the pointer to the ethernet nif.
+Purely for access to commdb reading functionality
+*/
+CLANLinkCommon* CPcCardPktDrv::NifNotify()
+{
+	return iParent;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/linklayerprotocols/ethernetnif/EtherPkt/CardIo.cpp	Sun Mar 14 13:15:53 2010 +0000
@@ -0,0 +1,461 @@
+// Copyright (c) 1997-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
+*/
+
+#include <nifman.h>
+#include <nifvar.h>
+#include <nifutl.h>
+#include <es_mbuf.h>
+#include "PKTDRV.H"
+#include "ETHINTER.H"
+#include "Cardctl.h"
+
+
+
+ 
+#ifdef __DebugCardLo__
+// TCP packet tracing debug
+const TUint8 ETHER2_TYPE_IP_MSB = 0x08;
+const TUint8 ETHER2_TYPE_IP_LSB = 0x00;
+const TUint8 IP_TYPE_TCP        = 0x06;
+static inline TBool IsTcp(TDesC8 &aFrame)
+{
+	return (aFrame[12] == ETHER2_TYPE_IP_MSB && aFrame[13] == ETHER2_TYPE_IP_LSB && aFrame[23] == IP_TYPE_TCP);
+}
+static TInt GetTcpSeqNumber(TDesC8 &aFrame)
+	{
+	TInt seqNum = 0;
+	if (IsTcp(aFrame))
+		seqNum = aFrame[38] << 24 | aFrame[39] << 16 | aFrame[40] << 8| aFrame[41];
+	return seqNum;
+	}
+static TInt GetTcpAckNumber(TDesC8 &aFrame)
+	{
+	TInt ackNum = 0;
+	if (IsTcp(aFrame))
+		ackNum = aFrame[42] << 24 | aFrame[43] << 16 | aFrame[44] << 8| aFrame[45];
+	return ackNum;
+	}
+#endif
+
+
+/**
+Send active object class
+When CIOBuffer's are passed to SendL() the class takes ownership and is
+therefore resposible for freeing them in the RunL()
+@internalComponent
+*/
+const TInt KTxQueueThreshold = 40;
+
+/**
+Constructor.
+*/
+CPcCardSender::CPcCardSender() : CActive(EPriorityStandard)
+{
+	
+}
+
+/**
+Destructor.
+Could be buffers on the transmit queue, free them as this class should be sole owner.
+*/
+CPcCardSender::~CPcCardSender()
+{
+	EmptyQueue();
+	Cancel();
+}
+
+/**
+Standard CActive construction.
+@param aParent Pointer to the parent CPcCardControlEngine class.
+@return A pointer to CPcCardSender object.
+*/
+CPcCardSender* CPcCardSender::NewL(CPcCardControlEngine* aParent)
+{
+	CPcCardSender *sd=new (ELeave) CPcCardSender;
+	CleanupStack::PushL(sd);
+	sd->InitL(aParent);
+	CActiveScheduler::Add(sd);
+	CleanupStack::Pop();
+	return sd;
+}
+
+/**
+Add the newly created object to an object container.
+@param aParent Pointer to the parent CPcCardControlEngine class.
+*/
+void CPcCardSender::InitL(CPcCardControlEngine* aParent)
+{
+	iParent=aParent;
+	iTxQueue.SetOffset(CIOBuffer::LinkOffset());
+	iQueueLength = 0;
+	iStopSending = EFalse;
+}
+
+/** 
+Protocol inspects return
+It blocks sending if it receives a return <= 0
+This value should be propogated up through the stack
+@internalComponent
+*/
+const TInt KStopSending		= 0;
+
+/**
+Protocol inspects return to indicate Keep sending the data.
+@internalComponent
+*/
+const TInt KContinueSending	= 1;
+
+/**
+Writes the data to buffer.
+
+@param aBuffer The data to be send.
+@return 0 Tells the higher layer to stop sending the data.
+		1 Tells higher layer that it can continue sending more data.
+*/
+TInt CPcCardSender::Send(CIOBuffer *aBuffer)
+{
+	
+	// Check to see if we need to start transmission
+	// Pseudo interrupt queue
+	TBool startTx = iTxQueue.IsEmpty();
+
+	iTxQueue.AddLast(*aBuffer);
+	iQueueLength++;
+	if(startTx)
+		{
+		// Transmitter was idle start next transmit
+		iParent->iCard.Write(iStatus,aBuffer->Ptr());
+		SetActive();
+		}
+	else
+	{
+	}	
+	// The stack could saturate us with data
+	// Tell the stack to send no more
+	// We will unblock the stack when the queue size drops below
+	// the the threshold
+	if(iQueueLength >= KTxQueueThreshold)
+		{
+		iStopSending = ETrue;
+		return KStopSending;
+		}
+	else
+		{
+		return KContinueSending;
+		}
+}
+
+/**
+Free all queued buffers. Should be safe as this class owns them
+*/
+void CPcCardSender::EmptyQueue()
+{
+	
+	while(!iTxQueue.IsEmpty())
+		{
+		CIOBuffer* buf = iTxQueue.First();
+		iTxQueue.Remove(*buf);
+		delete buf;
+		}
+	iQueueLength = 0;
+	iStopSending = EFalse;
+}
+
+/**
+Write completion from the LDD. Pseudo transmit interrupt handler
+*/
+void CPcCardSender::RunL()
+{
+	// Check for error, all we can do is free the buffers
+	if(iStatus.Int()!=KErrNone)
+		{
+		EmptyQueue();
+		return;
+		}
+
+	if(!iTxQueue.IsEmpty())
+		{
+		// Head of the queue has been transmitted
+		// Remove it and free it
+		CIOBuffer* buf = iTxQueue.First();
+		iTxQueue.Remove(*buf);
+		iQueueLength--;
+		delete buf;
+		
+
+		// Check to see if there are still buffers queued.
+		// Start next transmit if there are
+		TBool startTx;
+		(iTxQueue.IsEmpty()) ? (startTx = EFalse) : (startTx = ETrue);
+		if(startTx)
+			{
+			buf = iTxQueue.First();
+			iParent->iCard.Write(iStatus,buf->Ptr());
+			SetActive();
+			}
+		else
+		{
+			
+		}
+		// Resume sending if the protocol was previously blocked
+		if(iStopSending && iQueueLength < KTxQueueThreshold)
+			{
+			iStopSending = EFalse;
+			iParent->ResumeSending();
+			}
+		}
+}
+
+/**
+cancellation of an outstanding request.
+*/
+void CPcCardSender::DoCancel()
+{
+	iParent->iCard.WriteCancel();
+}
+
+/**
+Read active object class.
+Read kept permanently on the LDD
+Read completion is notified immediately up through the stack
+with the one receive buffer therefore no Q.
+*/
+CPcCardReceiver::CPcCardReceiver() : CActive(EPriorityMore)  , iRecvBufPtr(NULL,0) 
+{
+	
+}
+
+/**
+Constructor.
+*/
+CPcCardReceiver::~CPcCardReceiver()
+{
+	Cancel();
+	// One buffer only
+	delete iRecvBuffer;
+}
+
+/**
+Standard CActive construction.
+@param aParent Pointer to the parent CPcCardControlEngine class.
+@return A pointer to CPcCardReceiver object.
+*/
+CPcCardReceiver* CPcCardReceiver::NewL(CPcCardControlEngine* aParent)
+{
+	CPcCardReceiver *rv=new (ELeave) CPcCardReceiver;
+	CleanupStack::PushL(rv);
+	rv->InitL(aParent);
+	CActiveScheduler::Add(rv);
+	CleanupStack::Pop();
+	return rv;
+}
+
+/**
+Allocate the one and only read buffer.
+@param aParent Pointer to the parent CPcCardControlEngine class.
+*/
+void CPcCardReceiver::InitL(CPcCardControlEngine* aParent)
+{
+	iParent=aParent;
+	iRecvBufLength=KEtherBufSize;
+	iRecvBuffer=HBufC8::NewMaxL(iRecvBufLength);
+	TPtr8 temp=iRecvBuffer->Des();
+	iRecvBufPtr.Set(temp);
+}
+
+/**
+Pass the receive buffer to the Card.
+*/
+void CPcCardReceiver::QueueRead()
+{
+	iRecvBufPtr.SetMax();
+	iParent->iCard.Read(iStatus,iRecvBufPtr);
+	SetActive();
+}
+
+/**
+Pseudo read interrupt handler.
+*/
+void CPcCardReceiver::RunL()
+{
+	if (iParent->CardOpen())
+		{
+		if (iStatus.Int()!=KErrNone)
+			{
+			QueueRead();
+			return;
+			}
+		// Pass the buffer up the stack
+		// and queue the next read, safe to reuse the buffer.
+		if(iRecvBufPtr.Length())
+			{
+			iParent->ProcessReceivedPacket(iRecvBufPtr);
+			}
+		QueueRead();
+		}
+	else
+	{
+		
+	}
+}
+
+/**
+Cancellation of an outstanding request.
+*/
+void CPcCardReceiver::DoCancel()
+{
+	iParent->iCard.ReadCancel();
+}
+
+/**
+Constructor.
+*/
+CPcCardEventHandler::CPcCardEventHandler() : CActive(EPriorityStandard) 
+{
+	
+}
+
+/**
+Destructor.
+*/
+CPcCardEventHandler::~CPcCardEventHandler()
+{
+	Cancel();
+}
+
+/**
+Allocate the one and only read buffer.
+@param aParent Pointer to the parent CPcCardControlEngine class.
+*/
+void CPcCardEventHandler::InitL(CPcCardControlEngine* aParent)
+{
+	iParent = aParent;
+}
+
+/**
+Standard CActive construction
+@param aParent Pointer to the parent CPcCardControlEngine class.
+@return A pointer to the CPcCardEventHandler object.
+*/
+CPcCardEventHandler* CPcCardEventHandler::NewL(CPcCardControlEngine* aParent)
+{
+	CPcCardEventHandler *p=new (ELeave) CPcCardEventHandler;
+	CleanupStack::PushL(p);
+	p->InitL(aParent);
+	CActiveScheduler::Add(p);
+	CleanupStack::Pop();
+	return p;
+}
+
+/**
+Handles an active object’s request completion event.
+*/
+void CPcCardEventHandler::RunL()
+{
+	// TODO Parse code in iStatus for type of event
+}
+
+/**
+Cancellation of an outstanding request.
+*/
+void CPcCardEventHandler::DoCancel()
+{
+}
+
+/**
+Gets the Event generated by the device drivers.
+*/
+void CPcCardEventHandler::GetEvent()
+{
+	// Tell the device driver we want ALL Events
+	iEventBuffer.SetLength(1);
+	iEventBuffer[0] = 0xFF;
+	SetActive();
+}
+
+/**
+Constructor.
+*/
+CPcCardIOCTL::CPcCardIOCTL() : CActive(EPriorityStandard) 
+{
+	
+}
+
+/**
+Destructor.
+*/
+CPcCardIOCTL::~CPcCardIOCTL()
+{
+	Cancel();
+}
+
+/**
+Add the newly created object to an object container.
+@param aParent Pointer to the parent CPcCardControlEngine class.
+*/
+void CPcCardIOCTL::InitL(CPcCardControlEngine* aParent)
+{
+	iParent = aParent;
+}
+
+TInt CPcCardIOCTL::Ioctl(const TUint8 aIOCTLCode)
+{
+	if(IsActive())
+		return KErrNotReady;
+	iIOCTLBuffer.SetLength(1);
+	iIOCTLBuffer[0] = aIOCTLCode;
+	iCurrentIOCTL = aIOCTLCode;
+	SetActive();
+	return KErrNone;
+}
+
+
+/**
+Standard CActive construction.
+@param aParent Pointer to the parent CPcCardControlEngine class.
+@return A pointer to CPcCardIOCTL object.
+*/
+CPcCardIOCTL* CPcCardIOCTL::NewL(CPcCardControlEngine* aParent)
+{
+	CPcCardIOCTL *p=new (ELeave) CPcCardIOCTL;
+	CleanupStack::PushL(p);
+	p->InitL(aParent);
+	CActiveScheduler::Add(p);
+	CleanupStack::Pop();
+	return p;
+}
+
+/**
+Handles an active object’s request completion event.
+*/
+void CPcCardIOCTL::RunL()
+{
+			{
+			iParent->iReceiver->QueueRead();
+			iParent->LinkLayerUp();
+			}
+}
+
+/**
+Cancellation of an outstanding request.
+*/
+void CPcCardIOCTL::DoCancel()
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/linklayerprotocols/ethernetnif/EtherPkt/Cardctl.h	Sun Mar 14 13:15:53 2010 +0000
@@ -0,0 +1,201 @@
+// Copyright (c) 1997-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
+ @internalComponent 
+*/
+
+#if !defined(__CARDCTL_H__)
+#define __CARDCTL_H__
+
+#include <d32ethernet.h>
+
+#include "carddrv.h"
+#include <comms-infras/connectionsettings.h>	// for KSlashChar
+
+const TInt KConfigBufferSize = 12;
+
+
+NONSHARABLE_CLASS(CIOBuffer) : public CBase
+/**
+Generic buffer class
+Enables HBufC8 pointers to be queued
+@internalComponent
+*/
+{
+public:
+	~CIOBuffer();
+	inline HBufC8*	Data() const {return iBuf;};
+	void FreeData();
+	inline TPtr8& Ptr() {return iBufPtr;};
+	void Assign(HBufC8* aBuffer = NULL);
+    static CIOBuffer* NewL(HBufC8* aBuf = NULL);
+    static CIOBuffer* NewL(const TInt aSize);
+	static TInt LinkOffset();
+
+private:
+	CIOBuffer();
+	void ConstructL(const TInt aSize);
+	//	void Construct(HBufC8* aBuffer);
+	
+	TSglQueLink iLink;
+	HBufC8* iBuf;
+	TPtr8 iBufPtr;
+};
+
+
+// Main Card Control class. Controls open, close, read, write etc 
+class CPcCardSender;
+class CPcCardReceiver;
+class CPcCardIOCTL;
+class CPcCardEventHandler;
+
+NONSHARABLE_CLASS(CPcCardControlEngine) : public CBase
+/**
+@internalComponent
+*/
+{
+public:
+	friend class CPcCardSender;
+	friend class CPcCardReceiver;
+	friend class CPcCardIOCTL;
+	friend class CPcCardEventHandler;
+
+	static CPcCardControlEngine *NewL(CPcCardPktDrv* aPktDrv);
+	~CPcCardControlEngine();
+	void StartL();
+	void Stop();
+	TUint8* GetInterfaceAddress();
+	TInt Send(HBufC8* aBuffer);
+	TBool CardOpen(){return iCardOpen;};
+
+#if (!defined __WINS__)
+	void ParseMACFromFileL();
+#endif
+
+
+private:
+	CPcCardControlEngine(CPcCardPktDrv* aPktDrv);
+	void ConstructL();
+	void ProcessReceivedPacket(TDesC8 &aBuffer);
+	void ResumeSending();
+	void LinkLayerUp();
+	void LoadDeviceDriversL();
+
+private:
+	TBool iCardOpen;
+	CPcCardPktDrv* iNotify;
+
+	TBuf8<KConfigBufferSize> iConfig;
+	
+	CPcCardSender* iSender;
+	CPcCardReceiver* iReceiver;
+	CPcCardEventHandler* iEventHandler;
+	RBusDevEthernet iCard;
+	TInt iPcmciaSocket;
+	
+	TBuf<KCommsDbSvrDefaultTextFieldLength>	iPDDName;
+	TBuf<KCommsDbSvrDefaultTextFieldLength>	iLDDName;
+};
+
+NONSHARABLE_CLASS(CPcCardSender) : public CActive
+/**
+Writer Active object class
+Queues buffers for transmit
+@internalComponent
+*/
+{
+public:
+	static CPcCardSender* NewL(CPcCardControlEngine* aParent);
+	~CPcCardSender();
+	TInt Send(CIOBuffer* aBuffer);
+	void EmptyQueue();
+
+private:
+	virtual void RunL();
+	virtual void DoCancel();
+	CPcCardSender();
+	void InitL(CPcCardControlEngine* aParent);
+
+	TInt iQueueLength;
+	CPcCardControlEngine* iParent;
+	TSglQue<CIOBuffer> iTxQueue;
+	TBool iStopSending;
+};
+
+NONSHARABLE_CLASS(CPcCardReceiver) : public CActive
+/**
+Reader active object
+One receive buffer only, read queue handled by LDD
+@internalComponent
+*/
+{
+public:
+	static CPcCardReceiver* NewL(CPcCardControlEngine* aParent);
+	~CPcCardReceiver();
+	void QueueRead();
+private:
+	virtual void RunL();
+	virtual void DoCancel();
+	CPcCardReceiver();
+	void InitL(CPcCardControlEngine* aParent);
+
+	CPcCardControlEngine* iParent;
+	HBufC8* iRecvBuffer;
+	TUint iRecvBufLength;
+	TPtr8 iRecvBufPtr;
+};
+
+NONSHARABLE_CLASS(CPcCardEventHandler) : public CActive
+/**
+@internalComponent
+*/
+{
+public:
+	~CPcCardEventHandler();
+	static CPcCardEventHandler* NewL(CPcCardControlEngine* aParent);
+	void GetEvent();
+private:
+	virtual void RunL();
+	virtual void DoCancel();
+	CPcCardEventHandler();
+	void InitL(CPcCardControlEngine* aParent);
+
+	TBuf8<32>	iEventBuffer;
+	CPcCardControlEngine* iParent;
+};
+
+NONSHARABLE_CLASS(CPcCardIOCTL) : public CActive
+/**
+@internalComponent
+*/
+{
+public:
+	~CPcCardIOCTL();
+	static CPcCardIOCTL* NewL(CPcCardControlEngine* aParent);
+	TInt Ioctl(const TUint8 aIOCTLCode);
+private:
+	virtual void RunL();
+	virtual void DoCancel();
+	CPcCardIOCTL();
+	void InitL(CPcCardControlEngine* aParent);
+	TBuf8<32>	iIOCTLBuffer;
+	TUint8 iCurrentIOCTL;
+
+	CPcCardControlEngine* iParent;
+};
+
+#endif
--- a/linklayerprotocols/ethernetnif/INC/CLanxBearer.h	Mon Mar 08 21:44:54 2010 +0000
+++ b/linklayerprotocols/ethernetnif/INC/CLanxBearer.h	Sun Mar 14 13:15:53 2010 +0000
@@ -35,6 +35,7 @@
 #include <es_mbuf.h>
 #include <comms-infras/ss_protflow.h>
 #include <comms-infras/ss_flowbinders.h>
+#include <es_prot.h>
 
 class CLANLinkCommon;
 class TLanProvision;
--- a/linklayerprotocols/ethernetnif/IRLAN/IRLAN.H	Mon Mar 08 21:44:54 2010 +0000
+++ b/linklayerprotocols/ethernetnif/IRLAN/IRLAN.H	Sun Mar 14 13:15:53 2010 +0000
@@ -30,6 +30,7 @@
 #include "IRLANDAT.H"
 
 #include <comms-infras/nifif.h>
+#include <es_prot.h>
 
 const TUint KIrlanMajorVersionNumber=1; //< Constant specifies Major version number.
 const TUint KIrlanMinorVersionNumber=0; //< Constant specifies Minor version number.
--- a/linklayerprotocols/ethernetnif/IRLAN/IRLANCTL.CPP	Mon Mar 08 21:44:54 2010 +0000
+++ b/linklayerprotocols/ethernetnif/IRLAN/IRLANCTL.CPP	Sun Mar 14 13:15:53 2010 +0000
@@ -33,6 +33,7 @@
 #include "IRLANBUF.H"
 #include "IRLANDAT.H"
 #include "irlantimer.h"
+#include <nifmbuf.h>
 
 //#define __TRACEWIN__
 #ifdef __TRACEWIN__
--- a/linklayerprotocols/pppnif/te_ppp/dummyppp/src/dummypppnif.cpp	Mon Mar 08 21:44:54 2010 +0000
+++ b/linklayerprotocols/pppnif/te_ppp/dummyppp/src/dummypppnif.cpp	Sun Mar 14 13:15:53 2010 +0000
@@ -23,6 +23,7 @@
 #include <comms-infras/commsdebugutility.h>
 #include <connectprog.h>
 #include <in_chk.h>
+#include <metadatabase.h>
 #include <commsdattypeinfov1_1.h>
 
 //New ppp progress states file
--- a/linklayerprotocols/slipnif/SRC/SLIP.CPP	Mon Mar 08 21:44:54 2010 +0000
+++ b/linklayerprotocols/slipnif/SRC/SLIP.CPP	Sun Mar 14 13:15:53 2010 +0000
@@ -20,6 +20,7 @@
 #include <nifmbuf.h>
 #include <in_iface.h>
 #include <cdblen.h>
+#include <cdbcols.h>
 #include "SLIP.H"
 #include "SLIP_VER.H"
 
--- a/linklayerprotocols/slipnif/SRC/SLIP.H	Mon Mar 08 21:44:54 2010 +0000
+++ b/linklayerprotocols/slipnif/SRC/SLIP.H	Sun Mar 14 13:15:53 2010 +0000
@@ -28,6 +28,7 @@
 #include <es_mbuf.h>
 #include <comms-infras/nifif.h>
 #include <nifutl.h>
+#include <es_prot.h>
 
 ////////////////////////////////////////////////////////////////////////////////
 
--- a/networkcontrol/ipnetworklayer/src/IPProtoSCPRStates.cpp	Mon Mar 08 21:44:54 2010 +0000
+++ b/networkcontrol/ipnetworklayer/src/IPProtoSCPRStates.cpp	Sun Mar 14 13:15:53 2010 +0000
@@ -21,6 +21,7 @@
 */
 
 #include <comms-infras/netcfgextprov.h>
+#include <etelqos.h>
 #include <networking/qos3gpp_subconparams.h>
 #include <cs_subconparams.h>
 #include <cs_subconevents.h>
--- a/networkcontrol/ipnetworklayer/src/ipprotodeftscprstates.cpp	Mon Mar 08 21:44:54 2010 +0000
+++ b/networkcontrol/ipnetworklayer/src/ipprotodeftscprstates.cpp	Sun Mar 14 13:15:53 2010 +0000
@@ -21,6 +21,7 @@
 */
 
 #include <comms-infras/netcfgextprov.h>
+#include <etelqos.h>
 #include <networking/qos3gpp_subconparams.h>
 #include <cs_subconparams.h>
 #include <cs_subconevents.h>
--- a/networkcontrol/iptransportlayer/inc/netmcpr.h	Mon Mar 08 21:44:54 2010 +0000
+++ b/networkcontrol/iptransportlayer/inc/netmcpr.h	Sun Mar 14 13:15:53 2010 +0000
@@ -29,6 +29,8 @@
 #include "netmcprstates.h"
 #include "IPMessages.h"
 
+#include <cdbcols.h>
+#include <cdbover.h>
 #include <metadatabase.h>
 #include <commsdattypesv1_1.h>
 #include <in_sock.h>
--- a/networkcontrol/ipupsplugins/dialogcreator/bwins/ipupsdialogu.def	Mon Mar 08 21:44:54 2010 +0000
+++ /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
-
--- a/networkcontrol/ipupsplugins/dialogcreator/eabi/ipupsdialogu.def	Mon Mar 08 21:44:54 2010 +0000
+++ /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
-
--- a/networkcontrol/ipupsplugins/dialogcreator/group/bld.inf	Mon Mar 08 21:44:54 2010 +0000
+++ /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
--- a/networkcontrol/ipupsplugins/dialogcreator/group/ipupsdialog.iby	Mon Mar 08 21:44:54 2010 +0000
+++ /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 <security_ups_utils.iby>
-#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
--- a/networkcontrol/ipupsplugins/dialogcreator/group/ipupsdialog.mmp	Mon Mar 08 21:44:54 2010 +0000
+++ /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
--- a/networkcontrol/ipupsplugins/dialogcreator/inc/ipupsconst.h	Mon Mar 08 21:44:54 2010 +0000
+++ /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 <e32def.h>
-
-/** @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
--- a/networkcontrol/ipupsplugins/dialogcreator/inc/ipupsdialog.h	Mon Mar 08 21:44:54 2010 +0000
+++ /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 <e32base.h>
-#include <e32cmn.h>
-#include <ups/dialogcreator.h>
-#include <ups/fingerprint.h>
-#include <ups/upsnotifierutil.h>
-
-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<CFingerprint>& 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<CFingerprint>* 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<TPromptResult> iPromptResultPckg;                 //< Packages iPromptResult
-	RNotifier iNotifier;                                    //< Connection to notifier framework 
-	TState iState;                                          //< Current state 
-	TUint iNotifierId;                                     //< User prompting user Id
-	};
-#endif // SMSUPSDIALOG_H
-
--- a/networkcontrol/ipupsplugins/dialogcreator/resource/10285A7B.rss	Mon Mar 08 21:44:54 2010 +0000
+++ /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 <ups/ups.hrh>
-#include <ecom/registryinfo.rh>
-
-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 = "";
-					}
-				};
-			}
-		};
-	}
--- a/networkcontrol/ipupsplugins/dialogcreator/source/ipupsconst.cpp	Mon Mar 08 21:44:54 2010 +0000
+++ /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 <e32def.h>
-
-/** @SYMPatchable Disable UPS IP functionality
-*/
-EXPORT_C extern const TUint32 KNotifierImplementationId = 0x1028369b;  
-EXPORT_C extern const TUint32 KTestNotifierImplementationId = 0x10285887;
-
-
--- a/networkcontrol/ipupsplugins/dialogcreator/source/ipupsdialog.cpp	Mon Mar 08 21:44:54 2010 +0000
+++ /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 <e32svr.h> // Included here, since removal of Platform headers from public headers[f32file.h] for TB92SDK 
-#include "ipupsdialog.h"
-#include <ecom/implementationproxy.h>
-#include <apgcli.h>
-#include <ups/promptrequest.h>
-#include <swi/sisregistrypackage.h>
-#include <swi/sisregistrysession.h>
-#include <scs/nullstream.h>
-#include <s32mem.h>
-#include <u32hal.h>
-
-#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", &notifierUidVal);
-
-   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<CFingerprint>& 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);
-   }
-
--- a/networkcontrol/ipupsplugins/group/bld.inf	Mon Mar 08 21:44:54 2010 +0000
+++ /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
--- a/networkcontrol/ipupsplugins/group/networking_ipups.mrp	Mon Mar 08 21:44:54 2010 +0000
+++ /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
--- a/networkcontrol/ipupsplugins/policyfile/ups_101F7989_10281DD8.rss	Mon Mar 08 21:44:54 2010 +0000
+++ /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 <ups/policies.rh>
-
-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;
-			}
-		
-		};
-	}
--- a/networkcontrol/ipupsplugins/test/te_ipups/data/te_ipups.ini	Mon Mar 08 21:44:54 2010 +0000
+++ /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
-
--- a/networkcontrol/ipupsplugins/test/te_ipups/group/te_ipups.iby	Mon Mar 08 21:44:54 2010 +0000
+++ /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 <upstestnotifier.iby>
-#include <ipupsdialog.iby>
-#include <ups.iby>
-
-#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
--- a/networkcontrol/ipupsplugins/test/te_ipups/group/te_ipups.mmp	Mon Mar 08 21:44:54 2010 +0000
+++ /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
--- a/networkcontrol/ipupsplugins/test/te_ipups/inc/te_ipups_delete_decision_db.h	Mon Mar 08 21:44:54 2010 +0000
+++ /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 <test/testexecutestepbase.h>
-
-class CIpUpsDeleteDecisionDB : public CTeIpUpsStepBase
-	{
-public:
-	CIpUpsDeleteDecisionDB();
-	virtual ~CIpUpsDeleteDecisionDB();
-	virtual TVerdict doTestStepPreambleL();
-	virtual TVerdict doTestStepL();
-	virtual TVerdict doTestStepPostambleL();	
-	};
-
-_LIT(KIpUpsDeleteDecisionDB,"IpUpsDeleteDecisionDB");
-
-
-#endif
--- a/networkcontrol/ipupsplugins/test/te_ipups/inc/te_ipups_notify_count.h	Mon Mar 08 21:44:54 2010 +0000
+++ /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 <test/testexecutestepbase.h>
-
-class CIpUpsNotifyCount : public CTeIpUpsStepBase
-	{
-public:
-	CIpUpsNotifyCount();
-	virtual ~CIpUpsNotifyCount();
-	virtual TVerdict doTestStepPreambleL();
-	virtual TVerdict doTestStepL();
-	virtual TVerdict doTestStepPostambleL();	
-	};
-
-_LIT(KIpUpsNotifyCount,"IpUpsNotifyCount");
-
-_LIT(KIpUpsStorePromptTriggerCount, "StorePromptTriggerCount");
-
-#endif
--- a/networkcontrol/ipupsplugins/test/te_ipups/inc/te_ipups_server.h	Mon Mar 08 21:44:54 2010 +0000
+++ /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 <test/testexecuteserverbase.h>
-
-
-class CTeIpUpsSuite : public CTestServer
-	{
-public:
-	static CTeIpUpsSuite* NewL(const TDesC& aName);
-	
-	virtual CTestStep* CreateTestStep(const TDesC& aStepName);
-
-	};
-
-#endif
--- a/networkcontrol/ipupsplugins/test/te_ipups/inc/te_ipups_stepbase.h	Mon Mar 08 21:44:54 2010 +0000
+++ /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 <test/testexecutestepbase.h>
-#include <ups/upsclient.h>
-
-class CTeIpUpsStepBase : public CTestStep
-	{
-public:
-	virtual ~CTeIpUpsStepBase();
-	CTeIpUpsStepBase();
-	virtual TVerdict doTestStepPreambleL(); 
-	virtual TVerdict doTestStepPostambleL();	
-	};
-
-#endif
--- a/networkcontrol/ipupsplugins/test/te_ipups/inc/te_ipups_ups_step.h	Mon Mar 08 21:44:54 2010 +0000
+++ /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 <test/testexecutestepbase.h>
-#include "te_ipups_stepbase.h"
-#include <ups/upsnotifierutil.h>
-
-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
--- a/networkcontrol/ipupsplugins/test/te_ipups/policyfile/ups_10285B91_10281DD8.rss	Mon Mar 08 21:44:54 2010 +0000
+++ /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 <ups/policies.rh>
-
-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;
-			}
-		
-		};
-	}
--- a/networkcontrol/ipupsplugins/test/te_ipups/policyfile/ups_test_always_101F7989_10281DD8.rss	Mon Mar 08 21:44:54 2010 +0000
+++ /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 <ups/policies.rh>
-
-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;
-			}
-		
-		};
-	}
--- a/networkcontrol/ipupsplugins/test/te_ipups/scripts/te_ipups.script	Mon Mar 08 21:44:54 2010 +0000
+++ /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
--- a/networkcontrol/ipupsplugins/test/te_ipups/src/te_ipups_delete_decision_db.cpp	Mon Mar 08 21:44:54 2010 +0000
+++ /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();
-	}
--- a/networkcontrol/ipupsplugins/test/te_ipups/src/te_ipups_notify_count.cpp	Mon Mar 08 21:44:54 2010 +0000
+++ /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();
-	}
--- a/networkcontrol/ipupsplugins/test/te_ipups/src/te_ipups_server.cpp	Mon Mar 08 21:44:54 2010 +0000
+++ /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 <bacline.h>
-
-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;
-	}
--- a/networkcontrol/ipupsplugins/test/te_ipups/src/te_ipups_stepbase.cpp	Mon Mar 08 21:44:54 2010 +0000
+++ /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()
-	{	
-	}
--- a/networkcontrol/ipupsplugins/test/te_ipups/src/te_ipups_ups_step.cpp	Mon Mar 08 21:44:54 2010 +0000
+++ /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 <s32mem.h> 
-
-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<iNoOfAuthoriseCalls && cntr<KMaxNoOfAuthoriseCalls; cntr++)
-    	{
-    	if (upsSession.Handle() == KNullHandle)
-    		{
-    		User::LeaveIfError(upsSession.Connect());
-    		INFO_PRINTF1(_L("UPS Session Started."));
-    		}
-    	
-    	if (upsSubSession[subSessionCntr].SubSessionHandle() == KNullHandle)
-    		{
-    		//Create dummy thread with different names
-    		TBuf<32> 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<UserPromptService::TPromptResult> 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; cntr<subSessionCntr; cntr++)
-    	{
-    	if ( upsSubSession[cntr].SubSessionHandle() != KNullHandle )
-    		{
-    		INFO_PRINTF2(_L("UPS SubSession Closed ( %d )."), cntr);
-    		upsSubSession[cntr].Close();
-    		dummyThread[cntr].Close();
-    		}
-    	}
-    
-    //Ensure session is closed
-    if ( upsSession.Handle() != KNullHandle )
-    	{
-    	upsSession.Close();
-		INFO_PRINTF1(_L("UPS Session Closed."));
-    	}    
-	
-	return TestStepResult();
-	}  // End of function
-
-
-TVerdict CIpUpsStep::doTestStepPostambleL()
-/**
- * @return - TVerdict code
- * Override of base class virtual
- */
-	{
-	//ReSet the property to specify working of testNotifier in P&S or filemode
-    User::LeaveIfError(RProperty::Set(KUidPSUPSTestNotifCategory, KUtFileOverride, iTestNotifierMode));
-    
-	return TestStepResult();
-	} // End of function.
-
-TBool CIpUpsStep::VerifyAndPrintPromptDataL()
-/**
- * @return - TBool - ETrue of prompt data returned matched the data expected as specified in INI file, else EFalse.
- * 
- */
-	{
-	//Get the Prompt Information
-	const TInt KMaxPromptDataLenght = 512;
-    HBufC8* buf=HBufC8::NewLC(KMaxPromptDataLenght);
-    TPtr8 bufPtr(buf->Des());
-
-	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.
--- a/networkcontrol/qosipscpr/inc/ip_subconparams.h	Mon Mar 08 21:44:54 2010 +0000
+++ b/networkcontrol/qosipscpr/inc/ip_subconparams.h	Sun Mar 14 13:15:53 2010 +0000
@@ -27,9 +27,7 @@
 #define __IP_SUBCONPARAMS_H__
 
 #include <es_sock.h>
-#include <comms-infras/metadata.h>
-#include <comms-infras/metatype.h>
-#include <etelqos.h>
+#include <networking/Qos3GPP_subconparams.h>
 
  
 // NOTE: This Uid may be changed - See #ifdef at bottom of the file
--- a/networkcontrol/qosipscpr/src/ipscpr.cpp	Mon Mar 08 21:44:54 2010 +0000
+++ b/networkcontrol/qosipscpr/src/ipscpr.cpp	Sun Mar 14 13:15:53 2010 +0000
@@ -20,6 +20,7 @@
  @internalComponent
 */
 
+#include <etelqos.h>
 #include "IPSCPRStates.h"
 #include "IPSCPR.h"
 #include "ipdeftbasescpr.h"
--- a/networkingtestandutils/networkingunittest/DummyNifProtos/inc/Dummynifbinder.h	Mon Mar 08 21:44:54 2010 +0000
+++ b/networkingtestandutils/networkingunittest/DummyNifProtos/inc/Dummynifbinder.h	Sun Mar 14 13:15:53 2010 +0000
@@ -32,6 +32,7 @@
 #include <comms-infras/ss_protflow.h>
 #include <comms-infras/ss_flowbinders.h>
 #include <comms-infras/commsdebugutility.h>
+#include <e32property.h>
 #include "es_protbinder.h"
 #include "DummyNifFlow.h"
 
--- a/networkingtestandutils/networkingunittest/DummyNifProtos/src/Dummynifbinder.cpp	Mon Mar 08 21:44:54 2010 +0000
+++ b/networkingtestandutils/networkingunittest/DummyNifProtos/src/Dummynifbinder.cpp	Sun Mar 14 13:15:53 2010 +0000
@@ -27,6 +27,7 @@
 #include <in_iface.h>
 #include <comms-infras/nifif.h>
 #include <in_sock.h>
+#include <nifmbuf.h>
 #include "dummynifvar.h"
 #include "Dummynifbinder.h"
 #include "DummyProvision.h"
--- a/networkingtestandutils/networkingunittest/dummynif/dummynif.cpp	Mon Mar 08 21:44:54 2010 +0000
+++ b/networkingtestandutils/networkingunittest/dummynif/dummynif.cpp	Sun Mar 14 13:15:53 2010 +0000
@@ -32,6 +32,8 @@
 #include <in_chk.h>
 #include <in_sock.h>
 #include <tcp_hdr.h>
+#include <cdbcols.h>
+#include <cdblen.h>
 
 #include "dummynifvar.h"
 #include "dummynif.h"
--- a/networkingtestandutils/networkingunittest/dummynif/dummynif.h	Mon Mar 08 21:44:54 2010 +0000
+++ b/networkingtestandutils/networkingunittest/dummynif/dummynif.h	Sun Mar 14 13:15:53 2010 +0000
@@ -23,6 +23,7 @@
 #include <udp_hdr.h>
 #include <in_iface.h>
 #include <eui_addr.h>	// TE64Addr
+#include <es_prot.h>
 #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <comms-infras/nifprvar_internal.h>
 #endif
--- a/networkingtestandutils/networkingunittest/dummynif/dummynif6.cpp	Mon Mar 08 21:44:54 2010 +0000
+++ b/networkingtestandutils/networkingunittest/dummynif/dummynif6.cpp	Sun Mar 14 13:15:53 2010 +0000
@@ -25,6 +25,8 @@
 #include <in_chk.h>
 #include <in_sock.h>
 #include <in6_if.h>	// KSoIface*, KIf*, TSoInet6IfConfig
+#include <cdbcols.h>
+#include <cdblen.h>
 #include "dummynifvar.h"
 #include "dummynif.h"
 
--- a/networkprotocols/iphook/inhook6/group/bld.inf	Mon Mar 08 21:44:54 2010 +0000
+++ b/networkprotocols/iphook/inhook6/group/bld.inf	Sun Mar 14 13:15:53 2010 +0000
@@ -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)
--- a/networkprotocols/iphook/inhook6/include/flow.h	Mon Mar 08 21:44:54 2010 +0000
+++ b/networkprotocols/iphook/inhook6/include/flow.h	Sun Mar 14 13:15:53 2010 +0000
@@ -32,6 +32,7 @@
 #include <nifmbuf.h>
 #include "in_pkt.h"
 #include "apibase.h"
+#include "in_pkt_platform.h"
 
 //
 //	TFlowStatus
--- a/networkprotocols/iphook/inhook6/include/in_chk.h	Mon Mar 08 21:44:54 2010 +0000
+++ b/networkprotocols/iphook/inhook6/include/in_chk.h	Sun Mar 14 13:15:53 2010 +0000
@@ -26,8 +26,9 @@
 #ifndef __IN_CHK_H__
 #define __IN_CHK_H__
 
-#include <nifmbuf.h>
 #include "in_pkt.h"
+class RMBufChain;
+class RMBufPktInfo;
 
 /** Checksum calculation.
 
--- a/networkprotocols/iphook/inhook6/include/in_pkt.h	Mon Mar 08 21:44:54 2010 +0000
+++ b/networkprotocols/iphook/inhook6/include/in_pkt.h	Sun Mar 14 13:15:53 2010 +0000
@@ -26,9 +26,10 @@
 #ifndef __IN_PKT_H__
 #define __IN_PKT_H__
 
-#include <nifmbuf.h>
 #include "ip6_hdr.h"	// ..should eventually be <inet/ip6_hdr.h>? -- 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 <b>must not be modified by anyone</b>.
- 
-    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 <b>also</b> 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 <b>read-only</b>, unless the hook intends to
-	apply IP-in-IP tunneling, in which case the hook <b>must</b>
-	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 <b>must not</b> 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
-	<b>read-only</b>
-	@par MFlowHook::ReadyL
-	<b>read-only</b>
-	*/
- 	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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/networkprotocols/iphook/inhook6/include/in_pkt_platform.h	Sun Mar 14 13:15:53 2010 +0000
@@ -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 <nifmbuf.h>
+
+//	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 <b>must not be modified by anyone</b>.
+ 
+    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 <b>also</b> 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 <b>read-only</b>, unless the hook intends to
+	apply IP-in-IP tunneling, in which case the hook <b>must</b>
+	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 <b>must not</b> 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
+	<b>read-only</b>
+	@par MFlowHook::ReadyL
+	<b>read-only</b>
+	*/
+ 	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
--- a/networkprotocols/iphook/inhook6/src/in_chk.cpp	Mon Mar 08 21:44:54 2010 +0000
+++ b/networkprotocols/iphook/inhook6/src/in_chk.cpp	Sun Mar 14 13:15:53 2010 +0000
@@ -16,6 +16,7 @@
 
 #include <in_sock.h> // IPv6 enhanced in_sock.h
 #include "in_chk.h"
+#include "in_pkt_platform.h"
 
 
 EXPORT_C void TChecksum::Add(RMBufChain &aPacket, TInt aOffset)
--- a/networkprotocols/iphook/inhook6/src/in_pkt.cpp	Mon Mar 08 21:44:54 2010 +0000
+++ b/networkprotocols/iphook/inhook6/src/in_pkt.cpp	Sun Mar 14 13:15:53 2010 +0000
@@ -18,7 +18,9 @@
 //
 
 #include "in_pkt.h"
+#include "in_pkt_platform.h"
 #include "ext_hdr.h"
+#include <nifmbuf.h>
 
 #define OPTIMIZE_PADDING
 
--- a/networkprotocols/tcpipv4v6prt/inc/loop6.h	Mon Mar 08 21:44:54 2010 +0000
+++ b/networkprotocols/tcpipv4v6prt/inc/loop6.h	Sun Mar 14 13:15:53 2010 +0000
@@ -29,6 +29,7 @@
 #include <nifman.h>
 #	include <comms-infras/nifif.h>	// ..for CNifIfBase in Epoc R6 and later
 #include <nifmbuf.h>
+#include <es_prot.h>
 
 const TUint KProtocolInet6Loop = 0x1F00;	// Virtual
 
--- a/networkprotocols/tcpipv4v6prt/src/iface.cpp	Mon Mar 08 21:44:54 2010 +0000
+++ b/networkprotocols/tcpipv4v6prt/src/iface.cpp	Sun Mar 14 13:15:53 2010 +0000
@@ -75,7 +75,7 @@
 #include <in_sock.h>
 #include "inet6log.h"
 #include "iface.h"
-#include <in6_if.h>     // IPv6 driver API specifications
+#include <in_iface.h>     // IPv6 driver API specifications
 #include <icmp6_hdr.h>
 #include <in_chk.h>
 #include <ip6_hook.h>
@@ -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;
--- a/networkprotocols/tcpipv4v6prt/src/loop6.cpp	Mon Mar 08 21:44:54 2010 +0000
+++ b/networkprotocols/tcpipv4v6prt/src/loop6.cpp	Sun Mar 14 13:15:53 2010 +0000
@@ -16,7 +16,7 @@
 
 #include "in_fmly.h"
 #include "loop6.h"
-#include <in6_if.h>	// KSoIf*
+#include <in_iface.h>	// KSoIf*
 #include "networkinfo.h"
 
 CIfLoop6::CIfLoop6()
--- a/package_definition.xml	Mon Mar 08 21:44:54 2010 +0000
+++ b/package_definition.xml	Sun Mar 14 13:15:53 2010 +0000
@@ -92,9 +92,6 @@
       <component id="commsuserpromptmgr" name="Comms User Prompt Manager" introduced="^3" purpose="mandatory">
         <unit bldFile="networkcontrol/commsuserpromptmgr/group" mrp="networkcontrol/commsuserpromptmgr/group/networking_netups.mrp"/>
       </component>
-      <component id="ipupsplugins" name="IP UPS Plugins" introduced="^3" purpose="optional" class="plugin">
-        <unit bldFile="networkcontrol/ipupsplugins/group" mrp="networkcontrol/ipupsplugins/group/networking_ipups.mrp"/>
-      </component>
     </collection>
     <collection id="networkprotocols" name="Network Protocols" level="plugin">
       <component id="tcpipv4config" name="TCP/IPv4/v6 Config" introduced="7.0" purpose="mandatory" class="config" filter="test">
--- a/tcpiputils/dhcp/src/DHCPDb.cpp	Mon Mar 08 21:44:54 2010 +0000
+++ b/tcpiputils/dhcp/src/DHCPDb.cpp	Sun Mar 14 13:15:53 2010 +0000
@@ -27,6 +27,7 @@
 #include <comms-infras/metabuffer.h>
 #include <metadatabase.h>
 #include <commsdattypesv1_1.h>
+#include <es_prot.h>
 #include "DhcpIP6Msg.h"
 using namespace CommsDat;
 
--- a/tcpiputils/dhcp/te_dhcp/include/te_dhcpTestServer.h	Mon Mar 08 21:44:54 2010 +0000
+++ b/tcpiputils/dhcp/te_dhcp/include/te_dhcpTestServer.h	Sun Mar 14 13:15:53 2010 +0000
@@ -25,6 +25,8 @@
 #include <test/testexecuteserverbase.h>
 
 #include <es_sock.h>
+#include <es_prot.h>
+#include <cdbover.h>
 #include <commdbconnpref.h>
 #include <comms-infras/netcfgextndhcpmsg.h>
 //#include "DHCPIP4Msg.h"
--- a/tcpiputils/networkaddressandporttranslation/inc/naptutil.h	Mon Mar 08 21:44:54 2010 +0000
+++ b/tcpiputils/networkaddressandporttranslation/inc/naptutil.h	Sun Mar 14 13:15:53 2010 +0000
@@ -24,6 +24,8 @@
 #include <e32std.h>
 #include <e32base.h>
 #include <nifman.h>
+#include <es_prot.h>
+#include <cdbover.h>
 #include <metadatabase.h>
 #include <commsdattypesv1_1.h>
 #include <in_sock.h>