diff options
author | Justin Clark-Casey (justincc) | 2013-02-27 00:21:02 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2013-02-27 00:21:02 +0000 |
commit | 80c19b7cac52a57fd04966169c657400aeee3de8 (patch) | |
tree | 32c48c0d00da28ed091d8c6a671d43d1e9ab8bdb | |
parent | minor: Remove unnecessary very old System.Net reference in OpenSim.Region.Scr... (diff) | |
download | opensim-SC-80c19b7cac52a57fd04966169c657400aeee3de8.zip opensim-SC-80c19b7cac52a57fd04966169c657400aeee3de8.tar.gz opensim-SC-80c19b7cac52a57fd04966169c657400aeee3de8.tar.bz2 opensim-SC-80c19b7cac52a57fd04966169c657400aeee3de8.tar.xz |
Make sure we dispose of WebResponse, StreamReader and Stream in various places where we were not already.
14 files changed, 245 insertions, 212 deletions
diff --git a/OpenSim/ConsoleClient/Requester.cs b/OpenSim/ConsoleClient/Requester.cs index aabb02c..0a21328 100644 --- a/OpenSim/ConsoleClient/Requester.cs +++ b/OpenSim/ConsoleClient/Requester.cs | |||
@@ -44,7 +44,6 @@ namespace OpenSim.ConsoleClient | |||
44 | ReplyDelegate action) | 44 | ReplyDelegate action) |
45 | { | 45 | { |
46 | WebRequest request = WebRequest.Create(requestUrl); | 46 | WebRequest request = WebRequest.Create(requestUrl); |
47 | WebResponse response = null; | ||
48 | 47 | ||
49 | request.Method = "POST"; | 48 | request.Method = "POST"; |
50 | 49 | ||
@@ -64,16 +63,18 @@ namespace OpenSim.ConsoleClient | |||
64 | { | 63 | { |
65 | string reply = String.Empty; | 64 | string reply = String.Empty; |
66 | 65 | ||
67 | response = request.EndGetResponse(ar); | 66 | using (WebResponse response = request.EndGetResponse(ar)) |
68 | |||
69 | try | ||
70 | { | 67 | { |
71 | StreamReader r = new StreamReader(response.GetResponseStream()); | 68 | try |
72 | reply = r.ReadToEnd(); | 69 | { |
70 | using (Stream s = response.GetResponseStream()) | ||
71 | using (StreamReader r = new StreamReader(s)) | ||
72 | reply = r.ReadToEnd(); | ||
73 | 73 | ||
74 | } | 74 | } |
75 | catch (System.InvalidOperationException) | 75 | catch (System.InvalidOperationException) |
76 | { | 76 | { |
77 | } | ||
77 | } | 78 | } |
78 | 79 | ||
79 | action(requestUrl, data, reply); | 80 | action(requestUrl, data, reply); |
diff --git a/OpenSim/Framework/Configuration/HTTP/HTTPConfiguration.cs b/OpenSim/Framework/Configuration/HTTP/HTTPConfiguration.cs index 3dce578..6681c37 100644 --- a/OpenSim/Framework/Configuration/HTTP/HTTPConfiguration.cs +++ b/OpenSim/Framework/Configuration/HTTP/HTTPConfiguration.cs | |||
@@ -65,23 +65,27 @@ namespace OpenSim.Framework.Configuration.HTTP | |||
65 | byte[] buf = new byte[8192]; | 65 | byte[] buf = new byte[8192]; |
66 | HttpWebRequest request = | 66 | HttpWebRequest request = |
67 | (HttpWebRequest) WebRequest.Create(remoteConfigSettings.baseConfigURL + configFileName); | 67 | (HttpWebRequest) WebRequest.Create(remoteConfigSettings.baseConfigURL + configFileName); |
68 | HttpWebResponse response = (HttpWebResponse) request.GetResponse(); | 68 | using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) |
69 | |||
70 | Stream resStream = response.GetResponseStream(); | ||
71 | |||
72 | string tempString = null; | ||
73 | int count = 0; | ||
74 | |||
75 | do | ||
76 | { | 69 | { |
77 | count = resStream.Read(buf, 0, buf.Length); | 70 | using (Stream resStream = response.GetResponseStream()) |
78 | if (count != 0) | ||
79 | { | 71 | { |
80 | tempString = Util.UTF8.GetString(buf, 0, count); | 72 | string tempString = null; |
81 | sb.Append(tempString); | 73 | int count = 0; |
74 | |||
75 | do | ||
76 | { | ||
77 | count = resStream.Read(buf, 0, buf.Length); | ||
78 | if (count != 0) | ||
79 | { | ||
80 | tempString = Util.UTF8.GetString(buf, 0, count); | ||
81 | sb.Append(tempString); | ||
82 | } | ||
83 | } | ||
84 | while (count > 0); | ||
85 | |||
86 | LoadDataFromString(sb.ToString()); | ||
82 | } | 87 | } |
83 | } while (count > 0); | 88 | } |
84 | LoadDataFromString(sb.ToString()); | ||
85 | } | 89 | } |
86 | catch (WebException) | 90 | catch (WebException) |
87 | { | 91 | { |
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 | |||
74 | 74 | ||
75 | try | 75 | try |
76 | { | 76 | { |
77 | HttpWebResponse webResponse = (HttpWebResponse) webRequest.GetResponse(); | ||
78 | m_log.Debug("[WEBLOADER]: Downloading region information..."); | ||
79 | StreamReader reader = new StreamReader(webResponse.GetResponseStream()); | ||
80 | string xmlSource = String.Empty; | 77 | string xmlSource = String.Empty; |
81 | string tempStr = reader.ReadLine(); | 78 | |
82 | while (tempStr != null) | 79 | using (HttpWebResponse webResponse = (HttpWebResponse) webRequest.GetResponse()) |
83 | { | 80 | { |
84 | xmlSource = xmlSource + tempStr; | 81 | m_log.Debug("[WEBLOADER]: Downloading region information..."); |
85 | tempStr = reader.ReadLine(); | 82 | |
83 | using (Stream s = webResponse.GetResponseStream()) | ||
84 | { | ||
85 | using (StreamReader reader = new StreamReader(s)) | ||
86 | { | ||
87 | string tempStr = reader.ReadLine(); | ||
88 | while (tempStr != null) | ||
89 | { | ||
90 | xmlSource = xmlSource + tempStr; | ||
91 | tempStr = reader.ReadLine(); | ||
92 | } | ||
93 | } | ||
94 | } | ||
86 | } | 95 | } |
96 | |||
87 | m_log.Debug("[WEBLOADER]: Done downloading region information from server. Total Bytes: " + | 97 | m_log.Debug("[WEBLOADER]: Done downloading region information from server. Total Bytes: " + |
88 | xmlSource.Length); | 98 | xmlSource.Length); |
89 | XmlDocument xmlDoc = new XmlDocument(); | 99 | XmlDocument xmlDoc = new XmlDocument(); |
@@ -107,17 +117,24 @@ namespace OpenSim.Framework.RegionLoader.Web | |||
107 | } | 117 | } |
108 | catch (WebException ex) | 118 | catch (WebException ex) |
109 | { | 119 | { |
110 | if (((HttpWebResponse)ex.Response).StatusCode == HttpStatusCode.NotFound) | 120 | using (HttpWebResponse response = (HttpWebResponse)ex.Response) |
111 | { | 121 | { |
112 | if (!allowRegionless) | 122 | if (response.StatusCode == HttpStatusCode.NotFound) |
123 | { | ||
124 | if (!allowRegionless) | ||
125 | throw ex; | ||
126 | } | ||
127 | else | ||
128 | { | ||
113 | throw ex; | 129 | throw ex; |
130 | } | ||
114 | } | 131 | } |
115 | else | ||
116 | throw ex; | ||
117 | } | 132 | } |
118 | 133 | ||
119 | if (regionCount > 0 | allowRegionless) | 134 | if (regionCount > 0 | allowRegionless) |
135 | { | ||
120 | return regionInfos; | 136 | return regionInfos; |
137 | } | ||
121 | else | 138 | else |
122 | { | 139 | { |
123 | m_log.Error("[WEBLOADER]: No region configs were available."); | 140 | m_log.Error("[WEBLOADER]: No region configs were available."); |
@@ -127,4 +144,4 @@ namespace OpenSim.Framework.RegionLoader.Web | |||
127 | } | 144 | } |
128 | } | 145 | } |
129 | } | 146 | } |
130 | } | 147 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Servers/HttpServer/RestSessionService.cs b/OpenSim/Framework/Servers/HttpServer/RestSessionService.cs index 19c03a8..edcd134 100644 --- a/OpenSim/Framework/Servers/HttpServer/RestSessionService.cs +++ b/OpenSim/Framework/Servers/HttpServer/RestSessionService.cs | |||
@@ -101,20 +101,11 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
101 | using (WebResponse resp = request.GetResponse()) | 101 | using (WebResponse resp = request.GetResponse()) |
102 | { | 102 | { |
103 | XmlSerializer deserializer = new XmlSerializer(typeof(TResponse)); | 103 | XmlSerializer deserializer = new XmlSerializer(typeof(TResponse)); |
104 | Stream respStream = null; | 104 | |
105 | try | 105 | using (Stream respStream = resp.GetResponseStream()) |
106 | { | ||
107 | respStream = resp.GetResponseStream(); | ||
108 | deserial = (TResponse)deserializer.Deserialize(respStream); | 106 | deserial = (TResponse)deserializer.Deserialize(respStream); |
109 | } | ||
110 | catch { } | ||
111 | finally | ||
112 | { | ||
113 | if (respStream != null) | ||
114 | respStream.Close(); | ||
115 | resp.Close(); | ||
116 | } | ||
117 | } | 107 | } |
108 | |||
118 | return deserial; | 109 | return deserial; |
119 | } | 110 | } |
120 | } | 111 | } |
diff --git a/OpenSim/Framework/WebUtil.cs b/OpenSim/Framework/WebUtil.cs index 5c34cf4..701fbb0 100644 --- a/OpenSim/Framework/WebUtil.cs +++ b/OpenSim/Framework/WebUtil.cs | |||
@@ -228,8 +228,8 @@ namespace OpenSim.Framework | |||
228 | errorMessage = we.Message; | 228 | errorMessage = we.Message; |
229 | if (we.Status == WebExceptionStatus.ProtocolError) | 229 | if (we.Status == WebExceptionStatus.ProtocolError) |
230 | { | 230 | { |
231 | HttpWebResponse webResponse = (HttpWebResponse)we.Response; | 231 | using (HttpWebResponse webResponse = (HttpWebResponse)we.Response) |
232 | errorMessage = String.Format("[{0}] {1}",webResponse.StatusCode,webResponse.StatusDescription); | 232 | errorMessage = String.Format("[{0}] {1}", webResponse.StatusCode, webResponse.StatusDescription); |
233 | } | 233 | } |
234 | } | 234 | } |
235 | catch (Exception ex) | 235 | catch (Exception ex) |
@@ -387,8 +387,8 @@ namespace OpenSim.Framework | |||
387 | errorMessage = we.Message; | 387 | errorMessage = we.Message; |
388 | if (we.Status == WebExceptionStatus.ProtocolError) | 388 | if (we.Status == WebExceptionStatus.ProtocolError) |
389 | { | 389 | { |
390 | HttpWebResponse webResponse = (HttpWebResponse)we.Response; | 390 | using (HttpWebResponse webResponse = (HttpWebResponse)we.Response) |
391 | errorMessage = String.Format("[{0}] {1}",webResponse.StatusCode,webResponse.StatusDescription); | 391 | errorMessage = String.Format("[{0}] {1}",webResponse.StatusCode,webResponse.StatusDescription); |
392 | } | 392 | } |
393 | } | 393 | } |
394 | catch (Exception ex) | 394 | catch (Exception ex) |
@@ -834,15 +834,16 @@ namespace OpenSim.Framework | |||
834 | { | 834 | { |
835 | if (e.Response is HttpWebResponse) | 835 | if (e.Response is HttpWebResponse) |
836 | { | 836 | { |
837 | HttpWebResponse httpResponse = (HttpWebResponse)e.Response; | 837 | using (HttpWebResponse httpResponse = (HttpWebResponse)e.Response) |
838 | 838 | { | |
839 | if (httpResponse.StatusCode != HttpStatusCode.NotFound) | 839 | if (httpResponse.StatusCode != HttpStatusCode.NotFound) |
840 | { | 840 | { |
841 | // We don't appear to be handling any other status codes, so log these feailures to that | 841 | // We don't appear to be handling any other status codes, so log these feailures to that |
842 | // people don't spend unnecessary hours hunting phantom bugs. | 842 | // people don't spend unnecessary hours hunting phantom bugs. |
843 | m_log.DebugFormat( | 843 | m_log.DebugFormat( |
844 | "[ASYNC REQUEST]: Request {0} {1} failed with unexpected status code {2}", | 844 | "[ASYNC REQUEST]: Request {0} {1} failed with unexpected status code {2}", |
845 | verb, requestUrl, httpResponse.StatusCode); | 845 | verb, requestUrl, httpResponse.StatusCode); |
846 | } | ||
846 | } | 847 | } |
847 | } | 848 | } |
848 | } | 849 | } |
@@ -983,11 +984,9 @@ namespace OpenSim.Framework | |||
983 | Stream respStream = null; | 984 | Stream respStream = null; |
984 | try | 985 | try |
985 | { | 986 | { |
986 | respStream = resp.GetResponseStream(); | 987 | using (respStream = resp.GetResponseStream()) |
987 | using (StreamReader reader = new StreamReader(respStream)) | 988 | using (StreamReader reader = new StreamReader(respStream)) |
988 | { | 989 | respstring = reader.ReadToEnd(); |
989 | respstring = reader.ReadToEnd(); | ||
990 | } | ||
991 | } | 990 | } |
992 | catch (Exception e) | 991 | catch (Exception e) |
993 | { | 992 | { |
@@ -1127,10 +1126,11 @@ namespace OpenSim.Framework | |||
1127 | { | 1126 | { |
1128 | if (resp.ContentLength != 0) | 1127 | if (resp.ContentLength != 0) |
1129 | { | 1128 | { |
1130 | Stream respStream = resp.GetResponseStream(); | 1129 | using (Stream respStream = resp.GetResponseStream()) |
1131 | XmlSerializer deserializer = new XmlSerializer(typeof(TResponse)); | 1130 | { |
1132 | deserial = (TResponse)deserializer.Deserialize(respStream); | 1131 | XmlSerializer deserializer = new XmlSerializer(typeof(TResponse)); |
1133 | respStream.Close(); | 1132 | deserial = (TResponse)deserializer.Deserialize(respStream); |
1133 | } | ||
1134 | } | 1134 | } |
1135 | else | 1135 | else |
1136 | { | 1136 | { |
@@ -1142,14 +1142,15 @@ namespace OpenSim.Framework | |||
1142 | } | 1142 | } |
1143 | catch (WebException e) | 1143 | catch (WebException e) |
1144 | { | 1144 | { |
1145 | HttpWebResponse hwr = (HttpWebResponse)e.Response; | 1145 | using (HttpWebResponse hwr = (HttpWebResponse)e.Response) |
1146 | 1146 | { | |
1147 | if (hwr != null && hwr.StatusCode == HttpStatusCode.NotFound) | 1147 | if (hwr != null && hwr.StatusCode == HttpStatusCode.NotFound) |
1148 | return deserial; | 1148 | return deserial; |
1149 | else | 1149 | else |
1150 | m_log.ErrorFormat( | 1150 | m_log.ErrorFormat( |
1151 | "[SynchronousRestObjectRequester]: WebException for {0} {1} {2}: {3} {4}", | 1151 | "[SynchronousRestObjectRequester]: WebException for {0} {1} {2}: {3} {4}", |
1152 | verb, requestUrl, typeof(TResponse).ToString(), e.Message, e.StackTrace); | 1152 | verb, requestUrl, typeof(TResponse).ToString(), e.Message, e.StackTrace); |
1153 | } | ||
1153 | } | 1154 | } |
1154 | catch (System.InvalidOperationException) | 1155 | catch (System.InvalidOperationException) |
1155 | { | 1156 | { |
diff --git a/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs b/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs index 689e8a7..f04fabe 100644 --- a/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs +++ b/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs | |||
@@ -838,13 +838,17 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender | |||
838 | try | 838 | try |
839 | { | 839 | { |
840 | WebRequest request = HttpWebRequest.Create(url); | 840 | WebRequest request = HttpWebRequest.Create(url); |
841 | //Ckrinke: Comment out for now as 'str' is unused. Bring it back into play later when it is used. | 841 | |
842 | //Ckrinke Stream str = null; | 842 | using (HttpWebResponse response = (HttpWebResponse)(request).GetResponse()) |
843 | HttpWebResponse response = (HttpWebResponse)(request).GetResponse(); | ||
844 | if (response.StatusCode == HttpStatusCode.OK) | ||
845 | { | 843 | { |
846 | Bitmap image = new Bitmap(response.GetResponseStream()); | 844 | if (response.StatusCode == HttpStatusCode.OK) |
847 | return image; | 845 | { |
846 | using (Stream s = response.GetResponseStream()) | ||
847 | { | ||
848 | Bitmap image = new Bitmap(s); | ||
849 | return image; | ||
850 | } | ||
851 | } | ||
848 | } | 852 | } |
849 | } | 853 | } |
850 | catch { } | 854 | catch { } |
diff --git a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs index 912d50a..c50ab64 100644 --- a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs +++ b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs | |||
@@ -868,20 +868,22 @@ namespace OpenSim.Region.CoreModules.World.WorldMap | |||
868 | } | 868 | } |
869 | 869 | ||
870 | string response_mapItems_reply = null; | 870 | string response_mapItems_reply = null; |
871 | { // get the response | 871 | { |
872 | StreamReader sr = null; | ||
873 | try | 872 | try |
874 | { | 873 | { |
875 | WebResponse webResponse = mapitemsrequest.GetResponse(); | 874 | using (WebResponse webResponse = mapitemsrequest.GetResponse()) |
876 | if (webResponse != null) | ||
877 | { | ||
878 | sr = new StreamReader(webResponse.GetResponseStream()); | ||
879 | response_mapItems_reply = sr.ReadToEnd().Trim(); | ||
880 | } | ||
881 | else | ||
882 | { | 875 | { |
883 | return new OSDMap(); | 876 | if (webResponse != null) |
884 | } | 877 | { |
878 | using (Stream s = webResponse.GetResponseStream()) | ||
879 | using (StreamReader sr = new StreamReader(s)) | ||
880 | response_mapItems_reply = sr.ReadToEnd().Trim(); | ||
881 | } | ||
882 | else | ||
883 | { | ||
884 | return new OSDMap(); | ||
885 | } | ||
886 | } | ||
885 | } | 887 | } |
886 | catch (WebException) | 888 | catch (WebException) |
887 | { | 889 | { |
@@ -908,11 +910,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap | |||
908 | 910 | ||
909 | return responseMap; | 911 | return responseMap; |
910 | } | 912 | } |
911 | finally | ||
912 | { | ||
913 | if (sr != null) | ||
914 | sr.Close(); | ||
915 | } | ||
916 | 913 | ||
917 | OSD rezResponse = null; | 914 | OSD rezResponse = null; |
918 | try | 915 | try |
@@ -926,6 +923,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap | |||
926 | { | 923 | { |
927 | m_log.InfoFormat("[WORLD MAP]: exception on parse of RequestMapItems reply from {0}: {1}", httpserver, ex.Message); | 924 | m_log.InfoFormat("[WORLD MAP]: exception on parse of RequestMapItems reply from {0}: {1}", httpserver, ex.Message); |
928 | responseMap["connect"] = OSD.FromBoolean(false); | 925 | responseMap["connect"] = OSD.FromBoolean(false); |
926 | |||
929 | lock (m_blacklistedregions) | 927 | lock (m_blacklistedregions) |
930 | { | 928 | { |
931 | if (!m_blacklistedregions.ContainsKey(regionhandle)) | 929 | if (!m_blacklistedregions.ContainsKey(regionhandle)) |
diff --git a/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs b/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs index 37ab35a..ef1b92e 100644 --- a/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs +++ b/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs | |||
@@ -551,13 +551,20 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
551 | reqStream.Close(); | 551 | reqStream.Close(); |
552 | } | 552 | } |
553 | 553 | ||
554 | HttpWebResponse fwdrsp = (HttpWebResponse)forwardreq.GetResponse(); | 554 | using (HttpWebResponse fwdrsp = (HttpWebResponse)forwardreq.GetResponse()) |
555 | Encoding encoding = Util.UTF8; | 555 | { |
556 | StreamReader fwdresponsestream = new StreamReader(fwdrsp.GetResponseStream(), encoding); | 556 | Encoding encoding = Util.UTF8; |
557 | fwdresponsestr = fwdresponsestream.ReadToEnd(); | 557 | |
558 | fwdresponsecontenttype = fwdrsp.ContentType; | 558 | using (Stream s = fwdrsp.GetResponseStream()) |
559 | fwdresponsecode = (int)fwdrsp.StatusCode; | 559 | { |
560 | fwdresponsestream.Close(); | 560 | using (StreamReader fwdresponsestream = new StreamReader(s)) |
561 | { | ||
562 | fwdresponsestr = fwdresponsestream.ReadToEnd(); | ||
563 | fwdresponsecontenttype = fwdrsp.ContentType; | ||
564 | fwdresponsecode = (int)fwdrsp.StatusCode; | ||
565 | } | ||
566 | } | ||
567 | } | ||
561 | 568 | ||
562 | response["content_type"] = fwdresponsecontenttype; | 569 | response["content_type"] = fwdresponsecontenttype; |
563 | response["str_response_string"] = fwdresponsestr; | 570 | response["str_response_string"] = fwdresponsestr; |
diff --git a/OpenSim/Region/OptionalModules/Avatar/Voice/VivoxVoice/VivoxVoiceModule.cs b/OpenSim/Region/OptionalModules/Avatar/Voice/VivoxVoice/VivoxVoiceModule.cs index 881807a..cb69411 100644 --- a/OpenSim/Region/OptionalModules/Avatar/Voice/VivoxVoice/VivoxVoiceModule.cs +++ b/OpenSim/Region/OptionalModules/Avatar/Voice/VivoxVoice/VivoxVoiceModule.cs | |||
@@ -1116,18 +1116,16 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.VivoxVoice | |||
1116 | // Otherwise prepare the request | 1116 | // Otherwise prepare the request |
1117 | m_log.DebugFormat("[VivoxVoice] Sending request <{0}>", requrl); | 1117 | m_log.DebugFormat("[VivoxVoice] Sending request <{0}>", requrl); |
1118 | 1118 | ||
1119 | HttpWebRequest req = (HttpWebRequest)WebRequest.Create(requrl); | 1119 | HttpWebRequest req = (HttpWebRequest)WebRequest.Create(requrl); |
1120 | HttpWebResponse rsp = null; | ||
1121 | 1120 | ||
1122 | // We are sending just parameters, no content | 1121 | // We are sending just parameters, no content |
1123 | req.ContentLength = 0; | 1122 | req.ContentLength = 0; |
1124 | 1123 | ||
1125 | // Send request and retrieve the response | 1124 | // Send request and retrieve the response |
1126 | rsp = (HttpWebResponse)req.GetResponse(); | 1125 | using (HttpWebResponse rsp = (HttpWebResponse)req.GetResponse()) |
1127 | 1126 | using (Stream s = rsp.GetResponseStream()) | |
1128 | XmlTextReader rdr = new XmlTextReader(rsp.GetResponseStream()); | 1127 | using (XmlTextReader rdr = new XmlTextReader(s)) |
1129 | doc.Load(rdr); | 1128 | doc.Load(rdr); |
1130 | rdr.Close(); | ||
1131 | } | 1129 | } |
1132 | catch (Exception e) | 1130 | catch (Exception e) |
1133 | { | 1131 | { |
diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsServicesConnectorModule.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsServicesConnectorModule.cs index 1101851..71b24ac 100644 --- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsServicesConnectorModule.cs +++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsServicesConnectorModule.cs | |||
@@ -1146,28 +1146,38 @@ namespace Nwc.XmlRpc | |||
1146 | request.AllowWriteStreamBuffering = true; | 1146 | request.AllowWriteStreamBuffering = true; |
1147 | request.KeepAlive = !_disableKeepAlive; | 1147 | request.KeepAlive = !_disableKeepAlive; |
1148 | 1148 | ||
1149 | Stream stream = request.GetRequestStream(); | 1149 | using (Stream stream = request.GetRequestStream()) |
1150 | XmlTextWriter xml = new XmlTextWriter(stream, Encoding.ASCII); | ||
1151 | _serializer.Serialize(xml, this); | ||
1152 | xml.Flush(); | ||
1153 | xml.Close(); | ||
1154 | |||
1155 | HttpWebResponse response = (HttpWebResponse)request.GetResponse(); | ||
1156 | StreamReader input = new StreamReader(response.GetResponseStream()); | ||
1157 | |||
1158 | string inputXml = input.ReadToEnd(); | ||
1159 | XmlRpcResponse resp; | ||
1160 | try | ||
1161 | { | 1150 | { |
1162 | resp = (XmlRpcResponse)_deserializer.Deserialize(inputXml); | 1151 | using (XmlTextWriter xml = new XmlTextWriter(stream, Encoding.ASCII)) |
1152 | { | ||
1153 | _serializer.Serialize(xml, this); | ||
1154 | xml.Flush(); | ||
1155 | } | ||
1163 | } | 1156 | } |
1164 | catch (Exception e) | 1157 | |
1158 | XmlRpcResponse resp; | ||
1159 | |||
1160 | using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) | ||
1165 | { | 1161 | { |
1166 | RequestResponse = inputXml; | 1162 | using (Stream s = response.GetResponseStream()) |
1167 | throw e; | 1163 | { |
1164 | using (StreamReader input = new StreamReader(s)) | ||
1165 | { | ||
1166 | string inputXml = input.ReadToEnd(); | ||
1167 | |||
1168 | try | ||
1169 | { | ||
1170 | resp = (XmlRpcResponse)_deserializer.Deserialize(inputXml); | ||
1171 | } | ||
1172 | catch (Exception e) | ||
1173 | { | ||
1174 | RequestResponse = inputXml; | ||
1175 | throw e; | ||
1176 | } | ||
1177 | } | ||
1178 | } | ||
1168 | } | 1179 | } |
1169 | input.Close(); | 1180 | |
1170 | response.Close(); | ||
1171 | return resp; | 1181 | return resp; |
1172 | } | 1182 | } |
1173 | } | 1183 | } |
diff --git a/OpenSim/Services/Connectors/Hypergrid/HeloServicesConnector.cs b/OpenSim/Services/Connectors/Hypergrid/HeloServicesConnector.cs index 5c50936..5004d99 100644 --- a/OpenSim/Services/Connectors/Hypergrid/HeloServicesConnector.cs +++ b/OpenSim/Services/Connectors/Hypergrid/HeloServicesConnector.cs | |||
@@ -73,7 +73,6 @@ namespace OpenSim.Services.Connectors | |||
73 | } | 73 | } |
74 | } | 74 | } |
75 | 75 | ||
76 | |||
77 | public virtual string Helo() | 76 | public virtual string Helo() |
78 | { | 77 | { |
79 | HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(m_ServerURI); | 78 | HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(m_ServerURI); |
@@ -82,10 +81,12 @@ namespace OpenSim.Services.Connectors | |||
82 | 81 | ||
83 | try | 82 | try |
84 | { | 83 | { |
85 | WebResponse response = req.GetResponse(); | 84 | using (WebResponse response = req.GetResponse()) |
86 | if (response.Headers.Get("X-Handlers-Provided") == null) // just in case this ever returns a null | 85 | { |
87 | return string.Empty; | 86 | if (response.Headers.Get("X-Handlers-Provided") == null) // just in case this ever returns a null |
88 | return response.Headers.Get("X-Handlers-Provided"); | 87 | return string.Empty; |
88 | return response.Headers.Get("X-Handlers-Provided"); | ||
89 | } | ||
89 | } | 90 | } |
90 | catch (Exception e) | 91 | catch (Exception e) |
91 | { | 92 | { |
@@ -95,6 +96,5 @@ namespace OpenSim.Services.Connectors | |||
95 | // fail | 96 | // fail |
96 | return string.Empty; | 97 | return string.Empty; |
97 | } | 98 | } |
98 | |||
99 | } | 99 | } |
100 | } | 100 | } \ No newline at end of file |
diff --git a/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs b/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs index 2f263ae..47d0cce 100644 --- a/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs +++ b/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs | |||
@@ -171,41 +171,45 @@ namespace OpenSim.Services.Connectors.Hypergrid | |||
171 | // Let's wait for the response | 171 | // Let's wait for the response |
172 | //m_log.Info("[USER AGENT CONNECTOR]: Waiting for a reply after DoCreateChildAgentCall"); | 172 | //m_log.Info("[USER AGENT CONNECTOR]: Waiting for a reply after DoCreateChildAgentCall"); |
173 | 173 | ||
174 | WebResponse webResponse = null; | ||
175 | StreamReader sr = null; | ||
176 | try | 174 | try |
177 | { | 175 | { |
178 | webResponse = AgentCreateRequest.GetResponse(); | 176 | using (WebResponse webResponse = AgentCreateRequest.GetResponse()) |
179 | if (webResponse == null) | ||
180 | { | 177 | { |
181 | m_log.Info("[USER AGENT CONNECTOR]: Null reply on DoCreateChildAgentCall post"); | 178 | if (webResponse == null) |
182 | } | ||
183 | else | ||
184 | { | ||
185 | |||
186 | sr = new StreamReader(webResponse.GetResponseStream()); | ||
187 | string response = sr.ReadToEnd().Trim(); | ||
188 | m_log.InfoFormat("[USER AGENT CONNECTOR]: DoCreateChildAgentCall reply was {0} ", response); | ||
189 | |||
190 | if (!String.IsNullOrEmpty(response)) | ||
191 | { | 179 | { |
192 | try | 180 | m_log.Info("[USER AGENT CONNECTOR]: Null reply on DoCreateChildAgentCall post"); |
193 | { | 181 | } |
194 | // we assume we got an OSDMap back | 182 | else |
195 | OSDMap r = Util.GetOSDMap(response); | 183 | { |
196 | bool success = r["success"].AsBoolean(); | 184 | using (Stream s = webResponse.GetResponseStream()) |
197 | reason = r["reason"].AsString(); | ||
198 | return success; | ||
199 | } | ||
200 | catch (NullReferenceException e) | ||
201 | { | 185 | { |
202 | m_log.InfoFormat("[USER AGENT CONNECTOR]: exception on reply of DoCreateChildAgentCall {0}", e.Message); | 186 | using (StreamReader sr = new StreamReader(s)) |
203 | 187 | { | |
204 | // check for old style response | 188 | string response = sr.ReadToEnd().Trim(); |
205 | if (response.ToLower().StartsWith("true")) | 189 | m_log.InfoFormat("[USER AGENT CONNECTOR]: DoCreateChildAgentCall reply was {0} ", response); |
206 | return true; | 190 | |
207 | 191 | if (!String.IsNullOrEmpty(response)) | |
208 | return false; | 192 | { |
193 | try | ||
194 | { | ||
195 | // we assume we got an OSDMap back | ||
196 | OSDMap r = Util.GetOSDMap(response); | ||
197 | bool success = r["success"].AsBoolean(); | ||
198 | reason = r["reason"].AsString(); | ||
199 | return success; | ||
200 | } | ||
201 | catch (NullReferenceException e) | ||
202 | { | ||
203 | m_log.InfoFormat("[USER AGENT CONNECTOR]: exception on reply of DoCreateChildAgentCall {0}", e.Message); | ||
204 | |||
205 | // check for old style response | ||
206 | if (response.ToLower().StartsWith("true")) | ||
207 | return true; | ||
208 | |||
209 | return false; | ||
210 | } | ||
211 | } | ||
212 | } | ||
209 | } | 213 | } |
210 | } | 214 | } |
211 | } | 215 | } |
@@ -216,11 +220,6 @@ namespace OpenSim.Services.Connectors.Hypergrid | |||
216 | reason = "Destination did not reply"; | 220 | reason = "Destination did not reply"; |
217 | return false; | 221 | return false; |
218 | } | 222 | } |
219 | finally | ||
220 | { | ||
221 | if (sr != null) | ||
222 | sr.Close(); | ||
223 | } | ||
224 | 223 | ||
225 | return true; | 224 | return true; |
226 | 225 | ||
diff --git a/OpenSim/Services/Connectors/Neighbour/NeighbourServicesConnector.cs b/OpenSim/Services/Connectors/Neighbour/NeighbourServicesConnector.cs index 7429293..5948380 100644 --- a/OpenSim/Services/Connectors/Neighbour/NeighbourServicesConnector.cs +++ b/OpenSim/Services/Connectors/Neighbour/NeighbourServicesConnector.cs | |||
@@ -168,22 +168,27 @@ namespace OpenSim.Services.Connectors | |||
168 | // Let's wait for the response | 168 | // Let's wait for the response |
169 | //m_log.Info("[REST COMMS]: Waiting for a reply after DoHelloNeighbourCall"); | 169 | //m_log.Info("[REST COMMS]: Waiting for a reply after DoHelloNeighbourCall"); |
170 | 170 | ||
171 | StreamReader sr = null; | ||
172 | try | 171 | try |
173 | { | 172 | { |
174 | WebResponse webResponse = helloNeighbourRequest.GetResponse(); | 173 | using (WebResponse webResponse = helloNeighbourRequest.GetResponse()) |
175 | if (webResponse == null) | ||
176 | { | 174 | { |
177 | m_log.DebugFormat( | 175 | if (webResponse == null) |
178 | "[REST COMMS]: Null reply on DoHelloNeighbourCall post from {0} to {1}", | 176 | { |
179 | thisRegion.RegionName, region.RegionName); | 177 | m_log.DebugFormat( |
178 | "[REST COMMS]: Null reply on DoHelloNeighbourCall post from {0} to {1}", | ||
179 | thisRegion.RegionName, region.RegionName); | ||
180 | } | ||
181 | |||
182 | using (Stream s = webResponse.GetResponseStream()) | ||
183 | { | ||
184 | using (StreamReader sr = new StreamReader(s)) | ||
185 | { | ||
186 | //reply = sr.ReadToEnd().Trim(); | ||
187 | sr.ReadToEnd().Trim(); | ||
188 | //m_log.InfoFormat("[REST COMMS]: DoHelloNeighbourCall reply was {0} ", reply); | ||
189 | } | ||
190 | } | ||
180 | } | 191 | } |
181 | |||
182 | sr = new StreamReader(webResponse.GetResponseStream()); | ||
183 | //reply = sr.ReadToEnd().Trim(); | ||
184 | sr.ReadToEnd().Trim(); | ||
185 | //m_log.InfoFormat("[REST COMMS]: DoHelloNeighbourCall reply was {0} ", reply); | ||
186 | |||
187 | } | 192 | } |
188 | catch (Exception e) | 193 | catch (Exception e) |
189 | { | 194 | { |
@@ -193,11 +198,6 @@ namespace OpenSim.Services.Connectors | |||
193 | 198 | ||
194 | return false; | 199 | return false; |
195 | } | 200 | } |
196 | finally | ||
197 | { | ||
198 | if (sr != null) | ||
199 | sr.Close(); | ||
200 | } | ||
201 | 201 | ||
202 | return true; | 202 | return true; |
203 | } | 203 | } |
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs index 63a32e7..74b980c 100644 --- a/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs +++ b/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs | |||
@@ -339,36 +339,38 @@ namespace OpenSim.Services.Connectors.SimianGrid | |||
339 | // Simian does not require the asset ID to be in the URL because it's in the post data. | 339 | // Simian does not require the asset ID to be in the URL because it's in the post data. |
340 | // By appending it to the URL also, we allow caching proxies (squid) to invalidate asset URLs | 340 | // By appending it to the URL also, we allow caching proxies (squid) to invalidate asset URLs |
341 | HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(m_serverUrl + asset.FullID.ToString()); | 341 | HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(m_serverUrl + asset.FullID.ToString()); |
342 | |||
343 | HttpWebResponse response = MultipartForm.Post(request, postParameters); | ||
344 | using (Stream responseStream = response.GetResponseStream()) | ||
345 | { | ||
346 | string responseStr = null; | ||
347 | 342 | ||
348 | try | 343 | using (HttpWebResponse response = MultipartForm.Post(request, postParameters)) |
344 | { | ||
345 | using (Stream responseStream = response.GetResponseStream()) | ||
349 | { | 346 | { |
350 | responseStr = responseStream.GetStreamString(); | 347 | string responseStr = null; |
351 | OSD responseOSD = OSDParser.Deserialize(responseStr); | 348 | |
352 | if (responseOSD.Type == OSDType.Map) | 349 | try |
353 | { | 350 | { |
354 | OSDMap responseMap = (OSDMap)responseOSD; | 351 | responseStr = responseStream.GetStreamString(); |
355 | if (responseMap["Success"].AsBoolean()) | 352 | OSD responseOSD = OSDParser.Deserialize(responseStr); |
356 | return asset.ID; | 353 | if (responseOSD.Type == OSDType.Map) |
354 | { | ||
355 | OSDMap responseMap = (OSDMap)responseOSD; | ||
356 | if (responseMap["Success"].AsBoolean()) | ||
357 | return asset.ID; | ||
358 | else | ||
359 | errorMessage = "Upload failed: " + responseMap["Message"].AsString(); | ||
360 | } | ||
357 | else | 361 | else |
358 | errorMessage = "Upload failed: " + responseMap["Message"].AsString(); | 362 | { |
363 | errorMessage = "Response format was invalid:\n" + responseStr; | ||
364 | } | ||
359 | } | 365 | } |
360 | else | 366 | catch (Exception ex) |
361 | { | 367 | { |
362 | errorMessage = "Response format was invalid:\n" + responseStr; | 368 | if (!String.IsNullOrEmpty(responseStr)) |
369 | errorMessage = "Failed to parse the response:\n" + responseStr; | ||
370 | else | ||
371 | errorMessage = "Failed to retrieve the response: " + ex.Message; | ||
363 | } | 372 | } |
364 | } | 373 | } |
365 | catch (Exception ex) | ||
366 | { | ||
367 | if (!String.IsNullOrEmpty(responseStr)) | ||
368 | errorMessage = "Failed to parse the response:\n" + responseStr; | ||
369 | else | ||
370 | errorMessage = "Failed to retrieve the response: " + ex.Message; | ||
371 | } | ||
372 | } | 374 | } |
373 | } | 375 | } |
374 | catch (WebException ex) | 376 | catch (WebException ex) |
@@ -378,6 +380,7 @@ namespace OpenSim.Services.Connectors.SimianGrid | |||
378 | 380 | ||
379 | m_log.WarnFormat("[SIMIAN ASSET CONNECTOR]: Failed to store asset \"{0}\" ({1}, {2}): {3}", | 381 | m_log.WarnFormat("[SIMIAN ASSET CONNECTOR]: Failed to store asset \"{0}\" ({1}, {2}): {3}", |
380 | asset.Name, asset.ID, asset.Metadata.ContentType, errorMessage); | 382 | asset.Name, asset.ID, asset.Metadata.ContentType, errorMessage); |
383 | |||
381 | return null; | 384 | return null; |
382 | } | 385 | } |
383 | 386 | ||