This do not ask the IAP.
My fixed name is "IBOX"
Code:
/*----------LANCIA IL LINKING ALLA RETE MEDIANTE IAP IBOX-------------------------*/
TBool CSocketsEngine::NetLinkL(TCallInitiator aCaller)
{
TCommDbConnPref Pref;
CCommsDatabase *CommDb;
CCommsDbTableView *IapView;
TInt result;
TUint conncount;
TUint32 IboxId=0;
TBuf<80> STmp;
TBool Emulator= FALSE;
TInetAddr LocAddr;
/*----Initiate attempt to connect to a socket by IP address-------*/
if( iEngineStatus==EGpDeadStop ) {
iCallInitiator= aCaller;
/*-----------------Apro IAP---------------------------------------------*/
CommDb= CCommsDatabase::NewL(EDatabaseTypeIAP); // vuoto
CleanupStack::PushL(CommDb) ; // da distruggere
IapView= CommDb->OpenTableLC( TPtrC(IAP) );
result= IapView->GotoFirstRecord();
iIapName.Zero() ;
while( result==KErrNone ) {
IapView->ReadTextL( TPtrC(COMMDB_NAME), STmp) ;
/*------emulatore->"NTRas GPRS" o "LAN_IAP_1"-------*/
//Debug(STmp);
if( STmp.Match(_L("IBOX")) != KErrNotFound ) {
/*------trovato in lista----------------*/
IapView->ReadUintL( TPtrC(COMMDB_ID), IboxId) ;
iIapName.Copy(_L("IAP->(IBOX)")) ;
break;
}
if( STmp.Match(_L("LAN_IAP_1")) != KErrNotFound ) {
/*------trovato in lista----------------*/
IapView->ReadUintL( TPtrC(COMMDB_ID), IboxId) ;
iIapName.Copy(_L("IAP->(EMUL)")) ;
Emulator= TRUE;
break;
}
result= IapView->GotoNextRecord();
}
CleanupStack::PopAndDestroy(IapView);
CleanupStack::PopAndDestroy(CommDb);
/*---mostro IAP------------------*/
Debug(iIapName);
/*---------Per caso sono dentro all'emulatore?--------------------------*/
if( Emulator ) {
/*-----prendo indirizzo locale-------*/
iLocalName.Copy(KDefaultEmulaName);
//Debug(iLocalName);
/*-----salto NetLinking--------------*/
/*-----due passaggi in uno-----------*/
ChangeStatus(EGpLinkedNoConn);
if( iCallInitiator==IGpConnectCall ) {
/*---comincio da capo----*/
return ConnectL() ;
}
else { // IListenCall
return ListenL() ;
}
}
/*---------Apro la connessione IAP per attivare il link GPRS------------*/
iConnection.Open(iSocketServ);
iConnection.EnumerateConnections(conncount);
if( conncount !=0 ) {
DebugToFile(_L("Eng-Just Linked !"));
ChangeStatus(EGpLinkedNoConn);
if( iCallInitiator==IGpConnectCall ) {
/*---comincio da capo----*/
return ConnectL() ;
}
else { // IListenCall
return ListenL() ;
}
}
/*-----------------Sono proprio fuori-----------------------------------*/
Pref.SetIapId(IboxId);
Pref.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
Pref.SetDirection(ECommDbConnectionDirectionOutgoing);
iConnection.Start(Pref, iStatus);
/*-----------------Cambio stato per RunL--------------------------------*/
//Debug(_L("Deb-NetLinking !"));
ChangeStatus(EGpNetLinking);
/*-----------------Attivo evento timeout--------------------------------*/
iTimer->After(KShortTO);
/*-----------------Attivo evento completamento--------------------------*/
SetActive(); // la Connection diventa pendente, attendi RunL
return TRUE;
}
/*--fatto nulla--*/
return FALSE;
}