datacommsserver/esockserver/ssock/ss_sapshim.cpp
branchRCL_3
changeset 12 8b5d60ce1e94
parent 9 77effd21b2c9
child 13 0b0e9fce0b58
equal deleted inserted replaced
11:98a7181d2ce7 12:8b5d60ce1e94
  1087     	//(2) Rejoing this flow. During rejoin scenario, it's the new owner obtains its new
  1087     	//(2) Rejoing this flow. During rejoin scenario, it's the new owner obtains its new
  1088     	//dataclient ('this') before ('this') dataclient knowing. The rejoin procedure is make
  1088     	//dataclient ('this') before ('this') dataclient knowing. The rejoin procedure is make
  1089     	//before break, hence it tries to apply the new owner, during which time the new
  1089     	//before break, hence it tries to apply the new owner, during which time the new
  1090     	//owner starts and hence attempts to TBindTo his new child. The child hates it
  1090     	//owner starts and hence attempts to TBindTo his new child. The child hates it
  1091     	//as it arrives from an unknown node. The rejoin protocol needs rethinking.
  1091     	//as it arrives from an unknown node. The rejoin protocol needs rethinking.
  1092 		RClientInterface::OpenPostMessageClose(Id(), aSender, TCFDataClient::TBindToComplete(KErrNone).CRef());
  1092 		RClientInterface::OpenPostMessageClose(Id(), aSender, TCFDataClient::TBindToComplete().CRef());
  1093     	return;
  1093     	return;
  1094     	}
  1094     	}
  1095     CNetworkFlow::ReceivedL(aSender, aRecipient, aMessage);
  1095     CNetworkFlow::ReceivedL(aSender, aRecipient, aMessage);
  1096 #ifdef SYMBIAN_NETWORKING_UPS
  1096 #ifdef SYMBIAN_NETWORKING_UPS
  1097 	// Allow derived classes to process received messages.
  1097 	// Allow derived classes to process received messages.
  1159 			{
  1159 			{
  1160 			TCFDataClient::TBindTo& bindToMsg(static_cast<TCFDataClient::TBindTo&>(aMessage));
  1160 			TCFDataClient::TBindTo& bindToMsg(static_cast<TCFDataClient::TBindTo&>(aMessage));
  1161 			TRAPD(err,BindToL(bindToMsg));
  1161 			TRAPD(err,BindToL(bindToMsg));
  1162 			// Ensure that TBindToComplete message gets sent before TIdle so that it gets to the destination
  1162 			// Ensure that TBindToComplete message gets sent before TIdle so that it gets to the destination
  1163 			// before destroy processing.
  1163 			// before destroy processing.
  1164 			RClientInterface::OpenPostMessageClose(Id(), aSender, TCFDataClient::TBindToComplete(err).CRef());
  1164 			if(err == KErrNone)
       
  1165 			    {
       
  1166 			    RClientInterface::OpenPostMessageClose(Id(), aSender, TCFDataClient::TBindToComplete().CRef());
       
  1167 			    }
       
  1168 			else
       
  1169 			    {
       
  1170 			    RClientInterface::OpenPostMessageClose(Id(), aSender, TEBase::TError(aMessage.MessageId(), err).CRef());
       
  1171 			    }
       
  1172 			
       
  1173 			
  1165 			ProcessDCIdleState();	// in case we were waiting to send idle
  1174 			ProcessDCIdleState();	// in case we were waiting to send idle
  1166 			//If we have received TDataClientStart before (when we did not yet have a bearer),
  1175 			//If we have received TDataClientStart before (when we did not yet have a bearer),
  1167 			//we complete the start here as well
  1176 			//we complete the start here as well
  1168 			if (err != KErrNone)
  1177 			if (err != KErrNone)
  1169 				{
  1178 				{
  1807 				{
  1816 				{
  1808 				PopulateUpsExtension(result);
  1817 				PopulateUpsExtension(result);
  1809 				}
  1818 				}
  1810 	        PostNoBearer();
  1819 	        PostNoBearer();
  1811 		    }
  1820 		    }
  1812 
  1821 		ClearUseBearerErrors();
  1813 		ClearDataClientRoutedGuard();
  1822 		ClearDataClientRoutedGuard();
  1814 		}
  1823 		}
  1815 	else
  1824 	else
  1816 	    {
  1825 	    {
  1817 	    // Return an error on an attempt to issue a SendTo() on an explicit socket (datagram) whose corresponding
  1826 	    // Return an error on an attempt to issue a SendTo() on an explicit socket (datagram) whose corresponding