applayerpluginsandutils/httpprotocolplugins/httpclient/chttpconnectionmanager.cpp
branchRCL_3
changeset 7 337070b4fa18
parent 3 5ee1d9ce5878
child 8 fa2fd8b2d6cc
--- a/applayerpluginsandutils/httpprotocolplugins/httpclient/chttpconnectionmanager.cpp	Fri Feb 19 23:50:57 2010 +0200
+++ b/applayerpluginsandutils/httpprotocolplugins/httpclient/chttpconnectionmanager.cpp	Fri Mar 12 15:45:46 2010 +0200
@@ -18,6 +18,7 @@
 #include <authority8.h>
 #include <httperr.h>
 #include <x509cert.h>
+#include <sslerr.h>
 
 #include "msocketfactory.h"
 #include "msocketconnector.h"
@@ -585,7 +586,14 @@
 					);
 			}
 #endif
-		if ( ( aError == KErrEof || aError == KErrCancel  ) )
+		if ((aError == KErrSSLAlertUnexpectedMessage || aError == KErrSSLAlertHandshakeFailure) && !iSecureRetry)
+ 		    {
+ 		    //TSW error id - TKOO-7YUCA3
+ 		    //some websites dont support tls1.0 & retry secure negotiation with ssl3.0 & error value modified to KErrEof for retrying
+		    iSecureRetry = ETrue; 
+            aError = KErrEof;
+ 		    }
+ 		if (  aError == KErrEof || aError == KErrCancel  ) 
  			{
 			if ( IsPendingWriteInConnectedState() && !iCurrentRequest->NeedDisconnectNotification() )
  				{
@@ -1210,6 +1218,9 @@
 void CHttpConnectionManager::SecureClientCnf()
 	{
 	__ASSERT_DEBUG( iState == EUpgrading, User::Invariant() );
+	
+	iSecureRetry = EFalse; //reset the flag
+
 
 #if defined (_DEBUG) && defined (_LOGGING)
 	__FLOG_0(_T8("!! Secure connection establised"));