diff options
author | Dr Scofield | 2009-05-18 09:34:30 +0000 |
---|---|---|
committer | Dr Scofield | 2009-05-18 09:34:30 +0000 |
commit | 2ad8710e190b7543989cdb96a5268d21d2b5cefb (patch) | |
tree | 1ebf5e7463f04201459ff2fcd8f81b32a23d6ab2 /OpenSim/ApplicationPlugins/Rest/Regions | |
parent | Thank you kindly, StrawberryFride, for a patch that: (diff) | |
download | opensim-SC-2ad8710e190b7543989cdb96a5268d21d2b5cefb.zip opensim-SC-2ad8710e190b7543989cdb96a5268d21d2b5cefb.tar.gz opensim-SC-2ad8710e190b7543989cdb96a5268d21d2b5cefb.tar.bz2 opensim-SC-2ad8710e190b7543989cdb96a5268d21d2b5cefb.tar.xz |
fixing XmlWriter problem
Diffstat (limited to '')
3 files changed, 81 insertions, 72 deletions
diff --git a/OpenSim/ApplicationPlugins/Rest/Regions/GETHandler.cs b/OpenSim/ApplicationPlugins/Rest/Regions/GETHandler.cs index 3fc7c06..ced3e5c 100644 --- a/OpenSim/ApplicationPlugins/Rest/Regions/GETHandler.cs +++ b/OpenSim/ApplicationPlugins/Rest/Regions/GETHandler.cs | |||
@@ -65,29 +65,33 @@ namespace OpenSim.ApplicationPlugins.Rest.Regions | |||
65 | 65 | ||
66 | public string GetHandlerRegions(OSHttpResponse httpResponse) | 66 | public string GetHandlerRegions(OSHttpResponse httpResponse) |
67 | { | 67 | { |
68 | XmlWriter.WriteStartElement(String.Empty, "regions", String.Empty); | 68 | RestXmlWriter rxw = new RestXmlWriter(new StringWriter()); |
69 | |||
70 | rxw.WriteStartElement(String.Empty, "regions", String.Empty); | ||
69 | foreach (Scene s in App.SceneManager.Scenes) | 71 | foreach (Scene s in App.SceneManager.Scenes) |
70 | { | 72 | { |
71 | XmlWriter.WriteStartElement(String.Empty, "uuid", String.Empty); | 73 | rxw.WriteStartElement(String.Empty, "uuid", String.Empty); |
72 | XmlWriter.WriteString(s.RegionInfo.RegionID.ToString()); | 74 | rxw.WriteString(s.RegionInfo.RegionID.ToString()); |
73 | XmlWriter.WriteEndElement(); | 75 | rxw.WriteEndElement(); |
74 | } | 76 | } |
75 | XmlWriter.WriteEndElement(); | 77 | rxw.WriteEndElement(); |
76 | 78 | ||
77 | return XmlWriterResult; | 79 | return rxw.ToString(); |
78 | } | 80 | } |
79 | 81 | ||
80 | protected string ShortRegionInfo(string key, string value) | 82 | protected string ShortRegionInfo(string key, string value) |
81 | { | 83 | { |
84 | RestXmlWriter rxw = new RestXmlWriter(new StringWriter()); | ||
85 | |||
82 | if (String.IsNullOrEmpty(value) || | 86 | if (String.IsNullOrEmpty(value) || |
83 | String.IsNullOrEmpty(key)) return null; | 87 | String.IsNullOrEmpty(key)) return null; |
84 | 88 | ||
85 | XmlWriter.WriteStartElement(String.Empty, "region", String.Empty); | 89 | rxw.WriteStartElement(String.Empty, "region", String.Empty); |
86 | XmlWriter.WriteStartElement(String.Empty, key, String.Empty); | 90 | rxw.WriteStartElement(String.Empty, key, String.Empty); |
87 | XmlWriter.WriteString(value); | 91 | rxw.WriteString(value); |
88 | XmlWriter.WriteEndDocument(); | 92 | rxw.WriteEndDocument(); |
89 | 93 | ||
90 | return XmlWriterResult; | 94 | return rxw.ToString(); |
91 | } | 95 | } |
92 | 96 | ||
93 | public string GetHandlerRegion(OSHttpResponse httpResponse, string param) | 97 | public string GetHandlerRegion(OSHttpResponse httpResponse, string param) |
@@ -114,9 +118,10 @@ namespace OpenSim.ApplicationPlugins.Rest.Regions | |||
114 | if (1 == comps.Length) | 118 | if (1 == comps.Length) |
115 | { | 119 | { |
116 | // complete region details requested | 120 | // complete region details requested |
121 | RestXmlWriter rxw = new RestXmlWriter(new StringWriter()); | ||
117 | XmlSerializer xs = new XmlSerializer(typeof(RegionDetails)); | 122 | XmlSerializer xs = new XmlSerializer(typeof(RegionDetails)); |
118 | xs.Serialize(XmlWriter, details, _xmlNs); | 123 | xs.Serialize(rxw, details, _xmlNs); |
119 | return XmlWriterResult; | 124 | return rxw.ToString(); |
120 | } | 125 | } |
121 | 126 | ||
122 | if (2 == comps.Length) | 127 | if (2 == comps.Length) |
@@ -185,20 +190,22 @@ namespace OpenSim.ApplicationPlugins.Rest.Regions | |||
185 | int users = scene.GetAvatars().Count; | 190 | int users = scene.GetAvatars().Count; |
186 | int objects = scene.Entities.Count - users; | 191 | int objects = scene.Entities.Count - users; |
187 | 192 | ||
188 | XmlWriter.WriteStartElement(String.Empty, "region", String.Empty); | 193 | RestXmlWriter rxw = new RestXmlWriter(new StringWriter()); |
189 | XmlWriter.WriteStartElement(String.Empty, "stats", String.Empty); | 194 | |
195 | rxw.WriteStartElement(String.Empty, "region", String.Empty); | ||
196 | rxw.WriteStartElement(String.Empty, "stats", String.Empty); | ||
190 | 197 | ||
191 | XmlWriter.WriteStartElement(String.Empty, "users", String.Empty); | 198 | rxw.WriteStartElement(String.Empty, "users", String.Empty); |
192 | XmlWriter.WriteString(users.ToString()); | 199 | rxw.WriteString(users.ToString()); |
193 | XmlWriter.WriteEndElement(); | 200 | rxw.WriteEndElement(); |
194 | 201 | ||
195 | XmlWriter.WriteStartElement(String.Empty, "objects", String.Empty); | 202 | rxw.WriteStartElement(String.Empty, "objects", String.Empty); |
196 | XmlWriter.WriteString(objects.ToString()); | 203 | rxw.WriteString(objects.ToString()); |
197 | XmlWriter.WriteEndElement(); | 204 | rxw.WriteEndElement(); |
198 | 205 | ||
199 | XmlWriter.WriteEndDocument(); | 206 | rxw.WriteEndDocument(); |
200 | 207 | ||
201 | return XmlWriterResult; | 208 | return rxw.ToString(); |
202 | } | 209 | } |
203 | 210 | ||
204 | protected string RegionPrims(OSHttpResponse httpResponse, Scene scene, Vector3 min, Vector3 max) | 211 | protected string RegionPrims(OSHttpResponse httpResponse, Scene scene, Vector3 min, Vector3 max) |
diff --git a/OpenSim/ApplicationPlugins/Rest/Regions/GETRegionInfoHandler.cs b/OpenSim/ApplicationPlugins/Rest/Regions/GETRegionInfoHandler.cs index b49c5e9..5f83885 100644 --- a/OpenSim/ApplicationPlugins/Rest/Regions/GETRegionInfoHandler.cs +++ b/OpenSim/ApplicationPlugins/Rest/Regions/GETRegionInfoHandler.cs | |||
@@ -66,78 +66,78 @@ namespace OpenSim.ApplicationPlugins.Rest.Regions | |||
66 | 66 | ||
67 | public string GetRegionInfoHandlerRegions(OSHttpResponse httpResponse) | 67 | public string GetRegionInfoHandlerRegions(OSHttpResponse httpResponse) |
68 | { | 68 | { |
69 | RestXmlWriter rxw = new RestXmlWriter(new StringWriter()); | ||
70 | |||
69 | // regions info | 71 | // regions info |
70 | XmlWriter.WriteStartElement(String.Empty, "regions", String.Empty); | 72 | rxw.WriteStartElement(String.Empty, "regions", String.Empty); |
71 | { | 73 | { |
72 | // regions info: number of regions | 74 | // regions info: number of regions |
73 | XmlWriter.WriteStartAttribute(String.Empty, "number", String.Empty); | 75 | rxw.WriteStartAttribute(String.Empty, "number", String.Empty); |
74 | XmlWriter.WriteValue(App.SceneManager.Scenes.Count); | 76 | rxw.WriteValue(App.SceneManager.Scenes.Count); |
75 | XmlWriter.WriteEndAttribute(); | 77 | rxw.WriteEndAttribute(); |
76 | 78 | ||
77 | // regions info: max number of regions | 79 | // regions info: max number of regions |
78 | XmlWriter.WriteStartAttribute(String.Empty, "max", String.Empty); | 80 | rxw.WriteStartAttribute(String.Empty, "max", String.Empty); |
79 | if (App.ConfigSource.Source.Configs["RemoteAdmin"] != null) | 81 | if (App.ConfigSource.Source.Configs["RemoteAdmin"] != null) |
80 | { | 82 | { |
81 | XmlWriter.WriteValue(App.ConfigSource.Source.Configs["RemoteAdmin"].GetInt("region_limit", -1)); | 83 | rxw.WriteValue(App.ConfigSource.Source.Configs["RemoteAdmin"].GetInt("region_limit", -1)); |
82 | } | 84 | } |
83 | else | 85 | else |
84 | { | 86 | { |
85 | XmlWriter.WriteValue(-1); | 87 | rxw.WriteValue(-1); |
86 | } | 88 | } |
87 | XmlWriter.WriteEndAttribute(); | 89 | rxw.WriteEndAttribute(); |
88 | 90 | ||
89 | // regions info: region | 91 | // regions info: region |
90 | foreach (Scene s in App.SceneManager.Scenes) | 92 | foreach (Scene s in App.SceneManager.Scenes) |
91 | { | 93 | { |
92 | XmlWriter.WriteStartElement(String.Empty, "region", String.Empty); | 94 | rxw.WriteStartElement(String.Empty, "region", String.Empty); |
93 | 95 | ||
94 | XmlWriter.WriteStartAttribute(String.Empty, "uuid", String.Empty); | 96 | rxw.WriteStartAttribute(String.Empty, "uuid", String.Empty); |
95 | XmlWriter.WriteString(s.RegionInfo.RegionID.ToString()); | 97 | rxw.WriteString(s.RegionInfo.RegionID.ToString()); |
96 | XmlWriter.WriteEndAttribute(); | 98 | rxw.WriteEndAttribute(); |
97 | 99 | ||
98 | XmlWriter.WriteStartAttribute(String.Empty, "name", String.Empty); | 100 | rxw.WriteStartAttribute(String.Empty, "name", String.Empty); |
99 | XmlWriter.WriteString(s.RegionInfo.RegionName); | 101 | rxw.WriteString(s.RegionInfo.RegionName); |
100 | XmlWriter.WriteEndAttribute(); | 102 | rxw.WriteEndAttribute(); |
101 | 103 | ||
102 | XmlWriter.WriteStartAttribute(String.Empty, "x", String.Empty); | 104 | rxw.WriteStartAttribute(String.Empty, "x", String.Empty); |
103 | XmlWriter.WriteValue(s.RegionInfo.RegionLocX); | 105 | rxw.WriteValue(s.RegionInfo.RegionLocX); |
104 | XmlWriter.WriteEndAttribute(); | 106 | rxw.WriteEndAttribute(); |
105 | 107 | ||
106 | XmlWriter.WriteStartAttribute(String.Empty, "y", String.Empty); | 108 | rxw.WriteStartAttribute(String.Empty, "y", String.Empty); |
107 | XmlWriter.WriteValue(s.RegionInfo.RegionLocY); | 109 | rxw.WriteValue(s.RegionInfo.RegionLocY); |
108 | XmlWriter.WriteEndAttribute(); | 110 | rxw.WriteEndAttribute(); |
109 | 111 | ||
110 | XmlWriter.WriteStartAttribute(String.Empty, "external_hostname", String.Empty); | 112 | rxw.WriteStartAttribute(String.Empty, "external_hostname", String.Empty); |
111 | XmlWriter.WriteString(s.RegionInfo.ExternalHostName); | 113 | rxw.WriteString(s.RegionInfo.ExternalHostName); |
112 | XmlWriter.WriteEndAttribute(); | 114 | rxw.WriteEndAttribute(); |
113 | 115 | ||
114 | XmlWriter.WriteStartAttribute(String.Empty, "master_name", String.Empty); | 116 | rxw.WriteStartAttribute(String.Empty, "master_name", String.Empty); |
115 | XmlWriter.WriteString(String.Format("{0} {1}", s.RegionInfo.MasterAvatarFirstName, s.RegionInfo.MasterAvatarLastName)); | 117 | rxw.WriteString(String.Format("{0} {1}", s.RegionInfo.MasterAvatarFirstName, s.RegionInfo.MasterAvatarLastName)); |
116 | XmlWriter.WriteEndAttribute(); | 118 | rxw.WriteEndAttribute(); |
117 | 119 | ||
118 | XmlWriter.WriteStartAttribute(String.Empty, "master_uuid", String.Empty); | 120 | rxw.WriteStartAttribute(String.Empty, "master_uuid", String.Empty); |
119 | XmlWriter.WriteString(s.RegionInfo.MasterAvatarAssignedUUID.ToString()); | 121 | rxw.WriteString(s.RegionInfo.MasterAvatarAssignedUUID.ToString()); |
120 | XmlWriter.WriteEndAttribute(); | 122 | rxw.WriteEndAttribute(); |
121 | 123 | ||
122 | XmlWriter.WriteStartAttribute(String.Empty, "ip", String.Empty); | 124 | rxw.WriteStartAttribute(String.Empty, "ip", String.Empty); |
123 | XmlWriter.WriteString(s.RegionInfo.InternalEndPoint.ToString()); | 125 | rxw.WriteString(s.RegionInfo.InternalEndPoint.ToString()); |
124 | XmlWriter.WriteEndAttribute(); | 126 | rxw.WriteEndAttribute(); |
125 | 127 | ||
126 | int users = s.GetAvatars().Count; | 128 | int users = s.GetAvatars().Count; |
127 | XmlWriter.WriteStartAttribute(String.Empty, "avatars", String.Empty); | 129 | rxw.WriteStartAttribute(String.Empty, "avatars", String.Empty); |
128 | XmlWriter.WriteValue(users); | 130 | rxw.WriteValue(users); |
129 | XmlWriter.WriteEndAttribute(); | 131 | rxw.WriteEndAttribute(); |
130 | 132 | ||
131 | XmlWriter.WriteStartAttribute(String.Empty, "objects", String.Empty); | 133 | rxw.WriteStartAttribute(String.Empty, "objects", String.Empty); |
132 | XmlWriter.WriteValue(s.Entities.Count - users); | 134 | rxw.WriteValue(s.Entities.Count - users); |
133 | XmlWriter.WriteEndAttribute(); | 135 | rxw.WriteEndAttribute(); |
134 | 136 | ||
135 | XmlWriter.WriteEndElement(); | 137 | rxw.WriteEndElement(); |
136 | } | 138 | } |
137 | } | 139 | } |
138 | XmlWriter.WriteEndElement(); | 140 | return rxw.ToString(); |
139 | |||
140 | return XmlWriterResult; | ||
141 | } | 141 | } |
142 | #endregion GET methods | 142 | #endregion GET methods |
143 | } | 143 | } |
diff --git a/OpenSim/ApplicationPlugins/Rest/Regions/POSTHandler.cs b/OpenSim/ApplicationPlugins/Rest/Regions/POSTHandler.cs index 4b8bb5c..58cb102 100644 --- a/OpenSim/ApplicationPlugins/Rest/Regions/POSTHandler.cs +++ b/OpenSim/ApplicationPlugins/Rest/Regions/POSTHandler.cs | |||
@@ -94,16 +94,18 @@ namespace OpenSim.ApplicationPlugins.Rest.Regions | |||
94 | 94 | ||
95 | public string CreateRegion(OSHttpRequest request, OSHttpResponse response) | 95 | public string CreateRegion(OSHttpRequest request, OSHttpResponse response) |
96 | { | 96 | { |
97 | XmlWriter.WriteStartElement(String.Empty, "regions", String.Empty); | 97 | RestXmlWriter rxw = new RestXmlWriter(new StringWriter()); |
98 | |||
99 | rxw.WriteStartElement(String.Empty, "regions", String.Empty); | ||
98 | foreach (Scene s in App.SceneManager.Scenes) | 100 | foreach (Scene s in App.SceneManager.Scenes) |
99 | { | 101 | { |
100 | XmlWriter.WriteStartElement(String.Empty, "uuid", String.Empty); | 102 | rxw.WriteStartElement(String.Empty, "uuid", String.Empty); |
101 | XmlWriter.WriteString(s.RegionInfo.RegionID.ToString()); | 103 | rxw.WriteString(s.RegionInfo.RegionID.ToString()); |
102 | XmlWriter.WriteEndElement(); | 104 | rxw.WriteEndElement(); |
103 | } | 105 | } |
104 | XmlWriter.WriteEndElement(); | 106 | rxw.WriteEndElement(); |
105 | 107 | ||
106 | return XmlWriterResult; | 108 | return rxw.ToString(); |
107 | } | 109 | } |
108 | 110 | ||
109 | public string LoadPrims(string requestBody, OSHttpRequest request, OSHttpResponse response, Scene scene) | 111 | public string LoadPrims(string requestBody, OSHttpRequest request, OSHttpResponse response, Scene scene) |