diff options
author | Melanie | 2011-11-24 01:16:37 +0000 |
---|---|---|
committer | Melanie | 2011-11-24 01:16:37 +0000 |
commit | a8270cb48cf8dbca7595da5963d8fafdb1141529 (patch) | |
tree | cf878acca0c652239f4441c3783647b6b0b688a6 /OpenSim/Services | |
parent | Merge branch 'master' into bigmerge (diff) | |
parent | Append asset ID to URL for storage requests to allow caching proxies to work ... (diff) | |
download | opensim-SC-a8270cb48cf8dbca7595da5963d8fafdb1141529.zip opensim-SC-a8270cb48cf8dbca7595da5963d8fafdb1141529.tar.gz opensim-SC-a8270cb48cf8dbca7595da5963d8fafdb1141529.tar.bz2 opensim-SC-a8270cb48cf8dbca7595da5963d8fafdb1141529.tar.xz |
Merge branch 'master' into bigmerge
Diffstat (limited to 'OpenSim/Services')
-rw-r--r-- | OpenSim/Services/Connectors/Neighbour/NeighbourServiceConnector.cs | 65 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs | 4 |
2 files changed, 49 insertions, 20 deletions
diff --git a/OpenSim/Services/Connectors/Neighbour/NeighbourServiceConnector.cs b/OpenSim/Services/Connectors/Neighbour/NeighbourServiceConnector.cs index 2cae02d..888b072 100644 --- a/OpenSim/Services/Connectors/Neighbour/NeighbourServiceConnector.cs +++ b/OpenSim/Services/Connectors/Neighbour/NeighbourServiceConnector.cs | |||
@@ -87,12 +87,26 @@ namespace OpenSim.Services.Connectors | |||
87 | public bool DoHelloNeighbourCall(GridRegion region, RegionInfo thisRegion) | 87 | public bool DoHelloNeighbourCall(GridRegion region, RegionInfo thisRegion) |
88 | { | 88 | { |
89 | string uri = region.ServerURI + "region/" + thisRegion.RegionID + "/"; | 89 | string uri = region.ServerURI + "region/" + thisRegion.RegionID + "/"; |
90 | //m_log.Debug(" >>> DoHelloNeighbourCall <<< " + uri); | 90 | // m_log.Debug(" >>> DoHelloNeighbourCall <<< " + uri); |
91 | 91 | ||
92 | WebRequest HelloNeighbourRequest = WebRequest.Create(uri); | 92 | WebRequest helloNeighbourRequest; |
93 | HelloNeighbourRequest.Method = "POST"; | 93 | |
94 | HelloNeighbourRequest.ContentType = "application/json"; | 94 | try |
95 | HelloNeighbourRequest.Timeout = 10000; | 95 | { |
96 | helloNeighbourRequest = WebRequest.Create(uri); | ||
97 | } | ||
98 | catch (Exception e) | ||
99 | { | ||
100 | m_log.WarnFormat( | ||
101 | "[NEIGHBOUR SERVICE CONNCTOR]: Unable to parse uri {0} to send HelloNeighbour from {1} to {2}. Exception {3}{4}", | ||
102 | uri, thisRegion.RegionName, region.RegionName, e.Message, e.StackTrace); | ||
103 | |||
104 | return false; | ||
105 | } | ||
106 | |||
107 | helloNeighbourRequest.Method = "POST"; | ||
108 | helloNeighbourRequest.ContentType = "application/json"; | ||
109 | helloNeighbourRequest.Timeout = 10000; | ||
96 | 110 | ||
97 | // Fill it in | 111 | // Fill it in |
98 | OSDMap args = null; | 112 | OSDMap args = null; |
@@ -102,38 +116,48 @@ namespace OpenSim.Services.Connectors | |||
102 | } | 116 | } |
103 | catch (Exception e) | 117 | catch (Exception e) |
104 | { | 118 | { |
105 | m_log.Debug("[REST COMMS]: PackRegionInfoData failed with exception: " + e.Message); | 119 | m_log.WarnFormat( |
120 | "[NEIGHBOUR SERVICE CONNCTOR]: PackRegionInfoData failed for HelloNeighbour from {0} to {1}. Exception {2}{3}", | ||
121 | thisRegion.RegionName, region.RegionName, e.Message, e.StackTrace); | ||
122 | |||
106 | return false; | 123 | return false; |
107 | } | 124 | } |
125 | |||
108 | // Add the regionhandle of the destination region | 126 | // Add the regionhandle of the destination region |
109 | args["destination_handle"] = OSD.FromString(region.RegionHandle.ToString()); | 127 | args["destination_handle"] = OSD.FromString(region.RegionHandle.ToString()); |
110 | 128 | ||
111 | string strBuffer = ""; | 129 | string strBuffer = ""; |
112 | byte[] buffer = new byte[1]; | 130 | byte[] buffer = new byte[1]; |
131 | |||
113 | try | 132 | try |
114 | { | 133 | { |
115 | strBuffer = OSDParser.SerializeJsonString(args); | 134 | strBuffer = OSDParser.SerializeJsonString(args); |
116 | UTF8Encoding str = new UTF8Encoding(); | 135 | UTF8Encoding str = new UTF8Encoding(); |
117 | buffer = str.GetBytes(strBuffer); | 136 | buffer = str.GetBytes(strBuffer); |
118 | |||
119 | } | 137 | } |
120 | catch (Exception e) | 138 | catch (Exception e) |
121 | { | 139 | { |
122 | m_log.WarnFormat("[REST COMMS]: Exception thrown on serialization of HelloNeighbour: {0}", e.Message); | 140 | m_log.WarnFormat( |
141 | "[NEIGHBOUR SERVICE CONNCTOR]: Exception thrown on serialization of HelloNeighbour from {0} to {1}. Exception {2}{3}", | ||
142 | thisRegion.RegionName, region.RegionName, e.Message, e.StackTrace); | ||
143 | |||
123 | return false; | 144 | return false; |
124 | } | 145 | } |
125 | 146 | ||
126 | Stream os = null; | 147 | Stream os = null; |
127 | try | 148 | try |
128 | { // send the Post | 149 | { // send the Post |
129 | HelloNeighbourRequest.ContentLength = buffer.Length; //Count bytes to send | 150 | helloNeighbourRequest.ContentLength = buffer.Length; //Count bytes to send |
130 | os = HelloNeighbourRequest.GetRequestStream(); | 151 | os = helloNeighbourRequest.GetRequestStream(); |
131 | os.Write(buffer, 0, strBuffer.Length); //Send it | 152 | os.Write(buffer, 0, strBuffer.Length); //Send it |
132 | //m_log.InfoFormat("[REST COMMS]: Posted HelloNeighbour request to remote sim {0}", uri); | 153 | //m_log.InfoFormat("[REST COMMS]: Posted HelloNeighbour request to remote sim {0}", uri); |
133 | } | 154 | } |
134 | catch (Exception ex) | 155 | catch (Exception e) |
135 | { | 156 | { |
136 | m_log.InfoFormat("[REST COMMS]: Unable to send HelloNeighbour to {0}: {1}", region.RegionName, ex.Message); | 157 | m_log.WarnFormat( |
158 | "[NEIGHBOUR SERVICE CONNCTOR]: Unable to send HelloNeighbour from {0} to {1}. Exception {2}{3}", | ||
159 | thisRegion.RegionName, region.RegionName, e.Message, e.StackTrace); | ||
160 | |||
137 | return false; | 161 | return false; |
138 | } | 162 | } |
139 | finally | 163 | finally |
@@ -148,10 +172,12 @@ namespace OpenSim.Services.Connectors | |||
148 | StreamReader sr = null; | 172 | StreamReader sr = null; |
149 | try | 173 | try |
150 | { | 174 | { |
151 | WebResponse webResponse = HelloNeighbourRequest.GetResponse(); | 175 | WebResponse webResponse = helloNeighbourRequest.GetResponse(); |
152 | if (webResponse == null) | 176 | if (webResponse == null) |
153 | { | 177 | { |
154 | m_log.Info("[REST COMMS]: Null reply on DoHelloNeighbourCall post"); | 178 | m_log.DebugFormat( |
179 | "[REST COMMS]: Null reply on DoHelloNeighbourCall post from {0} to {1}", | ||
180 | thisRegion.RegionName, region.RegionName); | ||
155 | } | 181 | } |
156 | 182 | ||
157 | sr = new StreamReader(webResponse.GetResponseStream()); | 183 | sr = new StreamReader(webResponse.GetResponseStream()); |
@@ -160,9 +186,12 @@ namespace OpenSim.Services.Connectors | |||
160 | //m_log.InfoFormat("[REST COMMS]: DoHelloNeighbourCall reply was {0} ", reply); | 186 | //m_log.InfoFormat("[REST COMMS]: DoHelloNeighbourCall reply was {0} ", reply); |
161 | 187 | ||
162 | } | 188 | } |
163 | catch (Exception ex) | 189 | catch (Exception e) |
164 | { | 190 | { |
165 | m_log.InfoFormat("[REST COMMS]: exception on reply of DoHelloNeighbourCall {0}", ex.Message); | 191 | m_log.WarnFormat( |
192 | "[NEIGHBOUR SERVICE CONNCTOR]: Exception on reply of DoHelloNeighbourCall from {0} back to {1}. Exception {2}{3}", | ||
193 | region.RegionName, thisRegion.RegionName, e.Message, e.StackTrace); | ||
194 | |||
166 | return false; | 195 | return false; |
167 | } | 196 | } |
168 | finally | 197 | finally |
@@ -172,8 +201,6 @@ namespace OpenSim.Services.Connectors | |||
172 | } | 201 | } |
173 | 202 | ||
174 | return true; | 203 | return true; |
175 | |||
176 | } | 204 | } |
177 | |||
178 | } | 205 | } |
179 | } | 206 | } \ No newline at end of file |
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs index d8089ac..9573e21 100644 --- a/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs +++ b/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs | |||
@@ -334,7 +334,9 @@ namespace OpenSim.Services.Connectors.SimianGrid | |||
334 | // Make the remote storage request | 334 | // Make the remote storage request |
335 | try | 335 | try |
336 | { | 336 | { |
337 | HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(m_serverUrl); | 337 | // Simian does not require the asset ID to be in the URL because it's in the post data. |
338 | // By appending it to the URL also, we allow caching proxies (squid) to invalidate asset URLs | ||
339 | HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(m_serverUrl + asset.FullID.ToString()); | ||
338 | 340 | ||
339 | HttpWebResponse response = MultipartForm.Post(request, postParameters); | 341 | HttpWebResponse response = MultipartForm.Post(request, postParameters); |
340 | using (Stream responseStream = response.GetResponseStream()) | 342 | using (Stream responseStream = response.GetResponseStream()) |