protected virtual XmlReader GetReaderForMessage(SoapServerMessage message, int bufferSize) { XmlTextReader reader; Encoding encoding = RequestResponseUtils.GetEncoding2(message.ContentType); if (bufferSize < 0x200) { bufferSize = 0x200; } int readTimeout = WebServicesSection.Current.SoapEnvelopeProcessing.ReadTimeout; long num2 = (readTimeout < 0) ? 0L : (readTimeout * 0x989680L); long ticks = DateTime.UtcNow.Ticks; long timeout = ((0x7fffffffffffffffL - num2) <= ticks) ? 0x7fffffffffffffffL : (ticks + num2); if (encoding != null) { if (timeout == 0x7fffffffffffffffL) { reader = new XmlTextReader(new StreamReader(message.Stream, encoding, true, bufferSize)); } else { reader = new SoapEnvelopeReader(new StreamReader(message.Stream, encoding, true, bufferSize), timeout); } } else if (timeout == 0x7fffffffffffffffL) { reader = new XmlTextReader(message.Stream); } else { reader = new SoapEnvelopeReader(message.Stream, timeout); } reader.DtdProcessing = DtdProcessing.Prohibit; reader.Normalization = true; reader.XmlResolver = null; return(reader); }
protected virtual XmlReader GetReaderForMessage(SoapServerMessage message, int bufferSize) { Encoding enc = RequestResponseUtils.GetEncoding2(message.ContentType); if (bufferSize < 512) bufferSize = 512; int readTimeout = WebServicesSection.Current.SoapEnvelopeProcessing.ReadTimeout; Int64 timeout = readTimeout < 0 ? 0L : (Int64)readTimeout * 10000000; Int64 nowTicks = DateTime.UtcNow.Ticks; Int64 timeoutTicks = Int64.MaxValue - timeout <= nowTicks ? Int64.MaxValue : nowTicks + timeout; XmlTextReader reader; if (enc != null) { if (timeoutTicks == Int64.MaxValue) { reader = new XmlTextReader(new StreamReader(message.Stream, enc, true, bufferSize)); } else { reader = new SoapEnvelopeReader(new StreamReader(message.Stream, enc, true, bufferSize), timeoutTicks); } } else { if (timeoutTicks == Int64.MaxValue) { reader = new XmlTextReader(message.Stream); } else { reader = new SoapEnvelopeReader(message.Stream, timeoutTicks); } } reader.DtdProcessing = DtdProcessing.Prohibit; reader.Normalization = true; reader.XmlResolver = null; return reader; }