diff -r 000000000000 -r af10295192d8 linklayerprotocols/pppnif/SPPP/pppconfig.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/linklayerprotocols/pppnif/SPPP/pppconfig.cpp Tue Jan 26 15:23:49 2010 +0200 @@ -0,0 +1,212 @@ +// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// PPP CFProtocol Provisioning Message class implementations +// +// + +/** + @file + @internalComponent +*/ + +#include "pppmcpr.h" +#include +#include +#include + +using namespace ESock; + + +//-========================================================= +// CPppLcpConfig methods +//-========================================================= +EXPORT_C CPppLcpConfig* CPppLcpConfig::NewLC(ESock::CCommsDatIapView* aIapView) + { + CPppLcpConfig* self = new (ELeave) CPppLcpConfig; + CleanupStack::PushL(self); + self->InitialiseConfigL(aIapView); + return self; + } + +void CPppLcpConfig::InitialiseConfigL(ESock::CCommsDatIapView* aIapView) + { + HBufC* buf = NULL; + TUint32 uintDBVar = 0; + TBool boolDBVar; + TInt err = KErrNone; + +#if defined (_DEBUG) + err = aIapView->GetText(KCDTIdDialOutISPRecord | KCDTIdRecordName, buf); + SetISPName(buf); +#endif + //setters + + boolDBVar = EFalse; + err = aIapView->GetBool(KCDTIdIfServerMode, boolDBVar); + if (KErrNone != err) + { + __CFLOG_VAR((KPppMcprTag, KPppMcprSubTag, _L8("CPPPMetaConnectionProvider:\tSetAccessPointConfigFromDbL() - failed to read IfServerMode from database. Defaulting to EPppLinkIsClient")); ) + } + + if (!boolDBVar) + { + SetIfServerMode(CPppLcpConfig::EPppLinkIsClient); + } + else + { + SetIfServerMode(CPppLcpConfig::EPppLinkIsServer); + } + + err = aIapView->GetText(KCDTIdIfParams, buf); + if (KErrNone == err) + { + ASSERT(buf); + SetIfParams(buf); // transfers ownership of buf + buf = NULL; + } + else + { + ASSERT(buf == NULL); + } + + // + // Netdial Callback information + // + boolDBVar = EFalse; + err = aIapView->GetBool(KCDTIdIfCallbackEnabled, boolDBVar); + if (err != KErrNone) + { + __CFLOG_VAR((KPppMcprTag, KPppMcprSubTag, _L8("CPPPMetaConnectionProvider:\tSetAccessPointConfigFromDbL() - failed to read IfCallbackEnabled from database. Callback config will be skipped")); ) + } + SetIfCallbackEnabled(boolDBVar); + + if (boolDBVar) + { + uintDBVar = 0; + err = aIapView->GetInt(KCDTIdIfCallbackType, uintDBVar); + if (KErrNone != err) + { + __CFLOG_VAR((KPppMcprTag, KPppMcprSubTag, _L8("CPPPMetaConnectionProvider:\tSetAccessPointConfigFromDbL() - failed to read IfCallbackType from database.")); ) + User::Leave(err); + } + SetIfCallbackType(uintDBVar); + + err = aIapView->GetText(KCDTIdIfCallbackInfo, buf); + if (KErrNone != err) + { + ASSERT(buf == NULL); + __CFLOG_VAR((KPppMcprTag, KPppMcprSubTag, _L8("CPPPMetaConnectionProvider:\tSetAccessPointConfigFromDbL() - failed to read IfCallbackType from database.")); ) + User::Leave(err); + } + else + { + ASSERT(buf); + SetIfCallbackInfo(buf); // transfers ownership of buf + buf = NULL; + } + } + + + boolDBVar = EFalse; + err = aIapView->GetBool(KCDTIdEnableLCPExtension, boolDBVar); + if (err != KErrNone) + { + __CFLOG_VAR((KPppMcprTag, KPppMcprSubTag, _L8("CPPPMetaConnectionProvider:\tSetAccessPointConfigFromDbL() - failed to read EnableLcpExtensions from database. Defaulting to false.")); ) + } + SetEnableLcpExtensions(boolDBVar); + + boolDBVar = EFalse; + err = aIapView->GetBool(KCDTIdEnableSwComp, boolDBVar); + if (KErrNone != err) + { + __CFLOG_VAR((KPppMcprTag, KPppMcprSubTag, _L8("CPPPMetaConnectionProvider:\tSetAccessPointConfigFromDbL() - failed to read EnableSwComp from database. Defaulting to false.")); ) + } + SetEnableSwComp(boolDBVar); + + // IsDialIn value is provisioned by the Agent Provider. + } + +//-========================================================= +// CPppAuthConfig methods +//-========================================================= +EXPORT_C CPppAuthConfig* CPppAuthConfig::NewLC(ESock::CCommsDatIapView* aIapView) + { + CPppAuthConfig* self = new (ELeave) CPppAuthConfig; + CleanupStack::PushL(self); + self->InitialiseConfigL(aIapView); + return self; + } + +void CPppAuthConfig::InitialiseConfigL(ESock::CCommsDatIapView* aIapView) + { + TBool boolDBVar = EFalse; + TInt err = aIapView->GetBool(KCDTIdEnableSwComp, boolDBVar); + SetServiceEnableSwComp(boolDBVar); + + } + + +//-========================================================= +// CPppProvisionInfo methods +//-========================================================= +EXPORT_C CPppProvisionInfo::~CPppProvisionInfo() + { + iExcessData.Close(); + } + +//-========================================================= +// CPppTsyConfig methods +//-========================================================= +EXPORT_C CPppTsyConfig* CPppTsyConfig::NewLC(ESock::CCommsDatIapView* aIapView) + { + CPppTsyConfig* self = new (ELeave) CPppTsyConfig; + CleanupStack::PushL(self); + self->InitialiseConfigL(aIapView); + return self; + } + +void CPppTsyConfig::InitialiseConfigL(ESock::CCommsDatIapView* aIapView) + { + HBufC* buf = NULL; + if (KErrNone == aIapView->GetText(KCDTIdTsyName, buf)) + { + iTsyName.Copy(*buf); + __CFLOG_VAR((KPppMcprTag, KPppMcprSubTag, _L8("CPppTSYConfig [this=%08x]::InitialiseConfigL() KCDTIdTsyName=%s"), this, &iTsyName)); + } + else + { + __CFLOG_VAR((KPppMcprTag, KPppMcprSubTag, _L8("CPppTSYConfig [this=%08x]::InitialiseConfigL() Couldn't read TSY name, skipping..."), this, &iTsyName)); + } + delete buf; + } + +// +// Attribute table for CPppConfig +// + +EXPORT_START_ATTRIBUTE_TABLE_AND_FN( CPppLcpConfig, CPppLcpConfig::EUid, CPppLcpConfig::ETypeId ) +// No attributes registered as no serialisation takes place. +END_ATTRIBUTE_TABLE() + +EXPORT_START_ATTRIBUTE_TABLE_AND_FN( CPppAuthConfig, CPppAuthConfig::EUid, CPppAuthConfig::ETypeId ) +// No attributes registered as no serialisation takes place. +END_ATTRIBUTE_TABLE() + +EXPORT_START_ATTRIBUTE_TABLE_AND_FN( CPppProvisionInfo, CPppProvisionInfo::EUid, CPppProvisionInfo::ETypeId) +// No attribute definitions because we're not serialising/de-serialising +END_ATTRIBUTE_TABLE() + +EXPORT_START_ATTRIBUTE_TABLE_AND_FN( CPppTsyConfig, CPppTsyConfig::EUid, CPppTsyConfig::ETypeId) +// No attribute definitions because we're not serialising/de-serialising +END_ATTRIBUTE_TABLE()