datacommsserver/esockserver/ssock/ss_sapshim.cpp
branchRCL_3
changeset 17 9ddb1d67ebaf
parent 13 0b0e9fce0b58
child 24 00c6709d25aa
--- a/datacommsserver/esockserver/ssock/ss_sapshim.cpp	Tue Apr 27 17:53:34 2010 +0300
+++ b/datacommsserver/esockserver/ssock/ss_sapshim.cpp	Tue May 11 17:20:19 2010 +0300
@@ -1369,6 +1369,17 @@
 	        {
             iHostResolverNotify->Error(KErrDisconnected);
 	        }
+	    else
+	    if (iFlowParams.iFlowRequestType == TFlowParams::EExplicitConnection)
+	        {
+            // Re-issue explicit host resolver requests here rather than later on in StartFlowL().  This is
+            // to accomodate the HotSpot server and Internet Connectivity Test (ICT).  The ICT hooks into the
+            // NetCfgExtensionBase mechanism, blocks the interface startup at 8400 and performs a host resolver
+            // request.  However, the TransportFlowShim will only receive StartFlowL() after the interface has
+            // fully come up, so chicken and egg.  Implicit host resolver requests must still be re-issued in
+            // StartFlowL().
+            iHostResolverNotify->StartSending();
+	        }
 	    }
 	}
 
@@ -1409,8 +1420,9 @@
 		SetStarted();
 		ClearStopped();
 
-        // A held-over resolution request will now work (if it ever will)
-        if (iHostResolverNotify)
+        // A held-over implicit resolution request will now work (if it ever will).
+		// Explicit host resolver requests have already been re-issued in BindToL().
+        if (iHostResolverNotify && (iFlowParams.iFlowRequestType != TFlowParams::EExplicitConnection))
 	        {
     	    iHostResolverNotify->StartSending();
 	        }