--- 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 <featmgr.h>
-#include "NsmlOperatorErrorCRKeys.h"
+#include <nsmloperatorerrorcrkeys.h>
+#include <nsmloperatordatacrkeys.h> // KCRUidOperatorDatasyncInternalKeys
#include <centralrepository.h>
+//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 )
{