aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Framework/LLSDxmlEncode.cs18
-rw-r--r--OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs53
2 files changed, 43 insertions, 28 deletions
diff --git a/OpenSim/Framework/LLSDxmlEncode.cs b/OpenSim/Framework/LLSDxmlEncode.cs
index e095363..5447963 100644
--- a/OpenSim/Framework/LLSDxmlEncode.cs
+++ b/OpenSim/Framework/LLSDxmlEncode.cs
@@ -48,11 +48,28 @@ namespace OpenSim.Framework
48 sb.Append("<llsd>"); 48 sb.Append("<llsd>");
49 } 49 }
50 50
51 // got tired of creating a stringbuilder all the time;
52 public static StringBuilder Start(int size = 256, bool addxmlversion = false)
53 {
54 StringBuilder sb = new StringBuilder(size);
55 if(addxmlversion)
56 sb.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?><llsd>"); // legacy llsd xml name still valid
57 else
58 sb.Append("<llsd>");
59 return sb;
60 }
61
51 public static void AddEnd(StringBuilder sb) 62 public static void AddEnd(StringBuilder sb)
52 { 63 {
53 sb.Append("</llsd>"); 64 sb.Append("</llsd>");
54 } 65 }
55 66
67 public static string End(StringBuilder sb)
68 {
69 sb.Append("</llsd>");
70 return sb.ToString();
71 }
72
56 // map == a list of key value pairs 73 // map == a list of key value pairs
57 public static void AddMap(StringBuilder sb) 74 public static void AddMap(StringBuilder sb)
58 { 75 {
@@ -452,7 +469,6 @@ namespace OpenSim.Framework
452 { 469 {
453 int i; 470 int i;
454 char c; 471 char c;
455 String t;
456 int len = s.Length; 472 int len = s.Length;
457 473
458 for (i = 0; i < len; i++) 474 for (i = 0; i < len; i++)
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
index 5c5d2b9..bbfe68c 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
@@ -1378,8 +1378,8 @@ namespace OpenSim.Region.ClientStack.Linden
1378 OSDMap req = (OSDMap)OSDParser.DeserializeLLSDXml(request); 1378 OSDMap req = (OSDMap)OSDParser.DeserializeLLSDXml(request);
1379 OSDArray object_ids = (OSDArray)req["object_ids"]; 1379 OSDArray object_ids = (OSDArray)req["object_ids"];
1380 1380
1381 StringBuilder lsl = new StringBuilder(256); 1381 StringBuilder lsl = LLSDxmlEncode.Start();
1382 LLSDxmlEncode.AddStart(lsl); 1382
1383 if(object_ids.Count == 0) 1383 if(object_ids.Count == 0)
1384 LLSDxmlEncode.AddEmpyMap(lsl); 1384 LLSDxmlEncode.AddEmpyMap(lsl);
1385 else 1385 else
@@ -1405,8 +1405,8 @@ namespace OpenSim.Region.ClientStack.Linden
1405 LLSDxmlEncode.AddEndMap(lsl); 1405 LLSDxmlEncode.AddEndMap(lsl);
1406 } 1406 }
1407 } 1407 }
1408 LLSDxmlEncode.AddEnd(lsl); 1408
1409 return lsl.ToString(); 1409 return LLSDxmlEncode.End(lsl);
1410 } 1410 }
1411 1411
1412 public string GetObjectCost(string request, string path, 1412 public string GetObjectCost(string request, string path,
@@ -1416,8 +1416,8 @@ namespace OpenSim.Region.ClientStack.Linden
1416 OSDMap req = (OSDMap)OSDParser.DeserializeLLSDXml(request); 1416 OSDMap req = (OSDMap)OSDParser.DeserializeLLSDXml(request);
1417 OSDArray object_ids = (OSDArray)req["object_ids"]; 1417 OSDArray object_ids = (OSDArray)req["object_ids"];
1418 1418
1419 StringBuilder lsl = new StringBuilder(512); 1419 StringBuilder lsl = LLSDxmlEncode.Start(512);
1420 LLSDxmlEncode.AddStart(lsl); 1420
1421 if(object_ids.Count == 0) 1421 if(object_ids.Count == 0)
1422 LLSDxmlEncode.AddEmpyMap(lsl); 1422 LLSDxmlEncode.AddEmpyMap(lsl);
1423 else 1423 else
@@ -1466,8 +1466,7 @@ namespace OpenSim.Region.ClientStack.Linden
1466 LLSDxmlEncode.AddEndMap(lsl); 1466 LLSDxmlEncode.AddEndMap(lsl);
1467 } 1467 }
1468 1468
1469 LLSDxmlEncode.AddEnd(lsl); 1469 return LLSDxmlEncode.End(lsl);
1470 return lsl.ToString();
1471 } 1470 }
1472 1471
1473 public string ResourceCostSelected(string request, string path, 1472 public string ResourceCostSelected(string request, string path,
@@ -1475,8 +1474,6 @@ namespace OpenSim.Region.ClientStack.Linden
1475 IOSHttpResponse httpResponse) 1474 IOSHttpResponse httpResponse)
1476 { 1475 {
1477 OSDMap req = (OSDMap)OSDParser.DeserializeLLSDXml(request); 1476 OSDMap req = (OSDMap)OSDParser.DeserializeLLSDXml(request);
1478 OSDMap resp = new OSDMap();
1479
1480 1477
1481 float phys=0; 1478 float phys=0;
1482 float stream=0; 1479 float stream=0;
@@ -1527,16 +1524,21 @@ namespace OpenSim.Region.ClientStack.Linden
1527 } 1524 }
1528 } 1525 }
1529 1526
1530 OSDMap object_data = new OSDMap(); 1527 StringBuilder lsl = LLSDxmlEncode.Start();
1528 LLSDxmlEncode.AddMap(lsl);
1531 1529
1532 object_data["physics"] = phys; 1530 LLSDxmlEncode.AddMap("selected", lsl);
1533 object_data["streaming"] = stream;
1534 object_data["simulation"] = simul;
1535 1531
1536 resp["selected"] = object_data; 1532 LLSDxmlEncode.AddElem("physics", phys, lsl);
1533 LLSDxmlEncode.AddElem("streaming", stream, lsl);
1534 LLSDxmlEncode.AddElem("simulation", simul, lsl);
1535
1536 LLSDxmlEncode.AddEndMap(lsl);
1537 LLSDxmlEncode.AddEndMap(lsl);
1538
1537// resp["transaction_id"] = "undef"; 1539// resp["transaction_id"] = "undef";
1538 string response = OSDParser.SerializeLLSDXmlString(resp); 1540 return LLSDxmlEncode.End(lsl);
1539 return response; 1541
1540 } 1542 }
1541 1543
1542 public string UpdateAgentInformation(string request, string path, 1544 public string UpdateAgentInformation(string request, string path,
@@ -1839,13 +1841,17 @@ namespace OpenSim.Region.ClientStack.Linden
1839 return ""; 1841 return "";
1840 } 1842 }
1841 1843
1844 // Full content request
1845 httpResponse.StatusCode = (int)System.Net.HttpStatusCode.OK;
1846 //httpResponse.ContentLength = ??;
1847 httpResponse.ContentType = "application/llsd+xml";
1848
1842 NameValueCollection query = HttpUtility.ParseQueryString(httpRequest.Url.Query); 1849 NameValueCollection query = HttpUtility.ParseQueryString(httpRequest.Url.Query);
1843 string[] ids = query.GetValues("ids"); 1850 string[] ids = query.GetValues("ids");
1844 1851
1845 Dictionary<UUID,string> names = m_UserManager.GetUsersNames(ids); 1852 Dictionary<UUID,string> names = m_UserManager.GetUsersNames(ids);
1846 1853
1847 StringBuilder lsl = new StringBuilder(names.Count * 256 + 256); 1854 StringBuilder lsl = LLSDxmlEncode.Start(names.Count * 256 + 256);
1848 LLSDxmlEncode.AddStart(lsl);
1849 LLSDxmlEncode.AddMap(lsl); 1855 LLSDxmlEncode.AddMap(lsl);
1850 if(names.Count == 0) 1856 if(names.Count == 0)
1851 LLSDxmlEncode.AddEmpyArray("agents", lsl); 1857 LLSDxmlEncode.AddEmpyArray("agents", lsl);
@@ -1881,14 +1887,7 @@ namespace OpenSim.Region.ClientStack.Linden
1881 } 1887 }
1882 1888
1883 LLSDxmlEncode.AddEndMap(lsl); 1889 LLSDxmlEncode.AddEndMap(lsl);
1884 LLSDxmlEncode.AddEnd(lsl); 1890 return LLSDxmlEncode.End(lsl);;
1885
1886 // Full content request
1887 httpResponse.StatusCode = (int)System.Net.HttpStatusCode.OK;
1888 //httpResponse.ContentLength = ??;
1889 httpResponse.ContentType = "application/llsd+xml";
1890
1891 return lsl.ToString();
1892 } 1891 }
1893 } 1892 }
1894 1893