localconnectivityservice/dun/atext/src/DunAtCmdPusher.cpp
branchRCL_3
changeset 15 27dcfaab8b5b
parent 13 2702348f1fe7
child 20 3dcb815346df
--- a/localconnectivityservice/dun/atext/src/DunAtCmdPusher.cpp	Tue May 25 13:38:30 2010 +0300
+++ b/localconnectivityservice/dun/atext/src/DunAtCmdPusher.cpp	Wed Jun 09 10:39:48 2010 +0300
@@ -274,9 +274,15 @@
     FTRACE(FPrint( _L("CDunAtCmdPusher::CheckAndRemoveOkString()") ));
     TInt recvBufferLength = iRecvBuffer.Length();
     TInt okBufferLength = iOkBuffer->Length();
-    if ( recvBufferLength <= okBufferLength )
+    // Skip the removal if removing not possible, if removal results in zero
+    // length (plugin should have used KErrReplyTypeOk) or if string to be
+    // removed is zero.
+    // Note also that if plugin sends a final reply when quiet mode is on, DUN
+    // can't remove the possibly existing result code as it is different from
+    // iOkReply (zero length).
+    if ( recvBufferLength<=okBufferLength || okBufferLength<=0 )
         {
-        FTRACE(FPrint( _L("CDunAtCmdPusher::CheckAndRemoveOkString() (ERROR) complete") ));
+        FTRACE(FPrint( _L("CDunAtCmdPusher::CheckAndRemoveOkString() (skip) complete") ));
         return KErrGeneral;
         }
     TInt lengthWithNoOk = recvBufferLength - okBufferLength;