diff options
author | Justin Clark-Casey (justincc) | 2014-02-27 23:13:26 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2014-02-27 23:13:26 +0000 |
commit | 88b1fc138246866aaca91a0218dfddde1ca69252 (patch) | |
tree | b3985ac9d7cd44a599d4c2d87c8abe127853d000 /OpenSim | |
parent | Remove long unused UntrustedWebRequest class (diff) | |
download | opensim-SC-88b1fc138246866aaca91a0218dfddde1ca69252.zip opensim-SC-88b1fc138246866aaca91a0218dfddde1ca69252.tar.gz opensim-SC-88b1fc138246866aaca91a0218dfddde1ca69252.tar.bz2 opensim-SC-88b1fc138246866aaca91a0218dfddde1ca69252.tar.xz |
Set up a StreamReader and call ReadToEnd() instead of using the GetStreamString() extension method
This eliminates some stream seeking that was never necessary and makes disposable of the StreamReader consistent with other code
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Framework/WebUtil.cs | 54 |
1 files changed, 13 insertions, 41 deletions
diff --git a/OpenSim/Framework/WebUtil.cs b/OpenSim/Framework/WebUtil.cs index 6b39345..c7f1bdb 100644 --- a/OpenSim/Framework/WebUtil.cs +++ b/OpenSim/Framework/WebUtil.cs | |||
@@ -265,10 +265,12 @@ namespace OpenSim.Framework | |||
265 | { | 265 | { |
266 | using (Stream responseStream = response.GetResponseStream()) | 266 | using (Stream responseStream = response.GetResponseStream()) |
267 | { | 267 | { |
268 | string responseStr = null; | 268 | using (StreamReader reader = new StreamReader(responseStream)) |
269 | responseStr = responseStream.GetStreamString(); | 269 | { |
270 | // m_log.DebugFormat("[WEB UTIL]: <{0}> response is <{1}>",reqnum,responseStr); | 270 | string responseStr = reader.ReadToEnd(); |
271 | return CanonicalizeResults(responseStr); | 271 | // m_log.DebugFormat("[WEB UTIL]: <{0}> response is <{1}>",reqnum,responseStr); |
272 | return CanonicalizeResults(responseStr); | ||
273 | } | ||
272 | } | 274 | } |
273 | } | 275 | } |
274 | } | 276 | } |
@@ -426,12 +428,14 @@ namespace OpenSim.Framework | |||
426 | { | 428 | { |
427 | using (Stream responseStream = response.GetResponseStream()) | 429 | using (Stream responseStream = response.GetResponseStream()) |
428 | { | 430 | { |
429 | string responseStr = null; | 431 | using (StreamReader reader = new StreamReader(responseStream)) |
432 | { | ||
433 | string responseStr = reader.ReadToEnd(); | ||
434 | OSD responseOSD = OSDParser.Deserialize(responseStr); | ||
430 | 435 | ||
431 | responseStr = responseStream.GetStreamString(); | 436 | if (responseOSD.Type == OSDType.Map) |
432 | OSD responseOSD = OSDParser.Deserialize(responseStr); | 437 | return (OSDMap)responseOSD; |
433 | if (responseOSD.Type == OSDType.Map) | 438 | } |
434 | return (OSDMap)responseOSD; | ||
435 | } | 439 | } |
436 | } | 440 | } |
437 | } | 441 | } |
@@ -645,38 +649,6 @@ namespace OpenSim.Framework | |||
645 | return totalCopiedBytes; | 649 | return totalCopiedBytes; |
646 | } | 650 | } |
647 | 651 | ||
648 | /// <summary> | ||
649 | /// Converts an entire stream to a string, regardless of current stream | ||
650 | /// position | ||
651 | /// </summary> | ||
652 | /// <param name="stream">The stream to convert to a string</param> | ||
653 | /// <returns></returns> | ||
654 | /// <remarks>When this method is done, the stream position will be | ||
655 | /// reset to its previous position before this method was called</remarks> | ||
656 | public static string GetStreamString(this Stream stream) | ||
657 | { | ||
658 | string value = null; | ||
659 | |||
660 | if (stream != null && stream.CanRead) | ||
661 | { | ||
662 | long rewindPos = -1; | ||
663 | |||
664 | if (stream.CanSeek) | ||
665 | { | ||
666 | rewindPos = stream.Position; | ||
667 | stream.Seek(0, SeekOrigin.Begin); | ||
668 | } | ||
669 | |||
670 | StreamReader reader = new StreamReader(stream); | ||
671 | value = reader.ReadToEnd(); | ||
672 | |||
673 | if (rewindPos >= 0) | ||
674 | stream.Seek(rewindPos, SeekOrigin.Begin); | ||
675 | } | ||
676 | |||
677 | return value; | ||
678 | } | ||
679 | |||
680 | #endregion Stream | 652 | #endregion Stream |
681 | 653 | ||
682 | public class QBasedComparer : IComparer | 654 | public class QBasedComparer : IComparer |