natfw/tsrc/natfwtestconsoles/natfwtestconsole/src/generalsettings.cpp
changeset 0 1bce908db942
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/natfw/tsrc/natfwtestconsoles/natfwtestconsole/src/generalsettings.cpp	Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,203 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:    
+*
+*/
+
+
+
+
+#include "generalsettings.h"
+
+#include <unsafprotocolscrkeys.h>
+
+
+//  CONSTANTS
+
+/******************************************************/
+//Settings
+//Domain spesific settings
+
+_LIT8( KSTUNServAddr, "193.65.183.3:3478" );
+//const TInt KNATRefreshTCP = 500;
+//const TInt KNATRefreshUDP = 500;
+//const TInt KEnableCRLFRefresh = 0;
+_LIT8( KSTUNServUsername, "username" );
+_LIT8( KSTUNServPassword, "password" );
+// none additional STUN server settings
+_LIT8( KNatProtocol, "nokia.stun" );
+const TInt KSharedsecretNotSupported = 1; // 0 = supported
+const TInt KPortPoolStartPort = 5000;
+const TInt KPortPoolEndPort = 5100;
+//ICE spesific in the Domain settings 
+//TURN specific in the Domain settings 
+//const TInt KLifeTime = 500;
+//const TInt KTimerValue = 500;
+//IAP Spesific settings
+const TInt KIAPNATRefreshTCP = 100;
+const TInt KIAPNATRefreshUDP = 100;
+const TInt KIAPSTUNRetransmit = 20;
+
+
+// -----------------------------------------------------------------------------
+// CGeneralSettings::NewL
+// -----------------------------------------------------------------------------
+// 
+CGeneralSettings* CGeneralSettings::NewL( const TDesC8& aDomain,
+                                                 TUint aIapId )
+    {
+    CGeneralSettings* self = CGeneralSettings::NewLC(aDomain, aIapId );
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CGeneralSettings::NewL
+// -----------------------------------------------------------------------------
+//
+CGeneralSettings* CGeneralSettings::NewLC( const TDesC8& aDomain,
+                                                  TUint aIapId )
+    {   
+    CGeneralSettings* self = new( ELeave ) CGeneralSettings( aIapId );
+    CleanupStack::PushL( self );
+    self->ConstructL( aDomain );
+    return self;
+    }
+    
+    
+// -----------------------------------------------------------------------------
+// CGeneralSettings::CGeneralSettings
+// -----------------------------------------------------------------------------
+//
+CGeneralSettings::CGeneralSettings( TUint aIapId )
+    : iIapId( aIapId )
+    {
+    }
+    
+    
+// -----------------------------------------------------------------------------
+// CGeneralSettings::~CGeneralSettings
+// -----------------------------------------------------------------------------
+//   
+CGeneralSettings::~CGeneralSettings( )
+    {
+    EraseL( KUNSAFProtocolsDomainTableMask, 0xf0000000 );
+ 	EraseL( KUNSAFProtocolsIAPTableMask, 0xf0000000 );
+ 	delete iDomain;
+    }
+    
+    
+// -----------------------------------------------------------------------------
+// CGeneralSettings::ConstructL
+// -----------------------------------------------------------------------------
+//    
+void CGeneralSettings::ConstructL( const TDesC8& aDomain )
+    {
+    iDomain = aDomain.AllocL();
+    ConstructBaseL();
+    }
+
+
+// -----------------------------------------------------------------------------
+// CGeneralSettings::GetDomainKey
+// -----------------------------------------------------------------------------
+//      
+TInt CGeneralSettings::GetDomainKey( TUint32& aDomainKey )
+    {
+    TInt error = ReadDomainSettingsKeyL( *iDomain, aDomainKey );
+    
+    if( KErrNotFound == error )
+        {
+        aDomainKey = CreateNewTableKeyL(
+            KUNSAFProtocolsDomainTableMask, KUNSAFProtocolsFieldTypeMask );
+        StoreL( KUNSAFProtocolsDomainMask | aDomainKey, *iDomain );
+        return KErrNone;
+        }
+    else
+        {
+        return error;
+        }
+    }
+    
+    
+// -----------------------------------------------------------------------------
+// CGeneralSettings::CreateSettingsL
+// -----------------------------------------------------------------------------
+//   
+void CGeneralSettings::CreateSettingsL()
+    {
+    TUint32 domainKey;
+    User::LeaveIfError( GetDomainKey( domainKey ) );
+
+    //create key for the stun server settings in the domain settings
+    TUint32 STUNServerKey = CreateNewTableKeyL(
+        KUNSAFProtocolsSTUNServerTableMask | domainKey,
+        KUNSAFProtocolsSubTableFieldTypeMask );
+    //create key for the Iap settings
+    TUint32 IapKey = CreateNewTableKeyL(
+        KUNSAFProtocolsIAPTableMask, KUNSAFProtocolsFieldTypeMask );
+    
+    //Settings
+    /************************************************************************/
+    //Domain spesific settings
+    StoreL( KUNSAFProtocolsDomainSharedSecretNotSupported |
+        domainKey, KSharedsecretNotSupported );    
+    StoreL( KUNSAFProtocolsPortPoolStartPortMask | domainKey,
+        KPortPoolStartPort );
+    StoreL( KUNSAFProtocolsPortPoolEndPortMask | domainKey, 
+        KPortPoolEndPort );
+    /************************************************************************/
+    //STUN-server  settings in the domain
+    StoreL( KUNSAFProtocolsSTUNAddressMask | domainKey | STUNServerKey,
+        KSTUNServAddr );
+    /*
+    StoreL( KUNSAFProtocolsSTUNTCPTimeoutMask | domainKey | 
+        STUNServerKey, KNATRefreshTCP );
+    StoreL( KUNSAFProtocolsSTUNUDPTimeoutMask | domainKey | 
+        STUNServerKey, KNATRefreshUDP );
+    StoreL( KUNSAFProtocolsSTUNEnableCRLFRefreshMask | domainKey | 
+        STUNServerKey, KEnableCRLFRefresh );
+    */
+    StoreL( KUNSAFProtocolsSTUNUsernameMask | domainKey | STUNServerKey,
+        KSTUNServUsername );
+    StoreL( KUNSAFProtocolsSTUNPasswordMask | domainKey | STUNServerKey,
+        KSTUNServPassword );
+    
+    /************************************************************************/
+    //ICE spesific in the Domain settings
+    /*
+    StoreL( KUNSAFProtocolsICECandidateTimerMask | domainKey,
+        KAnotherCanditateTimer );
+    */
+    StoreL( KUNSAFProtocolsUsedNATProtocolMask | domainKey, 
+        KNatProtocol );
+    /************************************************************************/
+    //TURN specific in the Domain settings
+    /*
+    StoreL( KUNSAFProtocolsTURNLifeTimeMask | domainKey, KLifeTime );
+    StoreL( KUNSAFProtocolsTURNTimerValueMask | domainKey, 
+        KTimerValue );
+    */
+    /************************************************************************/
+    //IAP Spesific settings
+    StoreL( KUNSAFProtocolsIAPIdMask | IapKey, iIapId );
+    StoreL( KUNSAFProtocolsIntervalTCPMask | IapKey, 
+        KIAPNATRefreshTCP );
+    StoreL( KUNSAFProtocolsIntervalUDPMask | IapKey, 
+        KIAPNATRefreshUDP );
+    StoreL( KUNSAFProtocolsSTUNRetransmitTimerMask | IapKey, 
+        KIAPSTUNRetransmit );
+    }
+