diff -r ad9d655827ef -r c3d148cdbed2 usbclasses/usbphoneasmodem/classimplementation/atplugin/src/pamplugin.cpp --- a/usbclasses/usbphoneasmodem/classimplementation/atplugin/src/pamplugin.cpp Fri Sep 17 08:35:29 2010 +0300 +++ b/usbclasses/usbphoneasmodem/classimplementation/atplugin/src/pamplugin.cpp Mon Oct 04 01:57:48 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2009-2010 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" @@ -102,24 +102,20 @@ if (aCmd.FindF(KNqapTestString) >= 0) { - SupportedAccessPointL( aReply ); - err = KErrNone; + err = SupportedAccessPoint( aReply ); } else if (aCmd.FindF(KNqapInternetString) >= 0) { - ReadAccessPointL( KInternet, aReply ); - err = KErrNone; + err = ReadAccessPoint( KInternet, aReply ); } else if (aCmd.FindF(KNqapWapString) >= 0) { - ReadAccessPointL( KWap, aReply ); - err = KErrNone; + err = ReadAccessPoint( KWap, aReply ); } else if (aCmd.FindF(KNqapInternetAndWapString) >= 0) { - ReadAccessPointL( KWapInternet, aReply ); - err = KErrNone; + err = ReadAccessPoint( KWapInternet, aReply ); } else if (aCmd.FindF(KNcnnString) >= 0) { @@ -133,10 +129,14 @@ } if(err != KErrNone) - HandleCommandCompleted(err, EReplyTypeUndefined); - else - HandleCommandCompleted(KErrNone, EReplyTypeOk); - + { + HandleCommandCompleted(err, EReplyTypeUndefined); + } + else + { + HandleCommandCompleted(KErrNone, EReplyTypeOk); + } + TRACE_FUNC_EXIT } @@ -144,10 +144,12 @@ void CPamPlugin::NameReqCallback( const TDesC8& aName ) { TRACE_FUNC_ENTRY + + TInt err; if ( aName == KNullDesC8() ) { iReply->Zero(); - iReply->Create( KErrorString ); + err = iReply->Create( KErrorString ); } else { @@ -158,79 +160,113 @@ buf.Append( KCrlfString ); buf.Append( KOkString ); iReply->Zero(); - iReply->Create( buf ); + err = iReply->Create( buf ); } - HandleCommandCompleted(KErrNone, EReplyTypeOk); + + if(err != KErrNone) + { + HandleCommandCompleted(err, EReplyTypeUndefined); + } + else + { + HandleCommandCompleted(KErrNone, EReplyTypeOk); + } + TRACE_FUNC_EXIT } /** Used by AT*NQAP=? */ -void CPamPlugin::SupportedAccessPointL( RBuf8& aReply ) +TInt CPamPlugin::SupportedAccessPoint( RBuf8& aReply ) { TRACE_FUNC_ENTRY const TInt Kbufsize = 16; const TInt Kresponcebufsize = 64; + TInt err = KErrNone; - HBufC16* supportedAp = HBufC16::NewL( Kbufsize ); - iPAMEngine->SupportedAccessPoints( supportedAp ); - TBuf8 buf; + HBufC16* supportedAp = HBufC16::New( Kbufsize ); + if (supportedAp) + { + iPAMEngine->SupportedAccessPoints( supportedAp ); + TBuf8 buf; - buf.Zero(); - buf.Append( KCrlfString ); - buf.Append( KNqapString ); - buf.Append( *supportedAp ); - buf.Append( KCrlfString ); - buf.Append( KOkString ); + buf.Zero(); + buf.Append( KCrlfString ); + buf.Append( KNqapString ); + buf.Append( *supportedAp ); + buf.Append( KCrlfString ); + buf.Append( KOkString ); - aReply.Zero(); - aReply.Create( buf ); + delete supportedAp; + aReply.Zero(); + err = aReply.Create( buf ); + } + else + { + err = KErrNoMemory; + } TRACE_FUNC_EXIT - return; + return err; } /** Used by AT*NQAP=<> */ -void CPamPlugin::ReadAccessPointL(TInt aAccessPoint, RBuf8& aReply ) +TInt CPamPlugin::ReadAccessPoint(TInt aAccessPoint, RBuf8& aReply ) { TRACE_FUNC_ENTRY const TInt KreplyBufferLength = 1024; + TInt error = KErrNone; CDesC8ArrayFlat* apArray = new(ELeave) CDesC8ArrayFlat(4); - CleanupStack::PushL( apArray ); - - iPAMEngine->ReadAccessPointTableL( aAccessPoint, apArray ); - - TInt apArrayLength = apArray->Count(); - if ( apArrayLength > 0) - { - HBufC8* buf = HBufC8::NewL( KreplyBufferLength ); - buf->Des().Zero(); - buf->Des().Append( KCrlfString ); - for (TInt i=0; i < apArrayLength; i++ ) - { - // AT*NQAP= responce - buf->Des().Append( KNqapString ); - buf->Des().Append( (*apArray)[i] ); - buf->Des().Append( KCrlfString ); - } - buf->Des().Append( KOkString ); - aReply.Zero(); - aReply.Create( *buf ); + if (apArray) + { + TRAP(error, iPAMEngine->ReadAccessPointTableL( aAccessPoint, apArray )); + if (!error) + { + TInt apArrayLength = apArray->Count(); + if ( apArrayLength > 0) + { + HBufC8* buf = HBufC8::New( KreplyBufferLength ); + if (buf) + { + buf->Des().Zero(); + buf->Des().Append( KCrlfString ); + for (TInt i=0; i < apArrayLength; i++ ) + { + // AT*NQAP= responce + buf->Des().Append( KNqapString ); + buf->Des().Append( (*apArray)[i] ); + buf->Des().Append( KCrlfString ); + } + buf->Des().Append( KOkString ); + aReply.Zero(); + error = aReply.Create( *buf ); + delete buf; + } + else + { + error = KErrNoMemory; + } + } + else + { + aReply.Zero(); + error = aReply.Create( KOkString ); + } + } + delete apArray; } else { - aReply.Zero(); - aReply.Create( KOkString ); - } - CleanupStack::PopAndDestroy( apArray ); + error = KErrNoMemory; + } TRACE_FUNC_EXIT - return; + return error; }