Fixed "extra qualification" syntax errors.
/** @file
* Copyright (c) 2005-2006 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"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: Message handler engine
*
*/
// INCLUDE FILES
#include <s32mem.h>
#include "upnpmessagehandlersession.h"
#define KLogFile _L("UpnpMessageHandler.txt")
#include "upnpcustomlog.h"
// ================= MEMBER FUNCTIONS =======================
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::CUpnpMessageHandlerSession
// C++ default constructor can NOT contain any code, that
// might leave.
// -----------------------------------------------------------------------------
//
CUpnpMessageHandlerSession::CUpnpMessageHandlerSession(
CUpnpMessageHandler& aMessageHandler, CUpnpMessageHandlerEngine& aEngine ) :
CSession2(), iMessageHandler(aMessageHandler), iEngine(aEngine),
iMoreNewDevices(ETrue), iOldId(KErrNotFound), iAddedDevices( 1)
{
LOG_FUNC_NAME;
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::~CUpnpMessageHandlerSession
// Destructor.
// -----------------------------------------------------------------------------
//
CUpnpMessageHandlerSession::~CUpnpMessageHandlerSession()
{
delete[] iAwaitingUpdateDevices;
delete[] iAwaitingUpdateServices;
iMessageHandler.RemoveObserver( this );
iAddedDevices.Reset();
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::ServiceL
// Handle client requests.
// -----------------------------------------------------------------------------
//
void CUpnpMessageHandlerSession::ServiceL( const RMessage2& aMessage )
{
if ( aMessage.Function() != EStartSsdp && aMessage.Function()
!= ECheckError && !iMessageHandler.IsSsdpStarted() )
{
aMessage.Complete( KErrServerTerminated );
return;
}
switch ( aMessage.Function() )
{
case EStartSsdp:
{
aMessage.Complete( EStartSsdpComplete );
User::LeaveIfError( EventStartSsdpL() );
iMessageHandler.SetSsdpStarted( ETrue );
break;
}
case EAddLocalDevice:
{
EventAddLocalDeviceL( aMessage );
aMessage.Complete( EAddLocalDeviceComplete );
break;
}
case ERemoveLocalDevice:
{
EventRemoveLocalDeviceL( aMessage, EFalse );
aMessage.Complete( ERemoveLocalDeviceComplete );
break;
}
case ERemoveSilentLocalDevice:
{
LOGS("CUpnpMessageHandlerSession: case ERemoveSilentLocalDevice");
EventRemoveLocalDeviceL( aMessage, ETrue );
aMessage.Complete( ERemoveSilentLocalDeviceComplete );
LOGS("CUpnpMessageHandlerSession: case ERemoveSilentLocalDevice passed");
break;
}
case EAddControlPointClient:
{
EventAddLocalControlPoint( aMessage );
aMessage.Complete( EAddControlPointClientComplete );
break;
}
case ERemoveControlPointClient:
{
EventRemoveLocalControlPoint( aMessage );
aMessage.Complete( ERemoveControlPointClientComplete );
break;
}
case EStopFilteringDevice:
{
EventStopFilteringDeviceL( aMessage );
aMessage.Complete( EStopFilteringDeviceComplete );
break;
}
case EGetDeviceListSize:
{
CopyMessage( (RMessage2&) aMessage );
EventGetDeviceListSizeL( aMessage );
break;
}
case EGetDeviceList:
{
EventGetDeviceListL( aMessage );
aMessage.Complete( EGetDeviceListComplete );
break;
}
case ESsdpSearch:
{
EventSsdpSearchL( aMessage );
aMessage.Complete( ESsdpSearchComplete );
break;
}
case EActiveIap:
{
EventActiveIapL( aMessage );
aMessage.Complete( EActiveIapComplete );
break;
}
case ECheckError:
{
EventCheckErrorL( aMessage );
aMessage.Complete( ECheckErrorComplete );
break;
}
case ECancelRequest:
CompletePendingRequest();
aMessage.Complete( KErrNone );
break;
#ifdef RD_UPNP_REMOTE_ACCESS
case EAddFilterAddrByIP:
{
EventAddFilterAddrByIpL( aMessage );
aMessage.Complete( KErrNone );
break;
}
case EAddFilterAddrByHostname:
{
EventAddFilterAddrByHostnameL( aMessage );
break;
}
case ERemoveFilterAddrByIP:
{
EventRemoveFilterAddrByIpL( aMessage );
aMessage.Complete( KErrNone );
break;
}
case ERemoveFilterAddrByHostname:
{
EventRemoveFilterAddrByHostnameL( aMessage );
break;
}
case ERemoveAllIPsAddresses:
{
EventRemoveAllIPsAddressesL( aMessage );
aMessage.Complete( KErrNone );
break;
}
case EIsIPAddressAllowed:
{
aMessage.Complete( EventIsIPAddressAllowedL( aMessage ) );
break;
}
case ESubscribeIPListChanges:
{
EventSubscriveIPListChanges( const_cast<RMessage2&>( aMessage ) );
break;
}
case EGetIPFilterList:
{
EventGetIPFilterListL( aMessage );
break;
}
case ECancelIPLIstSubsctiption:
{
EventCancelIPListSubscription( aMessage );
aMessage.Complete( KErrNone );
break;
}
#endif
default:
PanicClient( aMessage, EMessageHandlerBadRequest );
break;
}
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::PanicClient
// Panic client.
// -----------------------------------------------------------------------------
//
void CUpnpMessageHandlerSession::PanicClient( const RMessage2 &aMessage,
TInt aPanic ) const
{
LOG_FUNC_NAME;
iMessageHandler.PanicClient( aMessage, aPanic );
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::NewL
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
CUpnpMessageHandlerSession* CUpnpMessageHandlerSession::NewL(
CUpnpMessageHandler& aServer, CUpnpMessageHandlerEngine& aEngine )
{
CUpnpMessageHandlerSession* self = CUpnpMessageHandlerSession::NewLC(
aServer, aEngine );
CleanupStack::Pop( self );
return self;
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::NewLC
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
CUpnpMessageHandlerSession* CUpnpMessageHandlerSession::NewLC(
CUpnpMessageHandler& aServer, CUpnpMessageHandlerEngine& aEngine )
{
CUpnpMessageHandlerSession* self = new (ELeave) CUpnpMessageHandlerSession(
aServer, aEngine );
CleanupStack::PushL( self );
self->ConstructL();
return self;
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::ConstructL
// Symbian 2nd phase constructor can leave.
// -----------------------------------------------------------------------------
//
void CUpnpMessageHandlerSession::ConstructL()
{
//Add session to MessageHandlers count and to the ObserverList
iMessageHandler.AddObserverL( this );
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::EventAddLocalDeviceL
// Add local device.
// -----------------------------------------------------------------------------
//
void CUpnpMessageHandlerSession::EventAddLocalDeviceL(
const RMessage2 &aMessage )
{
LOG_FUNC_NAME;
TUpnpAddLocalDevice device;
TPtr8 ptr( reinterpret_cast<TUint8*>(&device), sizeof(device ),
sizeof(device ));
LOGS("\t MessageHandler, added a local device");
aMessage.ReadL( 0, ptr );
HBufC8* buffer = HBufC8::NewLC( device.iBufferLength );
buffer->Des().SetLength( 0 );
TPtr8 bufPtr = buffer->Des();
aMessage.ReadL( 1, bufPtr );
LOGS("Session::Add");
iDeviceListSizeRequested = EFalse;
TPtrC8 uuid = buffer->Left( device.iUuidLength );
iAddedDevices.AppendL( uuid );
iEngine.AddLocalDeviceL( device, *buffer );
CleanupStack::PopAndDestroy( buffer );
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::EventAddLocalControlPointL
// -----------------------------------------------------------------------------
//
void CUpnpMessageHandlerSession::EventAddLocalControlPoint( const RMessage2 &/*aMessage*/)
{
iEngine.AddLocalControlPoint();
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerEngine::RemoveLocalControlPointL
// -----------------------------------------------------------------------------
//
void CUpnpMessageHandlerSession::EventRemoveLocalControlPoint(
const RMessage2 &/*aMessage*/)
{
iEngine.RemoveLocalControlPoint();
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerEngine::EventStopFilteringDeviceL
// -----------------------------------------------------------------------------
//
void CUpnpMessageHandlerSession::EventStopFilteringDeviceL(
const RMessage2& aMessage )
{
TInt lenght = aMessage.GetDesLength( 0 );
HBufC8* uuids = HBufC8::NewLC( lenght );
TPtr8 uuidsPtr = uuids->Des();
aMessage.ReadL( 0, uuidsPtr );
TLex8 uuidLex(*uuids);
uuidLex.Mark();
for ( ;; )
{
if ( uuidLex.Peek() == ';' )
{
TPtrC8 uidPtr = uuidLex.MarkedToken();
iEngine.StopFilteringDeviceL( uidPtr );
uuidLex.Inc();
uuidLex.Mark();
}
else if ( uuidLex.Eos() )
{
TPtrC8 uidPtr = uuidLex.MarkedToken();
if ( uidPtr.Length() )
{
iEngine.StopFilteringDeviceL( uidPtr );
}
break;
}
else
{
uuidLex.Inc();
}
}
CleanupStack::PopAndDestroy( uuids );
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::EventGetDeviceListSizeL
// Get device list.
// -----------------------------------------------------------------------------
//
void CUpnpMessageHandlerSession::EventGetDeviceListSizeL(
const RMessage2& aMessage )
{
LOGS( "CUpnpMessageHandlerSession::EventGetDeviceListSizeL");
TPtr8 ptr( reinterpret_cast<TUint8*>(&iSize), sizeof(iSize ),
sizeof(iSize ));
iDeviceListSizeMessage.ReadL( 0, ptr );
if ( iSize.iUpdateId >= iOldId && iOldId != KErrNotFound )
{
LOGS( "CUpnpMessageHandlerSession::GetDeviceListSize OLD=NEW");
iDeviceListSizeRequested = ETrue;
}
if ( iSize.iUpdateId == 0 )
{
iMoreNewDevices = ETrue;
}
if ( !iDeviceListSizeRequested )
{
LOGS( "CUpnpMessageHandlerSession::GetDeviceListSize OLD>NEW");
iDeviceListSizeRequested = ETrue;
LOGS( "CUpnpMessageHandlerSession::New Devices Found");
if ( iMoreNewDevices && iDeviceListSizeMessage.Function()
== EGetDeviceListSize )
{
delete[] iAwaitingUpdateDevices;
iAwaitingUpdateDevices = NULL;
delete[] iAwaitingUpdateServices;
iAwaitingUpdateServices = NULL;
iEngine.DeviceLibrary()->GetUpdate( iSize.iUpdateId, iAwaitingUpdateDevices,
iAwaitingUpdateServices, iSize.iDeviceCount,
iSize.iServiceCount );
if ( iSize.iDeviceCount > 0 )
{
iOldId = iSize.iUpdateId;
iDeviceListSizeMessage.WriteL( 0, ptr );
aMessage.Complete( EGetDeviceListSizeComplete );
iDeviceListSizeRequested = EFalse;
}
}
iMoreNewDevices = EFalse;
}
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::EventGetDeviceListL
// Get device list.
// -----------------------------------------------------------------------------
//
void CUpnpMessageHandlerSession::EventGetDeviceListL(
const RMessage2 &aMessage )
{
LOGS( "CUpnpMessageHandlerSession::EventGetDeviceListL");
if ( !iDeviceListSizeRequested )
{
TPtr8 devPtr( reinterpret_cast<TUint8*>(iAwaitingUpdateDevices),
sizeof(TUpnpDevice)*iSize.iDeviceCount, sizeof(TUpnpDevice)
*iSize.iDeviceCount);
TPtr8 servPtr( reinterpret_cast<TUint8*>(iAwaitingUpdateServices),
sizeof(TUpnpService)*iSize.iServiceCount, sizeof(TUpnpService)
*iSize.iServiceCount);
aMessage.WriteL( 0, devPtr );
aMessage.WriteL( 1, servPtr );
delete[] iAwaitingUpdateDevices;
iAwaitingUpdateDevices = NULL;
delete[] iAwaitingUpdateServices;
iAwaitingUpdateServices = NULL;
}
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::EventSsdpSearchL
// SSDP search.
// -----------------------------------------------------------------------------
//
void CUpnpMessageHandlerSession::EventSsdpSearchL( const RMessage2 &aMessage )
{
LOGS( "CUpnpMessageHandlerSession::EventSsdpSearchL");
// getting search string from client.
HBufC8* search= NULL;
HBufC8* mx= NULL;
TInt len = aMessage.GetDesLength( 0 );
TInt len2 = aMessage.GetDesLength( 1 );
if ( len > 0 )
{
search = HBufC8::NewLC( len );
search->Des().Zero();
mx = HBufC8::NewLC( len2 );
mx->Des().Zero();
TPtr8 searchPtr = search->Des();
aMessage.ReadL( 0, searchPtr );
if ( len2 )
{
TPtr8 mxPtr = mx->Des();
aMessage.ReadL( 1, mxPtr );
}
iDeviceListSizeRequested = EFalse;
iEngine.SsdpSearchL( *search, *mx );
CleanupStack::PopAndDestroy( mx );
CleanupStack::PopAndDestroy( search );
}
else
{
LOGS( "CUpnpMessageHandlerSession::EventSsdpSearchL");
}
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::EventActiveIapL
// Activate IAP.
// -----------------------------------------------------------------------------
//
void CUpnpMessageHandlerSession::EventActiveIapL( const RMessage2 &aMessage ) const
{
LOGS( "CUpnpMessageHandlerSession::EventActiveIapL");
TInt activeIap = iEngine.ActiveIap();
TPtr8 ptr( reinterpret_cast<TUint8*>(&activeIap), sizeof(TInt),
sizeof(TInt));
aMessage.WriteL( 0, ptr );
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::EventRemoveLocalDeviceL
// Remove local device.
// -----------------------------------------------------------------------------
//
void CUpnpMessageHandlerSession::EventRemoveLocalDeviceL(
const RMessage2 &aMessage, TBool aSilent )
{
LOGS( "CUpnpMessageHandlerSession::EventRemoveLocalDeviceL");
TBuf8<KMaxUuidLength> uuid;
aMessage.ReadL( 0, uuid );
TInt pos( 0);
TInt error( 0);
error = iAddedDevices.Find( uuid, pos );
if ( error == KErrNone )
{
iAddedDevices.Delete( pos );
}
iDeviceListSizeRequested = EFalse;
iEngine.RemoveLocalDeviceL( uuid, aSilent );
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::EventStartSsdp
// Start SSPD.
// -----------------------------------------------------------------------------
//
TInt CUpnpMessageHandlerSession::EventStartSsdpL()
{
LOGS( "CUpnpMessageHandlerSession::EventStartSsdp");
return iEngine.StartSsdpL();
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::EventIsSsdpStarted
// Check SSPD.
// -----------------------------------------------------------------------------
//
void CUpnpMessageHandlerSession::EventCheckErrorL( const RMessage2 &aMessage )
{
TBool isStarted;
isStarted = iMessageHandler.IsSsdpStarted();
TInt error = iMessageHandler.StartingError();
TPckgBuf<TInt> ptr;
if ( !isStarted )
{
ptr = error;
aMessage.WriteL( 0, ptr );
}
else
{
ptr = 0;
aMessage.WriteL( 0, ptr );
}
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::DeviceListChangeL
// Device list change.
// -----------------------------------------------------------------------------
//
void CUpnpMessageHandlerSession::DeviceListChangeL()
{
LOGS( "CUpnpMessageHandlerSession::DeviceListChange");
if( iDeviceListSizeRequested && !iDeviceListSizeMessage.IsNull() )
{
LOGS( "CUpnpMessageHandlerSession::New Devices Found");
TPtr8 ptr( reinterpret_cast<TUint8*>(&iSize), sizeof(iSize ),
sizeof(iSize ));
iDeviceListSizeMessage.ReadL( 0, ptr );
delete[] iAwaitingUpdateDevices;
iAwaitingUpdateDevices = NULL;
delete[] iAwaitingUpdateServices;
iAwaitingUpdateServices = NULL;
iEngine.DeviceLibrary()->GetUpdate( iSize.iUpdateId, iAwaitingUpdateDevices,
iAwaitingUpdateServices, iSize.iDeviceCount, iSize.iServiceCount );
iOldId = iSize.iUpdateId;
iDeviceListSizeMessage.WriteL( 0, ptr );
iDeviceListSizeMessage.Complete( EGetDeviceListSizeComplete );
iDeviceListSizeRequested = EFalse;
}
else
{
iMoreNewDevices = ETrue;
if ( iOldId != KErrNotFound )
{
iOldId++;
}
}
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::CopyMessage
// Copy message.
// -----------------------------------------------------------------------------
//
void CUpnpMessageHandlerSession::CopyMessage( RMessage2& aMessage )
{
iDeviceListSizeMessage = aMessage;
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::CancelPendingRequest
// Cancel pending request.
// -----------------------------------------------------------------------------
//
void CUpnpMessageHandlerSession::CompletePendingRequest()
{
LOGS( "CUpnpMessageHandlerSession::CancelPendingRequest");
if ( iDeviceListSizeRequested && !iDeviceListSizeMessage.IsNull() )
{
iDeviceListSizeMessage.Complete( EGetDeviceListSizeComplete );
iDeviceListSizeRequested = EFalse;
}
}
#ifdef RD_UPNP_REMOTE_ACCESS
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::EventAddFilterAddrByIpL
// Cancel pending request.
// -----------------------------------------------------------------------------
//
void CUpnpMessageHandlerSession::EventAddFilterAddrByIpL( const RMessage2& aMessage )
{
TInetAddr addr;
TPtr8 ptr( reinterpret_cast<TUint8*>(&addr), sizeof( addr ),
sizeof( addr ) );
aMessage.ReadL( 0, ptr );
iEngine.AddAddressL( addr );
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::EventAddFilterAddrByHostnameL
// Cancel pending request.
// -----------------------------------------------------------------------------
//
void CUpnpMessageHandlerSession::EventAddFilterAddrByHostnameL( const RMessage2& aMessage )
{
TInt lenght( aMessage.GetDesLength(0) );
HBufC8* hostName = HBufC8::NewLC( lenght );
TPtr8 hostNamePtr( hostName->Des() );
aMessage.ReadL( 0, hostNamePtr );
iEngine.AddAddressL( aMessage, *hostName );
CleanupStack::PopAndDestroy( hostName );
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::EventRemoveFilterAddrByIpL
// Cancel pending request.
// -----------------------------------------------------------------------------
//
void CUpnpMessageHandlerSession::EventRemoveFilterAddrByIpL( const RMessage2& aMessage )
{
TInetAddr addr;
TPtr8 ptr( reinterpret_cast<TUint8*>(&addr), sizeof( addr ),
sizeof( addr ) );
aMessage.ReadL( 0, ptr );
iEngine.RemoveAddressL( addr );
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::EventRemoveFilterAddrByHostnameL
// Cancel pending request.
// -----------------------------------------------------------------------------
//
void CUpnpMessageHandlerSession::EventRemoveFilterAddrByHostnameL( const RMessage2& aMessage )
{
TInt lenght( aMessage.GetDesLength(0) );
HBufC8* hostName = HBufC8::NewLC( lenght );
TPtr8 hostNamePtr( hostName->Des() );
aMessage.ReadL( 0, hostNamePtr );
iEngine.RemoveAddressL( aMessage, *hostName );
CleanupStack::PopAndDestroy( hostName );
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::EventRemoveAllIPsAddressesL
// Cancel pending request.
// -----------------------------------------------------------------------------
//
void CUpnpMessageHandlerSession::EventRemoveAllIPsAddressesL( const RMessage2& /*aMessage*/)
{
iEngine.RemoveAll();
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::EventIsIPAddressAllowedL
// Cancel pending request.
// -----------------------------------------------------------------------------
//
TBool CUpnpMessageHandlerSession::EventIsIPAddressAllowedL( const RMessage2& aMessage)
{
TInetAddr addr;
TPtr8 ptr( reinterpret_cast<TUint8*>(&addr), sizeof( addr ),
sizeof( addr ) );
aMessage.ReadL( 0, ptr );
return iEngine.IsIPAllowed( addr );
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::EventSubscriveIPListChanges
// Cancel pending request.
// -----------------------------------------------------------------------------
//
void CUpnpMessageHandlerSession::EventSubscriveIPListChanges( RMessage2& aMessage )
{
TPckgBuf<TInt> clientsSeqNo;
TPckgBuf<TInt> listSizeBuff;
aMessage.Read( 0 , clientsSeqNo );
if( clientsSeqNo() < iSeqNo )
{
clientsSeqNo = iSeqNo;
iEngine.IPFilteringStatus( listSizeBuff() );
aMessage.Write(0 , clientsSeqNo );
aMessage.Write(1 , listSizeBuff );
aMessage.Complete( KErrNone );
}
else
{
iIPListSizeMessage = aMessage;
}
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::EventCancelIPListSubscription
// Cancel pending request.
// -----------------------------------------------------------------------------
//
void CUpnpMessageHandlerSession::EventCancelIPListSubscription( const RMessage2& /*aMessage*/)
{
if( !iIPListSizeMessage.IsNull() )
{
iIPListSizeMessage.Complete( KErrCancel );
}
}
void CUpnpMessageHandlerSession::EventGetIPFilterListL( const RMessage2& aMessage )
{
const TPtrC8 listBuf( iEngine.GetIPFilterList() );
if( listBuf.Length()> aMessage.GetDesMaxLength( 0 ) )
{
aMessage.Complete( KErrOverflow );
return;
}
aMessage.WriteL( 0 , listBuf );
aMessage.Complete( KErrNone );
}
#endif
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::IPListChange
// Cancel pending request.
// -----------------------------------------------------------------------------
//
void CUpnpMessageHandlerSession::IPListChange()
{
#ifdef RD_UPNP_REMOTE_ACCESS
TPckgBuf<TInt> currentSeqNo( iSeqNo++ );
TPckgBuf<TInt> listSizeBuff;
if( !iIPListSizeMessage.IsNull())
{
iEngine.IPFilteringStatus( listSizeBuff() );
iIPListSizeMessage.Write(0 , currentSeqNo );
iIPListSizeMessage.Write(1 , listSizeBuff );
iIPListSizeMessage.Complete( KErrNone );
}
#endif
}
// -----------------------------------------------------------------------------
// CUpnpMessageHandlerSession::CancelPendingRequests
// Cancel pending request.
// -----------------------------------------------------------------------------
//
void CUpnpMessageHandlerSession::CancelPendingRequests()
{
if ( !iDeviceListSizeMessage.IsNull() )
{
iDeviceListSizeRequested = EFalse;
iDeviceListSizeMessage.Complete( KErrCancel );
}
#ifdef RD_UPNP_REMOTE_ACCESS
if ( !iIPListSizeMessage.IsNull() )
{
iIPListSizeMessage.Complete( KErrCancel );
}
#endif
}
// End of File