networkprotocols/tcpipv4v6prt/src/res.cpp
branchRCL_3
changeset 21 abbed5a4b42a
parent 20 7e41d162e158
child 22 8d540f55e491
equal deleted inserted replaced
20:7e41d162e158 21:abbed5a4b42a
   266 #endif //SYMBIAN_DNS_PUNYCODE
   266 #endif //SYMBIAN_DNS_PUNYCODE
   267 	MProvdSecurityChecker *iSecurityChecker;
   267 	MProvdSecurityChecker *iSecurityChecker;
   268 public:
   268 public:
   269 	void NoDndAvailable();
   269 	void NoDndAvailable();
   270 	RTimeout iTimeout;
   270 	RTimeout iTimeout;
   271 private:
       
   272 	TInt iFlowRequestType;         //< = 0 for IMPLICIT, 1 for SUBCONNECTION EXPLICIT, 2 for EXPLICIT
       
   273 	};
   271 	};
   274 
   272 
   275 //	CHostResolverLinkage
   273 //	CHostResolverLinkage
   276 //	***********************
   274 //	***********************
   277 //	Glue to bind timeout callback from the timeout manager. Only used for
   275 //	Glue to bind timeout callback from the timeout manager. Only used for
  1169 	{
  1167 	{
  1170 	//
  1168 	//
  1171 	// Complete the request with network id
  1169 	// Complete the request with network id
  1172 	//
  1170 	//
  1173 	iRequest.iId = iCurrentId;
  1171 	iRequest.iId = iCurrentId;
  1174 	// Set the flow request type to the DND request message
       
  1175 	iRequest.iFlowRequestType = iFlowRequestType;
       
  1176 #ifdef SYMBIAN_DNS_PUNYCODE
  1172 #ifdef SYMBIAN_DNS_PUNYCODE
  1177 	iRequest.iScope |= EScopeType_NET;
  1173 	iRequest.iScope |= EScopeType_NET;
  1178 #else
  1174 #else
  1179 	iRequest.iScope = EScopeType_NET;
  1175 	iRequest.iScope = EScopeType_NET;
  1180 #endif //SYMBIAN_DNS_PUNYCODE
  1176 #endif //SYMBIAN_DNS_PUNYCODE
  1218 			else
  1214 			else
  1219 				{
  1215 				{
  1220 				return KErrArgument;
  1216 				return KErrArgument;
  1221 				}
  1217 				}
  1222 			}
  1218 			}
  1223 		else if (aName == static_cast<TUint>(KSoGetErrorCode))
  1219 		else
       
  1220 		if (aName == static_cast<TUint>(KSoGetErrorCode))
  1224 			{
  1221 			{
  1225 			// Return a TCP/IP failure code appropriate to the last operation.
  1222 			// Return a TCP/IP failure code appropriate to the last operation.
  1226 			// Kludge - SetOption does not allow for any return value via aOption (being const), so
  1223 			// Kludge - SetOption does not allow for any return value via aOption (being const), so
  1227 			// return a positive value representing the error code.
  1224 			// return a positive value representing the error code.
  1228 			return (iRequest.iType == KDnsRequestType_GetByAddress) ? -KErrDndAddrNotFound : -KErrDndNameNotFound;
  1225 			return (iRequest.iType == KDnsRequestType_GetByAddress) ? -KErrDndAddrNotFound : -KErrDndNameNotFound;
  1229 			}
  1226 			}
  1230 		else if (aName == KSoFlowRequestType)
       
  1231 		    {
       
  1232 			// Receive the flow request passed on from esock layer to the resolver
       
  1233             iFlowRequestType = *reinterpret_cast<const TInt*>(aOption.Ptr());
       
  1234 		    }
       
  1235       	}
  1227       	}
  1236 
  1228 
  1237 #else
  1229 #else
  1238 
  1230 
  1239       if (aLevel == STATIC_CAST(TUint, KSOLProvider) && aName == STATIC_CAST(TUint, KSoConnectionInfo))
  1231       if (aLevel == STATIC_CAST(TUint, KSOLProvider) && aName == STATIC_CAST(TUint, KSoConnectionInfo))