diff -r 001ef9ddb825 -r 88a7990e456a applayerpluginsandutils/httpprotocolplugins/httpclient/chttpconnectionmanager.cpp --- a/applayerpluginsandutils/httpprotocolplugins/httpclient/chttpconnectionmanager.cpp Fri Mar 19 09:39:24 2010 +0200 +++ b/applayerpluginsandutils/httpprotocolplugins/httpclient/chttpconnectionmanager.cpp Fri Apr 16 15:30:47 2010 +0300 @@ -18,6 +18,7 @@ #include #include #include +#include #include "msocketfactory.h" #include "msocketconnector.h" @@ -585,9 +586,16 @@ ); } #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() ) + if ( IsPendingWriteInConnectedState() && iCurrentRequest && !iCurrentRequest->NeedDisconnectNotification() ) { // Server shut down the connect before the current transaction had // a chance to send any of its data - attempt re-connect to server. @@ -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"));