--- a/nettools/conntest/Engine/SocketsEngine.cpp Tue Aug 31 15:04:20 2010 +0300
+++ b/nettools/conntest/Engine/SocketsEngine.cpp Wed Sep 01 12:33:27 2010 +0100
@@ -547,6 +547,50 @@
User::Panic( KPanicConnTest, EConnTestHttpClientInitializationFailed );
}
+ /*
+ * In case roaming, socket needs to be restarted in following cases.
+ */
+
+ if ( iEngineStatus == EConnecting ||
+ iEngineStatus == ELookingUp )
+ {
+ // Cancel and then re-connect
+ DoCancel();
+ ConnectL();
+ }
+ else if ( iEngineStatus == EConnected )
+ {
+ // Cancel write socket
+ iSocketsWrite->Cancel();
+
+ // Cancel read socket
+ TBool isSocketActive( EFalse );
+ if ( iSocketsRead->IsActive() )
+ {
+ iSocketsRead->Cancel();
+ isSocketActive = ETrue;
+ }
+
+ // Re-connect
+ ChangeStatus( EInterfaceUp );
+ ConnectL();
+
+ // Start read socket again
+ if ( isSocketActive )
+ {
+ Read();
+ }
+ }
+ else if ( iEngineStatus == EListening )
+ {
+ DoCancel();
+ ListenL();
+ }
+ else if ( iEngineStatus == EDisconnecting )
+ {
+ DoCancel();
+ }
+
iConsole.PrintNotify( text );
}