Advtools.AdvInterceptor.Interceptor.ConstructUrl C# (CSharp) Method

ConstructUrl() private method

private ConstructUrl ( IRequest originalRequest, IPEndPoint remote ) : Uri
originalRequest IRequest
remote System.Net.IPEndPoint
return System.Uri
        private Uri ConstructUrl(IRequest originalRequest, IPEndPoint remote)
        {
            if(!state_.IsLocal(remote.Address))
                return originalRequest.Uri;

            DnsMessage message = state_.Dns.Resolve(originalRequest.Uri.DnsSafeHost);
            if(null == message)
                throw new ApplicationException(string.Format("Could not resolve '{0}' with DNS '{1}'", originalRequest.Uri.DnsSafeHost, state_.Config.Dns.Server));

            foreach(DnsRecordBase recordBase in message.AnswerRecords)
            {
                ARecord record = recordBase as ARecord;
                if(record == null)
                    continue;

                string host = originalRequest.Uri.Host;
                string url = originalRequest.Uri.AbsoluteUri.Replace(host, record.Address.ToString());

                return new Uri(url);
            }

            return originalRequest.Uri;
        }