aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs')
-rw-r--r--OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs47
1 files changed, 25 insertions, 22 deletions
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