diff -r 13d7c31c74e0 -r b183ec05bd8c syncmlfw/common/http/src/nsmlhttpclient.cpp --- a/syncmlfw/common/http/src/nsmlhttpclient.cpp Thu Aug 19 10:44:50 2010 +0300 +++ b/syncmlfw/common/http/src/nsmlhttpclient.cpp Tue Aug 31 16:04:06 2010 +0300 @@ -19,9 +19,13 @@ #include "nsmlhttpclient.h" #include "nsmlerror.h" #include -#include "NsmlOperatorErrorCRKeys.h" +#include +#include // KCRUidOperatorDatasyncInternalKeys #include +//CONSTANTS +const TInt KErrorCodeRangeFirst = 400; +const TInt KErrorCodeRangeLast = 516; //Fix to Remove the Bad Compiler Warnings #ifndef __WINS__ @@ -51,6 +55,14 @@ { FeatureManager::InitializeLibL(); iAgent = aAgent; + + CRepository* rep = NULL; + rep = CRepository::NewL( KCRUidOperatorDatasyncInternalKeys ); + CleanupStack::PushL( rep ); + rep->Get( KNsmlOpDsHttpErrorReporting, iErrorReportingEnabled ); + CleanupStack::PopAndDestroy( rep ); + + iRepositorySSC = CRepository::NewL( KCRUidOperatorDatasyncErrorKeys ); } //------------------------------------------------------------ // CHttpEventHandler::~CHttpEventHandler() @@ -58,7 +70,8 @@ //------------------------------------------------------------ CHttpEventHandler::~CHttpEventHandler() { - FeatureManager::UnInitializeLib(); + FeatureManager::UnInitializeLib(); + delete iRepositorySSC; } //------------------------------------------------------------ // CHttpEventHandler::NewLC() @@ -126,27 +139,25 @@ if ( contentTypeStr != KSmlContentTypeDS && contentTypeStr != KSmlContentTypeDM ) { + if( this->iAgent->iSession == ESyncMLDSSession ) + { + if( iErrorReportingEnabled && ( ( status >= KErrorCodeRangeFirst ) + && ( status <= KErrorCodeRangeLast ) ) ) + { + iRepositorySSC->Set( KNsmlOpDsSyncErrorCode, status ); + } + } + //Error fix for BPSS-7H7H5S DBG_FILE( _S8("CHttpEventHandler::MHFRunL() There is a mismatch in the Content Type") ); status = CNSmlHTTP::SetErrorStatus( status ); if (status == resp.StatusCode() ) - { - if( this->iAgent->iSession == ESyncMLDSSession ) - { - CRepository* rep = NULL; - TRAPD ( err, rep = CRepository::NewL( KCRUidOperatorDatasyncErrorKeys ) ); - if ( err == KErrNone ) - { - rep->Set( KNsmlOpDsErrorCode, status ); - delete rep; - } - } - - DBG_FILE( _S8("Error in Communication string is set")); - status = TNSmlError::ESmlCommunicationInterrupted; - } + { + DBG_FILE( _S8("Error in Communication string is set")); + status = TNSmlError::ESmlCommunicationInterrupted; + } // content mismatch aTransaction.Close(); @@ -155,31 +166,32 @@ break; } - if(this->iAgent->iSession == ESyncMLDSSession && this->iAgent->iDeflateFlag ) + if(this->iAgent->iSession == ESyncMLDSSession) { - RStringF serverContentEncoding = strPool.OpenFStringL( KSmlContentEncodingType ); - THTTPHdrVal serverContentEncodingValue; - if(hdr.GetField( serverContentEncoding, 0, serverContentEncodingValue ) != KErrNotFound) - { - RStringF fieldServerContentEncodingValStr = strPool.StringF( serverContentEncodingValue.StrF() ); - const TDesC8& serverContentEncodingStr = fieldServerContentEncodingValStr.DesC(); - if( serverContentEncodingStr == KSmlContentDeflate) - { - this->iAgent->iServerContentEncoding = CNSmlHTTP::ExptDeflate; - } - } - RStringF serverAcceptEncoding = strPool.OpenFStringL( KSmlAcceptEncodingType ); - THTTPHdrVal serverAcceptEncodingValue; - if(hdr.GetField( serverAcceptEncoding, 0, serverAcceptEncodingValue ) != KErrNotFound ) - { - RStringF fieldServerAcceptEncodingValStr = strPool.StringF( serverAcceptEncodingValue.StrF() ); - const TDesC8& serverAcceptEncodingStr = fieldServerAcceptEncodingValStr.DesC(); - if( serverAcceptEncodingStr.Find(KSmlContentDeflate) != KErrNotFound) - { - this->iAgent->iServerAcceptEncoding = CNSmlHTTP::ExptDeflate; - } - } - } + RStringF serverContentEncoding = strPool.OpenFStringL( KSmlContentEncodingType ); + THTTPHdrVal serverContentEncodingValue; + if(hdr.GetField( serverContentEncoding, 0, serverContentEncodingValue ) != KErrNotFound) + { + RStringF fieldServerContentEncodingValStr = strPool.StringF( serverContentEncodingValue.StrF() ); + const TDesC8& serverContentEncodingStr = fieldServerContentEncodingValStr.DesC(); + if( serverContentEncodingStr == KSmlContentDeflate) + { + this->iAgent->iServerContentEncoding = CNSmlHTTP::ExptDeflate; + } + } + + RStringF serverAcceptEncoding = strPool.OpenFStringL( KSmlAcceptEncodingType ); + THTTPHdrVal serverAcceptEncodingValue; + if(hdr.GetField( serverAcceptEncoding, 0, serverAcceptEncodingValue ) != KErrNotFound ) + { + RStringF fieldServerAcceptEncodingValStr = strPool.StringF( serverAcceptEncodingValue.StrF() ); + const TDesC8& serverAcceptEncodingStr = fieldServerAcceptEncodingValStr.DesC(); + if( serverAcceptEncodingStr.Find(KSmlContentDeflate) != KErrNotFound) + { + this->iAgent->iServerAcceptEncoding = CNSmlHTTP::ExptDeflate; + } + } + } if ( status == 200 ) {