From 80c19b7cac52a57fd04966169c657400aeee3de8 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 27 Feb 2013 00:21:02 +0000 Subject: Make sure we dispose of WebResponse, StreamReader and Stream in various places where we were not already. --- .../RegionLoader/Web/RegionLoaderWebServer.cs | 41 +++++++++++++++------- 1 file changed, 29 insertions(+), 12 deletions(-) (limited to 'OpenSim/Framework/RegionLoader') diff --git a/OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs b/OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs index a2f5d9c..05c64fa 100644 --- a/OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs +++ b/OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs @@ -74,16 +74,26 @@ namespace OpenSim.Framework.RegionLoader.Web try { - HttpWebResponse webResponse = (HttpWebResponse) webRequest.GetResponse(); - m_log.Debug("[WEBLOADER]: Downloading region information..."); - StreamReader reader = new StreamReader(webResponse.GetResponseStream()); string xmlSource = String.Empty; - string tempStr = reader.ReadLine(); - while (tempStr != null) + + using (HttpWebResponse webResponse = (HttpWebResponse) webRequest.GetResponse()) { - xmlSource = xmlSource + tempStr; - tempStr = reader.ReadLine(); + m_log.Debug("[WEBLOADER]: Downloading region information..."); + + using (Stream s = webResponse.GetResponseStream()) + { + using (StreamReader reader = new StreamReader(s)) + { + string tempStr = reader.ReadLine(); + while (tempStr != null) + { + xmlSource = xmlSource + tempStr; + tempStr = reader.ReadLine(); + } + } + } } + m_log.Debug("[WEBLOADER]: Done downloading region information from server. Total Bytes: " + xmlSource.Length); XmlDocument xmlDoc = new XmlDocument(); @@ -107,17 +117,24 @@ namespace OpenSim.Framework.RegionLoader.Web } catch (WebException ex) { - if (((HttpWebResponse)ex.Response).StatusCode == HttpStatusCode.NotFound) + using (HttpWebResponse response = (HttpWebResponse)ex.Response) { - if (!allowRegionless) + if (response.StatusCode == HttpStatusCode.NotFound) + { + if (!allowRegionless) + throw ex; + } + else + { throw ex; + } } - else - throw ex; } if (regionCount > 0 | allowRegionless) + { return regionInfos; + } else { m_log.Error("[WEBLOADER]: No region configs were available."); @@ -127,4 +144,4 @@ namespace OpenSim.Framework.RegionLoader.Web } } } -} +} \ No newline at end of file -- cgit v1.1