private void HandleParams(string[] allParams) { if (allParams == null || allParams.Length == 0) { return; } bool bError = false; for (int i = 0; !bError && i < allParams.Length; i++) { string strParam = allParams[i]; string[] tokens = strParam.Split('='); if (tokens == null || tokens.Length < 2) { //TODO:Log continue; } string strTok = tokens[0]; if (strTok.Equals("s")) { string strURL = strParam.Substring(strTok.Length + 1); if (!string.IsNullOrEmpty(strURL)) { if (Uri.IsWellFormedUriString(strURL, UriKind.RelativeOrAbsolute)) { Uri uri = new Uri(strURL, UriKind.RelativeOrAbsolute); UnresolvedHostname hostname = MuleApplication.Instance.ED2KObjectManager.CreateUnresolvedHostname(); hostname.Url = strURL; hostname.HostName = uri.Host; hostname.Port = Convert.ToUInt16(uri.Port); hostnameSourcesList_.Add(hostname); } else { //ASSERT(0); //TODO:Log } } else { //ASSERT(0); //TODO:Log } } else if (strTok.Equals("p")) { string strPartHashs = tokens[1]; if (HashSet != null) { //ASSERT(0); //TODO:Log bError = true; break; } HashSet = MpdObjectManager.CreateSafeMemFile(256); HashSet.WriteHash16(hash_); HashSet.WriteUInt16(0); int iPartHashs = 0; string[] strHashs = strPartHashs.Split(':'); while (strHashs != null && iPartHashs < strHashs.Length) { if (string.IsNullOrEmpty(strHashs[iPartHashs])) { //TODO:Log continue; } byte[] aucPartHash = new byte[16]; if (!MpdUtilities.DecodeHexString(strHashs[iPartHashs], aucPartHash)) { bError = true; break; } HashSet.WriteHash16(aucPartHash); iPartHashs++; } if (bError) { break; } HashSet.Seek(16, System.IO.SeekOrigin.Begin); HashSet.WriteUInt16(Convert.ToUInt16(iPartHashs)); HashSet.Seek(0, System.IO.SeekOrigin.Begin); } else if (strTok.Equals("h")) { string strHash = strParam.Substring(strTok.Length + 1); if (!string.IsNullOrEmpty(strHash)) { if (MpdUtilities.DecodeBase32(strHash.ToCharArray(), aichHash_.RawHash) == MuleConstants.HASHSIZE) { aichHashValid_ = true; } else { //ASSERT(0); //TODO:Log } } else { //ASSERT(0); //TODO:Log } } else { //ASSERT(0); //TODO:Log } } if (bError) { HashSet = null; } }