I created IAP below code, but Client can't connect to server used this AP I created.
but If I created IAP via access point menu and using this IAP, A client can connect well.
So I compared with IAP I created to IAP created via access point menu.
but I didn't find different thing. I don't know what is the problem.
If Anyone help me. I really appreciate it.
I want to use IAP(OpenNetwork and AD-HOC).
Create AccessPoint Code
---------------------------------------------------------
void SerNetManager::CreateADHOCAP(const TDesC& aNetName)
{
enum TWEPKeyFormat
{
EAscII,
EHexaDecimal
};
enum TWEPKeyInUse
{
EKeyNumber1,
EKeyNumber2,
EKeyNumber3,
EKeyNumber4,
};
enum TWEPAuthentication
{
EAuthOpen,
EAuthShared,
};
enum TWEPSecurityMode
{
E64bits,
E128bits,
E256bits,
};
TInt errorCode;
CCommsDatabase* db = CCommsDatabase::NewL();
CleanupStack::PushL(db);
TInt err = db->BeginTransaction();
// Create a wlan AP and fill its mandatory fields.
CApAccessPointItem* wlanAp = CApAccessPointItem::NewLC();
CApAccessPointItem* wlanNewItem=CApAccessPointItem::NewLC();
// Set Connection Name
wlanAp->SetNamesL(_L("Adhoc"));
// Set Data Bearer Type
wlanAp->SetBearerTypeL(EApBearerTypeWLAN);
// Set WLAN Network Name
wlanAp->WriteTextL(EApWlanNetworkName, aNetName );
// Give corrct Data as per the router configuration //L!nkSys@MdpNok!a
//wlanAp->SetVpnAp(FALSE);
//Security mode should be 2 for WEP network
//1 for Open network
//4 for E802_1x
//8 for EWpa
//16 for EWpa2
wlanAp->WriteUint(EApWlanSecurityMode, 1);
//Lan network mode should be 1 for infrastructure, 0 for adhoc
wlanAp->WriteUint(EApWlanNetworkMode, 0);
#if 0
//Set ADHOC Channel
wlanAp->WriteUint(EApWlanChannelId, 3);
// Set IP address
wlanAp->WriteTextL(EApWlanIpAddr, _L("168.254.89.89"));
// Set Subnet Mask
wlanAp->WriteTextL(EApWlanIpNetMask, _L("168.254.89.89"));
// Set Gateway
wlanAp->WriteTextL(EApWlanIpGateway, _L("168.254.89.89"));
#endif
// Store it into the iDb.
TBool val =ETrue;
TUint32 newalanid;
TBuf<50> ibuff;
CApDataHandler* handler = CApDataHandler::NewLC(*db);
TUint32 apid;
apid = handler->CreateFromDataL(*wlanAp);
handler->UpdateAccessPointDataL(*wlanAp,val);
handler->AccessPointDataL(apid,*wlanNewItem);
wlanNewItem->ReadUint( EApIapServiceId, newalanid );
wlanNewItem->ReadTextL( EApWlanNetworkName, ibuff );
#if 0
TInt error;
// Set Security Code
TBuf8<50> keyData;
//keyData.Copy(_L("12345"));
keyData.Copy(_L("1234567890123"));
TUint32 keyformat = EAscII;
TUint32 KeyInUse = EKeyNumber1;
TUint32 Authen = EAuthOpen;
TUint32 SecuMode = E64bits;
#endif
CCommsDbTableView* wLanServiceTable = db->OpenViewMatchingUintLC(
TPtrC( WLAN_SERVICE ), TPtrC( WLAN_SERVICE_ID ), newalanid );
errorCode = wLanServiceTable->GotoFirstRecord();
if ( errorCode == KErrNone )
{
wLanServiceTable->UpdateRecord();
}
else
{
TUint32 dummyUid( KUidNone );
User::LeaveIfError( wLanServiceTable->InsertRecord( dummyUid ) );
// Save link to LAN service
wLanServiceTable->WriteUintL( TPtrC( WLAN_SERVICE_ID ), apid );
}
#if 0
// Save WepKey Index 0 -> WEPKEY1, 1 -> WEPKEY2, 2 -> WEPKEY3, 3 -> WEPKEY4
TRAP(error,wLanServiceTable->WriteUintL( TPtrC( WLAN_WEP_INDEX ),
KeyInUse ));
//
TRAP(error,wLanServiceTable->WriteUintL( TPtrC( WLAN_AUTHENTICATION_MODE ),
Authen ));
TRAP(error,wLanServiceTable->WriteUintL( TPtrC( WLAN_WEP_KEY1_FORMAT ),
keyformat ));
TRAP(error,wLanServiceTable->WriteUintL( TPtrC( WLAN_SECURITY_MODE ),
SecuMode ));
// Save first WEP key
TRAP(error,wLanServiceTable->WriteTextL( TPtrC( WLAN_WEP_KEY1 ),
keyData ));
// Save second WEP key
TRAP(error,wLanServiceTable->WriteTextL( TPtrC( WLAN_WEP_KEY2 ),
keyData ));
// Save third WEP key
TRAP(error,wLanServiceTable->WriteTextL( TPtrC( WLAN_WEP_KEY3 ),
keyData ));
// Save fourth WEP key
TRAP(error,wLanServiceTable->WriteTextL( TPtrC( WLAN_WEP_KEY4 ),
keyData ));
#endif
wLanServiceTable->PutRecordChanges();
err = db->CommitTransaction(); // End a transaction. Call after `InsertRecord()` or `UpdateRecord()`.
CleanupStack::PopAndDestroy(5);
}
-------------------------------------------------------------------------------
Have a GoodDay!!

Reply With Quote


