diff -r 984e13af52c4 -r fc7b30ed2058 connectionmonitoring/connmon/connectionmonitor/src/CPsdFax.cpp --- a/connectionmonitoring/connmon/connectionmonitor/src/CPsdFax.cpp Thu Jul 15 19:05:04 2010 +0300 +++ b/connectionmonitoring/connmon/connectionmonitor/src/CPsdFax.cpp Thu Aug 19 10:18:49 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2002-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" @@ -737,7 +737,7 @@ iOpen = ETrue; // Start status notifier - if ( !iStatusNotifier->IsActive() ) + if ( iStatusNotifier && !iStatusNotifier->IsActive() ) { LOGIT("OpenContext: start status notifier") iStatusNotifier->Start( iContext ); @@ -850,7 +850,7 @@ err = status.Int(); // Remove from server tables if status notifier is not active. - if ( !iStatusNotifier->IsActive() ) + if ( !iStatusNotifier || !iStatusNotifier->IsActive() ) { // Remove from server tables RemoveFromServer(); @@ -1284,6 +1284,11 @@ // Close the context iConnDataModule->CloseContext(); + // Dial-up connection has gone down. Make sure the dial-up PDP + // context override is disabled. + LOGIT("External PSD connection status EStatusDeleted, disabling dial-up override") + iServer->SetDialUpOverrideStatus( EConnMonDialUpOverrideInactive ); + // Delete all old connection objects. This method should be used // carefully because it will delete ConnectionData and // statusnotifier objects. Get out fast from RunL(). @@ -1292,6 +1297,13 @@ // Stop listening return; } + else if ( iContextStatus == RPacketContext::EStatusActive ) + { + // Dial-up connection has been established. Make sure the dial-up + // PDP context override is disabled. + LOGIT("External PSD connection status EStatusActive, disabling dial-up override") + iServer->SetDialUpOverrideStatus( EConnMonDialUpOverrideInactive ); + } // New request Receive();