cbsatplugin/atmisccmdplugin/src/atmisccmdplugin.cpp
changeset 67 16e4b9007960
parent 47 9e2a905b887f
equal deleted inserted replaced
65:001a94c71129 67:16e4b9007960
   431             {
   431             {
   432             ret =  KErrNotFound;
   432             ret =  KErrNotFound;
   433             }
   433             }
   434         else if (ret == KErrNone)
   434         else if (ret == KErrNone)
   435 			{
   435 			{
   436 			aBuffer.Create( iReplyBuffer, partLength );
   436 			
   437 			iReplyBuffer.Delete( 0, partLength );
   437 			if((ret = aBuffer.Create( iReplyBuffer, partLength )) == KErrNone)
   438 			if ( iReplyBuffer.Length() == 0 )
   438 			    {
   439 				{
   439                 iReplyBuffer.Delete( 0, partLength );
   440 				iReplyBuffer.Close();
   440                 if ( iReplyBuffer.Length() == 0 )
   441 				}
   441                     {
       
   442                     iReplyBuffer.Close();
       
   443                     }
       
   444                 }
   442 			}
   445 			}
   443         }
   446         }
   444 
   447 
   445     Trace(KDebugPrintD, "ret: ", ret);
   448     Trace(KDebugPrintD, "ret: ", ret);
   446     TRACE_FUNC_EXIT
   449     TRACE_FUNC_EXIT
   475         }
   478         }
   476     
   479     
   477     Trace(KDebugPrintD, "iQuietMode: ", iQuietMode);
   480     Trace(KDebugPrintD, "iQuietMode: ", iQuietMode);
   478     if ( iQuietMode )
   481     if ( iQuietMode )
   479         {
   482         {
   480         iReplyBuffer.Create( KNullDesC8 );
   483         aError = iReplyBuffer.Create( KNullDesC8 );
   481         }
   484         }
   482     else
   485     else
   483         {
   486         {
   484         iReplyBuffer.Create( aSrcBuffer );
   487         aError = iReplyBuffer.Create( aSrcBuffer );
   485         }
   488         }
   486     
   489     
   487     Trace(KDebugPrintD, "aReplyType: ", aReplyType);
   490     if(aError == KErrNone)
   488     switch ( aReplyType )
   491         {
   489         {
   492         Trace(KDebugPrintD, "aReplyType: ", aReplyType);
   490         case EReplyTypeOther:
   493         switch ( aReplyType )
   491             break;
   494             {
   492 #ifdef PROTOCOL_TDSCDMA
   495             case EReplyTypeOther:
   493         case EReplyTypeEditor:
   496                 break;
   494             CreateEditModeBuffer( iReplyBuffer );
   497     #ifdef PROTOCOL_TDSCDMA
   495             break;
   498             case EReplyTypeEditor:
   496 #endif
   499                 aError = CreateEditModeBuffer( iReplyBuffer );
   497         case EReplyTypeOk:
   500                 break;
   498             CreateOkOrErrorReply( iReplyBuffer, ETrue );
   501     #endif
   499             break;
   502             case EReplyTypeOk:
   500         case EReplyTypeError:
   503                 aError = CreateOkOrErrorReply( iReplyBuffer, ETrue );
   501             CreateOkOrErrorReply( iReplyBuffer, EFalse );
   504                 break;
   502             break;
   505             case EReplyTypeError:
   503         default:
   506                 aError = CreateOkOrErrorReply( iReplyBuffer, EFalse );
   504             TRACE_FUNC_EXIT
   507                 break;
   505             return KErrGeneral;
   508             default:
   506         }
   509                 TRACE_FUNC_EXIT
   507     CreatePartOfReply( *iHcReply );
   510                 return KErrGeneral;
   508     HandleCommandCompleted( KErrNone, aReplyType );
   511             }
       
   512         
       
   513         if(aError == KErrNone)
       
   514             {
       
   515             CreatePartOfReply( *iHcReply );
       
   516             } 
       
   517         }
       
   518     HandleCommandCompleted( aError, aError ? EReplyTypeUndefined : aReplyType );
   509     if ( EReplyTypeEditor != aReplyType )
   519     if ( EReplyTypeEditor != aReplyType )
   510         {
   520         {
   511         iHcCmd = NULL;
   521         iHcCmd = NULL;
   512         iHcReply = NULL;
   522         iHcReply = NULL;
   513         iCurrentHandler = NULL;
   523         iCurrentHandler = NULL;
   514         }
   524         }
   515     TRACE_FUNC_EXIT
   525     TRACE_FUNC_EXIT
   516     return KErrNone;
   526     return aError;
   517     }
   527     }
   518 
   528 
   519 /**
   529 /**
   520  * @see MATMiscCmdPlugin::CreateOkOrErrorReply
   530  * @see MATMiscCmdPlugin::CreateOkOrErrorReply
   521  */
   531  */
   526     _LIT8( KErrorReplyVerbose, "ERROR" );
   536     _LIT8( KErrorReplyVerbose, "ERROR" );
   527     _LIT8( KOkReplyVerbose,    "OK" );
   537     _LIT8( KOkReplyVerbose,    "OK" );
   528     _LIT8( KErrorReplyNumeric, "4" );
   538     _LIT8( KErrorReplyNumeric, "4" );
   529     _LIT8( KOkReplyNumeric,    "0" );
   539     _LIT8( KOkReplyNumeric,    "0" );
   530     TBuf8<KErrorReplyLength> replyBuffer;
   540     TBuf8<KErrorReplyLength> replyBuffer;
       
   541     TInt ret = KErrNone;
       
   542     
   531     if ( iVerboseMode )
   543     if ( iVerboseMode )
   532         {
   544         {
   533         replyBuffer.Append( iCarriageReturn );
   545         replyBuffer.Append( iCarriageReturn );
   534         replyBuffer.Append( iLineFeed );
   546         replyBuffer.Append( iLineFeed );
   535         if ( aOkReply )
   547         if ( aOkReply )
   554             replyBuffer.Append( KErrorReplyNumeric );
   566             replyBuffer.Append( KErrorReplyNumeric );
   555             }
   567             }
   556         replyBuffer.Append( iCarriageReturn );
   568         replyBuffer.Append( iCarriageReturn );
   557         }
   569         }
   558 
   570 
   559     aReplyBuffer.ReAlloc(aReplyBuffer.Length() + replyBuffer.Length());
   571     ret = aReplyBuffer.ReAlloc(aReplyBuffer.Length() + replyBuffer.Length());
   560     aReplyBuffer.Append( replyBuffer );
   572     if(ret == KErrNone)
   561     TRACE_FUNC_EXIT
   573         {
   562     return KErrNone;
   574         aReplyBuffer.Append( replyBuffer );    
       
   575         }
       
   576    
       
   577     TRACE_FUNC_EXIT
       
   578     return ret;
   563     }
   579     }
   564 
   580 
   565 /**
   581 /**
   566  * @see MATMiscCmdPlugin::CreateEditModeBuffer
   582  * @see MATMiscCmdPlugin::CreateEditModeBuffer
   567  */
   583  */
   646     
   662     
   647     if(iErrorLevel == 1 && !iQuietMode)
   663     if(iErrorLevel == 1 && !iQuietMode)
   648         {
   664         {
   649         // return error code to AT client
   665         // return error code to AT client
   650         RBuf8 response;
   666         RBuf8 response;
   651         response.Create(KDefaultCmdBufLength);
   667         if (KErrNone != response.Create(KDefaultCmdBufLength))
       
   668             {
       
   669             CreateReplyAndComplete(EReplyTypeError);
       
   670             return;
       
   671             }
       
   672         
   652         response.Append(KCRLF);
   673         response.Append(KCRLF);
   653         switch(aError)
   674         switch(aError)
   654             {
   675             {
   655             case KErrGsm0707IncorrectPassword:
   676             case KErrGsm0707IncorrectPassword:
   656             case KErrAccessDenied:
   677             case KErrAccessDenied: