diff -r 0b0e9fce0b58 -r 4ccf8e394726 datacommsserver/esockserver/ssock/ss_nodemessages_legacy.cpp --- a/datacommsserver/esockserver/ssock/ss_nodemessages_legacy.cpp Wed Mar 31 23:27:09 2010 +0300 +++ b/datacommsserver/esockserver/ssock/ss_nodemessages_legacy.cpp Wed Apr 14 17:14:05 2010 +0300 @@ -508,6 +508,11 @@ } +void CLegacyDataMonitoringResponder::DoComplete(TInt aError) + { + iLegacyResponseMsg.Complete(aError); + } + void CLegacyDataMonitoringResponder::DoCancelRequest() { iLegacyResponseMsg.Complete(KErrCancel); @@ -731,9 +736,9 @@ RLegacyResponseMsg responseMsg(aContext, iMessage, iMessage.Int0()); CDataMonitoringResponder* responder = CLegacyDataMonitoringResponder::NewL(responseMsg); - ADataMonitoringProtocolReq& dataMonItf = *static_cast(interface); - switch(iDirection) - { + ADataMonitoringProtocolReq& dataMonItf = *static_cast(interface); + switch(iDirection) + { case ESent: dataMonItf.RequestDataSentNotification(responder, delta, volume, iClientId); break; @@ -741,19 +746,20 @@ case EReceived: dataMonItf.RequestDataReceivedNotification(responder, delta, volume, iClientId); break; + default: delete responder; - } + } // coverity [leaked_storage] - responder is owned by dataMonItf.RequestDataSentNotification, dataMonItf.RequestDataReceivedNotification // therefore we don't need to push them onto the cleanup stack. - } + } void TLegacyDataMonitoringNotificationRequest::Cancel(MeshMachine::TNodeContextBase& aContext) { TAny* interface = FetchInterfaceL(aContext.Node(), EDataMonitoringApiExt); ASSERT(interface); - if (interface) + if (interface) { ADataMonitoringProtocolReq& dataMonItf = *static_cast(interface);