linklayerprotocols/tundriver/te_tundriver/src/te_tundrivertestwrapper.cpp
branchRCL_3
changeset 75 c1029e558ef5
parent 67 bb2423252ea3
child 76 27c54f8619d4
--- a/linklayerprotocols/tundriver/te_tundriver/src/te_tundrivertestwrapper.cpp	Wed Sep 15 13:53:10 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3153 +0,0 @@
-// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// Contains the implementation of all the commands, which is used by the script file.
-//
-
-/**
- @file te_tundrivertestwrapper.h
- @internalTechnology
- */
-
-#include "te_tundrivertestwrapper.h"
-#include <e32base.h>
-#include <utf.h>
-#include <in_sock.h>
-#include <es_sock.h>
-
-#include <metadatabase.h> 
-#include <commsdattypesv1_1.h> 
-#include <commsdat.h>
-#include <commsdattypesv1_1_partner.h>
-#include <commsdattypeinfov1_1_internal.h>
-#include <commdb.h>
-#include <commdbconnpref.h>
-
-//Virtual Interface 
-
-// Commands
-
-_LIT(KRConnTest1_1,         "RConnTest1_1");
-_LIT(KRConnTest1_2,         "RConnTest1_2");
-_LIT(KRConnTest1_3,         "RConnTest1_3");
-_LIT(KRConnTest1_4,         "RConnTest1_4");
-_LIT(KRConnTest1_5,         "RConnTest1_5");
-_LIT(KRConnTest1_6,         "RConnTest1_6");
-_LIT(KRConnTest1_7,         "RConnTest1_7");
-_LIT(KRConnTest1_8,         "RConnTest1_8");
-_LIT(KRConnTest1_9,         "RConnTest1_9");
-_LIT(KRConnTest1_10,        "RConnTest1_10");
-_LIT(KRConnTest1_11,        "RConnTest1_11");
-_LIT(KRConnTest1_12,        "RConnTest1_12");
-_LIT(KRConnTest1_13,        "RConnTest1_13");
-_LIT(KRConnTest1_14,        "RConnTest1_14");
-_LIT(KRConnTest1_15,        "RConnTest1_15");
-_LIT(KRConnTest1_16,        "RConnTest1_16");
-_LIT(KRConnTest1_17,        "RConnTest1_17");
-_LIT(KRConnTest1_18,        "RConnTest1_18");
-_LIT(KRConnTest1_19,        "RConnTest1_19");
-_LIT(KRConnTest1_20,        "RConnTest1_20");
-_LIT(KRConnTest1_21,        "RConnTest1_21");
-_LIT(KRConnTest1_22,        "RConnTest1_22");
-_LIT(KRConnTest1_23,        "RConnTest1_23");
-_LIT(KRConnTest1_24,        "RConnTest1_24");
-_LIT(KRConnTest1_25,        "RConnTest1_25");
-_LIT(KRConnTest1_26,        "RConnTest1_26");
-_LIT(KRConnTest1_27,        "RConnTest1_27");
-_LIT(KRConnTest1_28,        "RConnTest1_28");
-_LIT(KRConnTest1_29,        "RConnTest1_29");
-_LIT(KRConnTest1_30,        "RConnTest1_30");
-_LIT(KRConnTest1_31,        "RConnTest1_31");
-_LIT(KRConnTest1_32,        "RConnTest1_32");
-_LIT(KRConnTest1_33,        "RConnTest1_33");
-
-// Config file
-_LIT(KNameDefault, 	    	"default");
-_LIT(KIpAddr,               "IpAddr");
-_LIT(KGatewayAddr,          "GatewayAddr");
-_LIT(KDestAddr, 		    "DestAddr");
-_LIT(KLocalAddr,            "LocalAddr");
-_LIT(KLocalPort,            "LocalPort");
-_LIT(KDestPort,             "DestPort");
-_LIT(KTcpDestPort,          "TcpDestPort");
-_LIT(KRealDestAddr,         "RealDestAddr");
-_LIT(KRealDestPort,         "RealDestPort");
-
-//Test code
-_LIT(KCommand, 			    "aCommand = %S");
-_LIT(KSection, 			    "aSection = %S");
-
-//Test code error
-_LIT(KInetInputFail,         "TInetAddr Input failed with error: %d");
-
-#define TUNDRIVER_IAP   14
-#define REAL_IAP    9
-#define LOCAL_PORT 7777
-
-// public
-//LOCAL_D CConsoleBase* console; 
-
-
-/**
-Constructor.
-
-@internalTechnology
- */
-CTunDriverTestWrapper::CTunDriverTestWrapper()
-    {
-    }
-
-/**
-Destructor.
-
-@internalTechnology
- */
-CTunDriverTestWrapper::~CTunDriverTestWrapper()
-    {
-    }
-
-/**
-Function to instantiate TestWrapper.
-@return Returns constructed TestWrapper instance pointer
-@internalTechnology
- */
-CTunDriverTestWrapper* CTunDriverTestWrapper::NewL()
-    {
-    CTunDriverTestWrapper*	ret = new (ELeave) CTunDriverTestWrapper();
-    CleanupStack::PushL(ret);
-    ret->ConstructL();
-    CleanupStack::Pop(ret);
-    return ret;	
-    }
-
-/**
-Second level constructor, constructs TestWrapper instance.
-@internalTechnology
- */
-void CTunDriverTestWrapper::ConstructL()
-    {
-    iInitNumOfInterfaces    = 0;
-    iCurNumOfInterfaces     = 0;
-    iDestPort               = 0;
-
-    }
-
-/**
-Function to map the input command to respective function.
-
-@return - True Upon successfull command to Function name mapping otherwise False
-@param aCommand Function name has to be called
-@param aSection INI file paramenter section name
-@param aAsyncErrorIndex Error index
-@see Refer the script file COMMAND section.
-
-@internalTechnology
- */
-TBool CTunDriverTestWrapper::DoCommandL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt /*aAsyncErrorIndex*/)
-    {
-    TBool ret = ETrue;
-
-    // Print out the parameters for debugging
-    INFO_PRINTF2( KCommand, &aCommand );
-    INFO_PRINTF2( KSection, &aSection );
-    //INFO_PRINTF2( KAsyncErrorIndex, aAsyncErrorIndex );
-
-    //RConnection Testcases
-    if(KRConnTest1_1() == aCommand)
-        {
-        DoRConnTest1_1();
-        }
-    else if(KRConnTest1_2() == aCommand)
-        {
-        DoRConnTest1_2();
-        }
-    else if(KRConnTest1_3() == aCommand)
-        {
-        DoRConnTest1_3(aSection);
-        }
-    else if(KRConnTest1_4() == aCommand)
-        {
-        DoRConnTest1_4(aSection);
-        }
-    else if(KRConnTest1_5() == aCommand)
-        {
-        DoRConnTest1_5(aSection);
-        }
-    else if(KRConnTest1_6() == aCommand)
-        {
-        DoRConnTest1_6(aSection);
-        }
-    else if(KRConnTest1_7() == aCommand)
-        {
-        DoRConnTest1_7(aSection);
-        }
-    else if(KRConnTest1_8() == aCommand)
-        {
-        DoRConnTest1_8(aSection);
-        }
-    else if(KRConnTest1_9() == aCommand)
-        {
-        DoRConnTest1_9(aSection);
-        }
-    else if(KRConnTest1_10() == aCommand)
-        {
-        DoRConnTest1_10(aSection);
-        }
-    else if(KRConnTest1_11() == aCommand)
-        {
-        DoRConnTest1_11();
-        }
-    else if(KRConnTest1_12() == aCommand)
-        {
-        DoRConnTest1_12();
-        }
-    else if(KRConnTest1_13() == aCommand)
-        {
-        DoRConnTest1_13(aSection);
-        }
-    else if(KRConnTest1_14() == aCommand)
-        {
-        DoRConnTest1_14(aSection);
-        }
-    else if(KRConnTest1_15() == aCommand)
-        {
-        DoRConnTest1_15();
-        }
-    else if(KRConnTest1_16() == aCommand)
-        {
-        DoRConnTest1_16(aSection);
-        }
-    else if(KRConnTest1_17() == aCommand)
-        {
-        DoRConnTest1_17(aSection);
-        }
-    else if(KRConnTest1_18() == aCommand)
-        {
-        
-        }
-    else if(KRConnTest1_19() == aCommand)
-        {
-    
-        }
-    else if(KRConnTest1_20() == aCommand)
-        {
-        DoRConnTest1_20();
-        }
-    else if(KRConnTest1_21() == aCommand)
-        {
-        DoRConnTest1_21();
-        }
-    else if(KRConnTest1_22() == aCommand)
-        {
-        DoRConnTest1_22();
-        }
-    else if(KRConnTest1_23() == aCommand)
-        {
-        DoRConnTest1_23();
-        }
-    else if(KRConnTest1_24() == aCommand)
-        {
-        DoRConnTest1_24();
-        }
-    else if(KRConnTest1_25() == aCommand)
-        {
-        DoRConnTest1_25();
-        }
-    else if(KRConnTest1_26() == aCommand)
-        {
-        DoRConnTest1_26();
-        }
-    else if(KRConnTest1_27() == aCommand)
-        {
-        DoRConnTest1_27();
-        }
-    else if(KRConnTest1_28() == aCommand)
-        {
-        DoRConnTest1_28();
-        }
-    else if(KRConnTest1_29() == aCommand)
-        {
-        DoRConnTest1_29();
-        }
-    else if(KRConnTest1_30() == aCommand)
-        {
-        DoRConnTest1_30();
-        }
-	else if(KRConnTest1_31() == aCommand)
-        {
-        DoRConnTest1_31();
-        }
-	else if(KRConnTest1_32() == aCommand)
-        {
-        DoRConnTest1_32();
-        }
-    else if(KRConnTest1_33() == aCommand)
-        {
-        DoRConnTest1_33();
-        }	
-    else
-        {
-        ret = EFalse;
-        User::LeaveIfError(KErrNone); // just to suppress LeaveScan warning
-        }
-    return ret;
-    }
-
-/**
-Function to open Virtual Socket.
-@internalTechnology
- */
-
-TBool CTunDriverTestWrapper::FindInterface(TPckgBuf<TSoInet6InterfaceInfo> &info)
-    {
-    TBool success = FALSE;
-    if((iStatus = iSocketServ.Connect()) == KErrNone )
-        INFO_PRINTF1(_L("Socket Server Opened.\n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Socket Server: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-
-        return success;
-        }
-
-    if((iStatus = iConnection1.Open(iSocketServ)) == KErrNone )
-        INFO_PRINTF1(_L("Connection1 opened. \n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Connection1: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-
-        return success;
-        }
-
-    iCommDbPref.SetIapId(TUNDRIVER_IAP);             // Virtual Interface
-    iCommDbPref.SetBearerSet(KCommDbBearerVirtual);
-    iCommDbPref.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
-
-    iConnection1.Start(iCommDbPref, iStatus);
-
-
-    //open socket on interface. 
-    if((iStatus = iSocket1.Open(iSocketServ, KAfInet, KSockDatagram, KProtocolInetUdp, iConnection1)) == KErrNone )
-        INFO_PRINTF1(_L("Socket Opened!\n "));
-
-    User::LeaveIfError( iSocket1.SetOpt( KSoInetEnumInterfaces, KSolInetIfCtrl ) );
-
-    TProtocolDesc in;
-    User::LeaveIfError( iSocket1.Info( in ) );
-    TInt res = iSocket1.GetOpt( KSoInetNextInterface, KSolInetIfCtrl, info );
-    if (res != KErrNone)
-        {
-        User::Leave( res );
-        }
-    
-    TPckgBuf<TSoInet6InterfaceInfo> next;
-
-
-    while (res == KErrNone)
-        {
-        res = iSocket1.GetOpt( KSoInetNextInterface, KSolInetIfCtrl, next );
-        if (res == KErrNone)
-            info = next;
-        //Compare the string with interface name
-        if (info().iName.Mid(1,4).Compare(_L("TunDriver")))
-            //if (info().iName == KIfName)
-            {
-            success = TRUE;
-            break;
-
-            }
-        else
-            {
-            continue;
-            }
-        }
-
-    return success;
-
-
-    }
-
-TInt CTunDriverTestWrapper::StartD3PApp()
-    {
-    TInt err(0);
-    if ((err = p.Create(KDummy3rdPartyApp,KArg)) == KErrNone)
-        {
-        p.Resume();
-        }
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Dummy3rdPartyApp: %d"), iVTunError);
-        SetError(err);
-        return(err);        
-        }
-    //Wait for Dummy3rdPartyApp to be up and running!
-    User::After(10000000);   //10 Sec
-    return(err);
-    }
-
-void CTunDriverTestWrapper::StopD3PApp()
-    {
-    p.Kill(NULL);   //Kill Dummy3rdPartyApp.       
-    }
-
-//Gurpreet: RConnection Testcases
-
-void CTunDriverTestWrapper::DoRConnTest1_1()
-    {
-    INFO_PRINTF1(_L("********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_1             "));
-    INFO_PRINTF1(_L("********************************************"));
-
-    if((iStatus = iSocketServ.Connect()) == KErrNone )
-        INFO_PRINTF1(_L("Socket Server Opened.\n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Socket Server: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        return;
-        }
-
-    if((iStatus = iConnection.Open(iSocketServ /*, KAfInet*/)) == KErrNone )
-        INFO_PRINTF1(_L("Connection opened. \n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Connection: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        return;
-        }
-
-    iCommDbPref.SetIapId(TUNDRIVER_IAP);             // Virtual Interface
-    iCommDbPref.SetBearerSet(KCommDbBearerVirtual);
-    iCommDbPref.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
-
-    iVTunError = iConnection.Start(iCommDbPref);
-    //User::WaitForRequest(iStatus);
-    INFO_PRINTF2(_L("Starting Connection %d.\n"), iVTunError);
-
-    if(iVTunError!= KErrNone)
-        {
-        SetError(iVTunError);
-        }
-    iConnection.Close();
-    iSocketServ.Close();    
-    }
-
-void CTunDriverTestWrapper::DoRConnTest1_2()
-    {
-    INFO_PRINTF1(_L("********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_2             "));
-    INFO_PRINTF1(_L("********************************************"));
-
-    if((iStatus = iSocketServ.Connect()) == KErrNone )
-        INFO_PRINTF1(_L("Socket Server Opened.\n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Socket Server: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        return;
-        }
-
-    if((iStatus = iConnection.Open(iSocketServ /*, KAfInet*/)) == KErrNone )
-        INFO_PRINTF1(_L("Connection opened. \n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Connection: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        return;
-        }
-
-    iCommDbPref.SetIapId(TUNDRIVER_IAP);             // Virtual Interface
-    iCommDbPref.SetBearerSet(KCommDbBearerVirtual);
-    iCommDbPref.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
-
-    iConnection.Start(iCommDbPref, iStatus);
-    User::WaitForRequest(iStatus);
-    INFO_PRINTF2(_L("Starting Connection %d.\n"), iStatus.Int());
-
-    iConnection.Close();
-    iSocketServ.Close();    
-    }
-
-void CTunDriverTestWrapper::DoRConnTest1_3(const TDesC& aSection)
-    {
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_3             "));
-    INFO_PRINTF1(_L("********************************************"));
-
-    //start the dummy3rdpartyapp
-    if ((iVTunError = StartD3PApp()) != KErrNone)
-        {
-        return;
-        }
-
-    if((iStatus = iSocketServ.Connect()) == KErrNone )
-        INFO_PRINTF1(_L("Socket Server Opened.\n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Socket Server: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        StopD3PApp();
-        return;
-        }
-
-    if((iStatus = iConnection.Open(iSocketServ)) == KErrNone )
-        INFO_PRINTF1(_L("Connection opened. \n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Connection: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        StopD3PApp();
-        return;
-        }
-
-    iCommDbPref.SetIapId(TUNDRIVER_IAP);             // Virtual Interface
-    iCommDbPref.SetBearerSet(KCommDbBearerVirtual);
-    iCommDbPref.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
-
-    iConnection.Start(iCommDbPref, iStatus);
-		User::WaitForRequest(iStatus);
-		if (iStatus.Int() != KErrNone)
-			{
-			ERR_PRINTF2(_L("Error starting connection: %d"), iStatus.Int());	
-			SetError(iStatus.Int());
-			StopD3PApp();
-			return;
-			}
-	INFO_PRINTF1(_L("Connection started!\n "));
-
-    //open socket on interface. 
-    if((iStatus = iSocket.Open(iSocketServ, KAfInet, KSockDatagram, KProtocolInetUdp, iConnection)) == KErrNone )
-        INFO_PRINTF1(_L("Socket Opened!\n "));
-    else   // (iStatus!=KErrNone)
-        {
-        ERR_PRINTF2(_L("Error Opening Socket: %d"), iStatus.Int());    
-        SetError(iStatus.Int());
-        StopD3PApp();
-        return;
-        }
-
-    iSendBuf.Zero();
-    iSendBuf = (TText8*)"Nokia sues Apple!";
-
-    // Get destination address from config file   
-    TPtrC ptrToReadFromConfig(KNameDefault);
-    TBool returnValue = GetStringFromConfig(aSection, KDestAddr, ptrToReadFromConfig);
-    if (!returnValue)
-        {
-        ERR_PRINTF1(_L("Reading config file failed, while reading DestAddr"));   
-        SetError(KErrUnknown);
-        StopD3PApp();
-        return;
-        }
-    //set destination IP ie. server
-    TInt err = iDestAddr.Input(ptrToReadFromConfig);   
-    if(err != KErrNone)
-        {
-        INFO_PRINTF2(KInetInputFail, err);
-        SetError(err);
-        StopD3PApp();
-        return;
-        }
-
-    returnValue = GetIntFromConfig(aSection, KDestPort, iDestPort);
-    iDestAddr.SetPort(iDestPort);
-
-    //bind local port to socket
-    err = iSocket.SetLocalPort(7776);
-
-    //send data to server
-    iSocket.SendTo(iSendBuf, iDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-    if( iStatus == KErrNone)
-        INFO_PRINTF1(_L("\nData Sent"));
-    else
-	   {
-        ERR_PRINTF1(_L("\nData sending failed"));
-        SetError(iStatus.Int());
-        iSocket.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-  	    }
-
-    iRecvBuf.Zero();
-    iSocket.RecvFrom(iRecvBuf, iDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-    TBuf<128> temp;
-    if( iStatus == KErrNone)
-        {
-        INFO_PRINTF1(_L("\nData Received : "));
-        temp.Copy(iRecvBuf);
-        INFO_PRINTF1(temp);
-        INFO_PRINTF1(_L("\n"));
-        }
-    else
-        {
-        ERR_PRINTF1(_L("\nData receive failed"));  
-        SetError(iStatus.Int());
-        }
-    iSocket.Close();
-    iSocketServ.Close();
-    
-    StopD3PApp();
-    
-    }
-
-void CTunDriverTestWrapper::DoRConnTest1_4(const TDesC& aSection)
-    {
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_4             "));
-    INFO_PRINTF1(_L("********************************************"));
-
-		//start the dummy3rdpartyapp
-    if ((iVTunError = StartD3PApp()) != KErrNone)
-        {
-        return;
-        }
-
-    if((iStatus = iSocketServ.Connect()) == KErrNone )
-        INFO_PRINTF1(_L("Socket Server Opened.\n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Socket Server: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        return;
-        }
-
-    if((iStatus = iConnection.Open(iSocketServ)) == KErrNone )
-        INFO_PRINTF1(_L("Connection opened. \n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Connection: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        return;
-        }
-
-    iCommDbPref.SetIapId(TUNDRIVER_IAP);             // Virtual Interface
-    iCommDbPref.SetBearerSet(KCommDbBearerVirtual);
-    iCommDbPref.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
-
-    iConnection.Start(iCommDbPref, iStatus);
-    User::WaitForRequest(iStatus);
-    if (iStatus.Int() != KErrNone)
-		{
-		ERR_PRINTF2(_L("Error starting connection: %d"), iStatus.Int());	
-		SetError(iStatus.Int());
-		iSocketServ.Close();
-		StopD3PApp();
-		return;
-		}
-    INFO_PRINTF2(_L("Starting Connection %d.\n"), iStatus.Int());
-
-    //open socket on interface. 
-
-    if((iStatus = iSocket.Open(iSocketServ, KAfInet, KSockDatagram, KProtocolInetUdp, iConnection)) == KErrNone )
-        INFO_PRINTF1(_L("Socket Opened!\n "));
-    else   // (iStatus!=KErrNone)
-        {
-        ERR_PRINTF2(_L("Error Opening Socket: %d"), iStatus.Int());    
-        SetError(iStatus.Int());
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-
-    iSendBuf.Zero();
-    iSendBuf = (TText8*)"Nokia sues Apple!";
-
-    // Get destination address from config file  
-    TPtrC ptrToReadFromConfig(KNameDefault);
-    TBool returnValue = GetStringFromConfig(aSection, KDestAddr, ptrToReadFromConfig);
-    if (!returnValue)
-        {
-        ERR_PRINTF1(_L("Reading config file failed, while reading DestAddr"));   
-        SetError(KErrUnknown);
-        iSocket.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-    //set destination IP ie. server
-    TInt err = iDestAddr.Input(ptrToReadFromConfig);   
-    if(err != KErrNone)
-        {
-        INFO_PRINTF2(KInetInputFail, err);
-        SetError(err);
-        iSocket.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-
-    returnValue = GetIntFromConfig(aSection, KDestPort, iDestPort);
-    iDestAddr.SetPort(iDestPort);
-
-    //bind local port to socket
-    err = iSocket.SetLocalPort(LOCAL_PORT);
-
-    //send data to server
-    iSocket.SendTo(iSendBuf, iDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-    if( iStatus == KErrNone)
-        INFO_PRINTF1(_L("\nData Sent"));
-    else
-	   {
-        ERR_PRINTF1(_L("\nData sending failed"));
-        SetError(iStatus.Int());
-        iSocket.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-  	    }
-
-    iRecvBuf.Zero();
-    iSocket.RecvFrom(iRecvBuf, iDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-    TBuf<128> temp;
-    if( iStatus == KErrNone)
-        {
-        INFO_PRINTF1(_L("\nData Received : "));
-        temp.Copy(iRecvBuf);
-        INFO_PRINTF1(temp);
-        INFO_PRINTF1(_L("\n"));
-        }
-    else
-        {
-        ERR_PRINTF1(_L("\nData receive failed"));
-        SetError(iStatus.Int());
-        }
-    iSocket.Close();
-    iConnection.Close();
-    iSocketServ.Close();    
-
-    StopD3PApp();
-    
-    }
-
-void CTunDriverTestWrapper::DoRConnTest1_5(const TDesC& aSection)
-    {
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_5             "));
-    INFO_PRINTF1(_L("********************************************"));
-
-    //start the dummy3rdpartyapp
-    if ((iVTunError = StartD3PApp()) != KErrNone)
-        {
-        return;
-        }
-
-    if((iStatus = iSocketServ.Connect()) == KErrNone )
-        INFO_PRINTF1(_L("Socket Server Opened.\n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Socket Server: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        StopD3PApp();
-        return;
-        }
-    if((iStatus = iConnection.Open(iSocketServ)) == KErrNone )
-        INFO_PRINTF1(_L("Connection opened. \n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Connection: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        StopD3PApp();
-        return;
-        }
-
-    iCommDbPref.SetIapId(TUNDRIVER_IAP);             // Virtual Interface
-    iCommDbPref.SetBearerSet(KCommDbBearerVirtual);
-    iCommDbPref.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
-
-    iConnection.Start(iCommDbPref, iStatus);
-    User::WaitForRequest(iStatus);
-    if (iStatus.Int() != KErrNone)
-		{
-		ERR_PRINTF2(_L("Error starting connection: %d"), iStatus.Int());	
-		SetError(iStatus.Int());
-		iSocketServ.Close();
-		StopD3PApp();
-		return;
-		}
-    INFO_PRINTF2(_L("Starting Connection %d.\n"), iStatus.Int());
-
-    //open socket on interface. 
-    if((iStatus = iSocket1.Open(iSocketServ, KAfInet, KSockDatagram, KProtocolInetUdp, iConnection)) == KErrNone )
-        INFO_PRINTF1(_L("Socket1 Opened!\n "));
-    else   // (iStatus!=KErrNone)
-        {
-        ERR_PRINTF2(_L("Error Opening Socket1: %d"), iStatus.Int());    
-        SetError(iStatus.Int());
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-
-    if((iStatus = iSocket2.Open(iSocketServ, KAfInet, KSockDatagram, KProtocolInetUdp, iConnection)) == KErrNone )
-        INFO_PRINTF1(_L("Socket2 Opened!\n "));
-    else   // (iStatus!=KErrNone)
-        {
-        ERR_PRINTF2(_L("Error Opening Socket2: %d"), iStatus.Int());    
-        SetError(iStatus.Int());
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-
-    // Get destination address from config file 
-    TPtrC ptrToReadFromConfig(KNameDefault);
-    TBool returnValue = GetStringFromConfig(aSection, KDestAddr, ptrToReadFromConfig);
-    if (!returnValue)
-        {
-        ERR_PRINTF1(_L("Reading config file failed, while reading DestAddr"));   
-        SetError(KErrUnknown);
-        iSocket1.Close();
-        iSocket2.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-    //set destination IP ie. server
-    TInt err = iDestAddr.Input(ptrToReadFromConfig);   
-    if(err != KErrNone)
-        {
-        INFO_PRINTF2(KInetInputFail, err);
-        SetError(err);
-        iSocket1.Close();
-        iSocket2.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-
-    returnValue = GetIntFromConfig(aSection, KDestPort, iDestPort);
-    iDestAddr.SetPort(iDestPort);
-
-    //bind local port to socket
-    err = iSocket1.SetLocalPort(LOCAL_PORT);
-    if(err != KErrNone)
-    	{
-        ERR_PRINTF2(_L("Error Binding Socket1: %d"), err);    
-        SetError(err);
-        iSocket1.Close();
-        iSocket2.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-      	}
-    //bind local port to socket
-    err = iSocket2.SetLocalPort(LOCAL_PORT + 1);
-    if(err != KErrNone)
-    	{
-        ERR_PRINTF2(_L("Error Binding Socket2: %d"), err);
-        SetError(err);
-        iSocket1.Close();
-        iSocket2.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-      	}
-
-    iSendBuf.Zero();
-    iSendBuf = (TText8*)"Nokia sues Apple!";//"Sending Data through Socket1!";
-
-    //send data to server
-    iSocket1.SendTo(iSendBuf, iDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-
-    if( iStatus == KErrNone)
-        INFO_PRINTF1(_L("\nData Sent thru socket1"));
-    else
-    	{
-        ERR_PRINTF1(_L("\nData sending failed"));
-        SetError(iStatus.Int());
-        iSocket1.Close();
-        iSocket2.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-      	}
-
-    iRecvBuf.Zero();
-    iSocket1.RecvFrom(iRecvBuf, iDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-    TBuf<128> temp;
-    if( iStatus == KErrNone)
-        {
-        INFO_PRINTF1(_L("\nData Received from Socket1 : "));
-        temp.Copy(iRecvBuf);
-        INFO_PRINTF1(temp);
-        INFO_PRINTF1(_L("\n"));
-        }
-    else
-    	{
-        ERR_PRINTF1(_L("\nData receive failed on Socket1"));  
-        SetError(iStatus.Int());
-        iSocket1.Close();
-        iSocket2.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-      	}
-
-    iSendBuf.Zero();
-    iSendBuf = (TText8*)" Socket2:Nokia sues Apple!";
-    iSocket2.SendTo(iSendBuf, iDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-
-    if( iStatus == KErrNone)
-        INFO_PRINTF1(_L("\nData Sent thru socket2"));
-    else
-	    {
-		ERR_PRINTF1(_L("\nData sending failed"));
-	    SetError(iStatus.Int());
-	    iSocket1.Close();
-	    iSocket2.Close();
-	    iConnection.Close();
-	    iSocketServ.Close();
-	    StopD3PApp();
-	    }
-
-    iRecvBuf.Zero();
-    iSocket2.RecvFrom(iRecvBuf, iDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-    temp.Zero();
-    if( iStatus == KErrNone)
-        {
-        INFO_PRINTF1(_L("\nData Received from Socket2: "));
-        temp.Copy(iRecvBuf);
-        INFO_PRINTF1(temp);
-        INFO_PRINTF1(_L("\n"));
-        }
-    else
-        {
-        ERR_PRINTF1(_L("\nData receive failed on Socket2"));
-        SetError(iStatus.Int());
-        }
-    iSocket1.Close();
-    iSocket2.Close();
-    iConnection.Close();
-    iSocketServ.Close();
-    
-    StopD3PApp();
-    
-    }
-
-void CTunDriverTestWrapper::DoRConnTest1_6(const TDesC& aSection)
-    {
-
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_6              "));
-    INFO_PRINTF1(_L("*********************************************"));
-
-    //start the dummy3rdpartyapp
-    if ((iVTunError = StartD3PApp()) != KErrNone)
-        {
-        return;
-        }
-
-    if((iStatus = iSocketServ.Connect()) == KErrNone )
-        INFO_PRINTF1(_L("Socket Server Opened.\n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Socket Server: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        StopD3PApp();
-        return;
-        }
-    if((iStatus = iConnection1.Open(iSocketServ /*, KAfInet*/)) == KErrNone )
-        INFO_PRINTF1(_L("Connection1 opened. \n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Connection1: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        StopD3PApp();
-        return;
-        }
-
-    if((iStatus = iConnection2.Open(iSocketServ /*, KAfInet*/)) == KErrNone )
-        INFO_PRINTF1(_L("Connection2 opened. \n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Connection2: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        StopD3PApp();
-        return;
-        }
-
-    iCommDbPref.SetIapId(TUNDRIVER_IAP);             // Virtual Interface
-    iCommDbPref.SetBearerSet(KCommDbBearerVirtual);
-    iCommDbPref.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
-
-    iConnection1.Start(iCommDbPref, iStatus);
-    User::WaitForRequest(iStatus);
-   	
-    if(iStatus.Int()!=KErrNone)
-	   	{
-	   	ERR_PRINTF2(_L("Error starting connection1: %d"), iStatus.Int());	
-		SetError(iStatus.Int());
-		iSocketServ.Close();
-		StopD3PApp();
-		return;
-	    }
-	    INFO_PRINTF2(_L("Starting Connection1 %d.\n"), iStatus.Int());
-        	
-
-    iConnection2.Start(iCommDbPref, iStatus);
-    User::WaitForRequest(iStatus);
-    if(iStatus.Int()!=KErrNone)
-	    {
-	    ERR_PRINTF2(_L("Error starting connection2: %d"), iStatus.Int());	
-		SetError(iStatus.Int());
-		iConnection1.Close();
-		iSocketServ.Close();
-		StopD3PApp();
-		return;
-	    }
-
-    INFO_PRINTF2(_L("Starting Connection2 %d.\n"), iStatus.Int());
-
-    //open socket on interface. 
-    if((iStatus = iSocket1.Open(iSocketServ, KAfInet, KSockDatagram, KProtocolInetUdp, iConnection1)) == KErrNone )
-        INFO_PRINTF1(_L("Socket1 Opened!\n "));
-    else   // (iStatus!=KErrNone)
-        {
-        ERR_PRINTF2(_L("Error Opening Socket1: %d"), iStatus.Int());    
-        SetError(iStatus.Int());
-        iConnection1.Close();
-        iConnection2.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-    if((iStatus = iSocket2.Open(iSocketServ, KAfInet, KSockDatagram, KProtocolInetUdp, iConnection2)) == KErrNone )
-        INFO_PRINTF1(_L("Socket2 Opened!\n "));
-    else   // (iStatus!=KErrNone)
-        {
-        ERR_PRINTF2(_L("Error Opening Socket2: %d"), iStatus.Int());    
-        SetError(iStatus.Int());
-        iSocket1.Close();
-        iConnection1.Close();
-        iConnection2.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-
-    iSendBuf.Zero();
-    iSendBuf = (TText8*)"Socket1: Nokia sues Apple!";
-
-    // Get destination address from config file    
-    TPtrC ptrToReadFromConfig(KNameDefault);
-    TBool returnValue = GetStringFromConfig(aSection, KDestAddr, ptrToReadFromConfig);
-    if (!returnValue)
-        {
-        ERR_PRINTF1(_L("Reading config file failed, while reading DestAddr"));   
-        SetError(KErrUnknown);
-        iSocket1.Close();
-        iSocket2.Close();
-        iConnection1.Close();
-        iConnection2.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-    //set destination IP ie. server
-    TInt err = iDestAddr.Input(ptrToReadFromConfig);   
-    if(err != KErrNone)
-        {
-        INFO_PRINTF2(KInetInputFail, err);
-        SetError(err);
-        iSocket1.Close();
-        iSocket2.Close();
-        iConnection1.Close();
-        iConnection2.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-
-    returnValue = GetIntFromConfig(aSection, KDestPort, iDestPort);
-    iDestAddr.SetPort(iDestPort);
-    //bind local port to socket
-    err = iSocket1.SetLocalPort(LOCAL_PORT);
-    if(err != KErrNone)
-		{
-	    ERR_PRINTF1(_L("Error in setting local port to socket1"));
-	    SetError(err);
-	    iSocket1.Close();
-	    iSocket2.Close();
-	    iConnection1.Close();
-	    iConnection2.Close();
-	    iSocketServ.Close();
-	    StopD3PApp();
-	    return;
-	    }
-
-    err = iSocket2.SetLocalPort(LOCAL_PORT+1);
-    if(err != KErrNone)
-	    {
-		ERR_PRINTF1(_L("Error in setting local port to socket1"));
-	    SetError(err);
-		iSocket1.Close();
-	    iSocket2.Close();
-	    iConnection1.Close();
-	    iConnection2.Close();
-	    iSocketServ.Close();
-	    StopD3PApp();
-	    return;
-	    }
-	    //send data to server
-    iSocket1.SendTo(iSendBuf, iDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-	  if( iStatus == KErrNone)
-        INFO_PRINTF1(_L("\nData Sent for socket1"));
-    else
-	    {
-	    ERR_PRINTF1(_L("\nData sending failed for socket1"));
-		SetError(iStatus.Int());
-		iSocket1.Close();
-	    iSocket2.Close();
-	    iConnection1.Close();
-	    iConnection2.Close();
-	    iSocketServ.Close();
-	    StopD3PApp();
-	    return;
-	    }
-
-
-    iSendBuf.Zero();
-    iSendBuf = (TText8*)"Socket2: Nokia sues Apple!";
-    iSocket2.SendTo(iSendBuf, iDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-    if( iStatus == KErrNone)
-        INFO_PRINTF1(_L("\nData Sent for socket2"));
-    else
-	    {
-	    ERR_PRINTF1(_L("\nData sending failed for socket2"));
-		SetError(iStatus.Int());
-		iSocket1.Close();
-	    iSocket2.Close();
-	    iConnection1.Close();
-	    iConnection2.Close();
-	    iSocketServ.Close();
-	    StopD3PApp();
-      	return;
-     	}
-
-    iRecvBuf.Zero();
-    iSocket1.RecvFrom(iRecvBuf, iDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-    TBuf<128> temp;
-    if( iStatus == KErrNone)
-        {
-        INFO_PRINTF1(_L("\nData Received from Socket1 : "));
-        temp.Copy(iRecvBuf);
-        INFO_PRINTF1(temp);
-        INFO_PRINTF1(_L("\n"));
-        }
-    else
-	    {
-  	    ERR_PRINTF1(_L("\nData receive failed on Socket1"));
-		SetError(iStatus.Int());
-		iSocket1.Close();
-	    iSocket2.Close();
-  	    iConnection1.Close();
-    	iConnection2.Close();
-      	iSocketServ.Close();
-	    StopD3PApp();
-  	    return;
-    	}
-
-
-    iSendBuf.Zero();
-    iSendBuf = (TText8*)"Sending Data through Socket2!";
-    iSocket2.SendTo(iSendBuf, iDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-    if( iStatus == KErrNone)
-        INFO_PRINTF1(_L("\nData Sent thru socket2"));
-    else
-	    {
-        ERR_PRINTF1(_L("\nData sending failed through socket2"));
-		SetError(iStatus.Int());
-		iSocket1.Close();
-	    iSocket2.Close();
-  	    iConnection1.Close();
-    	iConnection2.Close();
-      	iSocketServ.Close();
-	    StopD3PApp();
-  	    return;
-    	}
-
-
-    iRecvBuf.Zero();
-    iSocket2.RecvFrom(iRecvBuf, iDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-    temp.Zero();
-    if( iStatus == KErrNone)
-        {
-        INFO_PRINTF1(_L("\nData Received from Socket2: "));
-        temp.Copy(iRecvBuf);
-        INFO_PRINTF1(temp);
-        INFO_PRINTF1(_L("\n"));
-        }
-    else
-        {
-        ERR_PRINTF1(_L("\nData receive failed on Socket2"));
-        SetError(iStatus.Int());
-        }
-    iSocket1.Close();
-    iSocket2.Close();
-    iConnection1.Close();
-    iConnection2.Close();
-    iSocketServ.Close();
-    StopD3PApp();
-    }
-
-//Sockets sending concurrently over same interface but from different socket servers
-//(Connection explicitly created)
-void CTunDriverTestWrapper::DoRConnTest1_7(const TDesC& aSection)
-    {
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_7              "));
-    INFO_PRINTF1(_L("*********************************************"));
-
-	  //start the dummy3rdpartyapp
-    if ((iVTunError = StartD3PApp()) != KErrNone)
-        {
-        return;
-        }
-
-    if((iStatus = iSocketServ1.Connect()) == KErrNone )
-        INFO_PRINTF1(_L("Socket Server1 Opened.\n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Socket Server1: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        return;
-        }
-
-    if((iStatus = iSocketServ2.Connect()) == KErrNone )
-        INFO_PRINTF1(_L("Socket Server2 Opened.\n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Socket Server2: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        iSocketServ1.Close();
-        StopD3PApp();
-        return;
-        }
-    if((iStatus = iConnection1.Open(iSocketServ1 /*, KAfInet*/)) == KErrNone )
-        INFO_PRINTF1(_L("Connection1 opened. \n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Connection1: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        iSocketServ1.Close();
-        iSocketServ2.Close();
-        StopD3PApp();
-        return;
-        }
-
-    if((iStatus = iConnection2.Open(iSocketServ2 /*, KAfInet*/)) == KErrNone )
-        INFO_PRINTF1(_L("Connection2 opened. \n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Connection2: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        iSocketServ1.Close();
-        iSocketServ2.Close();
-        StopD3PApp();
-        return;
-        }
-
-    iCommDbPref.SetIapId(TUNDRIVER_IAP);             // Virtual Interface
-    iCommDbPref.SetBearerSet(KCommDbBearerVirtual);
-    iCommDbPref.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
-
-    iConnection1.Start(iCommDbPref, iStatus);
-    User::WaitForRequest(iStatus);
-	if(iStatus.Int()!=KErrNone)
-	    {
-	    ERR_PRINTF2(_L("Error starting connection1: %d"), iStatus.Int());	
-		SetError(iStatus.Int());
-		iSocketServ1.Close();
-		iSocketServ2.Close();
-		StopD3PApp();
-		return;
-	    }
-    INFO_PRINTF2(_L("Starting Connection1 %d.\n"), iStatus.Int());
-
-    iConnection2.Start(iCommDbPref, iStatus);
-    User::WaitForRequest(iStatus);
-	if(iStatus.Int()!=KErrNone)
-		{
-	    ERR_PRINTF2(_L("Error starting connection2: %d"), iStatus.Int());	
-		SetError(iStatus.Int());
-		iConnection1.Close();
-		iSocketServ1.Close();
-		iSocketServ2.Close();
-		StopD3PApp();
-		return;
-	    }
-    INFO_PRINTF2(_L("Starting Connection2 %d.\n"), iStatus.Int());
-
-    //Enumerate the number of interfaces
-    iConnection1.EnumerateConnections(iInitNumOfInterfaces);
-    INFO_PRINTF2(_L("Number of Interfaces: %d!\n "), iInitNumOfInterfaces);
-
-    //open socket on interface. 
-    if((iStatus = iSocket1.Open(iSocketServ1, KAfInet, KSockDatagram, KProtocolInetUdp, iConnection1)) == KErrNone )
-        INFO_PRINTF1(_L("Socket1 Opened!\n "));
-    else   // (iStatus!=KErrNone)
-        {
-        ERR_PRINTF2(_L("Error Opening Socket1: %d"), iStatus.Int());    
-        SetError(iStatus.Int());
-        iConnection1.Close();
-        iConnection2.Close();
-        iSocketServ1.Close();
-        iSocketServ2.Close();
-        StopD3PApp();
-        return;
-        }
-    if((iStatus = iSocket2.Open(iSocketServ2, KAfInet, KSockDatagram, KProtocolInetUdp, iConnection2)) == KErrNone )
-        INFO_PRINTF1(_L("Socket2 Opened!\n "));
-    else   // (iStatus!=KErrNone)
-        {
-        ERR_PRINTF2(_L("Error Opening Socket2: %d"), iStatus.Int());    
-        SetError(iStatus.Int());
-        iSocket1.Close();
-        iConnection1.Close();
-        iConnection2.Close();
-        iSocketServ1.Close();
-        iSocketServ2.Close();
-        StopD3PApp();
-        return;
-        }
-
-    iSendBuf.Zero();
-    iSendBuf = (TText8*)"Socket1: Nokia sues Apple!";
-
-    // Get destination address from config file   
-    TPtrC ptrToReadFromConfig(KNameDefault);
-    TBool returnValue = GetStringFromConfig(aSection, KDestAddr, ptrToReadFromConfig);
-    if (!returnValue)
-        {
-        ERR_PRINTF1(_L("Reading config file failed, while reading DestAddr"));   
-        SetError(KErrUnknown);
-        iSocket1.Close();
-        iSocket2.Close();
-        iConnection1.Close();
-        iConnection2.Close();
-        iSocketServ1.Close();
-        iSocketServ2.Close();
-        StopD3PApp();
-        return;
-        }
-    //set destination IP ie. server
-    TInt err = iDestAddr.Input(ptrToReadFromConfig);   
-    if(err != KErrNone)
-        {
-        INFO_PRINTF2(KInetInputFail, err);
-        SetError(err);
-        iSocket1.Close();
-        iSocket2.Close();
-        iConnection1.Close();
-        iConnection2.Close();
-        iSocketServ1.Close();        
-        iSocketServ2.Close();
-        StopD3PApp();
-        return;
-        }
-
-    returnValue = GetIntFromConfig(aSection, KDestPort, iDestPort);
-    if (!returnValue)
-        {
-        ERR_PRINTF1(_L("Reading config file failed, while reading DestPort"));   
-        SetError(KErrUnknown);
-        iSocket1.Close();
-        iSocket2.Close();
-        iConnection1.Close();
-        iConnection2.Close();
-        iSocketServ1.Close();
-        iSocketServ2.Close();
-        StopD3PApp();
-        return;
-        }    
-    iDestAddr.SetPort(iDestPort);
-    //bind local port to socket
-    err = iSocket1.SetLocalPort(LOCAL_PORT);
-
-    if(err != KErrNone)
-		{
-	    ERR_PRINTF1(_L("Error in setting local port to socket1"));
-	    SetError(err);
-	    iSocket1.Close();
-	    iSocket2.Close();
-	    iConnection1.Close();
-	    iConnection2.Close();
-	    iSocketServ1.Close();
-	    iSocketServ2.Close();
-	    StopD3PApp();
-	    return;
-	    }
-
-    err = iSocket2.SetLocalPort(LOCAL_PORT+1);
-    if(err != KErrNone)
-		{
-		ERR_PRINTF1(_L("Error in setting local port to socket1"));
-	    SetError(err);
-		iSocket1.Close();
-	    iSocket2.Close();
-	    iConnection1.Close();
-	    iConnection2.Close();
-	    iSocketServ1.Close();
-	    iSocketServ2.Close();
-	    StopD3PApp();
-	    return;
-	    }
-    //send data to server
-    iSocket1.SendTo(iSendBuf, iDestAddr, NULL, iStatus);
-		User::WaitForRequest(iStatus);
-	  if( iStatus == KErrNone)
-        INFO_PRINTF1(_L("\nData Sent for socket1"));
-    else
-	    {
-	    ERR_PRINTF1(_L("\nData sending failed for socket1"));
-		SetError(iStatus.Int());
-		iSocket1.Close();
-	    iSocket2.Close();
-	    iConnection1.Close();
-	    iConnection2.Close();
-	    iSocketServ1.Close();
-	    iSocketServ2.Close();
-	    StopD3PApp();
-	    return;
-	    }
-    iRecvBuf.Zero();
-    iSocket1.RecvFrom(iRecvBuf, iDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-    TBuf<128> temp;
-    if( iStatus == KErrNone)
-        {
-        INFO_PRINTF1(_L("\nData Received from Socket1 : "));
-        temp.Copy(iRecvBuf);
-        INFO_PRINTF1(temp);
-        INFO_PRINTF1(_L("\n"));
-        }
-    else
-    	{
-        ERR_PRINTF1(_L("\nData receive failed on Socket1"));
-        SetError(iStatus.Int());
-        iSocket1.Close();
-        iSocket2.Close();
-        iConnection1.Close();
-        iConnection2.Close();
-        iSocketServ1.Close();
-        iSocketServ2.Close();
-        StopD3PApp();
-        return;
-      	}
-
-    iSendBuf.Zero();
-    iSendBuf = (TText8*)"Socket2: Nokia sues Apple!";
-    iSocket2.SendTo(iSendBuf, iDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-    if( iStatus == KErrNone)
-        INFO_PRINTF1(_L("\nData Sent for socket2"));
-    else
-    	{
-        ERR_PRINTF1(_L("\nData sending failed for socket2"));
-        SetError(iStatus.Int());
-        iSocket1.Close();
-        iSocket2.Close();
-        iConnection1.Close();
-        iConnection2.Close();
-        iSocketServ1.Close();
-        iSocketServ2.Close();
-        StopD3PApp();
-        return;        
-      	}
-
-
-    iRecvBuf.Zero();
-    User::After(30000);
-    iSocket2.RecvFrom(iRecvBuf, iDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-    temp.Zero();
-    if( iStatus == KErrNone)
-        {
-        INFO_PRINTF1(_L("\nData Received from Socket2: "));
-        temp.Copy(iRecvBuf);
-        INFO_PRINTF1(temp);
-        INFO_PRINTF1(_L("\n"));
-        }
-    else
-        {
-        ERR_PRINTF1(_L("\nData receive failed on Socket2"));
-        SetError(iStatus.Int());
-        }
-
-    iSocket1.Close();
-    iSocket2.Close();
-    iConnection1.Close();
-    iConnection2.Close();
-    iSocketServ1.Close();      
-    iSocketServ2.Close();
-    StopD3PApp();
-    }
-
-
-//Sockets sending from within different socket servers over different interfaces
-//(Connection explicitly created)
-void CTunDriverTestWrapper::DoRConnTest1_8(const TDesC& aSection)
-    {
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_8             "));
-    INFO_PRINTF1(_L("*********************************************"));
-
-    //start the dummy3rdpartyapp
-    if ((iVTunError = StartD3PApp()) != KErrNone)
-        {
-        return;
-        }
-
-    if((iStatus = iSocketServ1.Connect()) == KErrNone )
-        INFO_PRINTF1(_L("Socket Server1 Opened.\n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Socket Server1: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        StopD3PApp();
-        return;
-        }
-
-    if((iStatus = iSocketServ2.Connect()) == KErrNone )
-        INFO_PRINTF1(_L("Socket Server2 Opened.\n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Socket Server2: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        StopD3PApp();
-        return;
-        }
-    if((iStatus = iConnection1.Open(iSocketServ1)) == KErrNone )
-        INFO_PRINTF1(_L("Connection1 opened. \n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Connection1: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        StopD3PApp();
-        return;
-        }
-
-    if((iStatus = iConnection2.Open(iSocketServ2)) == KErrNone )
-        INFO_PRINTF1(_L("Connection2 opened. \n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Connection2: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        StopD3PApp();
-        return;
-        }
-
-    iCommDbPref1.SetIapId(TUNDRIVER_IAP);             // Virtual Interface
-    iCommDbPref1.SetBearerSet(KCommDbBearerVirtual);
-    iCommDbPref1.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
-
-    iConnection1.Start(iCommDbPref1, iStatus);
-    User::WaitForRequest(iStatus);
-	if(iStatus.Int()!=KErrNone)
-		{
-	    ERR_PRINTF2(_L("Error starting connection1: %d"), iStatus.Int());	
-		SetError(iStatus.Int());
-		iSocketServ1.Close();
-		iSocketServ2.Close();
-		StopD3PApp();
-		return;
-	    }
-    INFO_PRINTF2(_L("Starting Connection1 %d.\n"), iStatus.Int());
-
-    iCommDbPref2.SetIapId(REAL_IAP);             // Ethernet Interface
-    iCommDbPref2.SetBearerSet(KCommDbBearerLAN);
-    iCommDbPref2.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
-
-    iConnection2.Start(iCommDbPref2, iStatus);
-    User::WaitForRequest(iStatus);
-	if(iStatus.Int()!=KErrNone)
-		{
-		ERR_PRINTF2(_L("Error starting connection2: %d"), iStatus.Int());	
-		SetError(iStatus.Int());
-		iSocketServ1.Close();
-		iSocketServ2.Close();
-		StopD3PApp();
-		return;
-	    }
-
-    INFO_PRINTF2(_L("Starting Connection2 %d.\n"), iStatus.Int());
-
-    //open socket on interface. 
-    if((iStatus = iSocket1.Open(iSocketServ1, KAfInet, KSockDatagram, KProtocolInetUdp, iConnection1)) == KErrNone )
-        INFO_PRINTF1(_L("Socket1 Opened!\n "));
-    else   // (iStatus!=KErrNone)
-        {
-        ERR_PRINTF2(_L("Error Opening Socket1: %d"), iStatus.Int());    
-        SetError(iStatus.Int());
-        iConnection1.Close();
-        iConnection2.Close();
-        iSocketServ1.Close();
-        iSocketServ2.Close();
-        StopD3PApp();
-        return;
-        }
-    if((iStatus = iSocket2.Open(iSocketServ2, KAfInet, KSockDatagram, KProtocolInetUdp, iConnection2)) == KErrNone )
-        INFO_PRINTF1(_L("Socket1 Opened!\n "));
-    else   // (iStatus!=KErrNone)
-        {
-        ERR_PRINTF2(_L("Error Opening Socket2: %d"), iStatus.Int());    
-        SetError(iStatus.Int());
-        iSocket1.Close();
-				iConnection1.Close();
-        iConnection2.Close();
-        iSocketServ1.Close();
-        iSocketServ2.Close();
-        StopD3PApp();
-        return;
-        }
-
-    iSendBuf.Zero();
-    iSendBuf = (TText8*)"Socket1: Nokia sues Apple!";
-
-    // Get destination address from config file   
-    TPtrC ptrToReadFromConfig(KNameDefault);
-    TBool returnValue = GetStringFromConfig(aSection, KDestAddr, ptrToReadFromConfig);
-    if (!returnValue)
-        {
-        ERR_PRINTF1(_L("Reading config file failed, while reading DestAddr"));   
-        SetError(KErrUnknown);
-		iSocket1.Close();
-		iSocket2.Close();
-		iConnection1.Close();
-        iConnection2.Close();
-        iSocketServ1.Close();
-        iSocketServ2.Close();
-        StopD3PApp();
-        return;
-        }
-    //set destination IP ie. server
-    TInt err = iDestAddr.Input(ptrToReadFromConfig);   
-    if(err != KErrNone)
-        {
-        INFO_PRINTF2(KInetInputFail, err);
-        SetError(err);
-        StopD3PApp();
-        return;
-        }
-
-    returnValue = GetIntFromConfig(aSection, KDestPort, iDestPort);
-    iDestAddr.SetPort(iDestPort);
-    //bind local port to socket
-    err = iSocket1.SetLocalPort(LOCAL_PORT);
-    if(err != KErrNone)
-	    {
-		ERR_PRINTF1(_L("Error in setting local port to socket1"));
-	    SetError(err);
-		iSocket1.Close();
-	    iSocket2.Close();
-	    iConnection1.Close();
-	    iConnection2.Close();
-	    iSocketServ1.Close();
-	    iSocketServ2.Close();
-	    StopD3PApp();
-	    return;
-	    }
-
-    //read Real interface ip addr and port from config file
-    returnValue = GetStringFromConfig(aSection, KRealDestAddr, ptrToReadFromConfig);
-    if (!returnValue)
-        {
-        ERR_PRINTF1(_L("Reading config file failed, while reading RealDestAddr"));   
-        SetError(KErrUnknown);
-		iSocket1.Close();
-	    iSocket2.Close();
-	    iConnection1.Close();
-	    iConnection2.Close();
-	    iSocketServ1.Close();
-	    iSocketServ2.Close();
-        StopD3PApp();
-        return;
-        }
-    //set destination IP ie. server
-    err = iRealDestAddr.Input(ptrToReadFromConfig);   
-    if(err != KErrNone)
-        {
-        INFO_PRINTF2(KInetInputFail, err);
-        SetError(err);
-				iSocket1.Close();
-	      iSocket2.Close();
-	      iConnection1.Close();
-	      iConnection2.Close();
-	      iSocketServ1.Close();
-	      iSocketServ2.Close();
-        StopD3PApp();
-        return;
-        }
-
-    returnValue = GetIntFromConfig(aSection, KRealDestPort, iRealDestPort);
-    if (!returnValue)
-        {
-        ERR_PRINTF1(_L("Reading config file failed, while reading RealDestAddr"));   
-        SetError(KErrUnknown);
-				iSocket1.Close();
-	      iSocket2.Close();
-	      iConnection1.Close();
-	      iConnection2.Close();
-	      iSocketServ1.Close();
-	      iSocketServ2.Close();
-        StopD3PApp();
-        return;
-        }
-    iRealDestAddr.SetPort(iRealDestPort);
-    //bind local port to socket
-    //err = iSocket2.SetLocalPort(LOCAL_PORT);
-    //send data to server
-    iSocket1.SendTo(iSendBuf, iDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-    if( iStatus == KErrNone)
-        INFO_PRINTF1(_L("\nData Sent thru virtual interface"));
-    else
-    		{
-        ERR_PRINTF1(_L("\nData sending failed through virtual interface"));
-				SetError(iStatus.Int());
-				iSocket1.Close();
-	      iSocket2.Close();
-	      iConnection1.Close();
-	      iConnection2.Close();
-	      iSocketServ1.Close();
-	      iSocketServ2.Close();
-        StopD3PApp();
-        return;
-      	}
-
-    iRecvBuf.Zero();
-    iSocket1.RecvFrom(iRecvBuf, iDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-    TBuf<128> temp;
-    if( iStatus == KErrNone)
-        {
-        INFO_PRINTF1(_L("\nData Received from Socket1 : "));
-        temp.Copy(iRecvBuf);
-        INFO_PRINTF1(temp);
-        INFO_PRINTF1(_L("\n"));
-        }
-    else
-        {
-        ERR_PRINTF1(_L("\nData receive failed on Socket1"));
-        SetError(iStatus.Int());
-				iSocket1.Close();
-	      iSocket2.Close();
-	      iConnection1.Close();
-	      iConnection2.Close();
-	      iSocketServ1.Close();
-	      iSocketServ2.Close();
-        StopD3PApp();
-        return;
-        }
-
-    iSendBuf.Zero();
-    iSendBuf = (TText8*)"Socket2: Nokia sues Apple!";
-    iSocket2.SendTo(iSendBuf, iRealDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-    if( iStatus == KErrNone)
-        INFO_PRINTF1(_L("\nData Sent thru real interface"));
-    else
-    		{
-        ERR_PRINTF1(_L("\nData sending failed through real interface"));
-        SetError(iStatus.Int());
-				iSocket1.Close();
-	      iSocket2.Close();
-	      iConnection1.Close();
-	      iConnection2.Close();
-	      iSocketServ1.Close();
-	      iSocketServ2.Close();
-        StopD3PApp();
-        return;
-
-				}
-    iRecvBuf.Zero();
-    iSocket2.RecvFrom(iRecvBuf, iRealDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-    temp.Zero();
-    if( iStatus == KErrNone)
-        {
-        INFO_PRINTF1(_L("\nData Received from Socket2: "));
-        temp.Copy(iRecvBuf);
-        INFO_PRINTF1(temp);
-        INFO_PRINTF1(_L("\n"));
-        }
-    else
-        {
-        ERR_PRINTF1(_L("\nData receive failed on Socket2"));
-        SetError(iStatus.Int());
-        }
-
-    iSocket1.Close();
-    iSocket2.Close();
-    iConnection1.Close();
-    iConnection2.Close();
-    iSocketServ1.Close();      
-    iSocketServ2.Close();
-    StopD3PApp();
-    }
-
-void CTunDriverTestWrapper::DoRConnTest1_9(const TDesC& aSection)
-    {
-    INFO_PRINTF1(_L("*********************************************"));
-        INFO_PRINTF1(_L("           Test: DoRConnTest1_9             "));
-        INFO_PRINTF1(_L("********************************************"));
-#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
-    CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_2);
-#else
-    CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_1);
-#endif
-    CleanupStack::PushL(cmdbSession); 
-
-    CCDIAPRecord *iapRecord = (CCDIAPRecord*)CCDRecordBase::RecordFactoryL(KCDTIdIAPRecord);
-    CleanupStack::PushL(iapRecord);
-
-    iapRecord->SetRecordId(14);
-
-    iapRecord->LoadL(*cmdbSession);
-
-    //iapRecord->iServiceType;
-    TUint recid = iapRecord->iService;
-    CCDLANServiceRecord *lanRecord = (CCDLANServiceRecord*)CCDRecordBase::RecordFactoryL(KCDTIdLANServiceRecord);
-    CleanupStack::PushL(lanRecord);
-
-    lanRecord->SetRecordId(recid);
-
-    lanRecord->LoadL(*cmdbSession);
-
-    // Get gateway address from config file  
-    TPtrC ptrToReadFromConfig(KNameDefault);
-    TBool returnValue = GetStringFromConfig(aSection, KGatewayAddr, ptrToReadFromConfig);
-    if (!returnValue)
-        {
-        ERR_PRINTF1(_L("Reading config file failed, while reading DestAddr"));   
-        SetError(KErrUnknown);
-        return;
-        }
-
-    // Create address
-    TInetAddr gwAddr;
-    TInt err = gwAddr.Input(ptrToReadFromConfig);   
-    if(err != KErrNone)
-        {
-        INFO_PRINTF2(KInetInputFail, err);
-        SetError(err);
-        return;
-        }
-    TPtrC displayIpAddr(lanRecord->iIpAddr);
-    //INFO_PRINTF2(_L("lanRecord ipAddr is %S"), &displayIpAddr); 
-
-    TPtrC ipGateway(_L("10.1.1.100"));
-    //TPtrC ipGateway(ptrToReadFromConfig);
-    lanRecord->iIpGateway.SetMaxLengthL(ipGateway.Length());
-    lanRecord->iIpGateway = ipGateway;
-
-
-    // Get gateway address from config file         
-    returnValue = GetStringFromConfig(aSection, KIpAddr, ptrToReadFromConfig);
-    if (!returnValue)
-        {
-        ERR_PRINTF1(_L("Reading config file failed, while reading DestAddr"));   
-        SetError(KErrUnknown);
-        return;
-        }
-    //TPtrC ipAddr(_L("10.1.1.100"));
-    TPtrC ipAddr(ptrToReadFromConfig);
-    lanRecord->iIpAddr.SetMaxLengthL(ipAddr.Length());
-    lanRecord->iIpAddr = ipAddr;
-
-    TRAPD(modifyErr, lanRecord->ModifyL(*cmdbSession));
-    INFO_PRINTF2(_L("lanRecord ModifyL result was %d.  Should be 0"), modifyErr);
-
-    TPtrC displayIpAddr2(lanRecord->iIpAddr);
-    INFO_PRINTF2(_L("lanRecord ipAddr is %S"), &displayIpAddr2);    
-    CleanupStack::PopAndDestroy(lanRecord);
-    CleanupStack::PopAndDestroy(iapRecord);
-    CleanupStack::PopAndDestroy(cmdbSession);
-
-
-    }
-
-//Ensure that Close() effectively pulls down the interface
-//when no other subsessions are associated with it.
-void CTunDriverTestWrapper::DoRConnTest1_10(const TDesC& aSection)
-    {
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_10             "));
-    INFO_PRINTF1(_L("********************************************"));
-
-    //start the dummy3rdpartyapp
-    if ((iVTunError = StartD3PApp()) != KErrNone)
-        {
-        return;
-        }
-
-    if((iStatus = iSocketServ.Connect()) == KErrNone )
-        INFO_PRINTF1(_L("Socket Server Opened.\n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Socket Server: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        StopD3PApp();
-        return;
-        }
-    if((iStatus = iConnection.Open(iSocketServ /*, KAfInet*/)) == KErrNone )
-        INFO_PRINTF1(_L("Connection opened. \n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Connection: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        StopD3PApp();
-        return;
-        }
-
-    iCommDbPref.SetIapId(TUNDRIVER_IAP);             // Virtual Interface
-    iCommDbPref.SetBearerSet(KCommDbBearerVirtual);
-    iCommDbPref.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
-
-    iConnection.Start(iCommDbPref, iStatus);
-    User::WaitForRequest(iStatus);
-    if (iStatus.Int() != KErrNone)
-				{
-				ERR_PRINTF2(_L("Error starting connection: %d"), iStatus.Int());	
-				SetError(iStatus.Int());
-				iSocketServ.Close();
-				StopD3PApp();
-				return;
-				}
-    INFO_PRINTF2(_L("Starting Connection %d.\n"), iStatus.Int());
-
-    //Enumerate the number of interfaces
-    iConnection.EnumerateConnections(iInitNumOfInterfaces);
-    INFO_PRINTF2(_L("Number of Interfaces: %d!\n "), iInitNumOfInterfaces);
-
-    //open socket on interface. 
-    if((iStatus = iSocket.Open(iSocketServ, KAfInet, KSockDatagram, KProtocolInetUdp, iConnection)) == KErrNone )
-        INFO_PRINTF1(_L("Socket Opened!\n "));
-    else   // (iStatus!=KErrNone)
-        {
-        ERR_PRINTF2(_L("Error Opening Socket: %d"), iStatus.Int());    
-        SetError(iStatus.Int());
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-
-    iSendBuf.Zero();
-    iSendBuf = (TText8*)"Nokia sues Apple!";
-
-    // Get destination address from config file  
-    TPtrC ptrToReadFromConfig(KNameDefault);
-    TBool returnValue = GetStringFromConfig(aSection, KDestAddr, ptrToReadFromConfig);
-    if (!returnValue)
-        {
-        ERR_PRINTF1(_L("Reading config file failed, while reading DestAddr"));   
-        SetError(KErrUnknown);
-        iSocket.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-    //set destination IP ie. server
-    TInt err = iDestAddr.Input(ptrToReadFromConfig);   
-    if(err != KErrNone)
-        {
-        INFO_PRINTF2(KInetInputFail, err);
-        SetError(err);
-        iSocket.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-
-    returnValue = GetIntFromConfig(aSection, KDestPort, iDestPort);
-    if (!returnValue)
-        {
-        ERR_PRINTF1(_L("Reading config file failed, while reading DestAddr"));   
-        SetError(KErrUnknown);
-        iSocket.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-
-    iDestAddr.SetPort(iDestPort);
-    //bind local port to socket
-    err = iSocket.SetLocalPort(LOCAL_PORT);
-    if (err != KErrNone)
-        {
-        ERR_PRINTF1(_L("Error setting local port"));   
-        SetError(err);
-        iSocket.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-
-    //send data to server
-    iSocket.SendTo(iSendBuf, iDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-    if( iStatus == KErrNone)
-        INFO_PRINTF1(_L("\nData Sent"));
-    else
-    		{
-        ERR_PRINTF1(_L("\nData sending failed"));
-        SetError(iStatus.Int());
-        iSocket.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-				}
-    
-    iRecvBuf.Zero();
-    iSocket.RecvFrom(iRecvBuf, iDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-    TBuf<128> temp;
-    if( iStatus == KErrNone)
-        {
-        INFO_PRINTF1(_L("\nData Received : "));
-        temp.Copy(iRecvBuf);
-        INFO_PRINTF1(temp);
-        INFO_PRINTF1(_L("\n"));
-        }
-    else
-        {
-        ERR_PRINTF1(_L("\nData receive failed."));
-        SetError(iStatus.Int());
-        }  
-
-    iSocket.Close();
-    iConnection.Close();
-    iSocketServ.Close();
-    
-    StopD3PApp();
-    
-    }
-
-//Ensure that Close() does not pull down the interface when there are other 
-//connections associated with it.
-void CTunDriverTestWrapper::DoRConnTest1_11()
-    {
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_11             "));
-    INFO_PRINTF1(_L("*********************************************"));
-
-    if((iStatus = iSocketServ.Connect()) == KErrNone )
-        INFO_PRINTF1(_L("Socket Server Opened.\n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Socket Server: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        return;
-        }
-
-    if((iStatus = iConnection1.Open(iSocketServ /*, KAfInet*/)) == KErrNone )
-        INFO_PRINTF1(_L("Connection1 opened. \n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Connection1: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        return;
-        }
-
-    if((iStatus = iConnection2.Open(iSocketServ /*, KAfInet*/)) == KErrNone )
-        INFO_PRINTF1(_L("Connection2 opened. \n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Connection2: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        return;
-        }
-
-    iCommDbPref.SetIapId(TUNDRIVER_IAP);             // Virtual Interface
-    iCommDbPref.SetBearerSet(KCommDbBearerVirtual);
-    iCommDbPref.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
-
-    iConnection1.Start(iCommDbPref, iStatus);
-    User::WaitForRequest(iStatus);
-		if(iStatus.Int()!=KErrNone)
-	    	{
-	    	ERR_PRINTF2(_L("Error starting connection1: %d"), iStatus.Int());	
-				SetError(iStatus.Int());
-				iSocketServ.Close();
-				return;
-	    	}
-    INFO_PRINTF2(_L("Starting Connection1 %d.\n"), iStatus.Int());
-    iConnection2.Start(iCommDbPref, iStatus);
-    User::WaitForRequest(iStatus);
-		if(iStatus.Int()!=KErrNone)
-	    	{
-	    	ERR_PRINTF2(_L("Error starting connection2: %d"), iStatus.Int());	
-				SetError(iStatus.Int());
-				iSocketServ.Close();
-				return;
-	    	}
-    INFO_PRINTF2(_L("Starting Connection2 %d.\n"), iStatus.Int());
-
-    //Enumerate the number of interfaces
-    iConnection2.EnumerateConnections(iInitNumOfInterfaces);
-    INFO_PRINTF2(_L("Number of Interfaces: %d!\n "), iInitNumOfInterfaces);
-
-    iConnection1.Close();
-    User::After(30000);
-
-    iConnection2.EnumerateConnections(iCurNumOfInterfaces);
-    INFO_PRINTF2(_L("Number of Interfaces after closing 1st Connection: %d!\n "), iCurNumOfInterfaces);
-    if(iCurNumOfInterfaces == iInitNumOfInterfaces)
-    		INFO_PRINTF1(_L("Number of interfaces before and after closing the connection is same"));
- 		else
-        {
-        ERR_PRINTF1(_L("ERROR: More Number of Interfaces than expected."));    
-        SetError(KErrGeneral);
-        return;
-        }
-    iConnection2.Stop();
-    User::After(30000);
-    iSocketServ.Close();      
-    }
-
-//Ensure that Stop() pulls down the interface when there are no subsessions
-//other than the connection associated with it.
-void CTunDriverTestWrapper::DoRConnTest1_12()
-    {
-
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_12             "));
-    INFO_PRINTF1(_L("*********************************************"));
-
-    if((iStatus = iSocketServ.Connect()) == KErrNone )
-        INFO_PRINTF1(_L("Socket Server Opened.\n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Socket Server: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        return;
-        }
-
-    if((iStatus = iConnection.Open(iSocketServ /*, KAfInet*/)) == KErrNone )
-        INFO_PRINTF1(_L("Connection opened. \n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Connection: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        return;
-        }
-
-		iCommDbPref1.SetIapId(REAL_IAP);             // Virtual Interface
-    iCommDbPref1.SetBearerSet(KCommDbBearerLAN);
-    iCommDbPref1.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
-    
-    iConnection.Start(iCommDbPref1,iStatus);
-    User::WaitForRequest(iStatus);
-		if(iStatus.Int()!=KErrNone)
-	    	{
-	    	ERR_PRINTF2(_L("Error starting connection: %d"), iStatus.Int());	
-				SetError(iStatus.Int());
-				iSocketServ.Close();
-				return;
-	    	}
-    INFO_PRINTF2(_L("Starting Connection %d.\n"), iStatus.Int());
-
-    //Enumerate the number of interfaces
-    iConnection.EnumerateConnections(iInitNumOfInterfaces);
-    INFO_PRINTF2(_L("Number of initial Interfaces: %d!\n "), iInitNumOfInterfaces);
-
-    TInt MyErr = iConnection.Stop();
-    User::After(30000);
-    iConnection.EnumerateConnections(iCurNumOfInterfaces);
-    INFO_PRINTF2(_L("Number of Interfaces after stopping the connection: %d!\n "), iCurNumOfInterfaces);
-    if(iCurNumOfInterfaces>=iInitNumOfInterfaces)
-        {
-        ERR_PRINTF1(_L("ERROR: More Number of Interfaces than expected."));    
-        SetError(KErrGeneral);
-        return;
-        }
-    iSocketServ.Close();      
-    }
-
-//Ensure that Stop() pulls down the interface when 
-//there are sockets associated with it.
-void CTunDriverTestWrapper::DoRConnTest1_13(const TDesC& aSection)
-    {
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_13             "));
-    INFO_PRINTF1(_L("*********************************************"));
-
-    //start the dummy3rdpartyapp
-    if ((iVTunError = StartD3PApp()) != KErrNone)
-        {
-        return;
-        }
-
-    if((iStatus = iSocketServ.Connect()) == KErrNone )
-        INFO_PRINTF1(_L("Socket Server Opened.\n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Socket Server: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        StopD3PApp();
-        return;
-        }
-
-    if((iStatus = iConnection.Open(iSocketServ /*, KAfInet*/)) == KErrNone )
-        INFO_PRINTF1(_L("Connection opened. \n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Connection: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        StopD3PApp();
-        return;
-        }
-
-    iCommDbPref.SetIapId(TUNDRIVER_IAP);             // Virtual Interface
-    iCommDbPref.SetBearerSet(KCommDbBearerVirtual);
-    iCommDbPref.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
-    iConnection.Start(iCommDbPref, iStatus);
-    User::WaitForRequest(iStatus);
-		if(iStatus.Int()!=KErrNone)
-	    	{
-	    	ERR_PRINTF2(_L("Error starting connection: %d"), iStatus.Int());	
-				SetError(iStatus.Int());
-				iSocketServ.Close();
-				StopD3PApp();
-				return;
-	    	}
-    INFO_PRINTF2(_L("Starting Connection %d.\n"), iStatus.Int());
-
-    //open socket on interface. 
-    if((iStatus = iSocket.Open(iSocketServ, KAfInet, KSockDatagram, KProtocolInetUdp, iConnection)) == KErrNone )
-        INFO_PRINTF1(_L("Socket Opened!\n "));
-    else   // (iStatus!=KErrNone)
-        {
-        ERR_PRINTF2(_L("Error Opening Socket: %d"), iStatus.Int());    
-        SetError(iStatus.Int());
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-
-    iSendBuf.Zero();
-    iSendBuf = (TText8*)"Sending Data through Socket!";
-
-    // Get destination address from config file   
-    TPtrC ptrToReadFromConfig(KNameDefault);
-    TBool returnValue = GetStringFromConfig(aSection, KDestAddr, ptrToReadFromConfig);
-    if (!returnValue)
-        {
-        ERR_PRINTF1(_L("Reading config file failed, while reading DestAddr"));   
-        SetError(KErrUnknown);
-        iSocket.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-    //set destination IP ie. server
-    TInt err = iDestAddr.Input(ptrToReadFromConfig);   
-    if(err != KErrNone)
-        {
-        INFO_PRINTF2(KInetInputFail, err);
-        SetError(err);
-        iSocket.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-
-    returnValue = GetIntFromConfig(aSection, KDestPort, iDestPort);
-    if (!returnValue)
-        {
-        ERR_PRINTF1(_L("Reading config file failed, while reading DestAddr"));   
-        SetError(KErrUnknown);
-        iSocket.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-
-    iDestAddr.SetPort(iDestPort);
-    //bind local port to socket
-    err = iSocket.SetLocalPort(LOCAL_PORT);
-    if (err != KErrNone)
-        {
-        ERR_PRINTF1(_L("Reading config file failed, while reading DestAddr"));   
-        SetError(err);
-        iSocket.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-
-    //send data to server
-    iSocket.SendTo(iSendBuf, iDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-    if( iStatus == KErrNone)
-        INFO_PRINTF1(_L("\nData Sent"));
-    else
-    		{
-        ERR_PRINTF1(_L("\nData sending failed"));
-        SetError(iStatus.Int());
-        iSocket.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;        
-      	}
-
-    iRecvBuf.Zero();
-    iSocket.RecvFrom(iRecvBuf, iDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-    TBuf<128> temp;
-    if( iStatus == KErrNone)
-        {
-        INFO_PRINTF1(_L("\nData Received from Socket : "));
-        temp.Copy(iRecvBuf);
-        INFO_PRINTF1(temp);
-        INFO_PRINTF1(_L("\n"));
-        }
-    else
-        {
-        ERR_PRINTF1(_L("\nData receive failed on Socket"));
-        SetError(iStatus.Int());
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;        
-        }  
-
-
-    //Enumerate the number of interfaces
-    iConnection.EnumerateConnections(iInitNumOfInterfaces);
-    INFO_PRINTF2(_L("Number of Init Interfaces: %d!\n "), iInitNumOfInterfaces);
-
-    iConnection.Stop();
-    User::After(30000);
-    iConnection.EnumerateConnections(iCurNumOfInterfaces);
-    INFO_PRINTF2(_L("Number of Interfaces after Stopping the interface: %d!\n "), iCurNumOfInterfaces);
-    if(iCurNumOfInterfaces>=iInitNumOfInterfaces)
-        {
-        ERR_PRINTF1(_L("ERROR: More Number of Interfaces than expected."));    
-        SetError(KErrGeneral);
-        }
-    iSocket.Close();
-    iSocketServ.Close();    
-    StopD3PApp();
-    }
-
-//Stop() a connection and ensure that other connections over 
-//other interfaces are unaffected. 
-void CTunDriverTestWrapper::DoRConnTest1_14(const TDesC& aSection)
-    {
-
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_14             "));
-    INFO_PRINTF1(_L("*********************************************"));
-
-    if((iStatus = iSocketServ.Connect()) == KErrNone )
-        INFO_PRINTF1(_L("Socket Server Opened.\n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Socket Server: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        
-        return;
-        }
-
-    if((iStatus = iConnection1.Open(iSocketServ /*, KAfInet*/)) == KErrNone )
-        INFO_PRINTF1(_L("Connection1 opened. \n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Connection1: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        
-        return;
-        }
-    iCommDbPref1.SetIapId(TUNDRIVER_IAP);             // Virtual Interface
-    iCommDbPref1.SetBearerSet(KCommDbBearerVirtual);
-    iCommDbPref1.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
-    iConnection1.Start(iCommDbPref1,iStatus);
-    User::WaitForRequest(iStatus);
-		if(iStatus.Int()!=KErrNone)
-	    	{
-	    	ERR_PRINTF2(_L("Error starting connection1: %d"), iStatus.Int());	
-				SetError(iStatus.Int());
-				iSocketServ.Close();
-				return;
-	    	}
-    INFO_PRINTF2(_L("Starting Connection1 %d.\n"), iStatus.Int());
-
-    if((iStatus = iConnection2.Open(iSocketServ /*, KAfInet*/)) == KErrNone )
-        INFO_PRINTF1(_L("Connection2 opened. \n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Connection2: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        iSocketServ.Close();
-        return;
-        }
-    iCommDbPref2.SetIapId(REAL_IAP);             // Virtual Interface
-    iCommDbPref2.SetBearerSet(KCommDbBearerLAN);
-    iCommDbPref2.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
-    iConnection2.Start(iCommDbPref2, iStatus);
-    User::WaitForRequest(iStatus);
-		if(iStatus.Int()!=KErrNone)
-	    	{
-	    	ERR_PRINTF2(_L("Error starting connection2: %d"), iStatus.Int());	
-				SetError(iStatus.Int());
-				iConnection1.Close();
-				iSocketServ.Close();
-				return;
-	    	}
-    INFO_PRINTF2(_L("Starting Connection2 %d.\n"), iStatus.Int());
-    //enumnerate the interfaces
-    iConnection1.EnumerateConnections(iInitNumOfInterfaces);
-    INFO_PRINTF2(_L("Number of Initial Interfaces: %d!\n "), iInitNumOfInterfaces);
-
-    //Shutdown the first connection.
-    iConnection1.Stop();
- 
-    //enumnerate the interfaces again.
-    iConnection2.EnumerateConnections(iCurNumOfInterfaces);
-    INFO_PRINTF2(_L("Number of Interfaces after Stopping the VTun Interface: %d!\n "), iCurNumOfInterfaces);
-    if(iCurNumOfInterfaces>iInitNumOfInterfaces)
-        {
-        ERR_PRINTF1(_L("ERROR: More Number of Interfaces than expected."));    
-        SetError(KErrGeneral);
-        iConnection2.Close();
-        iSocketServ.Close();
-        return;
-        }
-    //open udp socket over second connection and send data over it.
-
-    if((iStatus = iSocket.Open(iSocketServ, KAfInet, KSockDatagram, KProtocolInetUdp, iConnection2)) == KErrNone )
-        INFO_PRINTF1(_L("Socket Opened!\n "));
-    else   // (iStatus!=KErrNone)
-        {
-        ERR_PRINTF2(_L("Error Opening Socket: %d"), iStatus.Int());    
-        SetError(iStatus.Int());
-        iConnection2.Close();
-        iSocketServ.Close();
-        return;
-        }
-
-    iSendBuf.Zero();
-    iSendBuf = (TText8*)"Sending Data through Socket!";
-
-    // Get destination address from config file     
-    TPtrC ptrToReadFromConfig(KNameDefault);
-    TBool returnValue = GetStringFromConfig(aSection, KRealDestAddr, ptrToReadFromConfig);
-    if (!returnValue)
-        {
-        ERR_PRINTF1(_L("Reading config file failed, while reading DestAddr"));   
-        SetError(KErrUnknown);
-        iSocket.Close();
-        iConnection2.Close();
-        iSocketServ.Close();
-        return;
-        }
-    //set destination IP ie. server
-    TInt err = iRealDestAddr.Input(ptrToReadFromConfig);   
-    if(err != KErrNone)
-        {
-        INFO_PRINTF2(KInetInputFail, err);
-        SetError(err);
-        iConnection2.Close();
-        iSocketServ.Close();       
-        return;
-        }
-
-    returnValue = GetIntFromConfig(aSection, KRealDestPort, iRealDestPort);
-    iRealDestAddr.SetPort(iRealDestPort);
-    //bind local port to socket
-    err = iSocket.SetLocalPort(LOCAL_PORT);
-
-    //send data to server
-    iSocket.SendTo(iSendBuf, iRealDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-    if( iStatus == KErrNone)
-        INFO_PRINTF1(_L("\nData Sent"));
-    else
-    		{
-      	ERR_PRINTF2(_L("\nData sending failed: %d"), iStatus.Int());
-      	SetError(iStatus.Int());
-      	iSocket.Close();
-      	iConnection2.Close();
-      	iSocketServ.Close();
-      	return;
-      	}
-
-    iRecvBuf.Zero();
-    iSocket.RecvFrom(iRecvBuf, iDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-    TBuf<128> temp;
-    if( iStatus == KErrNone )
-        {
-        INFO_PRINTF1(_L("\nData Received from Socket : "));
-        temp.Copy(iRecvBuf);
-        INFO_PRINTF1(temp);
-        INFO_PRINTF1(_L("\n"));
-        }
-    else
-        {
-        ERR_PRINTF1(_L("\nData receive failed on Socket"));
-        SetError(iStatus.Int());
-        }  
-
-    iSocket.Close();
-    iConnection2.Close();
-    iSocketServ.Close();
-        
-    }
-
-void CTunDriverTestWrapper::DoRConnTest1_15()
-    {
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_15             "));
-    INFO_PRINTF1(_L("********************************************"));
-
-    if((iStatus = iSocketServ.Connect()) == KErrNone )
-        INFO_PRINTF1(_L("Socket Server Opened.\n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Socket Server: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        return;
-        }
-
-    iSocket.Open(iSocketServ,_L("tun"));
-
-    TUint localPort = 6789;
-    TPckgC <TUint> portPckg (localPort);
-
-    //Positive case
-
-    if((iStatus = iSocket.SetOpt(KSolInetIp,KSoTunnelPort,portPckg)) == KErrNone )
-        INFO_PRINTF1(_L("Socket SetOpt Positive scenario succesful Opened.\n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error in Socket SetOpt: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        iSocket.Close();
-        iSocketServ.Close();
-        return;
-        }
-
-    //Negative Case #1
-    if((iStatus = iSocket.SetOpt(KSolInetUdp,KSoTunnelPort,portPckg)) == KErrNotSupported )
-        INFO_PRINTF1(_L("Socket SetOpt Negative scenario #1 succesful Opened.\n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error in Socket SetOpt: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        iSocket.Close();
-        iSocketServ.Close();
-        return;
-        }
-
-    //Negative Case #2 
-    if((iStatus = iSocket.SetOpt(KSolInetUdp,KSoNoSourceAddressSelect,portPckg)) == KErrNotSupported )
-        INFO_PRINTF1(_L("Socket SetOpt Negative scenario #2 succesful Opened.\n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error in Socket SetOpt: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        }
-
-    iSocket.Close();
-    iSocketServ.Close();
-   }
-
-void CTunDriverTestWrapper::DoRConnTest1_16(const TDesC& aSection)
-    {
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_16            "));
-    INFO_PRINTF1(_L("********************************************"));
-
-
-    if((iStatus = iSocketServ.Connect()) == KErrNone )
-        INFO_PRINTF1(_L("Socket Server Opened.\n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Socket Server: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        return;
-        }
-    if((iStatus = iConnection.Open(iSocketServ)) == KErrNone )
-        INFO_PRINTF1(_L("Connection opened. \n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Connection: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        iSocketServ.Close();
-        return;
-        }
-
-    iCommDbPref.SetIapId(TUNDRIVER_IAP);             // Virtual Interface
-    iCommDbPref.SetBearerSet(KCommDbBearerVirtual);
-    iCommDbPref.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
-
-    iConnection.Start(iCommDbPref, iStatus);
-    User::WaitForRequest(iStatus);
-		if(iStatus.Int()!=KErrNone)
-	    	{
-	    	ERR_PRINTF2(_L("Error starting connection: %d"), iStatus.Int());	
-				SetError(iStatus.Int());
-				iSocketServ.Close();
-				return;
-	    	}
-    INFO_PRINTF2(_L("Starting Connection %d.\n"), iStatus.Int());
-
-    iSocket.Open(iSocketServ,_L("tun"));
-
-    TUint localPort = 6789;
-    TPckgC <TUint> portPckg (localPort);
-
-    //Setting the Port Number into the Stack
-    if((iStatus = iSocket.SetOpt(KSolInetIp,KSoTunnelPort,portPckg)) == KErrNone )
-        INFO_PRINTF1(_L("Socket SetOpt Positive scenario succesful Opened.\n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error in Socket SetOpt: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        iConnection.Close();
-        iSocketServ.Close();
-        return;
-        }
-
-    // Get destination address from config file 
-    TPtrC ptrToReadFromConfig(KNameDefault);
-    TBool returnValue = GetStringFromConfig(aSection, KDestAddr, ptrToReadFromConfig);
-    if (!returnValue)
-        {
-        ERR_PRINTF1(_L("Reading config file failed, while reading DestAddr"));   
-        SetError(KErrUnknown);
-				iSocket.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        return;
-        }
-    
-    //set destination IP 
-    TInt err = iDestAddr.Input(ptrToReadFromConfig);   
-    if(err != KErrNone)
-        {
-        INFO_PRINTF2(KInetInputFail, err);
-        SetError(err);
-				iSocket.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        return;
-        }
-
-    //set the destination port
-    returnValue = GetIntFromConfig(aSection, KDestPort, iDestPort);
-    if (!returnValue)
-        {
-        ERR_PRINTF1(_L("Reading config file failed, while reading DestAddr"));   
-        SetError(KErrUnknown);
-				iSocket.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        return;
-        }
-    
-    iDestAddr.SetPort(iDestPort);
-
-    //retrieve the local address
-    TInetAddr iLocalAddr;
-    returnValue = GetStringFromConfig(aSection, KLocalAddr, ptrToReadFromConfig);
-    if (!returnValue)
-        {
-        ERR_PRINTF1(_L("Reading config file failed, while reading LocalAddr"));   
-        SetError(KErrUnknown);
-				iSocket.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        return;
-        }
-    
-    err = iLocalAddr.Input(ptrToReadFromConfig);   
-    if(err != KErrNone)
-        {
-        INFO_PRINTF2(KInetInputFail, err);
-        SetError(err);
-				iSocket.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        return;
-        }
-
-    iLocalAddr.SetPort(LOCAL_PORT);
-
-    //open socket on interface.
-    if((iStatus = iSocket1.Open(iSocketServ, KAfInet, KSockDatagram, KProtocolInetUdp,iConnection)) == KErrNone )
-        INFO_PRINTF1(_L("Socket1 Opened!\n "));
-    else   // (iStatus!=KErrNone)
-        {
-        ERR_PRINTF2(_L("Error Opening Socket1: %d"), iStatus.Int());    
-        SetError(iStatus.Int());
-				iSocket.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        return;
-        }
-
-    //open socket on interface.
-    if((iStatus = iSocket2.Open(iSocketServ, KAfInet, KSockDatagram, KProtocolInetIcmp,iConnection)) == KErrNone )
-        INFO_PRINTF1(_L("Socket2 Opened!\n "));
-    else   // (iStatus!=KErrNone)
-        {
-        ERR_PRINTF2(_L("Error Opening Socket2: %d"), iStatus.Int());    
-        SetError(iStatus.Int());
-				iSocket.Close();
-				iSocket1.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        return;
-        }
-
-    err = iSocket1.Bind(iLocalAddr);
-    if(err != KErrNone)
-    		{
-        ERR_PRINTF2(_L("Error Binding Socket1: %d"), err);    
-        SetError(iStatus.Int());
- 				iSocket.Close();
- 				iSocket1.Close();
- 				iSocket2.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-				return;
-				}
-
-    TInt iLocalPort;
-    returnValue = GetIntFromConfig(aSection, KLocalPort, iLocalPort);
-    iLocalAddr.SetPort(iLocalPort);
-
-    err = iSocket2.Bind(iLocalAddr);
-    if(err != KErrNone)
-				{
-        ERR_PRINTF2(_L("Error Binding Socket2: %d"), err);
-        SetError(iStatus.Int());
- 				iSocket.Close();
- 				iSocket1.Close();
- 				iSocket2.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-				return;
-				}
-
-    iSendBuf.Zero();
-    iSendBuf = (TText8*)"Test Message";
-
-    //send data to server using the local port = LOCAL_PORT (7777)
-    iSocket1.SendTo(iSendBuf, iDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-
-    if( iStatus == KErrNone)
-        INFO_PRINTF1(_L("\nData Sent thru socket1"));
-    else
-				{
-        ERR_PRINTF1(_L("\nData sending failed"));
-        SetError(iStatus.Int());
- 				iSocket.Close();
- 				iSocket1.Close();
- 				iSocket2.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-				return;
-				}
-				
-    //send data to server using the local port configured in ini file 
-    iSocket2.SendTo(iSendBuf, iDestAddr, NULL, iStatus);
-    User::WaitForRequest(iStatus);
-
-    if( iStatus == KErrNone)
-        INFO_PRINTF1(_L("\nData Sent thru socket2"));
-    else
-    		{
-        ERR_PRINTF1(_L("\nData sending failed"));
-        SetError(iStatus.Int());
-      	}
-		iSocket.Close();
-    iSocket1.Close();
-    iSocket2.Close();
-    iConnection.Close();
-    iSocketServ.Close();
-    }
-
-//Simple TCP data transfer.
-void CTunDriverTestWrapper::DoRConnTest1_17(const TDesC& aSection)
-    {
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_17             "));
-    INFO_PRINTF1(_L("*********************************************"));
-
-    //start the dummy3rdpartyapp
-    if ((iVTunError = StartD3PApp()) != KErrNone)
-        {
-        return;
-        }
-
-    if((iStatus = iSocketServ.Connect()) == KErrNone )
-        INFO_PRINTF1(_L("Socket Server Opened.\n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Socket Server: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        StopD3PApp();
-        return;
-        }
-
-    if((iStatus = iConnection.Open(iSocketServ /*, KAfInet*/)) == KErrNone )
-        INFO_PRINTF1(_L("Connection opened. \n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Connection: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-
-    iCommDbPref.SetIapId(TUNDRIVER_IAP);             // Virtual Interface
-    iCommDbPref.SetBearerSet(KCommDbBearerVirtual);
-    iCommDbPref.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
-    iConnection.Start(iCommDbPref, iStatus);
-    User::WaitForRequest(iStatus);
-		if(iStatus.Int()!=KErrNone)
-	    	{
-	    	ERR_PRINTF2(_L("Error starting connection: %d"), iStatus.Int());	
-				SetError(iStatus.Int());
-				iSocketServ.Close();
-				return;
-	    	}
-    INFO_PRINTF2(_L("Starting Connection %d.\n"), iStatus.Int());
-
-    //open socket on interface. 
-    if((iStatus = iSocket.Open(iSocketServ, KAfInet, KSockStream, KProtocolInetTcp, iConnection)) == KErrNone )
-        INFO_PRINTF1(_L("Socket Opened!\n "));
-    else   // (iStatus!=KErrNone)
-        {
-        ERR_PRINTF1(_L("Error Opening Socket!"));    
-        SetError(iStatus.Int());
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-
-    // Get destination address from config file    
-    TPtrC ptrToReadFromConfig(KNameDefault);
-    TBool returnValue = GetStringFromConfig(aSection, KDestAddr, ptrToReadFromConfig);
-    if (!returnValue)
-        {
-        ERR_PRINTF1(_L("Reading config file failed, while reading DestAddr"));   
-        SetError(KErrUnknown);
-				iSocket.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-    //set destination IP ie. server
-    TInt err = iDestAddr.Input(ptrToReadFromConfig);   
-    if(err != KErrNone)
-        {
-        INFO_PRINTF2(KInetInputFail, err);
-        SetError(err);
-				iSocket.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-
-    returnValue = GetIntFromConfig(aSection, KTcpDestPort, iDestPort);
-    if (!returnValue)
-        {
-        ERR_PRINTF1(_L("Reading config file failed, while reading DestPort"));   
-        SetError(KErrUnknown);
-				iSocket.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-    iDestAddr.SetPort(iDestPort);
-    //bind local port to socket
-    err = iSocket.SetLocalPort(7776);
-    if (err != KErrNone)
-        {
-        ERR_PRINTF1(_L("Error Setting local port"));   
-        SetError(err);
-				iSocket.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-
-    iSocket.Connect(iDestAddr,iStatus);
-    User::WaitForRequest(iStatus);
-    if (iStatus != KErrNone)
-        {
-        ERR_PRINTF1(_L("Error Connecting to Server!"));    
-        SetError(iStatus.Int());
-				iSocket.Close();
-        iConnection.Close();
-        iSocketServ.Close();
-        StopD3PApp();
-        return;
-        }
-    else
-        {
-        INFO_PRINTF2(_L("tcp Start with = %d\n"), iStatus.Int());
-        }
- 	  TBuf8<128> receiveBuffer;
-    TBuf<128>  temp;
-
-    do
-        {
-        TSockXfrLength aLen = 0;
-        iRecvBuf.FillZ();
-        iSocket.RecvOneOrMore(receiveBuffer,0,iStatus,aLen);
-        User::WaitForRequest(iStatus);
-        temp.Copy(receiveBuffer);
-
-        INFO_PRINTF1(_L("\nData Received from Socket : "));
-        INFO_PRINTF1(temp);
-        INFO_PRINTF1(_L("\n"));
-
-        }while(iStatus == KErrNone);      
-
-    //Close the Connection,Socket and socket server.
-    iSocket.Close();
-    iConnection.Stop();
-    iSocketServ.Close();
-    StopD3PApp();
-    }
-
-
-//For Code Coverage.
-
-void CTunDriverTestWrapper::DoRConnTest1_20()
-{
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_20             "));
-    INFO_PRINTF1(_L("*********************************************"));
-
-    StartConn();
-    }
-
-void CTunDriverTestWrapper::DoRConnTest1_21()
-    {
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_21             "));
-    INFO_PRINTF1(_L("*********************************************"));
-
-    StartConn();
-    }
-
-void CTunDriverTestWrapper::DoRConnTest1_22()
-    {
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_22             "));
-    INFO_PRINTF1(_L("*********************************************"));
-
-    StartConn();
-    }
-
-void CTunDriverTestWrapper::DoRConnTest1_23()
-    {
-
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_23             "));
-    INFO_PRINTF1(_L("*********************************************"));
-
-    StartConn();
-    }
-
-
-void CTunDriverTestWrapper::DoRConnTest1_24()
-    {
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_24             "));
-    INFO_PRINTF1(_L("********************************************"));
-
-		StartConn(); 
-
-
-
-      
-        
-    }
-
-void CTunDriverTestWrapper::DoRConnTest1_25()
-    {
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_25             "));
-    INFO_PRINTF1(_L("********************************************"));
-
-
-    StartConn();    
-    }
-
-void CTunDriverTestWrapper::DoRConnTest1_26()
-    {
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_26             "));
-    INFO_PRINTF1(_L("********************************************"));
-
-
-    StartConn();
-    }
-
-
-void CTunDriverTestWrapper::DoRConnTest1_27()
-    {
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_27             "));
-    INFO_PRINTF1(_L("********************************************"));
-
-    StartConn();
-    }
-
-
-void CTunDriverTestWrapper::DoRConnTest1_28()
-    {
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_28             "));
-    INFO_PRINTF1(_L("********************************************"));
-
-    StartConn();
-    }
-
-void CTunDriverTestWrapper::DoRConnTest1_29()
-    {
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_29             "));
-    INFO_PRINTF1(_L("*********************************************"));
-
-    StartConn();
-    }
-
-void CTunDriverTestWrapper::DoRConnTest1_30()
-    {
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_30             "));
-    INFO_PRINTF1(_L("*********************************************"));
-
-    StartConn();
-    }
-
-void CTunDriverTestWrapper::DoRConnTest1_31()
-    {
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_31             "));
-    INFO_PRINTF1(_L("*********************************************"));
-
-    StartConn();
-    }
-
-
-void CTunDriverTestWrapper::DoRConnTest1_32()
-    {
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_32             "));
-    INFO_PRINTF1(_L("*********************************************"));
-
-    StartConn();
-    }
-
-void CTunDriverTestWrapper::DoRConnTest1_33()
-    {
-    INFO_PRINTF1(_L("*********************************************"));
-    INFO_PRINTF1(_L("           Test: DoRConnTest1_33             "));
-    INFO_PRINTF1(_L("*********************************************"));
-
-    StartConn();
-    }
-
-
-void CTunDriverTestWrapper::StartConn()
-    {
-    if((iStatus = iSocketServ.Connect()) == KErrNone )
-        INFO_PRINTF1(_L("Socket Server Opened.\n"));
-    else
-        {
-        ERR_PRINTF2(_L("Error Opening Socket Server: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-             return;
-        }
-
-		if((iStatus = iConnection.Open(iSocketServ)) == KErrNone )
-    		INFO_PRINTF1(_L("Connection opened. \n"));
-		else
-    		{
-        ERR_PRINTF2(_L("Error Opening Connection: %d"), iStatus.Int());
-        SetError(iStatus.Int());
-        iSocketServ.Close();
-        return;
-        }
-           
-		iCommDbPref.SetIapId(TUNDRIVER_IAP);             // Virtual Interface
-    iCommDbPref.SetBearerSet(KCommDbBearerVirtual);
-    iCommDbPref.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
-    iConnection.Start(iCommDbPref, iStatus);
-    User::WaitForRequest(iStatus);
-    if(iStatus.Int()!=KErrNone)
-	    	{
-	    	ERR_PRINTF2(_L("Error starting connection: %d"), iStatus.Int());	
-				SetError(iStatus.Int());
-				iSocketServ.Close();
-				return;
-	    	}
-    INFO_PRINTF2(_L("Starting Connection %d.\n"), iStatus.Int());
-
-    iConnection.Stop();
-    iSocketServ.Close();
-    }