diff -r b497e44ab2fc -r a9c0ce913924 omaprovisioning/provisioning/accesspointadapter/Inc/CWPAPNapdef.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/omaprovisioning/provisioning/accesspointadapter/Inc/CWPAPNapdef.h Thu Jan 07 13:15:03 2010 +0200 @@ -0,0 +1,387 @@ +/* +* Copyright (c) 2002-2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Class stores data for one accesspoint +* +*/ + + + + + +#ifndef CWPAPNAPDEF_H +#define CWPAPNAPDEF_H + +// INCLUDES +#include +#include +#include +#include "CWPAPItemBase.h" +#include "WPAPDefs.h" +#include +#include +#include +#include + +// FORWARD DECLARATIONS +class CWPAPPhysicalProxy; +class CApAccessPointItem; +class CWPParameter; +class CCommsDatabase; +class EAPSettings; +class CertificateEntry; +class RCmManagerExt; + + +// CLASS DECLARATION + +/** + * CEapTypeElement is arrray element for several EapTypes + */ +class CEapTypeElement: public CBase + { + public: + ~CEapTypeElement(); + TBuf8 iEapTypeString; + TBuf8 iEncapsulatingExpandedEapId; + EAPSettings* iEAPSettings; + CertificateEntry* iCertificate; + }; + +struct SECssID + { + CWPParameter* iSSSID; + CWPParameter* iSUSSID; + }; +/** + * CWPAPNapdef handles NAPDEF characteristics. + */ +class CWPAPNapdef : public CWPAPItemBase, private MWPVisitor + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + * @param aFollowingLink ETrue if the NAPDEF was reached + * via a link. + * @param aDefaultName The default name of an access point + * @param aLogicalCharacteristic The PXLOGICAL, if following a link from + * there, or NAPDEF, if a direct link to NAPDEF. + * @param aLink The NAPDEF characteristic + */ + static CWPAPNapdef* NewLC( TBool aFollowingLink, + const TDesC& aDefaultName, + CWPCharacteristic& aLogicalCharacteristic, + CWPCharacteristic& aLink ); + + /** + * Destructor. + */ + virtual ~CWPAPNapdef(); + + public: // From CWPAPItemBase + + /** + * @precondition characteristic must be set otherwise Panics. + */ + TBool ValidateL(); + + /** + * AddDataL + */ + void AddDataL( RCmConnectionMethodExt& aCmItem ); + + /** + * AddItemsL + */ + TInt AddItemsL( RPointerArray& aItems, + CWPAPItemBase* aLogicalProxy, + CWPAPItemBase* aPhysicalProxy ); + /** + * Name + */ + const TDesC& Name(); + + /** + * SaveWlanDataL + */ + void SaveWlanDataL( TUint32 aIapId, CCommsDatabase& aCommsDb ); + + /** + * UpdateLingerL from the ItemBase + */ + + void UpdateLingerL(const TUint32 aIapId); + + /** + * Set The Internet Parameter Indicator + */ + void SetInternetIndicator(TInt value); + + /** + * Get The Internet Parameter Indicator + */ + TInt GetInternetIndicator(); + + + private: // From MWPVisitor + + /** + * VisitL + */ + void VisitL( CWPCharacteristic& aElement ); + + /** + * VisitL + */ + void VisitL( CWPParameter& aElement ); + + /** + * VisitLinkL + */ + void VisitLinkL( CWPCharacteristic& /*aLink*/ ) {}; + + private: // New functions + + /** + * C++ default constructor. + * @param aFollowingLink ETrue if the NAPDEF was reached + * via a link. + * @param aDefaultName The default name of an access point + * @param aLogicalCharacteristic The PXLOGICAL, if following a link from + * there, or NAPDEF, if a direct link to NAPDEF. + */ + CWPAPNapdef( TBool aFollowingLink, + const TDesC& aDefaultName, + CWPCharacteristic& aLogicalCharacteristic ); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + /** + * Writes a DNS address in either IPv4 or IPv6 format + * to an access point item. + * @param aAPItem The access point item + * @param aValue The DNS address to write + */ + void WriteDNSAddressL( RCmConnectionMethodExt& aCmItem, + const TDesC& aValue ); + + /** + * AddWlanDataL + */ + void AddWlanDataL( RCmConnectionMethodExt& aCmItem ); + + /** + * HandleWLanParameters + */ + void HandleWLanParametersL( CWPParameter& aParameter ); + + void HandleEAPParametersCCL( CWPParameter& aParameter ); + + /** + * ConvertAsciiToHex + */ + void ConvertAsciiToHex( const TDesC8& aSource, HBufC8*& aDest ); + + /** + * StrCopy + */ + void StrCopy( TDes8& aTarget, const TDesC& aSource ); + + /** + * Add linger value + */ + void AddLingerL( const TInt , const TInt ); + + /** + * Update linger value + */ + void UdateligerValueL(CWPParameter* aLinger); + /** + * Isalpha + */ + TBool Notalpha(const TDesC& aValue); + /** + * CheckIPv4values + */ + TBool CheckIPv4values(const TDesC& aValue ); + + /** + * CheckAddressPart + */ + TBool CheckAddressPart( TLex& aLex ); + + /** + * ConvertEAPStringToIds + */ + void ConvertEAPStringToIds(const TDesC& aEAPString, TDes8& aExpandedId, TUint& aId); + public: // new function + + /** + * NapId value + */ + const TDesC& NapId(); + /** + * Bearer value + */ + TUint Bearer(); + + /** + * SetCMManager + */ + void SetCMManager( RCmManagerExt* aCm ); + + private: // Data (Total ownership is assumed unless otherwise stated) + + enum TAPWEPKeyFormat + { + EAscii, // Ascii format + EHexadecimal // Hex format + }; + /// PXLOGICAL characteristic + CWPCharacteristic& iCharacteristic; + + /// The human-readable name of the connection. Refs. + CWPParameter* iConnectionName; + + /// The access point address. Refs. + CWPParameter* iAccesspointName; + + /// The access point address. Refs. + CWPParameter* iAccesspointNameType; + + /// The user name. Refs. + CWPParameter* iUserName; + + /// The password. Refs. + CWPParameter* iPassword; + + /// The IP address of the phone. Refs. + CWPParameter* iPhoneIPAddress; + + /// The network type of the access point. Refs. + CWPParameter* iIfNetworks; + + /// Array of name servers. Refs. + RPointerArray iNameServers; + + /// Number of IPv4 name servers found so far. + TInt iNumIPv4NameServers; + + /// Number of IPv6 name servers found so far. + TInt iNumIPv6NameServers; + + /// The bearer of the access point. + //TApBearerType iBearer; + TUint iBearer; + + // Received bearer was unsupported + TBool iBearerUnsupported; + + /// The PDP type of a GPRS access point. + TUint32 iPdpType; + + /// ETrue of secure authentication must be used. + TBool iSecureAuthentication; + + /// ETrue if the user must be prompted for password. + TBool iPromptPassword; + + /// ETrue if we arrived to NAPDEF via a link + TBool iFollowingLink; + +//JMan for WLan + + // Is WLAN supported (queried from Feature Manager) + TBool iWlanSupported; + + // The Network Access Point ID. + CWPParameter* iNapID; + + // WLAN characteristic parameters + + // The Primary Service Set Identifier name. + CWPParameter* iPriSSID; + + // The Used Primary Service Set Identifier name. + CWPParameter* iPriUSSID; + + // The Hidden Primary Service Set Identifier name. + CWPParameter* iPriHSSID; + + //for secssid + RPointerArray iSecSSID; + + + // The operation mode of the WLAN network. + TUint32 iNetMode; + + // The Security mode of the WLAN network. + TUint32 iSecMode; + + // The ascii formed pre-shared key. + CWPParameter* iWpaPresKeyAsc; + + // The wep authentication mode + CWPParameter* iWepAuthMode; + + // Indicates the default wepkey + TUint iDefaultWepKeyIndex; + + // WEPKEY characteristic parameters + + // The lenght of the wepkey + CWPParameter* iWepKeyLength; + + // The index of the wepkey + TUint iWepInd; + + // The wepkey data + CWPParameter* iWepKeyData; + + // Type of authentication (EAuthOpen, EAuthShared) + TWEPAuthentication iAuthentication; + + // Data of the key + TBuf8 iKeyData[KMaxNumberofKeys]; + + // Format of the key + TAPWEPKeyFormat iKeyFormat[KMaxNumberofKeys]; + + RPointerArray iEapTypeArray; + + // Pointer to Linger value parameter. Refs. + CWPParameter* iLinger; + + //linger value + TUint iLingerValue; + TBool iLingerFlag; + + // Pointer to the used CMManager, needed to save WLAN data + RCmManagerExt* iCm; + + //Internet parameter Indicator + TInt iInternetIndicator; + + private: // For testing usage. + friend class T_CWPAPNapdef; + friend class T_CWPAPAdapter; + friend class T_WPAPTestUtils; + }; + +#endif // CWPAPNAPDEF_H + +// End of File