datacommsserver/esockserver/test/TE_EsockTestSteps/src/EsockTestBase.cpp
changeset 65 41cc8e7ff496
parent 40 34fc115b8742
--- a/datacommsserver/esockserver/test/TE_EsockTestSteps/src/EsockTestBase.cpp	Fri Jun 11 14:52:21 2010 +0300
+++ b/datacommsserver/esockserver/test/TE_EsockTestSteps/src/EsockTestBase.cpp	Wed Aug 18 10:59:59 2010 +0300
@@ -1124,6 +1124,18 @@
 	return error;
 	}
 
+TInt CCEsockTestBase::RemoveConnection(const TDesC& aConnectionName)
+    {
+    //check if this connection hasn't been created already
+    if (iConns.Find(aConnectionName)==NULL)
+        return KErrNotFound;
+
+    iConns.Remove(aConnectionName);
+    return KErrNone;
+    }
+
+
+
 TInt CCEsockTestBase::OpenConnection(const TRConnectionParams& aParams)
 	{
     RSocketServ* ss = iSockServs.Find(aParams.iSockServName);
@@ -1255,16 +1267,21 @@
 	TRequestStatus* requestStatus = NULL;
 	if (aParams.iAsynch)
 		{
-		requestStatus = new TRequestStatus;
-	    if (requestStatus==NULL)
-	    	return KErrNoMemory;
-	    
-		TInt error = iRequestStatuses.Add(requestStatus, aParams.iConnectionName);
-		if (error!=KErrNone)
-			{
-			delete requestStatus;
-			return error;
-			}
+				//The request status may well already be there (created by the previous iteration?)
+        requestStatus = iRequestStatuses.Find(aParams.iConnectionName);
+        if (requestStatus == NULL)
+            {
+            requestStatus = new TRequestStatus;
+            if (requestStatus==NULL)
+                return KErrNoMemory;
+            
+            TInt error = iRequestStatuses.Add(requestStatus, aParams.iConnectionName);
+            if (error!=KErrNone)
+                {
+                delete requestStatus;
+                return error;
+                }
+            }
 		}
 
 	TInt error;