--- a/applayerpluginsandutils/httpprotocolplugins/httpclient/chttpclienthandler.cpp Mon Sep 27 10:31:51 2010 +0530
+++ b/applayerpluginsandutils/httpprotocolplugins/httpclient/chttpclienthandler.cpp Mon Oct 04 15:35:43 2010 +0530
@@ -1,4 +1,4 @@
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2003-2010 Nokia Corporation and/or its subsidiary(-ies).
// All rights reserved.
// This component and the accompanying materials are made available
// under the terms of "Eclipse Public License v1.0"
@@ -766,6 +766,49 @@
return manager;
}
+
+/*
+* The below function selects correct NTLM connection manger. Connection manager is associate with a socket.
+* NTLM protocol needs all authentication messages Negotiate(->),Challenge(<-) and Authorise(->) packets
+* to be sent on the same port. In this function, the connection manager is identified by NTLM id which is set
+* when CHttpResponseParser when 401 unauthorised message is received from ntlm enabled server.
+* The same iNtlmConnId will be maintained until authentication is successful.
+*/
+CHttpConnectionManager* CHttpClientHandler::SelectNtlmConnectionL(const CHttpConnectionInfo& aConnectionInfo,RHTTPTransaction aTrans)
+ {
+
+ TInt ntlmConnId;
+ CHttpConnectionManager* fourthChoice=NULL;
+ _LIT8( KNtlmId, "NTLMConnId" );
+ RStringPool stringPool = aTrans.Session().StringPool();
+ RStringF ntlmId = stringPool.OpenFStringL( KNtlmId );
+ THTTPHdrVal value;
+
+ if (aTrans.PropertySet().Property(ntlmId,value))
+ {
+ ntlmConnId = value.Int();
+ for (TInt i=0;i<iConnectionManagers.Count();i++)
+ {
+ const CHttpConnectionInfo& connectionInfo = iConnectionManagers[i]->ConnectionInfo();
+ if( connectionInfo.HostAndPortMatches(aConnectionInfo) )
+ {
+ if (iConnectionManagers[i]->GetNtlmConnId() == ntlmConnId)
+ {
+ ntlmId.Close();
+ return iConnectionManagers[i];
+ }
+ }
+ else
+ {
+ fourthChoice = iConnectionManagers[i];
+ }
+ }
+ }
+ ntlmId.Close();
+ return fourthChoice;
+ }
+
+
TInt CHttpClientHandler::MaxNumConnectionManagers() const
{
// Has this value been previously cached?
@@ -930,8 +973,31 @@
}
else
{
- // Look for a normal connection.
- isNewConnection = SelectConnectionManagerL(*info, aTrans.Transaction(), canPipeline, manager);
+ THTTPHdrVal value;
+ _LIT8( KNtlmStateStr, "NTLMState" );
+ RStringPool stringPool = iSession.StringPool();
+ RStringF strF = stringPool.OpenFStringL( KNtlmStateStr );
+ CleanupClosePushL(strF);
+ if ( aTrans.Transaction().PropertySet().Property( strF, value ) && (value.Int() == ENtlmNegotiate || value.Int() == ENtlmAuthenticate) )
+ {
+ manager = SelectNtlmConnectionL(*info,aTrans.Transaction());
+ if (manager == NULL)
+ {
+ __FLOG_0(_T8("No NTLM connection manger!!!"));
+ }
+ else if (value.Int() == ENtlmAuthenticate)
+ {
+#if defined (_DEBUG) && defined (_LOGGING)
+ __FLOG_1(_T8(" NTLM AUTH msg Id %d and resetting to -1"),manager->GetNtlmConnId());
+#endif
+ manager->SetNtlmConnId(KErrNotFound);//reset it
+ }
+ }
+ else// Look for a normal connection.
+ {
+ isNewConnection = SelectConnectionManagerL(*info, aTrans.Transaction(), canPipeline, manager);
+ }
+ CleanupStack::PopAndDestroy(&strF);
}
if( manager != NULL )
--- a/applayerpluginsandutils/httpprotocolplugins/httpclient/chttpclienthandler.h Mon Sep 27 10:31:51 2010 +0530
+++ b/applayerpluginsandutils/httpprotocolplugins/httpclient/chttpclienthandler.h Mon Oct 04 15:35:43 2010 +0530
@@ -1,4 +1,4 @@
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2003-2010 Nokia Corporation and/or its subsidiary(-ies).
// All rights reserved.
// This component and the accompanying materials are made available
// under the terms of "Eclipse Public License v1.0"
@@ -34,6 +34,15 @@
class TDNInfo;
class CHttpPipelineFallback;
+/**
+ * Enumeration for NTLM authentication state.
+ */
+enum {
+ ENtlmIdle,
+ ENtlmNegotiate,
+ ENtlmAuthenticate
+ };
+
class CHttpClientHandler : public CProtocolHandler,
public MConnectionPrefsProvider,
public MRxDataObserver,
@@ -93,6 +102,7 @@
void AddTunnelInfoL(RHTTPTransaction aTrans, const TDesC8& aHost, TInt aPort);
TBool SelectConnectionManagerL(const CHttpConnectionInfo& aConnectionInfo, RHTTPTransaction aTrans, TBool aCanPipeline, CHttpConnectionManager *&aManager);
CHttpConnectionManager* SelectTunnelConnectionL(const CHttpConnectionInfo& aConnectionInfo, RHTTPTransaction aTrans, TBool aCanPipeline);
+ CHttpConnectionManager* SelectNtlmConnectionL(const CHttpConnectionInfo& aConnectionInfo,RHTTPTransaction aTrans);
TInt MaxNumConnectionManagers() const;
void SetupProxyInformation(RHTTPTransaction aTrans);
TBool CheckPipelineSupport(RHTTPTransaction aTrans);
--- a/applayerpluginsandutils/httpprotocolplugins/httpclient/chttpconnectionmanager.cpp Mon Sep 27 10:31:51 2010 +0530
+++ b/applayerpluginsandutils/httpprotocolplugins/httpclient/chttpconnectionmanager.cpp Mon Oct 04 15:35:43 2010 +0530
@@ -314,7 +314,9 @@
// The request has not been made - just need to remove the request and
// response objects from the pending queues.
iPendingRequests.Remove(requestIndex);
- iPendingResponses.Remove(responseIndex);
+
+ if (KErrNotFound != responseIndex)
+ iPendingResponses.Remove(responseIndex);
}
else if( responseIndex != KErrNotFound )
{
--- a/applayerpluginsandutils/httpprotocolplugins/httpclient/chttpconnectionmanager.h Mon Sep 27 10:31:51 2010 +0530
+++ b/applayerpluginsandutils/httpprotocolplugins/httpclient/chttpconnectionmanager.h Mon Oct 04 15:35:43 2010 +0530
@@ -129,6 +129,8 @@
void DisablePipelining();
void AppendPipelineFailedHost(const TDesC8& aHost);
inline TBool SecureRetry(){ return iSecureRetry;}
+ inline void SetNtlmConnId(TInt aId){ iNtlmId=aId;}
+ inline TInt GetNtlmConnId(){ return iNtlmId;}
@@ -237,6 +239,7 @@
TBool iSecureRetry;
TBool iEnableOptimalPipeline;
TBool iTunnel;
+ TInt iNtlmId;
TInt iMaxTransactionsToPipeline;
TBitFlags8 iFlags;
MSocketFactory& iSocketFactory;
--- a/applayerpluginsandutils/httpprotocolplugins/httpclient/chttpresponseparser.cpp Mon Sep 27 10:31:51 2010 +0530
+++ b/applayerpluginsandutils/httpprotocolplugins/httpclient/chttpresponseparser.cpp Mon Oct 04 15:35:43 2010 +0530
@@ -1,4 +1,4 @@
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2003-2010 Nokia Corporation and/or its subsidiary(-ies).
// All rights reserved.
// This component and the accompanying materials are made available
// under the terms of "Eclipse Public License v1.0"
@@ -20,6 +20,7 @@
#include <http/rhttpheaders.h>
#include <http/framework/mrxdataobserver.h>
#include <httperr.h>
+#include <e32math.h>
#include "chttpclienttransaction.h"
#include "chttpconnectionmanager.h"
@@ -497,6 +498,40 @@
manager->AppendPipelineFailedHost(hostVal.StrF().DesC());
}
}
+
+ if (name.DesC().CompareF(stringPool.StringF(HTTP::EWWWAuthenticate,RHTTPSession::GetTable()).DesC()) == KErrNone)
+ {
+ _LIT8(KNtlmProtocolName,"NTLM");
+ if (aFieldValue.FindF(KNtlmProtocolName)!= KErrNotFound)
+ {
+ CHttpClientTransaction& protTran = static_cast<CHttpClientTransaction&>(*iProtTrans);
+ CHttpConnectionManager* manager = protTran.ConnectionManager();
+ _LIT8( KNtlmConnId, "NTLMConnId" );
+ if (aFieldValue.Length() >= 4 )
+ {
+ if (manager->GetNtlmConnId() == KErrNotFound)
+ {
+ TInt ntmlConnId= Math::Random()%5789; //some magic number to get random connection id
+ manager->SetNtlmConnId(ntmlConnId);
+ RStringF ntlmId= stringPool.OpenFStringL( KNtlmConnId );
+ CleanupClosePushL(ntlmId);
+ THTTPHdrVal value;
+ value.SetInt( ntmlConnId );
+ trans.PropertySet().SetPropertyL( ntlmId, value );
+ CleanupStack::PopAndDestroy(&ntlmId);
+ }
+ else
+ {
+ RStringF ntlmId= stringPool.OpenFStringL( KNtlmConnId );
+ CleanupClosePushL(ntlmId);
+ THTTPHdrVal value;
+ value.SetInt(manager->GetNtlmConnId());
+ trans.PropertySet().SetPropertyL( ntlmId, value );
+ CleanupStack::PopAndDestroy(&ntlmId);
+ }
+ }
+ }
+ }
CleanupStack::PopAndDestroy(&name);
--- a/applayerpluginsandutils/uripermissionservices/server/src/tldlistinitializer.cpp Mon Sep 27 10:31:51 2010 +0530
+++ b/applayerpluginsandutils/uripermissionservices/server/src/tldlistinitializer.cpp Mon Oct 04 15:35:43 2010 +0530
@@ -266,7 +266,8 @@
// Store the TLD name for later use
__ASSERT_ALWAYS(KLocalName8.CompareF( KName ) == 0, User::Invariant() );
iTldName.Close();
- iTldName.Create( KAttribute.Value().DesC() );
+ TInt err = iTldName.Create( KAttribute.Value().DesC() );
+ __ASSERT_ALWAYS(KErrNone == err, User::Invariant() );
break;
}
}
--- a/applayerpluginsandutils/uripermissionservices/server/src/urilistinterface.cpp Mon Sep 27 10:31:51 2010 +0530
+++ b/applayerpluginsandutils/uripermissionservices/server/src/urilistinterface.cpp Mon Oct 04 15:35:43 2010 +0530
@@ -668,7 +668,8 @@
CleanupStack::PushL ( TCleanupItem ( CUriListInterface::DestroyTransObj, dbTrans ) );
TInt lt = aQueryArgs.Get ( TPolicyQueryArgs::ETldListType );
RBuf8 upperCaseUri;
- upperCaseUri.Create(aUri);
+ CleanupClosePushL(upperCaseUri);
+ upperCaseUri.CreateL(aUri);
upperCaseUri.UpperCase();
dbTrans->BindTextL(0, aUri);
dbTrans->BindIntL(1, lt);
@@ -676,7 +677,7 @@
// Execute the query
CUriQueryFilter* queryFilter = CTldPolicyDataFilter::NewL ( dbTrans );
- upperCaseUri.Close();
+ CleanupStack::PopAndDestroy (); //upperCaseUri
CleanupStack::Pop (); // dbTrans
return queryFilter; // return the queryFilter
}
@@ -1244,6 +1245,8 @@
HBufC8* tldPtr;
User::LeaveIfError ( tldUri1.Parse ( aUri ) );
TBool isSchemePresent = tldUri1.IsPresent( EUriScheme );
+ CleanupClosePushL ( tld );
+ CleanupClosePushL ( customisedUri );
if (!isSchemePresent)
{
_LIT8(KHttp, "http://");
@@ -1251,26 +1254,26 @@
urirbuf.CleanupClosePushL();
urirbuf.CreateL(KHttp,aUri.Length()+7);
urirbuf.Append(aUri);
- customisedUri.Create( DoNormalisationLC ( urirbuf ) );
+ customisedUri.CreateL( DoNormalisationLC ( urirbuf ) );
TUriParser8 tldUri2;
User::LeaveIfError ( tldUri2.Parse ( customisedUri ) );
__ASSERT_ALWAYS(tldUri2.IsPresent( EUriHost ), User::Invariant());
- tld.Create( tldUri2.Extract(EUriHost) );
+ tld.CreateL( tldUri2.Extract(EUriHost) );
tldPtr = tld.AllocL();
CleanupStack::PopAndDestroy(2); //calls aRBuf.Close()and DoNormalisationLC pop
}
else
{
- customisedUri.Create( DoNormalisationLC ( aUri ) );
+ customisedUri.CreateL( DoNormalisationLC ( aUri ) );
User::LeaveIfError ( tldUri1.Parse ( customisedUri ) );
__ASSERT_ALWAYS(tldUri1.IsPresent( EUriHost ), User::Invariant());
- tld.Create( tldUri1.Extract(EUriHost) );
+ tld.CreateL( tldUri1.Extract(EUriHost) );
tldPtr = tld.AllocL();
CleanupStack::PopAndDestroy ();//objects added in DoNormalisationLC
}
- tld.Close();
- customisedUri.Close();
+ CleanupStack::PopAndDestroy (); //customisedUri
+ CleanupStack::PopAndDestroy (); //tld
return tldPtr;
}
--- a/applayerprotocols/ftpengine/consui/CONSUI.CPP Mon Sep 27 10:31:51 2010 +0530
+++ b/applayerprotocols/ftpengine/consui/CONSUI.CPP Mon Oct 04 15:35:43 2010 +0530
@@ -48,8 +48,7 @@
// TPtrC DNSName(_L("radian.ee.ic.ac.uk"));
//
- myFtpUI = new (ELeave) CFtpUI;
- CleanupStack::PushL(myFtpUI);
+ myFtpUI = CFtpUI::NewLC();
CActiveScheduler* exampleScheduler=new (ELeave) CActiveScheduler;
CleanupStack::PushL(exampleScheduler);
CActiveScheduler::Install(exampleScheduler);
--- a/applayerprotocols/ftpengine/consui/FTPUI.CPP Mon Sep 27 10:31:51 2010 +0530
+++ b/applayerprotocols/ftpengine/consui/FTPUI.CPP Mon Oct 04 15:35:43 2010 +0530
@@ -237,6 +237,27 @@
}
}
+
+CFtpUI* CFtpUI::NewL()
+ {
+ CFtpUI* self = CFtpUI::NewLC();
+ CleanupStack::Pop();
+ return self;
+ }
+
+CFtpUI* CFtpUI::NewLC()
+ {
+ CFtpUI* self = new(ELeave) CFtpUI();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+
+void CFtpUI::ConstructL()
+ {
+ User::LeaveIfError(iFs.Connect(KFileServerDefaultMessageSlots));
+ }
+
CFtpUI::CFtpUI(void)
{
iCurCmd = EInvalid ;
@@ -244,7 +265,6 @@
iOpenMode = CFTPSession::EOverwrite;
iType = CFTPSession::EBinary;
iState = EInputCmd;
-iFs.Connect(KFileServerDefaultMessageSlots);
}
CFtpUI::~CFtpUI(void)
--- a/applayerprotocols/ftpengine/consui/FTPUI.H Mon Sep 27 10:31:51 2010 +0530
+++ b/applayerprotocols/ftpengine/consui/FTPUI.H Mon Oct 04 15:35:43 2010 +0530
@@ -37,6 +37,16 @@
*/
{
public:
+ static CFtpUI* NewL();
+ static CFtpUI* NewLC();
+
+ ~CFtpUI(void);
+
+private:
+ CFtpUI(void);
+ void ConstructL();
+
+public:
/** Console callback Minterface */
void CmdReady(void);
void Escape(void);
@@ -63,8 +73,7 @@
/** Message reported by server */
void ServerMessage(const TDesC8&);
/** FTP User interface specific methods */
- CFtpUI(void);
- ~CFtpUI(void);
+
/** Execute a previously parsed command */
TBool Execute(void);
void SetConsole(CConsoleBase*);
--- a/applayerprotocols/httpservice/inc/chttpservice.h Mon Sep 27 10:31:51 2010 +0530
+++ b/applayerprotocols/httpservice/inc/chttpservice.h Mon Oct 04 15:35:43 2010 +0530
@@ -62,7 +62,8 @@
private:
CHttpService();
- void ConstructL();
+ void ConstructL();
+ void RemoveUnwantedFilters();
NONSHARABLE_CLASS(CHttpServiceStruct) : public CBase
{
--- a/applayerprotocols/httpservice/src/chttpservice.cpp Mon Sep 27 10:31:51 2010 +0530
+++ b/applayerprotocols/httpservice/src/chttpservice.cpp Mon Oct 04 15:35:43 2010 +0530
@@ -23,7 +23,8 @@
/**
* The default 2-phase constructor to create a CHttpService instance
- *
+ * @publishedAll
+ * @prototype
*/
EXPORT_C CHttpService* CHttpService::NewL()
{
@@ -35,6 +36,8 @@
}
/**
* Destructor
+ * @publishedAll
+ * @prototype
*/
EXPORT_C CHttpService::~CHttpService()
@@ -63,6 +66,9 @@
*
* @return KErrNotFound if the string ID is not found in the HTTP string pool
* otherwise KErrNone for success
+ *
+ * @publishedAll
+ * @prototype
*/
EXPORT_C TInt CHttpService::String(TInt aStringId, TPtrC8& aPtr)
{
@@ -105,7 +111,9 @@
*
* @return Proxy address otherwise KNullDesC8 if the proxy information
* is not set.
- *
+ *
+ * @publishedAll
+ * @prototype
*/
EXPORT_C const TDesC8& CHttpService::ProxyAddress() const
@@ -130,6 +138,9 @@
* at any time. The default no. of connections that the CHttpService instance uses is 6.
*
* @param aValue aValue No. of connections
+ *
+ * @publishedAll
+ * @prototype
*/
EXPORT_C void CHttpService::SetMaxConnections(TInt aValue)
@@ -160,7 +171,13 @@
return 0;
}
-
+/**
+ * Sets the maximum number of transactions to be pipelined.
+ * @param aValue - number of transactions
+ *
+ * @publishedAll
+ * @prototype
+ */
EXPORT_C void CHttpService::SetMaxTransactionsToPipeline(TInt aValue)
{
RHTTPSession sess = iHttpServiceStruct->iHttpSession;
@@ -169,7 +186,13 @@
connInfo.SetProperty(sp.StringF(HTTP::EMaxNumTransactionsToPipeline, RHTTPSession::GetTable()), THTTPHdrVal(aValue));
}
-
+
+/**
+ * Returns the maximum number of transactions to be pipelined.
+ *
+ * @publishedAll
+ * @prototype
+ */
EXPORT_C TInt CHttpService::MaxTransactionsToPipeline() const
{
RHTTPSession sess = iHttpServiceStruct->iHttpSession;
@@ -190,6 +213,9 @@
*
* @param aStringId - Pre-defined String ID in the HTTP string pool
* @param aHeaderValue - Value for the header
+ *
+ * @publishedAll
+ * @prototype
*/
EXPORT_C TInt CHttpService::AddRequestHeader(TInt aStringId, const THttpHeaderValueVariant& aHeaderValue)
{
@@ -207,6 +233,9 @@
*
* @param aHeaderName - Custom header name
* @param aHeaderValue - Value for the header
+ *
+ * @publishedAll
+ * @prototype
*/
EXPORT_C TInt CHttpService::AddCustomRequestHeader(const TDesC8& aHeaderName, const TDesC8& aHeaderValue)
{
@@ -222,6 +251,14 @@
return err;
}
+/**
+ * This method facilitates to set to construct the authentication credentials to be passed by the application
+ * The derived class from MHTTPServiceAuthentication will be called from the framework, if authentication is required.
+ * @param aCallback - Derived class from MHTTPServiceAuthentication
+ *
+ * @publishedAll
+ * @prototype
+ */
EXPORT_C TInt CHttpService::SetAuthentication(MHTTPServiceAuthentication* aCallback)
{
TInt error = KErrGeneral;
@@ -247,10 +284,50 @@
SetMaxConnections(KMaxNoOfConnections);
SetMaxTransactionsToPipeline(KMaxTransToPipeline);
}
-
+
+/**
+ * returns the CHttpNetworkConnection instance created by the framework.
+ * The class can be used to set the connection properties.
+ *
+ * @publishedAll
+ * @prototype
+ */
EXPORT_C CHttpNetworkConnection* CHttpService::HttpNetworkConnection()
{
CHttpNetworkConnection *httpNetworkConn = CHttpNetworkConnection::New();
httpNetworkConn->SetHttpService(this);
return httpNetworkConn;
}
+
+void CHttpService::RemoveUnwantedFilters()
+ {
+ THTTPFilterRegistration filterInfo;
+ RStringPool stringPool = iHttpServiceStruct->iHttpSession.StringPool();
+
+ RHTTPFilterCollection filterArray = iHttpServiceStruct->iHttpSession.FilterCollection();
+ THTTPFilterIterator iter = filterArray.Query();
+ const TStringTable& st = RHTTPSession::GetTable();
+
+ iter.First();
+
+ while (!iter.AtEnd())
+ {
+ // Get next filter registration info
+ filterInfo = iter();
+ RStringF filterName = stringPool.StringF(filterInfo.iName);
+ switch(filterName.Index(st))
+ {
+ //dont remove these filters
+ case HTTP::EClient:
+ case HTTP::EProtocolHandler:
+ case HTTP::EValidation:
+ case HTTP::ERedirect:
+ case HTTP::EHttpConnectFilter:
+ break;
+ //anything other than above, remove.
+ default:
+ filterArray.RemoveFilter(filterName);
+ }
+ ++iter;
+ }
+ }
--- a/applayerprotocols/httptransportfw/group/HttpClientErr.rss Mon Sep 27 10:31:51 2010 +0530
+++ b/applayerprotocols/httptransportfw/group/HttpClientErr.rss Mon Oct 04 15:35:43 2010 +0530
@@ -65,4 +65,5 @@
-#include "HttpClientErr.ra"
\ No newline at end of file
+#include "HttpClientErr.ra"
+
--- a/applayerprotocols/httptransportfw/utils/TimerLogger.cpp Mon Sep 27 10:31:51 2010 +0530
+++ b/applayerprotocols/httptransportfw/utils/TimerLogger.cpp Mon Oct 04 15:35:43 2010 +0530
@@ -86,7 +86,8 @@
TTimeIntervalMicroSeconds iTimeDifference = iEndTime.MicroSecondsFrom(iStartTime);
_LIT(KTimeDiff, ",%d microseconds\n");
RBuf myBuf;
- myBuf.Create (aComment.Length()+64);
+ TInt err = myBuf.Create (aComment.Length()+64);
+ __ASSERT_ALWAYS(KErrNone == err, User::Invariant() );
myBuf.Append (aComment );
myBuf.AppendFormat(KTimeDiff, iTimeDifference.Int64());
LogIt(myBuf);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/build.config.xml Mon Oct 04 15:35:43 2010 +0530
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<!DOCTYPE SystemDefinition SYSTEM "sysdef_1_4_0.dtd" [
+ <!ENTITY layer_real_source_path "sf/mw/netprotocols">
+]>
+
+<SystemDefinition name="netprotocols" schema="1.4.0">
+ <systemModel>
+ <layer name="mw_layer">
+ <module name="netprotocols">
+ <unit unitID="production1" mrp="" bldFile="\sf\mw\netprotocols\applayerpluginsandutils\bookmarksupport\group" name="production1" />
+ <unit unitID="production2" mrp="" bldFile="\sf\mw\netprotocols\applayerpluginsandutils\bookmarksupport\test\Integration\TestBookmarksSuite" name="production2" />
+ <unit unitID="production3" mrp="" bldFile="\sf\mw\netprotocols\applayerprotocols\httptransportfw\group\build_all" name="production3" />
+ <unit unitID="production4" mrp="" bldFile="\sf\mw\netprotocols\applayerprotocols\httptransportfw\Test\integration\group" name="production4" />
+ <unit unitID="production5" mrp="" bldFile="\sf\mw\netprotocols\applayerpluginsandutils\uripermissionservices\group" name="production5" />
+ <unit unitID="production6" mrp="" bldFile="\sf\mw\netprotocols\applayerpluginsandutils\uripermissionservices\Test\integration\testwhitelistblacklisturisuite\group" name="production6" />
+ </module>
+ </layer>
+ <layer name="api_test_layer">
+ <module name="netprotocols_test">
+ <unit unitID="test1" mrp="" bldFile="\sf\mw\netprotocols\applayerpluginsandutils\bookmarksupport\group" name="test1" />
+ <unit unitID="test2" mrp="" bldFile="\sf\mw\netprotocols\applayerpluginsandutils\bookmarksupport\test\Integration\TestBookmarksSuite" name="test2" />
+ <unit unitID="test3" mrp="" bldFile="\sf\mw\netprotocols\applayerprotocols\httptransportfw\group\build_all" name="test3" />
+ <unit unitID="test4" mrp="" bldFile="\sf\mw\netprotocols\applayerprotocols\httptransportfw\Test\integration\group" name="test4" />
+ <unit unitID="test5" mrp="" bldFile="\sf\mw\netprotocols\applayerpluginsandutils\uripermissionservices\group" name="test5" />
+ <unit unitID="test6" mrp="" bldFile="\sf\mw\netprotocols\applayerpluginsandutils\uripermissionservices\Test\integration\testwhitelistblacklisturisuite\group" name="test6" />
+ <unit unitID="test7" mrp="" bldFile="\sf\mw\netprotocols\applayerprotocols\httpservice\group" name="test7" />
+ </module>
+ </layer>
+ </systemModel>
+</SystemDefinition>
--- a/httpfilters/cookie/ManagerSrc/CookieClientDataArray.cpp Mon Sep 27 10:31:51 2010 +0530
+++ b/httpfilters/cookie/ManagerSrc/CookieClientDataArray.cpp Mon Oct 04 15:35:43 2010 +0530
@@ -52,11 +52,11 @@
CCookieClientDataArray::~CCookieClientDataArray()
{
CLOG( ( EClient, 0, _L( "-> CCookieClientDataArray::~CCookieClientDataArray" ) ) );
- if(iCookieClientData && iCookieClientData->Count())
+ if(iCookieClientData)
{
iCookieClientData->ResetAndDestroy();
iCookieClientData->Close();
- //delete iCookieClientData;
+ delete iCookieClientData;
iCookieClientData = NULL;
}
CLOG( ( EClient, 0, _L( "<- CCookieClientDataArray::~CCookieClientDataArray" ) ) );
--- a/httpfilters/cookie/ManagerSrc/CookieGroupDataArray.cpp Mon Sep 27 10:31:51 2010 +0530
+++ b/httpfilters/cookie/ManagerSrc/CookieGroupDataArray.cpp Mon Oct 04 15:35:43 2010 +0530
@@ -75,11 +75,11 @@
CCookieGroupDataArray::~CCookieGroupDataArray()
{
CLOG( ( EClient, 0, _L( "-> CCookieGroupDataArray::~CCookieGroupDataArray" ) ) );
- if(iCookieGroupData && Count())
+ if(iCookieGroupData)
{
iCookieGroupData->ResetAndDestroy();
iCookieGroupData->Close();
- //delete iCookieGroupData;
+ delete iCookieGroupData;
iCookieGroupData = NULL;
}
CLOG( ( EClient, 0, _L( "<- CCookieGroupDataArray::~CCookieGroupDataArray" ) ) );