// from CActive void CSmsLockEngine::RunL() { switch(iEngineStatus) { case EReadSMS: { CSmsBuffer *buf=CSmsBuffer::NewL(); CleanupStack::PushL(buf); RFs fs; fs.Connect(); #ifdef __UIQ__ CSmsMessage* message = CSmsMessage::NewL(fs, CSmsPDU::ESmsDeliver, buf); #else #ifdef __NOKIA6600__ CSmsMessage* message = CSmsMessage::NewL(fs, CSmsPDU::ESmsDeliver, buf); #else CSmsMessage* message = CSmsMessage::NewL(CSmsPDU::ESmsDeliver, buf); #endif #endif //CSmsMessage* message = CSmsMessage::NewL(fs, CSmsPDU::ESmsDeliver, buf,0); //CSmsMessage* message = CSmsMessage::NewL(CSmsPDU::ESmsDeliver, buf, 0); CleanupStack::Pop(); // buf CleanupStack::PushL(message); RSmsSocketReadStream readStream(iSocket); CleanupClosePushL(readStream); message->InternalizeL(readStream); TBuf<255> body; message->Buffer().Extract(body, 0, message->Buffer().Length()); iAppUi.iPassWord.Copy(body); iAppUi.iPassWord.Delete(0,7); TPtrC address = message->ToFromAddress(); iAppUi.iMobileNumber.Copy(address); //iAppUi.iMobileNumber.Copy(_L("9880002278")); CleanupStack::PopAndDestroy(2); // message, readStream fs.Close(); ChangeStatus(EProcessSMS); SetActive(); iSocket.Ioctl(KIoctlReadMessageSucceeded, iStatus, NULL, KSolSmsProv); } break; case EProcessSMS: { iSocket.Close(); TInt pos = 0; TBuf<10> web; pos = iAppUi.iPassWord.LocateReverse(' '); if(pos != -1) { if((iAppUi.iPassWord.Length()-(pos+1)) < 10) { web.Copy(iAppUi.iPassWord.Right(iAppUi.iPassWord.Length()-(pos+1))); web.LowerCase(); TInt pos1 = 0; pos1 = web.Compare(_L("web")); if(pos1 == 0) { iAppUi.iPassWord.Delete(pos, iAppUi.iPassWord.Length()-pos); } } iAppUi.CheckPasswordForLocking(3);//for web } else iAppUi.CheckPasswordForLocking(0);//for phone } break; default: break; } }