diff options
Diffstat (limited to '')
33 files changed, 856 insertions, 805 deletions
diff --git a/OpenSim/ApplicationPlugins/Rest/Inventory/RestAssetServices.cs b/OpenSim/ApplicationPlugins/Rest/Inventory/RestAssetServices.cs index ba9e5b1..241bc90 100644 --- a/OpenSim/ApplicationPlugins/Rest/Inventory/RestAssetServices.cs +++ b/OpenSim/ApplicationPlugins/Rest/Inventory/RestAssetServices.cs | |||
@@ -195,7 +195,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
195 | #endregion Interface | 195 | #endregion Interface |
196 | 196 | ||
197 | /// <summary> | 197 | /// <summary> |
198 | /// The only parameter we recognize is a UUID.If an asset with this identification is | 198 | /// The only parameter we recognize is a UUID.If an asset with this identification is |
199 | /// found, it's content, base-64 encoded, is returned to the client. | 199 | /// found, it's content, base-64 encoded, is returned to the client. |
200 | /// </summary> | 200 | /// </summary> |
201 | 201 | ||
@@ -218,12 +218,12 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
218 | 218 | ||
219 | rdata.writer.WriteStartElement(String.Empty,"Asset",String.Empty); | 219 | rdata.writer.WriteStartElement(String.Empty,"Asset",String.Empty); |
220 | 220 | ||
221 | rdata.writer.WriteAttributeString("id", asset.ID.ToString()); | 221 | rdata.writer.WriteAttributeString("id", asset.Metadata.ID); |
222 | rdata.writer.WriteAttributeString("name", asset.Name); | 222 | rdata.writer.WriteAttributeString("name", asset.Metadata.Name); |
223 | rdata.writer.WriteAttributeString("desc", asset.Description); | 223 | rdata.writer.WriteAttributeString("desc", asset.Metadata.Description); |
224 | rdata.writer.WriteAttributeString("type", asset.Type.ToString()); | 224 | rdata.writer.WriteAttributeString("type", asset.Metadata.Type.ToString()); |
225 | rdata.writer.WriteAttributeString("local", asset.Local.ToString()); | 225 | rdata.writer.WriteAttributeString("local", asset.Metadata.Local.ToString()); |
226 | rdata.writer.WriteAttributeString("temporary", asset.Temporary.ToString()); | 226 | rdata.writer.WriteAttributeString("temporary", asset.Metadata.Temporary.ToString()); |
227 | 227 | ||
228 | rdata.writer.WriteBase64(asset.Data,0,asset.Data.Length); | 228 | rdata.writer.WriteBase64(asset.Data,0,asset.Data.Length); |
229 | 229 | ||
@@ -274,19 +274,19 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
274 | modified = (asset != null); | 274 | modified = (asset != null); |
275 | created = !modified; | 275 | created = !modified; |
276 | 276 | ||
277 | asset = new AssetBase(); | 277 | asset = new AssetBase(); |
278 | asset.FullID = uuid; | 278 | asset.Metadata.FullID = uuid; |
279 | asset.Name = xml.GetAttribute("name"); | 279 | asset.Metadata.Name = xml.GetAttribute("name"); |
280 | asset.Description = xml.GetAttribute("desc"); | 280 | asset.Metadata.Description = xml.GetAttribute("desc"); |
281 | asset.Type = SByte.Parse(xml.GetAttribute("type")); | 281 | asset.Metadata.Type = SByte.Parse(xml.GetAttribute("type")); |
282 | asset.Local = Int32.Parse(xml.GetAttribute("local")) != 0; | 282 | asset.Metadata.Local = Int32.Parse(xml.GetAttribute("local")) != 0; |
283 | asset.Temporary = Int32.Parse(xml.GetAttribute("temporary")) != 0; | 283 | asset.Metadata.Temporary = Int32.Parse(xml.GetAttribute("temporary")) != 0; |
284 | asset.Data = Convert.FromBase64String(xml.ReadElementContentAsString("Asset", "")); | 284 | asset.Data = Convert.FromBase64String(xml.ReadElementContentAsString("Asset", "")); |
285 | 285 | ||
286 | if (asset.ID != rdata.Parameters[0]) | 286 | if (asset.Metadata.ID != rdata.Parameters[0]) |
287 | { | 287 | { |
288 | Rest.Log.WarnFormat("{0} URI and payload disagree on UUID U:{1} vs P:{2}", | 288 | Rest.Log.WarnFormat("{0} URI and payload disagree on UUID U:{1} vs P:{2}", |
289 | MsgId, rdata.Parameters[0], asset.ID); | 289 | MsgId, rdata.Parameters[0], asset.Metadata.ID); |
290 | } | 290 | } |
291 | 291 | ||
292 | Rest.AssetServices.AddAsset(asset); | 292 | Rest.AssetServices.AddAsset(asset); |
@@ -300,14 +300,14 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
300 | 300 | ||
301 | if (created) | 301 | if (created) |
302 | { | 302 | { |
303 | rdata.appendStatus(String.Format("<p> Created asset {0}, UUID {1} <p>", asset.Name, asset.FullID)); | 303 | rdata.appendStatus(String.Format("<p> Created asset {0}, UUID {1} <p>", asset.Metadata.Name, asset.Metadata.FullID)); |
304 | rdata.Complete(Rest.HttpStatusCodeCreated); | 304 | rdata.Complete(Rest.HttpStatusCodeCreated); |
305 | } | 305 | } |
306 | else | 306 | else |
307 | { | 307 | { |
308 | if (modified) | 308 | if (modified) |
309 | { | 309 | { |
310 | rdata.appendStatus(String.Format("<p> Modified asset {0}, UUID {1} <p>", asset.Name, asset.FullID)); | 310 | rdata.appendStatus(String.Format("<p> Modified asset {0}, UUID {1} <p>", asset.Metadata.Name, asset.Metadata.FullID)); |
311 | rdata.Complete(Rest.HttpStatusCodeOK); | 311 | rdata.Complete(Rest.HttpStatusCodeOK); |
312 | } | 312 | } |
313 | else | 313 | else |
@@ -354,27 +354,27 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
354 | modified = (asset != null); | 354 | modified = (asset != null); |
355 | created = !modified; | 355 | created = !modified; |
356 | 356 | ||
357 | asset = new AssetBase(); | 357 | asset = new AssetBase(); |
358 | asset.FullID = uuid; | 358 | asset.Metadata.FullID = uuid; |
359 | asset.Name = xml.GetAttribute("name"); | 359 | asset.Metadata.Name = xml.GetAttribute("name"); |
360 | asset.Description = xml.GetAttribute("desc"); | 360 | asset.Metadata.Description = xml.GetAttribute("desc"); |
361 | asset.Type = SByte.Parse(xml.GetAttribute("type")); | 361 | asset.Metadata.Type = SByte.Parse(xml.GetAttribute("type")); |
362 | asset.Local = Int32.Parse(xml.GetAttribute("local")) != 0; | 362 | asset.Metadata.Local = Int32.Parse(xml.GetAttribute("local")) != 0; |
363 | asset.Temporary = Int32.Parse(xml.GetAttribute("temporary")) != 0; | 363 | asset.Metadata.Temporary = Int32.Parse(xml.GetAttribute("temporary")) != 0; |
364 | asset.Data = Convert.FromBase64String(xml.ReadElementContentAsString("Asset", "")); | 364 | asset.Data = Convert.FromBase64String(xml.ReadElementContentAsString("Asset", "")); |
365 | 365 | ||
366 | Rest.AssetServices.AddAsset(asset); | 366 | Rest.AssetServices.AddAsset(asset); |
367 | 367 | ||
368 | if (created) | 368 | if (created) |
369 | { | 369 | { |
370 | rdata.appendStatus(String.Format("<p> Created asset {0}, UUID {1} <p>", asset.Name, asset.FullID)); | 370 | rdata.appendStatus(String.Format("<p> Created asset {0}, UUID {1} <p>", asset.Metadata.Name, asset.Metadata.FullID)); |
371 | rdata.Complete(Rest.HttpStatusCodeCreated); | 371 | rdata.Complete(Rest.HttpStatusCodeCreated); |
372 | } | 372 | } |
373 | else | 373 | else |
374 | { | 374 | { |
375 | if (modified) | 375 | if (modified) |
376 | { | 376 | { |
377 | rdata.appendStatus(String.Format("<p> Modified asset {0}, UUID {1} <p>", asset.Name, asset.FullID)); | 377 | rdata.appendStatus(String.Format("<p> Modified asset {0}, UUID {1} <p>", asset.Metadata.Name, asset.Metadata.FullID)); |
378 | rdata.Complete(Rest.HttpStatusCodeOK); | 378 | rdata.Complete(Rest.HttpStatusCodeOK); |
379 | } | 379 | } |
380 | else | 380 | else |
diff --git a/OpenSim/ApplicationPlugins/Rest/Inventory/RestInventoryServices.cs b/OpenSim/ApplicationPlugins/Rest/Inventory/RestInventoryServices.cs index 2dce706..aa222bb 100644 --- a/OpenSim/ApplicationPlugins/Rest/Inventory/RestInventoryServices.cs +++ b/OpenSim/ApplicationPlugins/Rest/Inventory/RestInventoryServices.cs | |||
@@ -353,7 +353,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
353 | default : | 353 | default : |
354 | Rest.Log.WarnFormat("{0} Method {1} not supported for {2}", | 354 | Rest.Log.WarnFormat("{0} Method {1} not supported for {2}", |
355 | MsgId, rdata.method, rdata.path); | 355 | MsgId, rdata.method, rdata.path); |
356 | rdata.Fail(Rest.HttpStatusCodeMethodNotAllowed, | 356 | rdata.Fail(Rest.HttpStatusCodeMethodNotAllowed, |
357 | String.Format("{0} not supported", rdata.method)); | 357 | String.Format("{0} not supported", rdata.method)); |
358 | break; | 358 | break; |
359 | } | 359 | } |
@@ -488,12 +488,12 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
488 | foreach (AssetBase asset in entity.Assets) | 488 | foreach (AssetBase asset in entity.Assets) |
489 | { | 489 | { |
490 | Rest.Log.DebugFormat("{0} Rest asset: {1} {2} {3}", | 490 | Rest.Log.DebugFormat("{0} Rest asset: {1} {2} {3}", |
491 | MsgId, asset.ID, asset.Type, asset.Name); | 491 | MsgId, asset.Metadata.ID, asset.Metadata.Type, asset.Metadata.Name); |
492 | Rest.AssetServices.AddAsset(asset); | 492 | Rest.AssetServices.AddAsset(asset); |
493 | 493 | ||
494 | created = true; | 494 | created = true; |
495 | rdata.appendStatus(String.Format("<p> Created asset {0}, UUID {1} <p>", | 495 | rdata.appendStatus(String.Format("<p> Created asset {0}, UUID {1} <p>", |
496 | asset.Name, asset.ID)); | 496 | asset.Metadata.Name, asset.Metadata.ID)); |
497 | 497 | ||
498 | if (Rest.DEBUG && Rest.DumpAsset) | 498 | if (Rest.DEBUG && Rest.DumpAsset) |
499 | { | 499 | { |
@@ -691,14 +691,14 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
691 | foreach (AssetBase asset in entity.Assets) | 691 | foreach (AssetBase asset in entity.Assets) |
692 | { | 692 | { |
693 | Rest.Log.DebugFormat("{0} Rest asset: {1} {2} {3}", | 693 | Rest.Log.DebugFormat("{0} Rest asset: {1} {2} {3}", |
694 | MsgId, asset.ID, asset.Type, asset.Name); | 694 | MsgId, asset.Metadata.ID, asset.Metadata.Type, asset.Metadata.Name); |
695 | 695 | ||
696 | // The asset was validated during the collection process | 696 | // The asset was validated during the collection process |
697 | 697 | ||
698 | Rest.AssetServices.AddAsset(asset); | 698 | Rest.AssetServices.AddAsset(asset); |
699 | 699 | ||
700 | created = true; | 700 | created = true; |
701 | rdata.appendStatus(String.Format("<p> Created asset {0}, UUID {1} <p>", asset.Name, asset.ID)); | 701 | rdata.appendStatus(String.Format("<p> Created asset {0}, UUID {1} <p>", asset.Metadata.Name, asset.Metadata.ID)); |
702 | 702 | ||
703 | if (Rest.DEBUG && Rest.DumpAsset) | 703 | if (Rest.DEBUG && Rest.DumpAsset) |
704 | { | 704 | { |
@@ -1083,7 +1083,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1083 | 1083 | ||
1084 | Rest.Log.DebugFormat("{0} {1}: Resource {2} not found", | 1084 | Rest.Log.DebugFormat("{0} {1}: Resource {2} not found", |
1085 | MsgId, rdata.method, rdata.path); | 1085 | MsgId, rdata.method, rdata.path); |
1086 | rdata.Fail(Rest.HttpStatusCodeNotFound, | 1086 | rdata.Fail(Rest.HttpStatusCodeNotFound, |
1087 | String.Format("resource {0}:{1} not found", rdata.method, rdata.path)); | 1087 | String.Format("resource {0}:{1} not found", rdata.method, rdata.path)); |
1088 | 1088 | ||
1089 | return null; /* Never reached */ | 1089 | return null; /* Never reached */ |
@@ -1324,7 +1324,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1324 | rdata.writer.WriteAttributeString("everyone", String.Empty, i.EveryOnePermissions.ToString("X")); | 1324 | rdata.writer.WriteAttributeString("everyone", String.Empty, i.EveryOnePermissions.ToString("X")); |
1325 | rdata.writer.WriteAttributeString("base", String.Empty, i.BasePermissions.ToString("X")); | 1325 | rdata.writer.WriteAttributeString("base", String.Empty, i.BasePermissions.ToString("X")); |
1326 | rdata.writer.WriteEndElement(); | 1326 | rdata.writer.WriteEndElement(); |
1327 | 1327 | ||
1328 | rdata.writer.WriteElementString("Asset", i.AssetID.ToString()); | 1328 | rdata.writer.WriteElementString("Asset", i.AssetID.ToString()); |
1329 | 1329 | ||
1330 | rdata.writer.WriteEndElement(); | 1330 | rdata.writer.WriteEndElement(); |
@@ -1458,7 +1458,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1458 | case XmlNodeType.Element: | 1458 | case XmlNodeType.Element: |
1459 | Rest.Log.DebugFormat("{0} StartElement: <{1}>", | 1459 | Rest.Log.DebugFormat("{0} StartElement: <{1}>", |
1460 | MsgId, ic.xml.Name); | 1460 | MsgId, ic.xml.Name); |
1461 | 1461 | ||
1462 | switch (ic.xml.Name) | 1462 | switch (ic.xml.Name) |
1463 | { | 1463 | { |
1464 | case "Folder": | 1464 | case "Folder": |
@@ -1486,7 +1486,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1486 | MsgId, ic.xml.Name); | 1486 | MsgId, ic.xml.Name); |
1487 | break; | 1487 | break; |
1488 | } | 1488 | } |
1489 | 1489 | ||
1490 | // This stinks, but the ReadElement call above not only reads | 1490 | // This stinks, but the ReadElement call above not only reads |
1491 | // the imbedded data, but also consumes the end tag for Asset | 1491 | // the imbedded data, but also consumes the end tag for Asset |
1492 | // and moves the element pointer on to the containing Item's | 1492 | // and moves the element pointer on to the containing Item's |
@@ -1498,7 +1498,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1498 | Validate(ic); | 1498 | Validate(ic); |
1499 | } | 1499 | } |
1500 | break; | 1500 | break; |
1501 | 1501 | ||
1502 | case XmlNodeType.EndElement : | 1502 | case XmlNodeType.EndElement : |
1503 | switch (ic.xml.Name) | 1503 | switch (ic.xml.Name) |
1504 | { | 1504 | { |
@@ -1526,7 +1526,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1526 | break; | 1526 | break; |
1527 | } | 1527 | } |
1528 | break; | 1528 | break; |
1529 | 1529 | ||
1530 | default: | 1530 | default: |
1531 | Rest.Log.DebugFormat("{0} Ignoring: <{1}>:<{2}>", | 1531 | Rest.Log.DebugFormat("{0} Ignoring: <{1}>:<{2}>", |
1532 | MsgId, ic.xml.NodeType, ic.xml.Value); | 1532 | MsgId, ic.xml.NodeType, ic.xml.Value); |
@@ -1868,7 +1868,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1868 | // only if the size is non-zero. | 1868 | // only if the size is non-zero. |
1869 | 1869 | ||
1870 | else | 1870 | else |
1871 | { | 1871 | { |
1872 | AssetBase asset = null; | 1872 | AssetBase asset = null; |
1873 | string b64string = null; | 1873 | string b64string = null; |
1874 | 1874 | ||
@@ -1884,10 +1884,10 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1884 | 1884 | ||
1885 | asset = new AssetBase(uuid, name); | 1885 | asset = new AssetBase(uuid, name); |
1886 | 1886 | ||
1887 | asset.Description = desc; | 1887 | asset.Metadata.Description = desc; |
1888 | asset.Type = type; // type == 0 == texture | 1888 | asset.Metadata.Type = type; // type == 0 == texture |
1889 | asset.Local = local; | 1889 | asset.Metadata.Local = local; |
1890 | asset.Temporary = temp; | 1890 | asset.Metadata.Temporary = temp; |
1891 | 1891 | ||
1892 | b64string = ic.xml.ReadElementContentAsString(); | 1892 | b64string = ic.xml.ReadElementContentAsString(); |
1893 | 1893 | ||
@@ -1911,8 +1911,8 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1911 | { | 1911 | { |
1912 | ic.Item.AssetID = uuid; | 1912 | ic.Item.AssetID = uuid; |
1913 | } | 1913 | } |
1914 | 1914 | ||
1915 | ic.Push(asset); | 1915 | ic.Push(asset); |
1916 | } | 1916 | } |
1917 | } | 1917 | } |
1918 | 1918 | ||
@@ -2039,10 +2039,10 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
2039 | 2039 | ||
2040 | if (ic.Asset != null) | 2040 | if (ic.Asset != null) |
2041 | { | 2041 | { |
2042 | if (ic.Asset.Name == String.Empty) | 2042 | if (ic.Asset.Metadata.Name == String.Empty) |
2043 | ic.Asset.Name = ic.Item.Name; | 2043 | ic.Asset.Metadata.Name = ic.Item.Name; |
2044 | if (ic.Asset.Description == String.Empty) | 2044 | if (ic.Asset.Metadata.Description == String.Empty) |
2045 | ic.Asset.Description = ic.Item.Description; | 2045 | ic.Asset.Metadata.Description = ic.Item.Description; |
2046 | } | 2046 | } |
2047 | 2047 | ||
2048 | // Assign permissions | 2048 | // Assign permissions |
@@ -2139,7 +2139,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
2139 | try | 2139 | try |
2140 | { | 2140 | { |
2141 | ic.Asset.Data = OpenJPEG.EncodeFromImage(temp, true); | 2141 | ic.Asset.Data = OpenJPEG.EncodeFromImage(temp, true); |
2142 | } | 2142 | } |
2143 | catch (DllNotFoundException) | 2143 | catch (DllNotFoundException) |
2144 | { | 2144 | { |
2145 | Rest.Log.ErrorFormat("OpenJpeg is not installed correctly on this system. Asset Data is emtpy for {0}", ic.Item.Name); | 2145 | Rest.Log.ErrorFormat("OpenJpeg is not installed correctly on this system. Asset Data is emtpy for {0}", ic.Item.Name); |
@@ -2201,7 +2201,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
2201 | 2201 | ||
2202 | /// <summary> | 2202 | /// <summary> |
2203 | /// This is the callback method required by the inventory watchdog. The | 2203 | /// This is the callback method required by the inventory watchdog. The |
2204 | /// requestor issues an inventory request and then blocks until the | 2204 | /// requestor issues an inventory request and then blocks until the |
2205 | /// request completes, or this method signals the monitor. | 2205 | /// request completes, or this method signals the monitor. |
2206 | /// </summary> | 2206 | /// </summary> |
2207 | 2207 | ||
diff --git a/OpenSim/Data/MSSQL/MSSQLAssetData.cs b/OpenSim/Data/MSSQL/MSSQLAssetData.cs index 3eaae12..425e233 100644 --- a/OpenSim/Data/MSSQL/MSSQLAssetData.cs +++ b/OpenSim/Data/MSSQL/MSSQLAssetData.cs | |||
@@ -132,12 +132,12 @@ namespace OpenSim.Data.MSSQL | |||
132 | { | 132 | { |
133 | AssetBase asset = new AssetBase(); | 133 | AssetBase asset = new AssetBase(); |
134 | // Region Main | 134 | // Region Main |
135 | asset.FullID = new UUID((string)reader["id"]); | 135 | asset.Metadata.FullID = new UUID((string)reader["id"]); |
136 | asset.Name = (string)reader["name"]; | 136 | asset.Metadata.Name = (string)reader["name"]; |
137 | asset.Description = (string)reader["description"]; | 137 | asset.Metadata.Description = (string)reader["description"]; |
138 | asset.Type = Convert.ToSByte(reader["assetType"]); | 138 | asset.Metadata.Type = Convert.ToSByte(reader["assetType"]); |
139 | asset.Local = Convert.ToBoolean(reader["local"]); | 139 | asset.Metadata.Local = Convert.ToBoolean(reader["local"]); |
140 | asset.Temporary = Convert.ToBoolean(reader["temporary"]); | 140 | asset.Metadata.Temporary = Convert.ToBoolean(reader["temporary"]); |
141 | asset.Data = (byte[])reader["data"]; | 141 | asset.Data = (byte[])reader["data"]; |
142 | return asset; | 142 | return asset; |
143 | } | 143 | } |
@@ -152,7 +152,7 @@ namespace OpenSim.Data.MSSQL | |||
152 | /// <param name="asset">the asset</param> | 152 | /// <param name="asset">the asset</param> |
153 | override public void CreateAsset(AssetBase asset) | 153 | override public void CreateAsset(AssetBase asset) |
154 | { | 154 | { |
155 | if (ExistsAsset(asset.FullID)) | 155 | if (ExistsAsset(asset.Metadata.FullID)) |
156 | { | 156 | { |
157 | return; | 157 | return; |
158 | } | 158 | } |
@@ -163,12 +163,12 @@ namespace OpenSim.Data.MSSQL | |||
163 | "(@id, @name, @description, @assetType, @local, @temporary, @create_time, @access_time, @data)")) | 163 | "(@id, @name, @description, @assetType, @local, @temporary, @create_time, @access_time, @data)")) |
164 | { | 164 | { |
165 | int now = (int)((System.DateTime.Now.Ticks - TicksToEpoch) / 10000000); | 165 | int now = (int)((System.DateTime.Now.Ticks - TicksToEpoch) / 10000000); |
166 | command.Parameters.Add(database.CreateParameter("id", asset.FullID)); | 166 | command.Parameters.Add(database.CreateParameter("id", asset.Metadata.FullID)); |
167 | command.Parameters.Add(database.CreateParameter("name", asset.Name)); | 167 | command.Parameters.Add(database.CreateParameter("name", asset.Metadata.Name)); |
168 | command.Parameters.Add(database.CreateParameter("description", asset.Description)); | 168 | command.Parameters.Add(database.CreateParameter("description", asset.Metadata.Description)); |
169 | command.Parameters.Add(database.CreateParameter("assetType", asset.Type)); | 169 | command.Parameters.Add(database.CreateParameter("assetType", asset.Metadata.Type)); |
170 | command.Parameters.Add(database.CreateParameter("local", asset.Local)); | 170 | command.Parameters.Add(database.CreateParameter("local", asset.Metadata.Local)); |
171 | command.Parameters.Add(database.CreateParameter("temporary", asset.Temporary)); | 171 | command.Parameters.Add(database.CreateParameter("temporary", asset.Metadata.Temporary)); |
172 | command.Parameters.Add(database.CreateParameter("access_time", now)); | 172 | command.Parameters.Add(database.CreateParameter("access_time", now)); |
173 | command.Parameters.Add(database.CreateParameter("create_time", now)); | 173 | command.Parameters.Add(database.CreateParameter("create_time", now)); |
174 | command.Parameters.Add(database.CreateParameter("data", asset.Data)); | 174 | command.Parameters.Add(database.CreateParameter("data", asset.Data)); |
@@ -192,14 +192,14 @@ namespace OpenSim.Data.MSSQL | |||
192 | "data = @data where " + | 192 | "data = @data where " + |
193 | "id = @keyId;")) | 193 | "id = @keyId;")) |
194 | { | 194 | { |
195 | command.Parameters.Add(database.CreateParameter("id", asset.FullID)); | 195 | command.Parameters.Add(database.CreateParameter("id", asset.Metadata.FullID)); |
196 | command.Parameters.Add(database.CreateParameter("name", asset.Name)); | 196 | command.Parameters.Add(database.CreateParameter("name", asset.Metadata.Name)); |
197 | command.Parameters.Add(database.CreateParameter("description", asset.Description)); | 197 | command.Parameters.Add(database.CreateParameter("description", asset.Metadata.Description)); |
198 | command.Parameters.Add(database.CreateParameter("assetType", asset.Type)); | 198 | command.Parameters.Add(database.CreateParameter("assetType", asset.Metadata.Type)); |
199 | command.Parameters.Add(database.CreateParameter("local", asset.Local)); | 199 | command.Parameters.Add(database.CreateParameter("local", asset.Metadata.Local)); |
200 | command.Parameters.Add(database.CreateParameter("temporary", asset.Temporary)); | 200 | command.Parameters.Add(database.CreateParameter("temporary", asset.Metadata.Temporary)); |
201 | command.Parameters.Add(database.CreateParameter("data", asset.Data)); | 201 | command.Parameters.Add(database.CreateParameter("data", asset.Data)); |
202 | command.Parameters.Add(database.CreateParameter("@keyId", asset.FullID)); | 202 | command.Parameters.Add(database.CreateParameter("@keyId", asset.Metadata.FullID)); |
203 | 203 | ||
204 | try | 204 | try |
205 | { | 205 | { |
diff --git a/OpenSim/Data/MySQL/MySQLAssetData.cs b/OpenSim/Data/MySQL/MySQLAssetData.cs index 3ff2a1a..823fa78 100644 --- a/OpenSim/Data/MySQL/MySQLAssetData.cs +++ b/OpenSim/Data/MySQL/MySQLAssetData.cs | |||
@@ -139,18 +139,18 @@ namespace OpenSim.Data.MySQL | |||
139 | { | 139 | { |
140 | asset = new AssetBase(); | 140 | asset = new AssetBase(); |
141 | asset.Data = (byte[]) dbReader["data"]; | 141 | asset.Data = (byte[]) dbReader["data"]; |
142 | asset.Description = (string) dbReader["description"]; | 142 | asset.Metadata.Description = (string) dbReader["description"]; |
143 | asset.FullID = assetID; | 143 | asset.Metadata.FullID = assetID; |
144 | try | 144 | try |
145 | { | 145 | { |
146 | asset.Local = (bool)dbReader["local"]; | 146 | asset.Metadata.Local = (bool)dbReader["local"]; |
147 | } | 147 | } |
148 | catch (System.InvalidCastException) | 148 | catch (System.InvalidCastException) |
149 | { | 149 | { |
150 | asset.Local = false; | 150 | asset.Metadata.Local = false; |
151 | } | 151 | } |
152 | asset.Name = (string) dbReader["name"]; | 152 | asset.Metadata.Name = (string) dbReader["name"]; |
153 | asset.Type = (sbyte) dbReader["assetType"]; | 153 | asset.Metadata.Type = (sbyte) dbReader["assetType"]; |
154 | } | 154 | } |
155 | dbReader.Close(); | 155 | dbReader.Close(); |
156 | cmd.Dispose(); | 156 | cmd.Dispose(); |
@@ -178,8 +178,8 @@ namespace OpenSim.Data.MySQL | |||
178 | { | 178 | { |
179 | lock (_dbConnection) | 179 | lock (_dbConnection) |
180 | { | 180 | { |
181 | //m_log.Info("[ASSET DB]: Creating Asset " + Util.ToRawUuidString(asset.FullID)); | 181 | //m_log.Info("[ASSET DB]: Creating Asset " + Util.ToRawUuidString(asset.Metadata.FullID)); |
182 | if (ExistsAsset(asset.FullID)) | 182 | if (ExistsAsset(asset.Metadata.FullID)) |
183 | { | 183 | { |
184 | //m_log.Info("[ASSET DB]: Asset exists already, ignoring."); | 184 | //m_log.Info("[ASSET DB]: Asset exists already, ignoring."); |
185 | return; | 185 | return; |
@@ -200,12 +200,12 @@ namespace OpenSim.Data.MySQL | |||
200 | { | 200 | { |
201 | // create unix epoch time | 201 | // create unix epoch time |
202 | int now = (int)((System.DateTime.Now.Ticks - TicksToEpoch) / 10000000); | 202 | int now = (int)((System.DateTime.Now.Ticks - TicksToEpoch) / 10000000); |
203 | cmd.Parameters.AddWithValue("?id", asset.FullID.ToString()); | 203 | cmd.Parameters.AddWithValue("?id", asset.Metadata.ID); |
204 | cmd.Parameters.AddWithValue("?name", asset.Name); | 204 | cmd.Parameters.AddWithValue("?name", asset.Metadata.Name); |
205 | cmd.Parameters.AddWithValue("?description", asset.Description); | 205 | cmd.Parameters.AddWithValue("?description", asset.Metadata.Description); |
206 | cmd.Parameters.AddWithValue("?assetType", asset.Type); | 206 | cmd.Parameters.AddWithValue("?assetType", asset.Metadata.Type); |
207 | cmd.Parameters.AddWithValue("?local", asset.Local); | 207 | cmd.Parameters.AddWithValue("?local", asset.Metadata.Local); |
208 | cmd.Parameters.AddWithValue("?temporary", asset.Temporary); | 208 | cmd.Parameters.AddWithValue("?temporary", asset.Metadata.Temporary); |
209 | cmd.Parameters.AddWithValue("?create_time", now); | 209 | cmd.Parameters.AddWithValue("?create_time", now); |
210 | cmd.Parameters.AddWithValue("?access_time", now); | 210 | cmd.Parameters.AddWithValue("?access_time", now); |
211 | cmd.Parameters.AddWithValue("?data", asset.Data); | 211 | cmd.Parameters.AddWithValue("?data", asset.Data); |
@@ -218,7 +218,7 @@ namespace OpenSim.Data.MySQL | |||
218 | m_log.ErrorFormat( | 218 | m_log.ErrorFormat( |
219 | "[ASSETS DB]: " + | 219 | "[ASSETS DB]: " + |
220 | "MySql failure creating asset {0} with name {1}" + Environment.NewLine + e.ToString() | 220 | "MySql failure creating asset {0} with name {1}" + Environment.NewLine + e.ToString() |
221 | + Environment.NewLine + "Attempting reconnection", asset.FullID, asset.Name); | 221 | + Environment.NewLine + "Attempting reconnection", asset.Metadata.FullID, asset.Metadata.Name); |
222 | _dbConnection.Reconnect(); | 222 | _dbConnection.Reconnect(); |
223 | } | 223 | } |
224 | } | 224 | } |
@@ -241,7 +241,7 @@ namespace OpenSim.Data.MySQL | |||
241 | { | 241 | { |
242 | // create unix epoch time | 242 | // create unix epoch time |
243 | int now = (int)((System.DateTime.Now.Ticks - TicksToEpoch) / 10000000); | 243 | int now = (int)((System.DateTime.Now.Ticks - TicksToEpoch) / 10000000); |
244 | cmd.Parameters.AddWithValue("?id", asset.FullID.ToString()); | 244 | cmd.Parameters.AddWithValue("?id", asset.Metadata.ID); |
245 | cmd.Parameters.AddWithValue("?access_time", now); | 245 | cmd.Parameters.AddWithValue("?access_time", now); |
246 | cmd.ExecuteNonQuery(); | 246 | cmd.ExecuteNonQuery(); |
247 | cmd.Dispose(); | 247 | cmd.Dispose(); |
@@ -252,7 +252,7 @@ namespace OpenSim.Data.MySQL | |||
252 | m_log.ErrorFormat( | 252 | m_log.ErrorFormat( |
253 | "[ASSETS DB]: " + | 253 | "[ASSETS DB]: " + |
254 | "MySql failure updating access_time for asset {0} with name {1}" + Environment.NewLine + e.ToString() | 254 | "MySql failure updating access_time for asset {0} with name {1}" + Environment.NewLine + e.ToString() |
255 | + Environment.NewLine + "Attempting reconnection", asset.FullID, asset.Name); | 255 | + Environment.NewLine + "Attempting reconnection", asset.Metadata.FullID, asset.Metadata.Name); |
256 | _dbConnection.Reconnect(); | 256 | _dbConnection.Reconnect(); |
257 | } | 257 | } |
258 | } | 258 | } |
diff --git a/OpenSim/Data/NHibernate/NHibernateAssetData.cs b/OpenSim/Data/NHibernate/NHibernateAssetData.cs index fab39b1..d0046c6 100644 --- a/OpenSim/Data/NHibernate/NHibernateAssetData.cs +++ b/OpenSim/Data/NHibernate/NHibernateAssetData.cs | |||
@@ -69,7 +69,7 @@ namespace OpenSim.Data.NHibernate | |||
69 | 69 | ||
70 | private void Save(AssetBase asset) | 70 | private void Save(AssetBase asset) |
71 | { | 71 | { |
72 | AssetBase temp = (AssetBase)manager.Load(typeof(AssetBase), asset.FullID); | 72 | AssetBase temp = (AssetBase)manager.Load(typeof(AssetBase), asset.Metadata.FullID); |
73 | if (temp == null) | 73 | if (temp == null) |
74 | { | 74 | { |
75 | manager.Save(asset); | 75 | manager.Save(asset); |
@@ -78,13 +78,13 @@ namespace OpenSim.Data.NHibernate | |||
78 | 78 | ||
79 | override public void CreateAsset(AssetBase asset) | 79 | override public void CreateAsset(AssetBase asset) |
80 | { | 80 | { |
81 | m_log.InfoFormat("[NHIBERNATE] inserting asset {0}", asset.FullID); | 81 | m_log.InfoFormat("[NHIBERNATE] inserting asset {0}", asset.Metadata.FullID); |
82 | Save(asset); | 82 | Save(asset); |
83 | } | 83 | } |
84 | 84 | ||
85 | override public void UpdateAsset(AssetBase asset) | 85 | override public void UpdateAsset(AssetBase asset) |
86 | { | 86 | { |
87 | m_log.InfoFormat("[NHIBERNATE] updating asset {0}", asset.FullID); | 87 | m_log.InfoFormat("[NHIBERNATE] updating asset {0}", asset.Metadata.FullID); |
88 | manager.Update(asset); | 88 | manager.Update(asset); |
89 | } | 89 | } |
90 | 90 | ||
diff --git a/OpenSim/Data/SQLite/SQLiteAssetData.cs b/OpenSim/Data/SQLite/SQLiteAssetData.cs index 30ba642..d28956f 100644 --- a/OpenSim/Data/SQLite/SQLiteAssetData.cs +++ b/OpenSim/Data/SQLite/SQLiteAssetData.cs | |||
@@ -125,8 +125,8 @@ namespace OpenSim.Data.SQLite | |||
125 | /// <param name="asset">Asset Base</param> | 125 | /// <param name="asset">Asset Base</param> |
126 | override public void CreateAsset(AssetBase asset) | 126 | override public void CreateAsset(AssetBase asset) |
127 | { | 127 | { |
128 | //m_log.Info("[ASSET DB]: Creating Asset " + Util.ToRawUuidString(asset.FullID)); | 128 | //m_log.Info("[ASSET DB]: Creating Asset " + Util.ToRawUuidString(asset.Metadata.FullID)); |
129 | if (ExistsAsset(asset.FullID)) | 129 | if (ExistsAsset(asset.Metadata.FullID)) |
130 | { | 130 | { |
131 | //m_log.Info("[ASSET DB]: Asset exists already, ignoring."); | 131 | //m_log.Info("[ASSET DB]: Asset exists already, ignoring."); |
132 | } | 132 | } |
@@ -136,12 +136,12 @@ namespace OpenSim.Data.SQLite | |||
136 | { | 136 | { |
137 | using (SqliteCommand cmd = new SqliteCommand(InsertAssetSQL, m_conn)) | 137 | using (SqliteCommand cmd = new SqliteCommand(InsertAssetSQL, m_conn)) |
138 | { | 138 | { |
139 | cmd.Parameters.Add(new SqliteParameter(":UUID", Util.ToRawUuidString(asset.FullID))); | 139 | cmd.Parameters.Add(new SqliteParameter(":UUID", Util.ToRawUuidString(asset.Metadata.FullID))); |
140 | cmd.Parameters.Add(new SqliteParameter(":Name", asset.Name)); | 140 | cmd.Parameters.Add(new SqliteParameter(":Name", asset.Metadata.Name)); |
141 | cmd.Parameters.Add(new SqliteParameter(":Description", asset.Description)); | 141 | cmd.Parameters.Add(new SqliteParameter(":Description", asset.Metadata.Description)); |
142 | cmd.Parameters.Add(new SqliteParameter(":Type", asset.Type)); | 142 | cmd.Parameters.Add(new SqliteParameter(":Type", asset.Metadata.Type)); |
143 | cmd.Parameters.Add(new SqliteParameter(":Local", asset.Local)); | 143 | cmd.Parameters.Add(new SqliteParameter(":Local", asset.Metadata.Local)); |
144 | cmd.Parameters.Add(new SqliteParameter(":Temporary", asset.Temporary)); | 144 | cmd.Parameters.Add(new SqliteParameter(":Temporary", asset.Metadata.Temporary)); |
145 | cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data)); | 145 | cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data)); |
146 | 146 | ||
147 | cmd.ExecuteNonQuery(); | 147 | cmd.ExecuteNonQuery(); |
@@ -162,12 +162,12 @@ namespace OpenSim.Data.SQLite | |||
162 | { | 162 | { |
163 | using (SqliteCommand cmd = new SqliteCommand(UpdateAssetSQL, m_conn)) | 163 | using (SqliteCommand cmd = new SqliteCommand(UpdateAssetSQL, m_conn)) |
164 | { | 164 | { |
165 | cmd.Parameters.Add(new SqliteParameter(":UUID", Util.ToRawUuidString(asset.FullID))); | 165 | cmd.Parameters.Add(new SqliteParameter(":UUID", Util.ToRawUuidString(asset.Metadata.FullID))); |
166 | cmd.Parameters.Add(new SqliteParameter(":Name", asset.Name)); | 166 | cmd.Parameters.Add(new SqliteParameter(":Name", asset.Metadata.Name)); |
167 | cmd.Parameters.Add(new SqliteParameter(":Description", asset.Description)); | 167 | cmd.Parameters.Add(new SqliteParameter(":Description", asset.Metadata.Description)); |
168 | cmd.Parameters.Add(new SqliteParameter(":Type", asset.Type)); | 168 | cmd.Parameters.Add(new SqliteParameter(":Type", asset.Metadata.Type)); |
169 | cmd.Parameters.Add(new SqliteParameter(":Local", asset.Local)); | 169 | cmd.Parameters.Add(new SqliteParameter(":Local", asset.Metadata.Local)); |
170 | cmd.Parameters.Add(new SqliteParameter(":Temporary", asset.Temporary)); | 170 | cmd.Parameters.Add(new SqliteParameter(":Temporary", asset.Metadata.Temporary)); |
171 | cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data)); | 171 | cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data)); |
172 | 172 | ||
173 | cmd.ExecuteNonQuery(); | 173 | cmd.ExecuteNonQuery(); |
@@ -181,14 +181,14 @@ namespace OpenSim.Data.SQLite | |||
181 | /// <param name="asset"></param> | 181 | /// <param name="asset"></param> |
182 | private static void LogAssetLoad(AssetBase asset) | 182 | private static void LogAssetLoad(AssetBase asset) |
183 | { | 183 | { |
184 | string temporary = asset.Temporary ? "Temporary" : "Stored"; | 184 | string temporary = asset.Metadata.Temporary ? "Temporary" : "Stored"; |
185 | string local = asset.Local ? "Local" : "Remote"; | 185 | string local = asset.Metadata.Local ? "Local" : "Remote"; |
186 | 186 | ||
187 | int assetLength = (asset.Data != null) ? asset.Data.Length : 0; | 187 | int assetLength = (asset.Data != null) ? asset.Data.Length : 0; |
188 | 188 | ||
189 | m_log.Info("[ASSET DB]: " + | 189 | m_log.Info("[ASSET DB]: " + |
190 | string.Format("Loaded {6} {5} Asset: [{0}][{3}] \"{1}\":{2} ({7} bytes)", | 190 | string.Format("Loaded {6} {5} Asset: [{0}][{3}] \"{1}\":{2} ({7} bytes)", |
191 | asset.FullID, asset.Name, asset.Description, asset.Type, | 191 | asset.Metadata.FullID, asset.Metadata.Name, asset.Metadata.Description, asset.Metadata.Type, |
192 | temporary, local, assetLength)); | 192 | temporary, local, assetLength)); |
193 | } | 193 | } |
194 | 194 | ||
@@ -246,12 +246,12 @@ namespace OpenSim.Data.SQLite | |||
246 | // back out. Not enough time to figure it out yet. | 246 | // back out. Not enough time to figure it out yet. |
247 | AssetBase asset = new AssetBase(); | 247 | AssetBase asset = new AssetBase(); |
248 | 248 | ||
249 | asset.FullID = new UUID((String) row["UUID"]); | 249 | asset.Metadata.FullID = new UUID((String) row["UUID"]); |
250 | asset.Name = (String) row["Name"]; | 250 | asset.Metadata.Name = (String) row["Name"]; |
251 | asset.Description = (String) row["Description"]; | 251 | asset.Metadata.Description = (String) row["Description"]; |
252 | asset.Type = Convert.ToSByte(row["Type"]); | 252 | asset.Metadata.Type = Convert.ToSByte(row["Type"]); |
253 | asset.Local = Convert.ToBoolean(row["Local"]); | 253 | asset.Metadata.Local = Convert.ToBoolean(row["Local"]); |
254 | asset.Temporary = Convert.ToBoolean(row["Temporary"]); | 254 | asset.Metadata.Temporary = Convert.ToBoolean(row["Temporary"]); |
255 | asset.Data = (byte[]) row["Data"]; | 255 | asset.Data = (byte[]) row["Data"]; |
256 | return asset; | 256 | return asset; |
257 | } | 257 | } |
diff --git a/OpenSim/Data/Tests/BasicAssetTest.cs b/OpenSim/Data/Tests/BasicAssetTest.cs index 6546472..5993f96 100644 --- a/OpenSim/Data/Tests/BasicAssetTest.cs +++ b/OpenSim/Data/Tests/BasicAssetTest.cs | |||
@@ -61,7 +61,7 @@ namespace OpenSim.Data.Tests | |||
61 | asset1 = new byte[100]; | 61 | asset1 = new byte[100]; |
62 | asset1.Initialize(); | 62 | asset1.Initialize(); |
63 | } | 63 | } |
64 | 64 | ||
65 | [Test] | 65 | [Test] |
66 | public void T001_LoadEmpty() | 66 | public void T001_LoadEmpty() |
67 | { | 67 | { |
@@ -69,7 +69,7 @@ namespace OpenSim.Data.Tests | |||
69 | Assert.That(db.ExistsAsset(uuid2), Is.False); | 69 | Assert.That(db.ExistsAsset(uuid2), Is.False); |
70 | Assert.That(db.ExistsAsset(uuid3), Is.False); | 70 | Assert.That(db.ExistsAsset(uuid3), Is.False); |
71 | } | 71 | } |
72 | 72 | ||
73 | [Test] | 73 | [Test] |
74 | public void T010_StoreSimpleAsset() | 74 | public void T010_StoreSimpleAsset() |
75 | { | 75 | { |
@@ -79,22 +79,22 @@ namespace OpenSim.Data.Tests | |||
79 | a1.Data = asset1; | 79 | a1.Data = asset1; |
80 | a2.Data = asset1; | 80 | a2.Data = asset1; |
81 | a3.Data = asset1; | 81 | a3.Data = asset1; |
82 | 82 | ||
83 | db.CreateAsset(a1); | 83 | db.CreateAsset(a1); |
84 | db.CreateAsset(a2); | 84 | db.CreateAsset(a2); |
85 | db.CreateAsset(a3); | 85 | db.CreateAsset(a3); |
86 | 86 | ||
87 | AssetBase a1a = db.FetchAsset(uuid1); | 87 | AssetBase a1a = db.FetchAsset(uuid1); |
88 | Assert.That(a1.ID, Is.EqualTo(a1a.ID)); | 88 | Assert.That(a1.Metadata.ID, Is.EqualTo(a1a.Metadata.ID)); |
89 | Assert.That(a1.Name, Is.EqualTo(a1a.Name)); | 89 | Assert.That(a1.Metadata.Name, Is.EqualTo(a1a.Metadata.Name)); |
90 | 90 | ||
91 | AssetBase a2a = db.FetchAsset(uuid2); | 91 | AssetBase a2a = db.FetchAsset(uuid2); |
92 | Assert.That(a2.ID, Is.EqualTo(a2a.ID)); | 92 | Assert.That(a2.Metadata.ID, Is.EqualTo(a2a.Metadata.ID)); |
93 | Assert.That(a2.Name, Is.EqualTo(a2a.Name)); | 93 | Assert.That(a2.Metadata.Name, Is.EqualTo(a2a.Metadata.Name)); |
94 | 94 | ||
95 | AssetBase a3a = db.FetchAsset(uuid3); | 95 | AssetBase a3a = db.FetchAsset(uuid3); |
96 | Assert.That(a3.ID, Is.EqualTo(a3a.ID)); | 96 | Assert.That(a3.Metadata.ID, Is.EqualTo(a3a.Metadata.ID)); |
97 | Assert.That(a3.Name, Is.EqualTo(a3a.Name)); | 97 | Assert.That(a3.Metadata.Name, Is.EqualTo(a3a.Metadata.Name)); |
98 | } | 98 | } |
99 | 99 | ||
100 | [Test] | 100 | [Test] |
@@ -117,4 +117,4 @@ namespace OpenSim.Data.Tests | |||
117 | // Assert.That(db.ExistsAsset(uuid3), Is.False); | 117 | // Assert.That(db.ExistsAsset(uuid3), Is.False); |
118 | // } | 118 | // } |
119 | } | 119 | } |
120 | } \ No newline at end of file | 120 | } |
diff --git a/OpenSim/Framework/AssetBase.cs b/OpenSim/Framework/AssetBase.cs index 48ef2ff..f9c9457 100644 --- a/OpenSim/Framework/AssetBase.cs +++ b/OpenSim/Framework/AssetBase.cs | |||
@@ -26,7 +26,9 @@ | |||
26 | */ | 26 | */ |
27 | 27 | ||
28 | using System; | 28 | using System; |
29 | using System.Collections.Generic; | ||
29 | using OpenMetaverse; | 30 | using OpenMetaverse; |
31 | using OpenMetaverse.StructuredData; | ||
30 | 32 | ||
31 | namespace OpenSim.Framework | 33 | namespace OpenSim.Framework |
32 | { | 34 | { |
@@ -34,69 +36,118 @@ namespace OpenSim.Framework | |||
34 | public class AssetBase | 36 | public class AssetBase |
35 | { | 37 | { |
36 | private byte[] _data; | 38 | private byte[] _data; |
37 | private string _description = String.Empty; | 39 | private AssetMetadata _metadata; |
38 | private UUID _fullid; | ||
39 | private bool _local = false; | ||
40 | private string _name = String.Empty; | ||
41 | private bool _temporary = false; | ||
42 | private sbyte _type; | ||
43 | 40 | ||
44 | public AssetBase() | 41 | public AssetBase() |
45 | { | 42 | { |
43 | Metadata = new AssetMetadata(); | ||
46 | } | 44 | } |
47 | 45 | ||
48 | public AssetBase(UUID assetId, string name) | 46 | public AssetBase(UUID assetId, string name) |
49 | { | 47 | { |
50 | FullID = assetId; | 48 | Metadata = new AssetMetadata(); |
51 | Name = name; | 49 | Metadata.FullID = assetId; |
50 | Metadata.Name = name; | ||
51 | } | ||
52 | |||
53 | public virtual byte[] Data | ||
54 | { | ||
55 | get { return _data; } | ||
56 | set { _data = value; } | ||
57 | } | ||
58 | |||
59 | public virtual AssetMetadata Metadata | ||
60 | { | ||
61 | get { return _metadata; } | ||
62 | set { _metadata = value; } | ||
52 | } | 63 | } |
64 | } | ||
65 | |||
66 | [Serializable] | ||
67 | public class AssetMetadata | ||
68 | { | ||
69 | private UUID _fullid; | ||
70 | private string _name = String.Empty; | ||
71 | private string _description = String.Empty; | ||
72 | private DateTime _creation_date; | ||
73 | private sbyte _type; | ||
74 | private string _content_type; | ||
75 | private byte[] _sha1; | ||
76 | private bool _local = false; | ||
77 | private bool _temporary = false; | ||
78 | //private Dictionary<string, Uri> _methods = new Dictionary<string, Uri>(); | ||
79 | //private OSDMap _extra_data; | ||
53 | 80 | ||
54 | public virtual UUID FullID | 81 | public UUID FullID |
55 | { | 82 | { |
56 | get { return _fullid; } | 83 | get { return _fullid; } |
57 | set { _fullid = value; } | 84 | set { _fullid = value; } |
58 | } | 85 | } |
59 | 86 | ||
60 | public virtual string ID | 87 | public string ID |
61 | { | 88 | { |
62 | get { return _fullid.ToString(); } | 89 | get { return _fullid.ToString(); } |
63 | set { _fullid = new UUID(value); } | 90 | set { _fullid = new UUID(value); } |
64 | } | 91 | } |
65 | 92 | ||
66 | public virtual byte[] Data | 93 | public string Name |
67 | { | 94 | { |
68 | get { return _data; } | 95 | get { return _name; } |
69 | set { _data = value; } | 96 | set { _name = value; } |
97 | } | ||
98 | |||
99 | public string Description | ||
100 | { | ||
101 | get { return _description; } | ||
102 | set { _description = value; } | ||
103 | } | ||
104 | |||
105 | public DateTime CreationDate | ||
106 | { | ||
107 | get { return _creation_date; } | ||
108 | set { _creation_date = value; } | ||
70 | } | 109 | } |
71 | 110 | ||
72 | public virtual sbyte Type | 111 | public sbyte Type |
73 | { | 112 | { |
74 | get { return _type; } | 113 | get { return _type; } |
75 | set { _type = value; } | 114 | set { _type = value; } |
76 | } | 115 | } |
77 | 116 | ||
78 | public virtual string Name | 117 | public string ContentType |
79 | { | 118 | { |
80 | get { return _name; } | 119 | get { return _content_type; } |
81 | set { _name = value; } | 120 | set { _content_type = value; } |
82 | } | 121 | } |
83 | 122 | ||
84 | public virtual string Description | 123 | public byte[] SHA1 |
85 | { | 124 | { |
86 | get { return _description; } | 125 | get { return _sha1; } |
87 | set { _description = value; } | 126 | set { _sha1 = value; } |
88 | } | 127 | } |
89 | 128 | ||
90 | public virtual bool Local | 129 | public bool Local |
91 | { | 130 | { |
92 | get { return _local; } | 131 | get { return _local; } |
93 | set { _local = value; } | 132 | set { _local = value; } |
94 | } | 133 | } |
95 | 134 | ||
96 | public virtual bool Temporary | 135 | public bool Temporary |
97 | { | 136 | { |
98 | get { return _temporary; } | 137 | get { return _temporary; } |
99 | set { _temporary = value; } | 138 | set { _temporary = value; } |
100 | } | 139 | } |
140 | |||
141 | //public Dictionary<string, Uri> Methods | ||
142 | //{ | ||
143 | // get { return _methods; } | ||
144 | // set { _methods = value; } | ||
145 | //} | ||
146 | |||
147 | //public OSDMap ExtraData | ||
148 | //{ | ||
149 | // get { return _extra_data; } | ||
150 | // set { _extra_data = value; } | ||
151 | //} | ||
101 | } | 152 | } |
102 | } | 153 | } |
diff --git a/OpenSim/Framework/AssetLandmark.cs b/OpenSim/Framework/AssetLandmark.cs index d636d34..bbf25d8 100644 --- a/OpenSim/Framework/AssetLandmark.cs +++ b/OpenSim/Framework/AssetLandmark.cs | |||
@@ -40,10 +40,10 @@ namespace OpenSim.Framework | |||
40 | public AssetLandmark(AssetBase a) | 40 | public AssetLandmark(AssetBase a) |
41 | { | 41 | { |
42 | Data = a.Data; | 42 | Data = a.Data; |
43 | FullID = a.FullID; | 43 | Metadata.FullID = a.Metadata.FullID; |
44 | Type = a.Type; | 44 | Metadata.Type = a.Metadata.Type; |
45 | Name = a.Name; | 45 | Metadata.Name = a.Metadata.Name; |
46 | Description = a.Description; | 46 | Metadata.Description = a.Metadata.Description; |
47 | InternData(); | 47 | InternData(); |
48 | } | 48 | } |
49 | 49 | ||
diff --git a/OpenSim/Framework/AssetLoader/Filesystem/AssetLoaderFileSystem.cs b/OpenSim/Framework/AssetLoader/Filesystem/AssetLoaderFileSystem.cs index 9d0f697..55b4ebd 100644 --- a/OpenSim/Framework/AssetLoader/Filesystem/AssetLoaderFileSystem.cs +++ b/OpenSim/Framework/AssetLoader/Filesystem/AssetLoaderFileSystem.cs | |||
@@ -145,7 +145,7 @@ namespace OpenSim.Framework.AssetLoader.Filesystem | |||
145 | 145 | ||
146 | AssetBase newAsset = CreateAsset(assetIdStr, name, assetPath, false); | 146 | AssetBase newAsset = CreateAsset(assetIdStr, name, assetPath, false); |
147 | 147 | ||
148 | newAsset.Type = type; | 148 | newAsset.Metadata.Type = type; |
149 | assets.Add(newAsset); | 149 | assets.Add(newAsset); |
150 | } | 150 | } |
151 | } | 151 | } |
diff --git a/OpenSim/Framework/Communications/Cache/AssetCache.cs b/OpenSim/Framework/Communications/Cache/AssetCache.cs index 653597b..2b2467c 100644 --- a/OpenSim/Framework/Communications/Cache/AssetCache.cs +++ b/OpenSim/Framework/Communications/Cache/AssetCache.cs | |||
@@ -42,7 +42,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
42 | /// <summary> | 42 | /// <summary> |
43 | /// Manages local cache of assets and their sending to viewers. | 43 | /// Manages local cache of assets and their sending to viewers. |
44 | /// </summary> | 44 | /// </summary> |
45 | /// | 45 | /// |
46 | /// This class actually encapsulates two largely separate mechanisms. One mechanism fetches assets either | 46 | /// This class actually encapsulates two largely separate mechanisms. One mechanism fetches assets either |
47 | /// synchronously or async and passes the data back to the requester. The second mechanism fetches assets and | 47 | /// synchronously or async and passes the data back to the requester. The second mechanism fetches assets and |
48 | /// sends packetised data directly back to the client. The only point where they meet is AssetReceived() and | 48 | /// sends packetised data directly back to the client. The only point where they meet is AssetReceived() and |
@@ -80,7 +80,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
80 | private Dictionary<UUID, AssetRequestsList> RequestLists; | 80 | private Dictionary<UUID, AssetRequestsList> RequestLists; |
81 | 81 | ||
82 | /// <summary> | 82 | /// <summary> |
83 | /// The 'server' from which assets can be requested and to which assets are persisted. | 83 | /// The 'server' from which assets can be requested and to which assets are persisted. |
84 | /// </summary> | 84 | /// </summary> |
85 | private readonly IAssetServer m_assetServer; | 85 | private readonly IAssetServer m_assetServer; |
86 | 86 | ||
@@ -211,7 +211,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
211 | else | 211 | else |
212 | { | 212 | { |
213 | // m_log.DebugFormat("[ASSET CACHE]: Adding request for {0} {1}", isTexture ? "texture" : "asset", assetId); | 213 | // m_log.DebugFormat("[ASSET CACHE]: Adding request for {0} {1}", isTexture ? "texture" : "asset", assetId); |
214 | 214 | ||
215 | NewAssetRequest req = new NewAssetRequest(callback); | 215 | NewAssetRequest req = new NewAssetRequest(callback); |
216 | AssetRequestsList requestList; | 216 | AssetRequestsList requestList; |
217 | 217 | ||
@@ -228,10 +228,10 @@ namespace OpenSim.Framework.Communications.Cache | |||
228 | // m_log.DebugFormat("[ASSET CACHE]: Adding request for {0} {1}", isTexture ? "texture" : "asset", assetId); | 228 | // m_log.DebugFormat("[ASSET CACHE]: Adding request for {0} {1}", isTexture ? "texture" : "asset", assetId); |
229 | requestList = new AssetRequestsList(); | 229 | requestList = new AssetRequestsList(); |
230 | requestList.TimeRequested = DateTime.Now; | 230 | requestList.TimeRequested = DateTime.Now; |
231 | requestList.Requests.Add(req); | 231 | requestList.Requests.Add(req); |
232 | 232 | ||
233 | RequestLists.Add(assetId, requestList); | 233 | RequestLists.Add(assetId, requestList); |
234 | 234 | ||
235 | m_assetServer.RequestAsset(assetId, isTexture); | 235 | m_assetServer.RequestAsset(assetId, isTexture); |
236 | } | 236 | } |
237 | } | 237 | } |
@@ -247,7 +247,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
247 | /// the allowed number of polls. This isn't a very good way of doing things since a single thread | 247 | /// the allowed number of polls. This isn't a very good way of doing things since a single thread |
248 | /// is processing inbound packets, so if the asset server is slow, we could block this for up to | 248 | /// is processing inbound packets, so if the asset server is slow, we could block this for up to |
249 | /// the timeout period. Whereever possible we want to use the asynchronous callback GetAsset() | 249 | /// the timeout period. Whereever possible we want to use the asynchronous callback GetAsset() |
250 | /// | 250 | /// |
251 | /// <param name="assetID"></param> | 251 | /// <param name="assetID"></param> |
252 | /// <param name="isTexture"></param> | 252 | /// <param name="isTexture"></param> |
253 | /// <returns>null if the asset could not be retrieved</returns> | 253 | /// <returns>null if the asset could not be retrieved</returns> |
@@ -264,7 +264,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
264 | { | 264 | { |
265 | return asset; | 265 | return asset; |
266 | } | 266 | } |
267 | 267 | ||
268 | m_assetServer.RequestAsset(assetID, isTexture); | 268 | m_assetServer.RequestAsset(assetID, isTexture); |
269 | 269 | ||
270 | do | 270 | do |
@@ -275,7 +275,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
275 | { | 275 | { |
276 | return asset; | 276 | return asset; |
277 | } | 277 | } |
278 | } | 278 | } |
279 | while (--maxPolls > 0); | 279 | while (--maxPolls > 0); |
280 | 280 | ||
281 | m_log.WarnFormat("[ASSET CACHE]: {0} {1} was not received before the retrieval timeout was reached", | 281 | m_log.WarnFormat("[ASSET CACHE]: {0} {1} was not received before the retrieval timeout was reached", |
@@ -290,17 +290,17 @@ namespace OpenSim.Framework.Communications.Cache | |||
290 | /// <param name="asset"></param> | 290 | /// <param name="asset"></param> |
291 | public void AddAsset(AssetBase asset) | 291 | public void AddAsset(AssetBase asset) |
292 | { | 292 | { |
293 | if (!m_memcache.Contains(asset.FullID)) | 293 | if (!m_memcache.Contains(asset.Metadata.FullID)) |
294 | { | 294 | { |
295 | m_log.Info("[CACHE] Caching " + asset.FullID + " for 24 hours from last access"); | 295 | m_log.Info("[CACHE] Caching " + asset.Metadata.FullID + " for 24 hours from last access"); |
296 | // Use 24 hour rolling asset cache. | 296 | // Use 24 hour rolling asset cache. |
297 | m_memcache.AddOrUpdate(asset.FullID, asset, TimeSpan.FromHours(24)); | 297 | m_memcache.AddOrUpdate(asset.Metadata.FullID, asset, TimeSpan.FromHours(24)); |
298 | 298 | ||
299 | // According to http://wiki.secondlife.com/wiki/AssetUploadRequest, Local signifies that the | 299 | // According to http://wiki.secondlife.com/wiki/AssetUploadRequest, Local signifies that the |
300 | // information is stored locally. It could disappear, in which case we could send the | 300 | // information is stored locally. It could disappear, in which case we could send the |
301 | // ImageNotInDatabase packet to tell the client this. | 301 | // ImageNotInDatabase packet to tell the client this. |
302 | // | 302 | // |
303 | // However, this doesn't quite appear to work with local textures that are part of an avatar's | 303 | // However, this doesn't quite appear to work with local textures that are part of an avatar's |
304 | // appearance texture set. Whilst sending an ImageNotInDatabase does trigger an automatic rebake | 304 | // appearance texture set. Whilst sending an ImageNotInDatabase does trigger an automatic rebake |
305 | // and reupload by the client, if those assets aren't pushed to the asset server anyway, then | 305 | // and reupload by the client, if those assets aren't pushed to the asset server anyway, then |
306 | // on crossing onto another region server, other avatars can no longer get the required textures. | 306 | // on crossing onto another region server, other avatars can no longer get the required textures. |
@@ -314,7 +314,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
314 | // But for now, we're going to take the easy way out and store local assets globally. | 314 | // But for now, we're going to take the easy way out and store local assets globally. |
315 | // | 315 | // |
316 | // TODO: Also, Temporary is now deprecated. We should start ignoring it and not passing it out from LLClientView. | 316 | // TODO: Also, Temporary is now deprecated. We should start ignoring it and not passing it out from LLClientView. |
317 | if (!asset.Temporary || asset.Local) | 317 | if (!asset.Metadata.Temporary || asset.Metadata.Local) |
318 | { | 318 | { |
319 | m_assetServer.StoreAsset(asset); | 319 | m_assetServer.StoreAsset(asset); |
320 | } | 320 | } |
@@ -345,25 +345,25 @@ namespace OpenSim.Framework.Communications.Cache | |||
345 | { | 345 | { |
346 | 346 | ||
347 | AssetInfo assetInf = new AssetInfo(asset); | 347 | AssetInfo assetInf = new AssetInfo(asset); |
348 | if (!m_memcache.Contains(assetInf.FullID)) | 348 | if (!m_memcache.Contains(assetInf.Metadata.FullID)) |
349 | { | 349 | { |
350 | m_memcache.AddOrUpdate(assetInf.FullID, assetInf, TimeSpan.FromHours(24)); | 350 | m_memcache.AddOrUpdate(assetInf.Metadata.FullID, assetInf, TimeSpan.FromHours(24)); |
351 | 351 | ||
352 | if (StatsManager.SimExtraStats != null) | 352 | if (StatsManager.SimExtraStats != null) |
353 | { | 353 | { |
354 | StatsManager.SimExtraStats.AddAsset(assetInf); | 354 | StatsManager.SimExtraStats.AddAsset(assetInf); |
355 | } | 355 | } |
356 | 356 | ||
357 | if (RequestedAssets.ContainsKey(assetInf.FullID)) | 357 | if (RequestedAssets.ContainsKey(assetInf.Metadata.FullID)) |
358 | { | 358 | { |
359 | AssetRequest req = RequestedAssets[assetInf.FullID]; | 359 | AssetRequest req = RequestedAssets[assetInf.Metadata.FullID]; |
360 | req.AssetInf = assetInf; | 360 | req.AssetInf = assetInf; |
361 | req.NumPackets = CalculateNumPackets(assetInf.Data); | 361 | req.NumPackets = CalculateNumPackets(assetInf.Data); |
362 | 362 | ||
363 | RequestedAssets.Remove(assetInf.FullID); | 363 | RequestedAssets.Remove(assetInf.Metadata.FullID); |
364 | // If it's a direct request for a script, drop it | 364 | // If it's a direct request for a script, drop it |
365 | // because it's a hacked client | 365 | // because it's a hacked client |
366 | if (req.AssetRequestSource != 2 || assetInf.Type != 10) | 366 | if (req.AssetRequestSource != 2 || assetInf.Metadata.Type != 10) |
367 | AssetRequests.Add(req); | 367 | AssetRequests.Add(req); |
368 | } | 368 | } |
369 | } | 369 | } |
@@ -373,8 +373,8 @@ namespace OpenSim.Framework.Communications.Cache | |||
373 | 373 | ||
374 | lock (RequestLists) | 374 | lock (RequestLists) |
375 | { | 375 | { |
376 | if (RequestLists.TryGetValue(asset.FullID, out reqList)) | 376 | if (RequestLists.TryGetValue(asset.Metadata.FullID, out reqList)) |
377 | RequestLists.Remove(asset.FullID); | 377 | RequestLists.Remove(asset.Metadata.FullID); |
378 | } | 378 | } |
379 | 379 | ||
380 | if (reqList != null) | 380 | if (reqList != null) |
@@ -385,8 +385,8 @@ namespace OpenSim.Framework.Communications.Cache | |||
385 | foreach (NewAssetRequest req in reqList.Requests) | 385 | foreach (NewAssetRequest req in reqList.Requests) |
386 | { | 386 | { |
387 | // Xantor 20080526 are we really calling all the callbacks if multiple queued for 1 request? -- Yes, checked | 387 | // Xantor 20080526 are we really calling all the callbacks if multiple queued for 1 request? -- Yes, checked |
388 | // m_log.DebugFormat("[ASSET CACHE]: Callback for asset {0}", asset.FullID); | 388 | // m_log.DebugFormat("[ASSET CACHE]: Callback for asset {0}", asset.Metadata.FullID); |
389 | req.Callback(asset.FullID, asset); | 389 | req.Callback(asset.Metadata.FullID, asset); |
390 | } | 390 | } |
391 | } | 391 | } |
392 | } | 392 | } |
@@ -398,12 +398,12 @@ namespace OpenSim.Framework.Communications.Cache | |||
398 | 398 | ||
399 | // Remember the fact that this asset could not be found to prevent delays from repeated requests | 399 | // Remember the fact that this asset could not be found to prevent delays from repeated requests |
400 | m_memcache.Add(assetID, null, TimeSpan.FromHours(24)); | 400 | m_memcache.Add(assetID, null, TimeSpan.FromHours(24)); |
401 | 401 | ||
402 | // Notify requesters for this asset | 402 | // Notify requesters for this asset |
403 | AssetRequestsList reqList; | 403 | AssetRequestsList reqList; |
404 | lock (RequestLists) | 404 | lock (RequestLists) |
405 | { | 405 | { |
406 | if (RequestLists.TryGetValue(assetID, out reqList)) | 406 | if (RequestLists.TryGetValue(assetID, out reqList)) |
407 | RequestLists.Remove(assetID); | 407 | RequestLists.Remove(assetID); |
408 | } | 408 | } |
409 | 409 | ||
@@ -411,7 +411,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
411 | { | 411 | { |
412 | if (StatsManager.SimExtraStats != null) | 412 | if (StatsManager.SimExtraStats != null) |
413 | StatsManager.SimExtraStats.AddAssetRequestTimeAfterCacheMiss(DateTime.Now - reqList.TimeRequested); | 413 | StatsManager.SimExtraStats.AddAssetRequestTimeAfterCacheMiss(DateTime.Now - reqList.TimeRequested); |
414 | 414 | ||
415 | foreach (NewAssetRequest req in reqList.Requests) | 415 | foreach (NewAssetRequest req in reqList.Requests) |
416 | { | 416 | { |
417 | req.Callback(assetID, null); | 417 | req.Callback(assetID, null); |
@@ -461,7 +461,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
461 | source = 3; | 461 | source = 3; |
462 | //Console.WriteLine("asset request " + requestID); | 462 | //Console.WriteLine("asset request " + requestID); |
463 | } | 463 | } |
464 | 464 | ||
465 | //check to see if asset is in local cache, if not we need to request it from asset server. | 465 | //check to see if asset is in local cache, if not we need to request it from asset server. |
466 | //Console.WriteLine("asset request " + requestID); | 466 | //Console.WriteLine("asset request " + requestID); |
467 | if (!m_memcache.Contains(requestID)) | 467 | if (!m_memcache.Contains(requestID)) |
@@ -494,7 +494,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
494 | } | 494 | } |
495 | 495 | ||
496 | // Scripts cannot be retrieved by direct request | 496 | // Scripts cannot be retrieved by direct request |
497 | if (transferRequest.TransferInfo.SourceType == 2 && asset.Type == 10) | 497 | if (transferRequest.TransferInfo.SourceType == 2 && asset.Metadata.Type == 10) |
498 | return; | 498 | return; |
499 | 499 | ||
500 | // The asset is knosn to exist and is in our cache, so add it to the AssetRequests list | 500 | // The asset is knosn to exist and is in our cache, so add it to the AssetRequests list |
@@ -520,7 +520,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
520 | //no requests waiting | 520 | //no requests waiting |
521 | return; | 521 | return; |
522 | } | 522 | } |
523 | 523 | ||
524 | // if less than 5, do all of them | 524 | // if less than 5, do all of them |
525 | int num = Math.Min(5, AssetRequests.Count); | 525 | int num = Math.Min(5, AssetRequests.Count); |
526 | 526 | ||
@@ -580,10 +580,10 @@ namespace OpenSim.Framework.Communications.Cache | |||
580 | public AssetInfo(AssetBase aBase) | 580 | public AssetInfo(AssetBase aBase) |
581 | { | 581 | { |
582 | Data = aBase.Data; | 582 | Data = aBase.Data; |
583 | FullID = aBase.FullID; | 583 | Metadata.FullID = aBase.Metadata.FullID; |
584 | Type = aBase.Type; | 584 | Metadata.Type = aBase.Metadata.Type; |
585 | Name = aBase.Name; | 585 | Metadata.Name = aBase.Metadata.Name; |
586 | Description = aBase.Description; | 586 | Metadata.Description = aBase.Metadata.Description; |
587 | } | 587 | } |
588 | } | 588 | } |
589 | 589 | ||
@@ -592,10 +592,10 @@ namespace OpenSim.Framework.Communications.Cache | |||
592 | public TextureImage(AssetBase aBase) | 592 | public TextureImage(AssetBase aBase) |
593 | { | 593 | { |
594 | Data = aBase.Data; | 594 | Data = aBase.Data; |
595 | FullID = aBase.FullID; | 595 | Metadata.FullID = aBase.Metadata.FullID; |
596 | Type = aBase.Type; | 596 | Metadata.Type = aBase.Metadata.Type; |
597 | Name = aBase.Name; | 597 | Metadata.Name = aBase.Metadata.Name; |
598 | Description = aBase.Description; | 598 | Metadata.Description = aBase.Metadata.Description; |
599 | } | 599 | } |
600 | } | 600 | } |
601 | 601 | ||
@@ -608,7 +608,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
608 | /// A list of requests for assets | 608 | /// A list of requests for assets |
609 | /// </summary> | 609 | /// </summary> |
610 | public List<NewAssetRequest> Requests = new List<NewAssetRequest>(); | 610 | public List<NewAssetRequest> Requests = new List<NewAssetRequest>(); |
611 | 611 | ||
612 | /// <summary> | 612 | /// <summary> |
613 | /// Record the time that this request was first made. | 613 | /// Record the time that this request was first made. |
614 | /// </summary> | 614 | /// </summary> |
diff --git a/OpenSim/Framework/Communications/Cache/CryptoGridAssetClient.cs b/OpenSim/Framework/Communications/Cache/CryptoGridAssetClient.cs index 3ed9172..1b3e70d 100644 --- a/OpenSim/Framework/Communications/Cache/CryptoGridAssetClient.cs +++ b/OpenSim/Framework/Communications/Cache/CryptoGridAssetClient.cs | |||
@@ -86,11 +86,11 @@ namespace OpenSim.Framework.Communications.Cache | |||
86 | 86 | ||
87 | #region Rjindael | 87 | #region Rjindael |
88 | /// <summary> | 88 | /// <summary> |
89 | /// This class uses a symmetric key algorithm (Rijndael/AES) to encrypt and | 89 | /// This class uses a symmetric key algorithm (Rijndael/AES) to encrypt and |
90 | /// decrypt data. As long as encryption and decryption routines use the same | 90 | /// decrypt data. As long as encryption and decryption routines use the same |
91 | /// parameters to generate the keys, the keys are guaranteed to be the same. | 91 | /// parameters to generate the keys, the keys are guaranteed to be the same. |
92 | /// The class uses static functions with duplicate code to make it easier to | 92 | /// The class uses static functions with duplicate code to make it easier to |
93 | /// demonstrate encryption and decryption logic. In a real-life application, | 93 | /// demonstrate encryption and decryption logic. In a real-life application, |
94 | /// this may not be the most efficient way of handling encryption, so - as | 94 | /// this may not be the most efficient way of handling encryption, so - as |
95 | /// soon as you feel comfortable with it - you may want to redesign this class. | 95 | /// soon as you feel comfortable with it - you may want to redesign this class. |
96 | /// </summary> | 96 | /// </summary> |
@@ -123,11 +123,11 @@ namespace OpenSim.Framework.Communications.Cache | |||
123 | /// </param> | 123 | /// </param> |
124 | /// <param name="initVector"> | 124 | /// <param name="initVector"> |
125 | /// Initialization vector (or IV). This value is required to encrypt the | 125 | /// Initialization vector (or IV). This value is required to encrypt the |
126 | /// first block of plaintext data. For RijndaelManaged class IV must be | 126 | /// first block of plaintext data. For RijndaelManaged class IV must be |
127 | /// exactly 16 ASCII characters long. | 127 | /// exactly 16 ASCII characters long. |
128 | /// </param> | 128 | /// </param> |
129 | /// <param name="keySize"> | 129 | /// <param name="keySize"> |
130 | /// Size of encryption key in bits. Allowed values are: 128, 192, and 256. | 130 | /// Size of encryption key in bits. Allowed values are: 128, 192, and 256. |
131 | /// Longer keys are more secure than shorter keys. | 131 | /// Longer keys are more secure than shorter keys. |
132 | /// </param> | 132 | /// </param> |
133 | /// <returns> | 133 | /// <returns> |
@@ -143,7 +143,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
143 | { | 143 | { |
144 | // Convert strings into byte arrays. | 144 | // Convert strings into byte arrays. |
145 | // Let us assume that strings only contain ASCII codes. | 145 | // Let us assume that strings only contain ASCII codes. |
146 | // If strings include Unicode characters, use Unicode, UTF7, or UTF8 | 146 | // If strings include Unicode characters, use Unicode, UTF7, or UTF8 |
147 | // encoding. | 147 | // encoding. |
148 | byte[] initVectorBytes = Encoding.ASCII.GetBytes(initVector); | 148 | byte[] initVectorBytes = Encoding.ASCII.GetBytes(initVector); |
149 | byte[] saltValueBytes = Encoding.ASCII.GetBytes(saltValue); | 149 | byte[] saltValueBytes = Encoding.ASCII.GetBytes(saltValue); |
@@ -153,8 +153,8 @@ namespace OpenSim.Framework.Communications.Cache | |||
153 | byte[] plainTextBytes = plainText; | 153 | byte[] plainTextBytes = plainText; |
154 | 154 | ||
155 | // First, we must create a password, from which the key will be derived. | 155 | // First, we must create a password, from which the key will be derived. |
156 | // This password will be generated from the specified passphrase and | 156 | // This password will be generated from the specified passphrase and |
157 | // salt value. The password will be created using the specified hash | 157 | // salt value. The password will be created using the specified hash |
158 | // algorithm. Password creation can be done in several iterations. | 158 | // algorithm. Password creation can be done in several iterations. |
159 | PasswordDeriveBytes password = new PasswordDeriveBytes( | 159 | PasswordDeriveBytes password = new PasswordDeriveBytes( |
160 | passPhrase, | 160 | passPhrase, |
@@ -173,8 +173,8 @@ namespace OpenSim.Framework.Communications.Cache | |||
173 | // (CBC). Use default options for other symmetric key parameters. | 173 | // (CBC). Use default options for other symmetric key parameters. |
174 | symmetricKey.Mode = CipherMode.CBC; | 174 | symmetricKey.Mode = CipherMode.CBC; |
175 | 175 | ||
176 | // Generate encryptor from the existing key bytes and initialization | 176 | // Generate encryptor from the existing key bytes and initialization |
177 | // vector. Key size will be defined based on the number of the key | 177 | // vector. Key size will be defined based on the number of the key |
178 | // bytes. | 178 | // bytes. |
179 | ICryptoTransform encryptor = symmetricKey.CreateEncryptor( | 179 | ICryptoTransform encryptor = symmetricKey.CreateEncryptor( |
180 | keyBytes, | 180 | keyBytes, |
@@ -265,8 +265,8 @@ namespace OpenSim.Framework.Communications.Cache | |||
265 | // Convert our ciphertext into a byte array. | 265 | // Convert our ciphertext into a byte array. |
266 | byte[] cipherTextBytes = cipherText; | 266 | byte[] cipherTextBytes = cipherText; |
267 | 267 | ||
268 | // First, we must create a password, from which the key will be | 268 | // First, we must create a password, from which the key will be |
269 | // derived. This password will be generated from the specified | 269 | // derived. This password will be generated from the specified |
270 | // passphrase and salt value. The password will be created using | 270 | // passphrase and salt value. The password will be created using |
271 | // the specified hash algorithm. Password creation can be done in | 271 | // the specified hash algorithm. Password creation can be done in |
272 | // several iterations. | 272 | // several iterations. |
@@ -286,8 +286,8 @@ namespace OpenSim.Framework.Communications.Cache | |||
286 | // (CBC). Use default options for other symmetric key parameters. | 286 | // (CBC). Use default options for other symmetric key parameters. |
287 | symmetricKey.Mode = CipherMode.CBC; | 287 | symmetricKey.Mode = CipherMode.CBC; |
288 | 288 | ||
289 | // Generate decryptor from the existing key bytes and initialization | 289 | // Generate decryptor from the existing key bytes and initialization |
290 | // vector. Key size will be defined based on the number of the key | 290 | // vector. Key size will be defined based on the number of the key |
291 | // bytes. | 291 | // bytes. |
292 | ICryptoTransform decryptor = symmetricKey.CreateDecryptor( | 292 | ICryptoTransform decryptor = symmetricKey.CreateDecryptor( |
293 | keyBytes, | 293 | keyBytes, |
@@ -320,7 +320,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
320 | for (i = 0; i < decryptedByteCount; i++) | 320 | for (i = 0; i < decryptedByteCount; i++) |
321 | plainText[i] = plainTextBytes[i]; | 321 | plainText[i] = plainTextBytes[i]; |
322 | 322 | ||
323 | // Return decrypted string. | 323 | // Return decrypted string. |
324 | return plainText; | 324 | return plainText; |
325 | } | 325 | } |
326 | } | 326 | } |
@@ -403,17 +403,17 @@ namespace OpenSim.Framework.Communications.Cache | |||
403 | string salt = Convert.ToBase64String(rand); | 403 | string salt = Convert.ToBase64String(rand); |
404 | 404 | ||
405 | x.Data = UtilRijndael.Encrypt(x.Data, file.Secret, salt, "SHA1", 2, file.IVBytes, file.Keysize); | 405 | x.Data = UtilRijndael.Encrypt(x.Data, file.Secret, salt, "SHA1", 2, file.IVBytes, file.Keysize); |
406 | x.Description = String.Format("ENCASS#:~:#{0}#:~:#{1}#:~:#{2}#:~:#{3}", | 406 | x.Metadata.Description = String.Format("ENCASS#:~:#{0}#:~:#{1}#:~:#{2}#:~:#{3}", |
407 | "OPENSIM_AES_AF1", | 407 | "OPENSIM_AES_AF1", |
408 | file.AlsoKnownAs, | 408 | file.AlsoKnownAs, |
409 | salt, | 409 | salt, |
410 | x.Description); | 410 | x.Metadata.Description); |
411 | } | 411 | } |
412 | 412 | ||
413 | private bool DecryptAssetBase(AssetBase x) | 413 | private bool DecryptAssetBase(AssetBase x) |
414 | { | 414 | { |
415 | // Check it's encrypted first. | 415 | // Check it's encrypted first. |
416 | if (!x.Description.Contains("ENCASS")) | 416 | if (!x.Metadata.Description.Contains("ENCASS")) |
417 | return true; | 417 | return true; |
418 | 418 | ||
419 | // ENCASS:ALG:AKA:SALT:Description | 419 | // ENCASS:ALG:AKA:SALT:Description |
@@ -421,7 +421,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
421 | string[] splitchars = new string[1]; | 421 | string[] splitchars = new string[1]; |
422 | splitchars[0] = "#:~:#"; | 422 | splitchars[0] = "#:~:#"; |
423 | 423 | ||
424 | string[] meta = x.Description.Split(splitchars, StringSplitOptions.None); | 424 | string[] meta = x.Metadata.Description.Split(splitchars, StringSplitOptions.None); |
425 | if (meta.Length < 5) | 425 | if (meta.Length < 5) |
426 | { | 426 | { |
427 | m_log.Warn("[ENCASSETS] Recieved Encrypted Asset, but header is corrupt"); | 427 | m_log.Warn("[ENCASSETS] Recieved Encrypted Asset, but header is corrupt"); |
@@ -432,7 +432,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
432 | if (m_keyfiles.ContainsKey(meta[2])) | 432 | if (m_keyfiles.ContainsKey(meta[2])) |
433 | { | 433 | { |
434 | RjinKeyfile deckey = m_keyfiles[meta[2]]; | 434 | RjinKeyfile deckey = m_keyfiles[meta[2]]; |
435 | x.Description = meta[4]; | 435 | x.Metadata.Description = meta[4]; |
436 | switch (meta[1]) | 436 | switch (meta[1]) |
437 | { | 437 | { |
438 | case "OPENSIM_AES_AF1": | 438 | case "OPENSIM_AES_AF1": |
@@ -506,7 +506,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
506 | { | 506 | { |
507 | string assetUrl = _assetServerUrl + "/assets/"; | 507 | string assetUrl = _assetServerUrl + "/assets/"; |
508 | 508 | ||
509 | m_log.InfoFormat("[CRYPTO GRID ASSET CLIENT]: Sending store request for asset {0}", asset.FullID); | 509 | m_log.InfoFormat("[CRYPTO GRID ASSET CLIENT]: Sending store request for asset {0}", asset.Metadata.FullID); |
510 | 510 | ||
511 | RestObjectPoster.BeginPostObject<AssetBase>(assetUrl, asset); | 511 | RestObjectPoster.BeginPostObject<AssetBase>(assetUrl, asset); |
512 | } | 512 | } |
diff --git a/OpenSim/Framework/Communications/Cache/FileAssetClient.cs b/OpenSim/Framework/Communications/Cache/FileAssetClient.cs index 5f15c3e..8b8172e 100644 --- a/OpenSim/Framework/Communications/Cache/FileAssetClient.cs +++ b/OpenSim/Framework/Communications/Cache/FileAssetClient.cs | |||
@@ -45,7 +45,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
45 | } | 45 | } |
46 | public override void StoreAsset(AssetBase asset) | 46 | public override void StoreAsset(AssetBase asset) |
47 | { | 47 | { |
48 | byte[] idBytes = asset.FullID.Guid.ToByteArray(); | 48 | byte[] idBytes = asset.Metadata.FullID.Guid.ToByteArray(); |
49 | 49 | ||
50 | string cdir = m_dir + Path.DirectorySeparatorChar + idBytes[0] | 50 | string cdir = m_dir + Path.DirectorySeparatorChar + idBytes[0] |
51 | + Path.DirectorySeparatorChar + idBytes[1]; | 51 | + Path.DirectorySeparatorChar + idBytes[1]; |
@@ -56,7 +56,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
56 | if (!Directory.Exists(cdir)) | 56 | if (!Directory.Exists(cdir)) |
57 | Directory.CreateDirectory(cdir); | 57 | Directory.CreateDirectory(cdir); |
58 | 58 | ||
59 | FileStream x = new FileStream(cdir + Path.DirectorySeparatorChar + asset.FullID + ".xml", FileMode.Create); | 59 | FileStream x = new FileStream(cdir + Path.DirectorySeparatorChar + asset.Metadata.FullID + ".xml", FileMode.Create); |
60 | m_xs.Serialize(x, asset); | 60 | m_xs.Serialize(x, asset); |
61 | 61 | ||
62 | x.Flush(); | 62 | x.Flush(); |
diff --git a/OpenSim/Framework/Communications/Cache/GridAssetClient.cs b/OpenSim/Framework/Communications/Cache/GridAssetClient.cs index e27c4f4..1cc9833 100644 --- a/OpenSim/Framework/Communications/Cache/GridAssetClient.cs +++ b/OpenSim/Framework/Communications/Cache/GridAssetClient.cs | |||
@@ -97,7 +97,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
97 | // rc.Request(s); | 97 | // rc.Request(s); |
98 | //m_log.InfoFormat("[ASSET]: Stored {0}", rc); | 98 | //m_log.InfoFormat("[ASSET]: Stored {0}", rc); |
99 | 99 | ||
100 | m_log.InfoFormat("[GRID ASSET CLIENT]: Sending store request for asset {0}", asset.FullID); | 100 | m_log.InfoFormat("[GRID ASSET CLIENT]: Sending store request for asset {0}", asset.Metadata.FullID); |
101 | 101 | ||
102 | RestObjectPoster.BeginPostObject<AssetBase>(assetUrl, asset); | 102 | RestObjectPoster.BeginPostObject<AssetBase>(assetUrl, asset); |
103 | } | 103 | } |
diff --git a/OpenSim/Framework/Communications/Capabilities/Caps.cs b/OpenSim/Framework/Communications/Capabilities/Caps.cs index a6acd68..a370eea 100644 --- a/OpenSim/Framework/Communications/Capabilities/Caps.cs +++ b/OpenSim/Framework/Communications/Capabilities/Caps.cs | |||
@@ -159,7 +159,7 @@ namespace OpenSim.Framework.Communications.Capabilities | |||
159 | m_capsHandlers["SEED"] = new RestStreamHandler("POST", capsBase + m_requestPath, CapsRequest); | 159 | m_capsHandlers["SEED"] = new RestStreamHandler("POST", capsBase + m_requestPath, CapsRequest); |
160 | m_log.DebugFormat( | 160 | m_log.DebugFormat( |
161 | "[CAPS]: Registered seed capability {0} for {1}", capsBase + m_requestPath, m_agentID); | 161 | "[CAPS]: Registered seed capability {0} for {1}", capsBase + m_requestPath, m_agentID); |
162 | 162 | ||
163 | //m_capsHandlers["MapLayer"] = | 163 | //m_capsHandlers["MapLayer"] = |
164 | // new LLSDStreamhandler<OSDMapRequest, OSDMapLayerResponse>("POST", | 164 | // new LLSDStreamhandler<OSDMapRequest, OSDMapLayerResponse>("POST", |
165 | // capsBase + m_mapLayerPath, | 165 | // capsBase + m_mapLayerPath, |
@@ -247,9 +247,9 @@ namespace OpenSim.Framework.Communications.Capabilities | |||
247 | //m_log.Debug("[CAPS]: Seed Caps Request in region: " + m_regionName); | 247 | //m_log.Debug("[CAPS]: Seed Caps Request in region: " + m_regionName); |
248 | 248 | ||
249 | string result = LLSDHelpers.SerialiseLLSDReply(m_capsHandlers.CapsDetails); | 249 | string result = LLSDHelpers.SerialiseLLSDReply(m_capsHandlers.CapsDetails); |
250 | 250 | ||
251 | //m_log.DebugFormat("[CAPS] CapsRequest {0}", result); | 251 | //m_log.DebugFormat("[CAPS] CapsRequest {0}", result); |
252 | 252 | ||
253 | return result; | 253 | return result; |
254 | } | 254 | } |
255 | 255 | ||
@@ -569,7 +569,7 @@ namespace OpenSim.Framework.Communications.Capabilities | |||
569 | 569 | ||
570 | m_httpListener.AddStreamHandler( | 570 | m_httpListener.AddStreamHandler( |
571 | new BinaryStreamHandler("POST", capsBase + uploaderPath, uploader.uploaderCaps)); | 571 | new BinaryStreamHandler("POST", capsBase + uploaderPath, uploader.uploaderCaps)); |
572 | 572 | ||
573 | string protocol = "http://"; | 573 | string protocol = "http://"; |
574 | 574 | ||
575 | if (m_httpListener.UseSSL) | 575 | if (m_httpListener.UseSSL) |
@@ -648,7 +648,7 @@ namespace OpenSim.Framework.Communications.Capabilities | |||
648 | /// <returns></returns> | 648 | /// <returns></returns> |
649 | public LLSDAssetUploadResponse NewAgentInventoryRequest(LLSDAssetUploadRequest llsdRequest) | 649 | public LLSDAssetUploadResponse NewAgentInventoryRequest(LLSDAssetUploadRequest llsdRequest) |
650 | { | 650 | { |
651 | if (llsdRequest.asset_type == "texture" || | 651 | if (llsdRequest.asset_type == "texture" || |
652 | llsdRequest.asset_type == "animation" || | 652 | llsdRequest.asset_type == "animation" || |
653 | llsdRequest.asset_type == "sound") | 653 | llsdRequest.asset_type == "sound") |
654 | { | 654 | { |
@@ -741,9 +741,9 @@ namespace OpenSim.Framework.Communications.Capabilities | |||
741 | 741 | ||
742 | AssetBase asset; | 742 | AssetBase asset; |
743 | asset = new AssetBase(); | 743 | asset = new AssetBase(); |
744 | asset.FullID = assetID; | 744 | asset.Metadata.FullID = assetID; |
745 | asset.Type = assType; | 745 | asset.Metadata.Type = assType; |
746 | asset.Name = assetName; | 746 | asset.Metadata.Name = assetName; |
747 | asset.Data = data; | 747 | asset.Data = data; |
748 | m_assetCache.AddAsset(asset); | 748 | m_assetCache.AddAsset(asset); |
749 | 749 | ||
@@ -751,7 +751,7 @@ namespace OpenSim.Framework.Communications.Capabilities | |||
751 | item.Owner = m_agentID; | 751 | item.Owner = m_agentID; |
752 | item.Creator = m_agentID; | 752 | item.Creator = m_agentID; |
753 | item.ID = inventoryItem; | 753 | item.ID = inventoryItem; |
754 | item.AssetID = asset.FullID; | 754 | item.AssetID = asset.Metadata.FullID; |
755 | item.Description = assetDescription; | 755 | item.Description = assetDescription; |
756 | item.Name = assetName; | 756 | item.Name = assetName; |
757 | item.AssetType = assType; | 757 | item.AssetType = assType; |
diff --git a/OpenSim/Grid/AssetServer/RestService.cs b/OpenSim/Grid/AssetServer/RestService.cs index 3613cd8..a44af6c 100644 --- a/OpenSim/Grid/AssetServer/RestService.cs +++ b/OpenSim/Grid/AssetServer/RestService.cs | |||
@@ -141,7 +141,7 @@ namespace OpenSim.Grid.AssetServer | |||
141 | XmlSerializer xs = new XmlSerializer(typeof (AssetBase)); | 141 | XmlSerializer xs = new XmlSerializer(typeof (AssetBase)); |
142 | AssetBase asset = (AssetBase) xs.Deserialize(request); | 142 | AssetBase asset = (AssetBase) xs.Deserialize(request); |
143 | 143 | ||
144 | m_log.InfoFormat("[REST]: Creating asset {0}", asset.FullID); | 144 | m_log.InfoFormat("[REST]: Creating asset {0}", asset.Metadata.FullID); |
145 | m_assetProvider.CreateAsset(asset); | 145 | m_assetProvider.CreateAsset(asset); |
146 | 146 | ||
147 | return new byte[] {}; | 147 | return new byte[] {}; |
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 96a274c..42dbbee 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -63,9 +63,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
63 | /* private variables */ | 63 | /* private variables */ |
64 | private readonly UUID m_sessionId; | 64 | private readonly UUID m_sessionId; |
65 | private readonly UUID m_secureSessionId = UUID.Zero; | 65 | private readonly UUID m_secureSessionId = UUID.Zero; |
66 | 66 | ||
67 | private int m_debugPacketLevel; | 67 | private int m_debugPacketLevel; |
68 | 68 | ||
69 | private readonly AssetCache m_assetCache; | 69 | private readonly AssetCache m_assetCache; |
70 | private int m_cachedTextureSerial; | 70 | private int m_cachedTextureSerial; |
71 | private Timer m_clientPingTimer; | 71 | private Timer m_clientPingTimer; |
@@ -355,7 +355,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
355 | 355 | ||
356 | if (m_groupPowers.ContainsKey(groupID)) | 356 | if (m_groupPowers.ContainsKey(groupID)) |
357 | return m_groupPowers[groupID]; | 357 | return m_groupPowers[groupID]; |
358 | 358 | ||
359 | return 0; | 359 | return 0; |
360 | } | 360 | } |
361 | 361 | ||
@@ -454,8 +454,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
454 | m_circuitCode = circuitCode; | 454 | m_circuitCode = circuitCode; |
455 | 455 | ||
456 | m_userEndPoint = remoteEP; | 456 | m_userEndPoint = remoteEP; |
457 | m_proxyEndPoint = proxyEP; | 457 | m_proxyEndPoint = proxyEP; |
458 | 458 | ||
459 | m_firstName = sessionInfo.LoginInfo.First; | 459 | m_firstName = sessionInfo.LoginInfo.First; |
460 | m_lastName = sessionInfo.LoginInfo.Last; | 460 | m_lastName = sessionInfo.LoginInfo.Last; |
461 | m_startpos = sessionInfo.LoginInfo.StartPos; | 461 | m_startpos = sessionInfo.LoginInfo.StartPos; |
@@ -473,7 +473,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
473 | m_PacketHandler = new LLPacketHandler(this, m_networkServer, userSettings); | 473 | m_PacketHandler = new LLPacketHandler(this, m_networkServer, userSettings); |
474 | m_PacketHandler.SynchronizeClient = SynchronizeClient; | 474 | m_PacketHandler.SynchronizeClient = SynchronizeClient; |
475 | m_PacketHandler.OnPacketStats += PopulateStats; | 475 | m_PacketHandler.OnPacketStats += PopulateStats; |
476 | 476 | ||
477 | RegisterLocalPacketHandlers(); | 477 | RegisterLocalPacketHandlers(); |
478 | m_imageManager = new LLImageManager(this, m_assetCache,Scene.RequestModuleInterface<OpenSim.Region.Environment.Interfaces.IJ2KDecoder>()); | 478 | m_imageManager = new LLImageManager(this, m_assetCache,Scene.RequestModuleInterface<OpenSim.Region.Environment.Interfaces.IJ2KDecoder>()); |
479 | } | 479 | } |
@@ -501,7 +501,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
501 | // Shut down timers | 501 | // Shut down timers |
502 | m_clientPingTimer.Stop(); | 502 | m_clientPingTimer.Stop(); |
503 | 503 | ||
504 | 504 | ||
505 | // This is just to give the client a reasonable chance of | 505 | // This is just to give the client a reasonable chance of |
506 | // flushing out all it's packets. There should probably | 506 | // flushing out all it's packets. There should probably |
507 | // be a better mechanism here | 507 | // be a better mechanism here |
@@ -538,7 +538,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
538 | m_log.DebugFormat( | 538 | m_log.DebugFormat( |
539 | "[CLIENT]: Close has been called with shutdownCircuit = {0} for {1} attached to scene {2}", | 539 | "[CLIENT]: Close has been called with shutdownCircuit = {0} for {1} attached to scene {2}", |
540 | shutdownCircuit, Name, m_scene.RegionInfo.RegionName); | 540 | shutdownCircuit, Name, m_scene.RegionInfo.RegionName); |
541 | 541 | ||
542 | m_imageManager.Close(); | 542 | m_imageManager.Close(); |
543 | 543 | ||
544 | m_PacketHandler.Flush(); | 544 | m_PacketHandler.Flush(); |
@@ -716,14 +716,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
716 | { | 716 | { |
717 | info = packet.Type.ToString(); | 717 | info = packet.Type.ToString(); |
718 | } | 718 | } |
719 | 719 | ||
720 | Console.WriteLine(m_circuitCode + ":" + direction + ": " + info); | 720 | Console.WriteLine(m_circuitCode + ":" + direction + ": " + info); |
721 | } | 721 | } |
722 | } | 722 | } |
723 | 723 | ||
724 | /// <summary> | 724 | /// <summary> |
725 | /// Main packet processing loop for the UDP component of the client session. Both incoming and outgoing | 725 | /// Main packet processing loop for the UDP component of the client session. Both incoming and outgoing |
726 | /// packets are processed here. | 726 | /// packets are processed here. |
727 | /// </summary> | 727 | /// </summary> |
728 | protected virtual void ClientLoop() | 728 | protected virtual void ClientLoop() |
729 | { | 729 | { |
@@ -733,12 +733,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
733 | while (IsActive) | 733 | while (IsActive) |
734 | { | 734 | { |
735 | LLQueItem nextPacket = m_PacketHandler.PacketQueue.Dequeue(); | 735 | LLQueItem nextPacket = m_PacketHandler.PacketQueue.Dequeue(); |
736 | 736 | ||
737 | if (nextPacket.Incoming) | 737 | if (nextPacket.Incoming) |
738 | { | 738 | { |
739 | DebugPacket("IN", nextPacket.Packet); | 739 | DebugPacket("IN", nextPacket.Packet); |
740 | m_PacketHandler.ProcessInPacket(nextPacket); | 740 | m_PacketHandler.ProcessInPacket(nextPacket); |
741 | } | 741 | } |
742 | else | 742 | else |
743 | { | 743 | { |
744 | DebugPacket("OUT", nextPacket.Packet); | 744 | DebugPacket("OUT", nextPacket.Packet); |
@@ -821,14 +821,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
821 | m_clientThread.Name = "ClientThread"; | 821 | m_clientThread.Name = "ClientThread"; |
822 | m_clientThread.IsBackground = true; | 822 | m_clientThread.IsBackground = true; |
823 | m_clientThread.Start(); | 823 | m_clientThread.Start(); |
824 | ThreadTracker.Add(m_clientThread); | 824 | ThreadTracker.Add(m_clientThread); |
825 | } | 825 | } |
826 | 826 | ||
827 | /// <summary> | 827 | /// <summary> |
828 | /// Run a user session. This method lies at the base of the entire client thread. | 828 | /// Run a user session. This method lies at the base of the entire client thread. |
829 | /// </summary> | 829 | /// </summary> |
830 | protected virtual void RunUserSession() | 830 | protected virtual void RunUserSession() |
831 | { | 831 | { |
832 | //tell this thread we are using the culture set up for the sim (currently hardcoded to en_US) | 832 | //tell this thread we are using the culture set up for the sim (currently hardcoded to en_US) |
833 | //otherwise it will override this and use the system default | 833 | //otherwise it will override this and use the system default |
834 | Culture.SetCurrentCulture(); | 834 | Culture.SetCurrentCulture(); |
@@ -838,7 +838,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
838 | // This sets up all the timers | 838 | // This sets up all the timers |
839 | InitNewClient(); | 839 | InitNewClient(); |
840 | ClientLoop(); | 840 | ClientLoop(); |
841 | } | 841 | } |
842 | catch (Exception e) | 842 | catch (Exception e) |
843 | { | 843 | { |
844 | if (e is ThreadAbortException) | 844 | if (e is ThreadAbortException) |
@@ -1065,7 +1065,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1065 | public event ClassifiedInfoUpdate OnClassifiedInfoUpdate; | 1065 | public event ClassifiedInfoUpdate OnClassifiedInfoUpdate; |
1066 | public event ClassifiedDelete OnClassifiedDelete; | 1066 | public event ClassifiedDelete OnClassifiedDelete; |
1067 | public event ClassifiedDelete OnClassifiedGodDelete; | 1067 | public event ClassifiedDelete OnClassifiedGodDelete; |
1068 | 1068 | ||
1069 | public event EventNotificationAddRequest OnEventNotificationAddRequest; | 1069 | public event EventNotificationAddRequest OnEventNotificationAddRequest; |
1070 | public event EventNotificationRemoveRequest OnEventNotificationRemoveRequest; | 1070 | public event EventNotificationRemoveRequest OnEventNotificationRemoveRequest; |
1071 | public event EventGodDelete OnEventGodDelete; | 1071 | public event EventGodDelete OnEventGodDelete; |
@@ -1078,14 +1078,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1078 | public void ActivateGesture(UUID assetId, UUID gestureId) | 1078 | public void ActivateGesture(UUID assetId, UUID gestureId) |
1079 | { | 1079 | { |
1080 | } | 1080 | } |
1081 | 1081 | ||
1082 | public void DeactivateGesture(UUID assetId, UUID gestureId) | 1082 | public void DeactivateGesture(UUID assetId, UUID gestureId) |
1083 | { | 1083 | { |
1084 | } | 1084 | } |
1085 | 1085 | ||
1086 | // Sound | 1086 | // Sound |
1087 | public void SoundTrigger(UUID soundId, UUID owerid, UUID Objectid,UUID ParentId,float Gain, Vector3 Position,UInt64 Handle) | 1087 | public void SoundTrigger(UUID soundId, UUID owerid, UUID Objectid,UUID ParentId,float Gain, Vector3 Position,UInt64 Handle) |
1088 | { | 1088 | { |
1089 | } | 1089 | } |
1090 | 1090 | ||
1091 | #region Scene/Avatar to Client | 1091 | #region Scene/Avatar to Client |
@@ -1330,7 +1330,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1330 | 1330 | ||
1331 | LayerDataPacket layerpack = TerrainCompressor.CreateLandPacket(map, patches); | 1331 | LayerDataPacket layerpack = TerrainCompressor.CreateLandPacket(map, patches); |
1332 | layerpack.Header.Zerocoded = true; | 1332 | layerpack.Header.Zerocoded = true; |
1333 | 1333 | ||
1334 | OutPacket(layerpack, ThrottleOutPacketType.Land); | 1334 | OutPacket(layerpack, ThrottleOutPacketType.Land); |
1335 | 1335 | ||
1336 | } | 1336 | } |
@@ -1410,11 +1410,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1410 | agentData.child = false; | 1410 | agentData.child = false; |
1411 | agentData.firstname = m_firstName; | 1411 | agentData.firstname = m_firstName; |
1412 | agentData.lastname = m_lastName; | 1412 | agentData.lastname = m_lastName; |
1413 | 1413 | ||
1414 | ICapabilitiesModule capsModule = m_scene.RequestModuleInterface<ICapabilitiesModule>(); | 1414 | ICapabilitiesModule capsModule = m_scene.RequestModuleInterface<ICapabilitiesModule>(); |
1415 | agentData.CapsPath = capsModule.GetCapsPath(m_agentId); | 1415 | agentData.CapsPath = capsModule.GetCapsPath(m_agentId); |
1416 | agentData.ChildrenCapSeeds = new Dictionary<ulong,string>(capsModule.GetChildrenSeeds(m_agentId)); | 1416 | agentData.ChildrenCapSeeds = new Dictionary<ulong,string>(capsModule.GetChildrenSeeds(m_agentId)); |
1417 | 1417 | ||
1418 | return agentData; | 1418 | return agentData; |
1419 | } | 1419 | } |
1420 | 1420 | ||
@@ -1852,21 +1852,21 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1852 | inventoryReply.Header.Zerocoded = true; | 1852 | inventoryReply.Header.Zerocoded = true; |
1853 | OutPacket(inventoryReply, ThrottleOutPacketType.Asset); | 1853 | OutPacket(inventoryReply, ThrottleOutPacketType.Asset); |
1854 | } | 1854 | } |
1855 | 1855 | ||
1856 | /// <see>IClientAPI.SendBulkUpdateInventory(InventoryFolderBase)</see> | 1856 | /// <see>IClientAPI.SendBulkUpdateInventory(InventoryFolderBase)</see> |
1857 | public void SendBulkUpdateInventory(InventoryFolderBase folderBase) | 1857 | public void SendBulkUpdateInventory(InventoryFolderBase folderBase) |
1858 | { | 1858 | { |
1859 | // XXX: Nasty temporary move that will be resolved shortly | 1859 | // XXX: Nasty temporary move that will be resolved shortly |
1860 | InventoryFolderImpl folder = (InventoryFolderImpl)folderBase; | 1860 | InventoryFolderImpl folder = (InventoryFolderImpl)folderBase; |
1861 | 1861 | ||
1862 | // We will use the same transaction id for all the separate packets to be sent out in this update. | 1862 | // We will use the same transaction id for all the separate packets to be sent out in this update. |
1863 | UUID transactionId = UUID.Random(); | 1863 | UUID transactionId = UUID.Random(); |
1864 | 1864 | ||
1865 | List<BulkUpdateInventoryPacket.FolderDataBlock> folderDataBlocks | 1865 | List<BulkUpdateInventoryPacket.FolderDataBlock> folderDataBlocks |
1866 | = new List<BulkUpdateInventoryPacket.FolderDataBlock>(); | 1866 | = new List<BulkUpdateInventoryPacket.FolderDataBlock>(); |
1867 | 1867 | ||
1868 | SendBulkUpdateInventoryRecursive(folder, ref folderDataBlocks, transactionId); | 1868 | SendBulkUpdateInventoryRecursive(folder, ref folderDataBlocks, transactionId); |
1869 | 1869 | ||
1870 | if (folderDataBlocks.Count > 0) | 1870 | if (folderDataBlocks.Count > 0) |
1871 | { | 1871 | { |
1872 | // We'll end up with some unsent folder blocks if there were some empty folders at the end of the list | 1872 | // We'll end up with some unsent folder blocks if there were some empty folders at the end of the list |
@@ -1874,16 +1874,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1874 | BulkUpdateInventoryPacket bulkUpdate | 1874 | BulkUpdateInventoryPacket bulkUpdate |
1875 | = (BulkUpdateInventoryPacket)PacketPool.Instance.GetPacket(PacketType.BulkUpdateInventory); | 1875 | = (BulkUpdateInventoryPacket)PacketPool.Instance.GetPacket(PacketType.BulkUpdateInventory); |
1876 | bulkUpdate.Header.Zerocoded = true; | 1876 | bulkUpdate.Header.Zerocoded = true; |
1877 | 1877 | ||
1878 | bulkUpdate.AgentData.AgentID = AgentId; | 1878 | bulkUpdate.AgentData.AgentID = AgentId; |
1879 | bulkUpdate.AgentData.TransactionID = transactionId; | 1879 | bulkUpdate.AgentData.TransactionID = transactionId; |
1880 | bulkUpdate.FolderData = folderDataBlocks.ToArray(); | 1880 | bulkUpdate.FolderData = folderDataBlocks.ToArray(); |
1881 | 1881 | ||
1882 | //Console.WriteLine("SendBulkUpdateInventory :" + bulkUpdate); | 1882 | //Console.WriteLine("SendBulkUpdateInventory :" + bulkUpdate); |
1883 | OutPacket(bulkUpdate, ThrottleOutPacketType.Asset); | 1883 | OutPacket(bulkUpdate, ThrottleOutPacketType.Asset); |
1884 | } | 1884 | } |
1885 | } | 1885 | } |
1886 | 1886 | ||
1887 | /// <summary> | 1887 | /// <summary> |
1888 | /// Recursively construct bulk update packets to send folders and items | 1888 | /// Recursively construct bulk update packets to send folders and items |
1889 | /// </summary> | 1889 | /// </summary> |
@@ -1891,11 +1891,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1891 | /// <param name="folderDataBlocks"></param> | 1891 | /// <param name="folderDataBlocks"></param> |
1892 | /// <param name="transactionId"></param> | 1892 | /// <param name="transactionId"></param> |
1893 | private void SendBulkUpdateInventoryRecursive( | 1893 | private void SendBulkUpdateInventoryRecursive( |
1894 | InventoryFolderImpl folder, ref List<BulkUpdateInventoryPacket.FolderDataBlock> folderDataBlocks, | 1894 | InventoryFolderImpl folder, ref List<BulkUpdateInventoryPacket.FolderDataBlock> folderDataBlocks, |
1895 | UUID transactionId) | 1895 | UUID transactionId) |
1896 | { | 1896 | { |
1897 | folderDataBlocks.Add(GenerateBulkUpdateFolderDataBlock(folder)); | 1897 | folderDataBlocks.Add(GenerateBulkUpdateFolderDataBlock(folder)); |
1898 | 1898 | ||
1899 | const int MAX_ITEMS_PER_PACKET = 5; | 1899 | const int MAX_ITEMS_PER_PACKET = 5; |
1900 | 1900 | ||
1901 | // If there are any items then we have to start sending them off in this packet - the next folder will have | 1901 | // If there are any items then we have to start sending them off in this packet - the next folder will have |
@@ -1909,10 +1909,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1909 | bulkUpdate.Header.Zerocoded = true; | 1909 | bulkUpdate.Header.Zerocoded = true; |
1910 | 1910 | ||
1911 | bulkUpdate.AgentData.AgentID = AgentId; | 1911 | bulkUpdate.AgentData.AgentID = AgentId; |
1912 | bulkUpdate.AgentData.TransactionID = transactionId; | 1912 | bulkUpdate.AgentData.TransactionID = transactionId; |
1913 | bulkUpdate.FolderData = folderDataBlocks.ToArray(); | 1913 | bulkUpdate.FolderData = folderDataBlocks.ToArray(); |
1914 | 1914 | ||
1915 | int itemsToSend = (items.Count > MAX_ITEMS_PER_PACKET ? MAX_ITEMS_PER_PACKET : items.Count); | 1915 | int itemsToSend = (items.Count > MAX_ITEMS_PER_PACKET ? MAX_ITEMS_PER_PACKET : items.Count); |
1916 | bulkUpdate.ItemData = new BulkUpdateInventoryPacket.ItemDataBlock[itemsToSend]; | 1916 | bulkUpdate.ItemData = new BulkUpdateInventoryPacket.ItemDataBlock[itemsToSend]; |
1917 | 1917 | ||
1918 | for (int i = 0; i < itemsToSend; i++) | 1918 | for (int i = 0; i < itemsToSend; i++) |
@@ -1921,51 +1921,51 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1921 | bulkUpdate.ItemData[i] = GenerateBulkUpdateItemDataBlock(items[items.Count - 1]); | 1921 | bulkUpdate.ItemData[i] = GenerateBulkUpdateItemDataBlock(items[items.Count - 1]); |
1922 | items.RemoveAt(items.Count - 1); | 1922 | items.RemoveAt(items.Count - 1); |
1923 | } | 1923 | } |
1924 | 1924 | ||
1925 | //Console.WriteLine("SendBulkUpdateInventoryRecursive :" + bulkUpdate); | 1925 | //Console.WriteLine("SendBulkUpdateInventoryRecursive :" + bulkUpdate); |
1926 | OutPacket(bulkUpdate, ThrottleOutPacketType.Asset); | 1926 | OutPacket(bulkUpdate, ThrottleOutPacketType.Asset); |
1927 | 1927 | ||
1928 | folderDataBlocks = new List<BulkUpdateInventoryPacket.FolderDataBlock>(); | 1928 | folderDataBlocks = new List<BulkUpdateInventoryPacket.FolderDataBlock>(); |
1929 | 1929 | ||
1930 | // If we're going to be sending another items packet then it needs to contain just the folder to which those | 1930 | // If we're going to be sending another items packet then it needs to contain just the folder to which those |
1931 | // items belong. | 1931 | // items belong. |
1932 | if (items.Count > 0) | 1932 | if (items.Count > 0) |
1933 | folderDataBlocks.Add(GenerateBulkUpdateFolderDataBlock(folder)); | 1933 | folderDataBlocks.Add(GenerateBulkUpdateFolderDataBlock(folder)); |
1934 | } | 1934 | } |
1935 | 1935 | ||
1936 | List<InventoryFolderImpl> subFolders = folder.RequestListOfFolderImpls(); | 1936 | List<InventoryFolderImpl> subFolders = folder.RequestListOfFolderImpls(); |
1937 | foreach (InventoryFolderImpl subFolder in subFolders) | 1937 | foreach (InventoryFolderImpl subFolder in subFolders) |
1938 | { | 1938 | { |
1939 | SendBulkUpdateInventoryRecursive(subFolder, ref folderDataBlocks, transactionId); | 1939 | SendBulkUpdateInventoryRecursive(subFolder, ref folderDataBlocks, transactionId); |
1940 | } | 1940 | } |
1941 | } | 1941 | } |
1942 | 1942 | ||
1943 | /// <summary> | 1943 | /// <summary> |
1944 | /// Generate a bulk update inventory data block for the given folder | 1944 | /// Generate a bulk update inventory data block for the given folder |
1945 | /// </summary> | 1945 | /// </summary> |
1946 | /// <param name="folder"></param> | 1946 | /// <param name="folder"></param> |
1947 | /// <returns></returns> | 1947 | /// <returns></returns> |
1948 | private BulkUpdateInventoryPacket.FolderDataBlock GenerateBulkUpdateFolderDataBlock(InventoryFolderBase folder) | 1948 | private BulkUpdateInventoryPacket.FolderDataBlock GenerateBulkUpdateFolderDataBlock(InventoryFolderBase folder) |
1949 | { | 1949 | { |
1950 | BulkUpdateInventoryPacket.FolderDataBlock folderBlock = new BulkUpdateInventoryPacket.FolderDataBlock(); | 1950 | BulkUpdateInventoryPacket.FolderDataBlock folderBlock = new BulkUpdateInventoryPacket.FolderDataBlock(); |
1951 | 1951 | ||
1952 | folderBlock.FolderID = folder.ID; | 1952 | folderBlock.FolderID = folder.ID; |
1953 | folderBlock.ParentID = folder.ParentID; | 1953 | folderBlock.ParentID = folder.ParentID; |
1954 | folderBlock.Type = -1; | 1954 | folderBlock.Type = -1; |
1955 | folderBlock.Name = Utils.StringToBytes(folder.Name); | 1955 | folderBlock.Name = Utils.StringToBytes(folder.Name); |
1956 | 1956 | ||
1957 | return folderBlock; | 1957 | return folderBlock; |
1958 | } | 1958 | } |
1959 | 1959 | ||
1960 | /// <summary> | 1960 | /// <summary> |
1961 | /// Generate a bulk update inventory data block for the given item | 1961 | /// Generate a bulk update inventory data block for the given item |
1962 | /// </summary> | 1962 | /// </summary> |
1963 | /// <param name="item"></param> | 1963 | /// <param name="item"></param> |
1964 | /// <returns></returns> | 1964 | /// <returns></returns> |
1965 | private BulkUpdateInventoryPacket.ItemDataBlock GenerateBulkUpdateItemDataBlock(InventoryItemBase item) | 1965 | private BulkUpdateInventoryPacket.ItemDataBlock GenerateBulkUpdateItemDataBlock(InventoryItemBase item) |
1966 | { | 1966 | { |
1967 | BulkUpdateInventoryPacket.ItemDataBlock itemBlock = new BulkUpdateInventoryPacket.ItemDataBlock(); | 1967 | BulkUpdateInventoryPacket.ItemDataBlock itemBlock = new BulkUpdateInventoryPacket.ItemDataBlock(); |
1968 | 1968 | ||
1969 | itemBlock.ItemID = item.ID; | 1969 | itemBlock.ItemID = item.ID; |
1970 | itemBlock.AssetID = item.AssetID; | 1970 | itemBlock.AssetID = item.AssetID; |
1971 | itemBlock.CreatorID = item.Creator; | 1971 | itemBlock.CreatorID = item.Creator; |
@@ -1996,7 +1996,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1996 | itemBlock.ItemID, itemBlock.FolderID, | 1996 | itemBlock.ItemID, itemBlock.FolderID, |
1997 | (uint)PermissionMask.All, 1, (uint)PermissionMask.All, (uint)PermissionMask.All, | 1997 | (uint)PermissionMask.All, 1, (uint)PermissionMask.All, (uint)PermissionMask.All, |
1998 | (uint)PermissionMask.All); | 1998 | (uint)PermissionMask.All); |
1999 | 1999 | ||
2000 | return itemBlock; | 2000 | return itemBlock; |
2001 | } | 2001 | } |
2002 | 2002 | ||
@@ -2396,17 +2396,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2396 | OutPacket(viewertime, ThrottleOutPacketType.Task); | 2396 | OutPacket(viewertime, ThrottleOutPacketType.Task); |
2397 | */ | 2397 | */ |
2398 | } | 2398 | } |
2399 | 2399 | ||
2400 | public void SendViewerEffect(ViewerEffectPacket.EffectBlock[] effectBlocks) | 2400 | public void SendViewerEffect(ViewerEffectPacket.EffectBlock[] effectBlocks) |
2401 | { | 2401 | { |
2402 | ViewerEffectPacket packet = (ViewerEffectPacket)PacketPool.Instance.GetPacket(PacketType.ViewerEffect); | 2402 | ViewerEffectPacket packet = (ViewerEffectPacket)PacketPool.Instance.GetPacket(PacketType.ViewerEffect); |
2403 | packet.Effect = effectBlocks; | 2403 | packet.Effect = effectBlocks; |
2404 | 2404 | ||
2405 | packet.AgentData.AgentID = AgentId; | 2405 | packet.AgentData.AgentID = AgentId; |
2406 | packet.AgentData.SessionID = SessionId; | 2406 | packet.AgentData.SessionID = SessionId; |
2407 | packet.Header.Reliable = false; | 2407 | packet.Header.Reliable = false; |
2408 | packet.Header.Zerocoded = true; | 2408 | packet.Header.Zerocoded = true; |
2409 | OutPacket(packet, ThrottleOutPacketType.Task); | 2409 | OutPacket(packet, ThrottleOutPacketType.Task); |
2410 | } | 2410 | } |
2411 | 2411 | ||
2412 | public void SendAvatarProperties(UUID avatarID, string aboutText, string bornOn, Byte[] charterMember, | 2412 | public void SendAvatarProperties(UUID avatarID, string aboutText, string bornOn, Byte[] charterMember, |
@@ -2439,7 +2439,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2439 | // Gesture | 2439 | // Gesture |
2440 | 2440 | ||
2441 | #region Appearance/ Wearables Methods | 2441 | #region Appearance/ Wearables Methods |
2442 | 2442 | ||
2443 | public void SendWearables(AvatarWearable[] wearables, int serial) | 2443 | public void SendWearables(AvatarWearable[] wearables, int serial) |
2444 | { | 2444 | { |
2445 | AgentWearablesUpdatePacket aw = (AgentWearablesUpdatePacket)PacketPool.Instance.GetPacket(PacketType.AgentWearablesUpdate); | 2445 | AgentWearablesUpdatePacket aw = (AgentWearablesUpdatePacket)PacketPool.Instance.GetPacket(PacketType.AgentWearablesUpdate); |
@@ -2457,9 +2457,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2457 | awb.AssetID = wearables[i].AssetID; | 2457 | awb.AssetID = wearables[i].AssetID; |
2458 | awb.ItemID = wearables[i].ItemID; | 2458 | awb.ItemID = wearables[i].ItemID; |
2459 | aw.WearableData[i] = awb; | 2459 | aw.WearableData[i] = awb; |
2460 | 2460 | ||
2461 | // m_log.DebugFormat( | 2461 | // m_log.DebugFormat( |
2462 | // "[APPEARANCE]: Sending wearable item/asset {0} {1} (index {2}) for {3}", | 2462 | // "[APPEARANCE]: Sending wearable item/asset {0} {1} (index {2}) for {3}", |
2463 | // awb.ItemID, awb.AssetID, i, Name); | 2463 | // awb.ItemID, awb.AssetID, i, Name); |
2464 | } | 2464 | } |
2465 | 2465 | ||
@@ -2489,7 +2489,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2489 | public void SendAnimations(UUID[] animations, int[] seqs, UUID sourceAgentId) | 2489 | public void SendAnimations(UUID[] animations, int[] seqs, UUID sourceAgentId) |
2490 | { | 2490 | { |
2491 | //m_log.DebugFormat("[CLIENT]: Sending animations to {0}", Name); | 2491 | //m_log.DebugFormat("[CLIENT]: Sending animations to {0}", Name); |
2492 | 2492 | ||
2493 | AvatarAnimationPacket ani = (AvatarAnimationPacket)PacketPool.Instance.GetPacket(PacketType.AvatarAnimation); | 2493 | AvatarAnimationPacket ani = (AvatarAnimationPacket)PacketPool.Instance.GetPacket(PacketType.AvatarAnimation); |
2494 | // TODO: don't create new blocks if recycling an old packet | 2494 | // TODO: don't create new blocks if recycling an old packet |
2495 | ani.AnimationSourceList = new AvatarAnimationPacket.AnimationSourceListBlock[1]; | 2495 | ani.AnimationSourceList = new AvatarAnimationPacket.AnimationSourceListBlock[1]; |
@@ -2546,16 +2546,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2546 | 2546 | ||
2547 | /// <summary> | 2547 | /// <summary> |
2548 | /// Send a terse positional/rotation/velocity update about an avatar to the client. This avatar can be that of | 2548 | /// Send a terse positional/rotation/velocity update about an avatar to the client. This avatar can be that of |
2549 | /// the client itself. | 2549 | /// the client itself. |
2550 | /// </summary> | 2550 | /// </summary> |
2551 | public void SendAvatarTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, Vector3 position, | 2551 | public void SendAvatarTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, Vector3 position, |
2552 | Vector3 velocity, Quaternion rotation) | 2552 | Vector3 velocity, Quaternion rotation) |
2553 | { | 2553 | { |
2554 | if (rotation.X == rotation.Y && rotation.Y == rotation.Z && rotation.Z == rotation.W && rotation.W == 0) | 2554 | if (rotation.X == rotation.Y && rotation.Y == rotation.Z && rotation.Z == rotation.W && rotation.W == 0) |
2555 | rotation = Quaternion.Identity; | 2555 | rotation = Quaternion.Identity; |
2556 | 2556 | ||
2557 | //m_log.DebugFormat("[CLIENT]: Sending rotation {0} for {1} to {2}", rotation, localID, Name); | 2557 | //m_log.DebugFormat("[CLIENT]: Sending rotation {0} for {1} to {2}", rotation, localID, Name); |
2558 | 2558 | ||
2559 | ImprovedTerseObjectUpdatePacket.ObjectDataBlock terseBlock = | 2559 | ImprovedTerseObjectUpdatePacket.ObjectDataBlock terseBlock = |
2560 | CreateAvatarImprovedBlock(localID, position, velocity, rotation); | 2560 | CreateAvatarImprovedBlock(localID, position, velocity, rotation); |
2561 | ImprovedTerseObjectUpdatePacket terse = (ImprovedTerseObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ImprovedTerseObjectUpdate); | 2561 | ImprovedTerseObjectUpdatePacket terse = (ImprovedTerseObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ImprovedTerseObjectUpdate); |
@@ -2567,7 +2567,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2567 | 2567 | ||
2568 | terse.Header.Reliable = false; | 2568 | terse.Header.Reliable = false; |
2569 | terse.Header.Zerocoded = true; | 2569 | terse.Header.Zerocoded = true; |
2570 | 2570 | ||
2571 | OutPacket(terse, ThrottleOutPacketType.Task); | 2571 | OutPacket(terse, ThrottleOutPacketType.Task); |
2572 | } | 2572 | } |
2573 | 2573 | ||
@@ -2593,7 +2593,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2593 | loc.Index = ib; | 2593 | loc.Index = ib; |
2594 | loc.Header.Reliable = false; | 2594 | loc.Header.Reliable = false; |
2595 | loc.Header.Zerocoded = true; | 2595 | loc.Header.Zerocoded = true; |
2596 | 2596 | ||
2597 | OutPacket(loc, ThrottleOutPacketType.Task); | 2597 | OutPacket(loc, ThrottleOutPacketType.Task); |
2598 | } | 2598 | } |
2599 | 2599 | ||
@@ -2808,7 +2808,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2808 | im.Header.Zerocoded = true; | 2808 | im.Header.Zerocoded = true; |
2809 | OutPacket(im, ThrottleOutPacketType.Texture); | 2809 | OutPacket(im, ThrottleOutPacketType.Texture); |
2810 | } | 2810 | } |
2811 | 2811 | ||
2812 | public void SendImageNextPart(ushort partNumber, UUID imageUuid, byte[] imageData) | 2812 | public void SendImageNextPart(ushort partNumber, UUID imageUuid, byte[] imageData) |
2813 | { | 2813 | { |
2814 | ImagePacketPacket im = new ImagePacketPacket(); | 2814 | ImagePacketPacket im = new ImagePacketPacket(); |
@@ -2816,13 +2816,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2816 | im.ImageID.Packet = partNumber; | 2816 | im.ImageID.Packet = partNumber; |
2817 | im.ImageID.ID = imageUuid; | 2817 | im.ImageID.ID = imageUuid; |
2818 | im.ImageData.Data = imageData; | 2818 | im.ImageData.Data = imageData; |
2819 | 2819 | ||
2820 | OutPacket(im, ThrottleOutPacketType.Texture); | 2820 | OutPacket(im, ThrottleOutPacketType.Texture); |
2821 | } | 2821 | } |
2822 | 2822 | ||
2823 | public void SendImageNotFound(UUID imageid) | 2823 | public void SendImageNotFound(UUID imageid) |
2824 | { | 2824 | { |
2825 | ImageNotInDatabasePacket notFoundPacket | 2825 | ImageNotInDatabasePacket notFoundPacket |
2826 | = (ImageNotInDatabasePacket)PacketPool.Instance.GetPacket(PacketType.ImageNotInDatabase); | 2826 | = (ImageNotInDatabasePacket)PacketPool.Instance.GetPacket(PacketType.ImageNotInDatabase); |
2827 | 2827 | ||
2828 | notFoundPacket.ImageID.ID = imageid; | 2828 | notFoundPacket.ImageID.ID = imageid; |
@@ -2845,9 +2845,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2845 | pack.Region.ObjectCapacity = stats.ObjectCapacity; | 2845 | pack.Region.ObjectCapacity = stats.ObjectCapacity; |
2846 | //pack.Region = //stats.RegionBlock; | 2846 | //pack.Region = //stats.RegionBlock; |
2847 | pack.Stat = stats.StatsBlock; | 2847 | pack.Stat = stats.StatsBlock; |
2848 | 2848 | ||
2849 | pack.Header.Reliable = false; | 2849 | pack.Header.Reliable = false; |
2850 | 2850 | ||
2851 | OutPacket(pack, ThrottleOutPacketType.Task); | 2851 | OutPacket(pack, ThrottleOutPacketType.Task); |
2852 | } | 2852 | } |
2853 | 2853 | ||
@@ -3129,7 +3129,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3129 | updatePacket.ParcelData.IsGroupOwned = landData.IsGroupOwned; | 3129 | updatePacket.ParcelData.IsGroupOwned = landData.IsGroupOwned; |
3130 | updatePacket.ParcelData.LandingType = landData.LandingType; | 3130 | updatePacket.ParcelData.LandingType = landData.LandingType; |
3131 | updatePacket.ParcelData.LocalID = landData.LocalID; | 3131 | updatePacket.ParcelData.LocalID = landData.LocalID; |
3132 | 3132 | ||
3133 | if (landData.Area > 0) | 3133 | if (landData.Area > 0) |
3134 | { | 3134 | { |
3135 | updatePacket.ParcelData.MaxPrims = parcelObjectCapacity; | 3135 | updatePacket.ParcelData.MaxPrims = parcelObjectCapacity; |
@@ -3138,10 +3138,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3138 | { | 3138 | { |
3139 | updatePacket.ParcelData.MaxPrims = 0; | 3139 | updatePacket.ParcelData.MaxPrims = 0; |
3140 | } | 3140 | } |
3141 | 3141 | ||
3142 | updatePacket.ParcelData.MediaAutoScale = landData.MediaAutoScale; | 3142 | updatePacket.ParcelData.MediaAutoScale = landData.MediaAutoScale; |
3143 | updatePacket.ParcelData.MediaID = landData.MediaID; | 3143 | updatePacket.ParcelData.MediaID = landData.MediaID; |
3144 | updatePacket.ParcelData.MediaURL = LLUtil.StringToPacketBytes(landData.MediaURL); | 3144 | updatePacket.ParcelData.MediaURL = LLUtil.StringToPacketBytes(landData.MediaURL); |
3145 | updatePacket.ParcelData.MusicURL = LLUtil.StringToPacketBytes(landData.MusicURL); | 3145 | updatePacket.ParcelData.MusicURL = LLUtil.StringToPacketBytes(landData.MusicURL); |
3146 | updatePacket.ParcelData.Name = Utils.StringToBytes(landData.Name); | 3146 | updatePacket.ParcelData.Name = Utils.StringToBytes(landData.Name); |
3147 | updatePacket.ParcelData.OtherCleanTime = landData.OtherCleanTime; | 3147 | updatePacket.ParcelData.OtherCleanTime = landData.OtherCleanTime; |
@@ -4162,7 +4162,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4162 | 4162 | ||
4163 | /// <summary> | 4163 | /// <summary> |
4164 | /// This is the starting point for sending a simulator packet out to the client. | 4164 | /// This is the starting point for sending a simulator packet out to the client. |
4165 | /// | 4165 | /// |
4166 | /// Please do not call this from outside the LindenUDP client stack. | 4166 | /// Please do not call this from outside the LindenUDP client stack. |
4167 | /// </summary> | 4167 | /// </summary> |
4168 | /// <param name="NewPack"></param> | 4168 | /// <param name="NewPack"></param> |
@@ -4244,13 +4244,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4244 | if (ProcessPacketMethod(Pack)) | 4244 | if (ProcessPacketMethod(Pack)) |
4245 | { | 4245 | { |
4246 | //there is a handler registered that handled this packet type | 4246 | //there is a handler registered that handled this packet type |
4247 | 4247 | ||
4248 | // in the end, we dereference this, so we have to check if it's null | 4248 | // in the end, we dereference this, so we have to check if it's null |
4249 | if (m_imageManager != null) | 4249 | if (m_imageManager != null) |
4250 | m_imageManager.ProcessImageQueue(3); | 4250 | m_imageManager.ProcessImageQueue(3); |
4251 | return; | 4251 | return; |
4252 | } | 4252 | } |
4253 | 4253 | ||
4254 | // Main packet processing conditional | 4254 | // Main packet processing conditional |
4255 | switch (Pack.Type) | 4255 | switch (Pack.Type) |
4256 | { | 4256 | { |
@@ -4266,7 +4266,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4266 | } | 4266 | } |
4267 | 4267 | ||
4268 | break; | 4268 | break; |
4269 | 4269 | ||
4270 | case PacketType.ChatFromViewer: | 4270 | case PacketType.ChatFromViewer: |
4271 | ChatFromViewerPacket inchatpack = (ChatFromViewerPacket)Pack; | 4271 | ChatFromViewerPacket inchatpack = (ChatFromViewerPacket)Pack; |
4272 | 4272 | ||
@@ -4296,7 +4296,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4296 | handlerChatFromClient(this, args); | 4296 | handlerChatFromClient(this, args); |
4297 | } | 4297 | } |
4298 | break; | 4298 | break; |
4299 | 4299 | ||
4300 | case PacketType.AvatarPropertiesUpdate: | 4300 | case PacketType.AvatarPropertiesUpdate: |
4301 | AvatarPropertiesUpdatePacket Packet = (AvatarPropertiesUpdatePacket)Pack; | 4301 | AvatarPropertiesUpdatePacket Packet = (AvatarPropertiesUpdatePacket)Pack; |
4302 | 4302 | ||
@@ -4335,7 +4335,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4335 | } | 4335 | } |
4336 | 4336 | ||
4337 | break; | 4337 | break; |
4338 | 4338 | ||
4339 | case PacketType.ImprovedInstantMessage: | 4339 | case PacketType.ImprovedInstantMessage: |
4340 | ImprovedInstantMessagePacket msgpack = (ImprovedInstantMessagePacket)Pack; | 4340 | ImprovedInstantMessagePacket msgpack = (ImprovedInstantMessagePacket)Pack; |
4341 | string IMfromName = Util.FieldToString(msgpack.MessageBlock.FromAgentName); | 4341 | string IMfromName = Util.FieldToString(msgpack.MessageBlock.FromAgentName); |
@@ -4383,7 +4383,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4383 | 4383 | ||
4384 | case PacketType.DeclineFriendship: | 4384 | case PacketType.DeclineFriendship: |
4385 | DeclineFriendshipPacket dfriendpack = (DeclineFriendshipPacket)Pack; | 4385 | DeclineFriendshipPacket dfriendpack = (DeclineFriendshipPacket)Pack; |
4386 | 4386 | ||
4387 | if (OnDenyFriendRequest != null) | 4387 | if (OnDenyFriendRequest != null) |
4388 | { | 4388 | { |
4389 | OnDenyFriendRequest(this, | 4389 | OnDenyFriendRequest(this, |
@@ -4391,7 +4391,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4391 | dfriendpack.TransactionBlock.TransactionID, | 4391 | dfriendpack.TransactionBlock.TransactionID, |
4392 | null); | 4392 | null); |
4393 | } | 4393 | } |
4394 | break; | 4394 | break; |
4395 | 4395 | ||
4396 | case PacketType.TerminateFriendship: | 4396 | case PacketType.TerminateFriendship: |
4397 | TerminateFriendshipPacket tfriendpack = (TerminateFriendshipPacket)Pack; | 4397 | TerminateFriendshipPacket tfriendpack = (TerminateFriendshipPacket)Pack; |
@@ -4404,7 +4404,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4404 | handlerTerminateFriendship(this, listOwnerAgentID, exFriendID); | 4404 | handlerTerminateFriendship(this, listOwnerAgentID, exFriendID); |
4405 | } | 4405 | } |
4406 | break; | 4406 | break; |
4407 | 4407 | ||
4408 | case PacketType.RezObject: | 4408 | case PacketType.RezObject: |
4409 | RezObjectPacket rezPacket = (RezObjectPacket)Pack; | 4409 | RezObjectPacket rezPacket = (RezObjectPacket)Pack; |
4410 | 4410 | ||
@@ -4418,8 +4418,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4418 | rezPacket.RezData.FromTaskID); | 4418 | rezPacket.RezData.FromTaskID); |
4419 | } | 4419 | } |
4420 | break; | 4420 | break; |
4421 | 4421 | ||
4422 | case PacketType.DeRezObject: | 4422 | case PacketType.DeRezObject: |
4423 | DeRezObjectPacket DeRezPacket = (DeRezObjectPacket) Pack; | 4423 | DeRezObjectPacket DeRezPacket = (DeRezObjectPacket) Pack; |
4424 | handlerDeRezObject = OnDeRezObject; | 4424 | handlerDeRezObject = OnDeRezObject; |
4425 | if (handlerDeRezObject != null) | 4425 | if (handlerDeRezObject != null) |
@@ -4427,8 +4427,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4427 | foreach (DeRezObjectPacket.ObjectDataBlock data in | 4427 | foreach (DeRezObjectPacket.ObjectDataBlock data in |
4428 | DeRezPacket.ObjectData) | 4428 | DeRezPacket.ObjectData) |
4429 | { | 4429 | { |
4430 | // It just so happens that the values on the DeRezAction enumerator match the Destination | 4430 | // It just so happens that the values on the DeRezAction enumerator match the Destination |
4431 | // values given by a Second Life client | 4431 | // values given by a Second Life client |
4432 | handlerDeRezObject(this, data.ObjectLocalID, | 4432 | handlerDeRezObject(this, data.ObjectLocalID, |
4433 | DeRezPacket.AgentBlock.GroupID, | 4433 | DeRezPacket.AgentBlock.GroupID, |
4434 | (DeRezAction)DeRezPacket.AgentBlock.Destination, | 4434 | (DeRezAction)DeRezPacket.AgentBlock.Destination, |
@@ -4436,7 +4436,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4436 | } | 4436 | } |
4437 | } | 4437 | } |
4438 | break; | 4438 | break; |
4439 | 4439 | ||
4440 | case PacketType.ModifyLand: | 4440 | case PacketType.ModifyLand: |
4441 | ModifyLandPacket modify = (ModifyLandPacket)Pack; | 4441 | ModifyLandPacket modify = (ModifyLandPacket)Pack; |
4442 | //m_log.Info("[LAND]: LAND:" + modify.ToString()); | 4442 | //m_log.Info("[LAND]: LAND:" + modify.ToString()); |
@@ -4461,7 +4461,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4461 | } | 4461 | } |
4462 | 4462 | ||
4463 | break; | 4463 | break; |
4464 | 4464 | ||
4465 | case PacketType.RegionHandshakeReply: | 4465 | case PacketType.RegionHandshakeReply: |
4466 | 4466 | ||
4467 | handlerRegionHandShakeReply = OnRegionHandShakeReply; | 4467 | handlerRegionHandShakeReply = OnRegionHandShakeReply; |
@@ -4471,7 +4471,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4471 | } | 4471 | } |
4472 | 4472 | ||
4473 | break; | 4473 | break; |
4474 | 4474 | ||
4475 | case PacketType.AgentWearablesRequest: | 4475 | case PacketType.AgentWearablesRequest: |
4476 | handlerRequestWearables = OnRequestWearables; | 4476 | handlerRequestWearables = OnRequestWearables; |
4477 | 4477 | ||
@@ -4488,7 +4488,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4488 | } | 4488 | } |
4489 | 4489 | ||
4490 | break; | 4490 | break; |
4491 | 4491 | ||
4492 | case PacketType.AgentSetAppearance: | 4492 | case PacketType.AgentSetAppearance: |
4493 | AgentSetAppearancePacket appear = (AgentSetAppearancePacket)Pack; | 4493 | AgentSetAppearancePacket appear = (AgentSetAppearancePacket)Pack; |
4494 | 4494 | ||
@@ -4537,7 +4537,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4537 | } | 4537 | } |
4538 | } | 4538 | } |
4539 | break; | 4539 | break; |
4540 | 4540 | ||
4541 | case PacketType.RezSingleAttachmentFromInv: | 4541 | case PacketType.RezSingleAttachmentFromInv: |
4542 | handlerRezSingleAttachment = OnRezSingleAttachmentFromInv; | 4542 | handlerRezSingleAttachment = OnRezSingleAttachmentFromInv; |
4543 | if (handlerRezSingleAttachment != null) | 4543 | if (handlerRezSingleAttachment != null) |
@@ -4548,7 +4548,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4548 | } | 4548 | } |
4549 | 4549 | ||
4550 | break; | 4550 | break; |
4551 | 4551 | ||
4552 | case PacketType.DetachAttachmentIntoInv: | 4552 | case PacketType.DetachAttachmentIntoInv: |
4553 | handlerDetachAttachmentIntoInv = OnDetachAttachmentIntoInv; | 4553 | handlerDetachAttachmentIntoInv = OnDetachAttachmentIntoInv; |
4554 | if (handlerDetachAttachmentIntoInv != null) | 4554 | if (handlerDetachAttachmentIntoInv != null) |
@@ -4561,7 +4561,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4561 | handlerDetachAttachmentIntoInv(itemID, this); | 4561 | handlerDetachAttachmentIntoInv(itemID, this); |
4562 | } | 4562 | } |
4563 | break; | 4563 | break; |
4564 | 4564 | ||
4565 | case PacketType.ObjectAttach: | 4565 | case PacketType.ObjectAttach: |
4566 | if (OnObjectAttach != null) | 4566 | if (OnObjectAttach != null) |
4567 | { | 4567 | { |
@@ -4578,7 +4578,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4578 | } | 4578 | } |
4579 | } | 4579 | } |
4580 | break; | 4580 | break; |
4581 | 4581 | ||
4582 | case PacketType.ObjectDetach: | 4582 | case PacketType.ObjectDetach: |
4583 | ObjectDetachPacket dett = (ObjectDetachPacket)Pack; | 4583 | ObjectDetachPacket dett = (ObjectDetachPacket)Pack; |
4584 | for (int j = 0; j < dett.ObjectData.Length; j++) | 4584 | for (int j = 0; j < dett.ObjectData.Length; j++) |
@@ -4592,7 +4592,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4592 | 4592 | ||
4593 | } | 4593 | } |
4594 | break; | 4594 | break; |
4595 | 4595 | ||
4596 | case PacketType.ObjectDrop: | 4596 | case PacketType.ObjectDrop: |
4597 | ObjectDropPacket dropp = (ObjectDropPacket)Pack; | 4597 | ObjectDropPacket dropp = (ObjectDropPacket)Pack; |
4598 | for (int j = 0; j < dropp.ObjectData.Length; j++) | 4598 | for (int j = 0; j < dropp.ObjectData.Length; j++) |
@@ -4605,7 +4605,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4605 | } | 4605 | } |
4606 | } | 4606 | } |
4607 | break; | 4607 | break; |
4608 | 4608 | ||
4609 | case PacketType.SetAlwaysRun: | 4609 | case PacketType.SetAlwaysRun: |
4610 | SetAlwaysRunPacket run = (SetAlwaysRunPacket)Pack; | 4610 | SetAlwaysRunPacket run = (SetAlwaysRunPacket)Pack; |
4611 | 4611 | ||
@@ -4614,7 +4614,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4614 | handlerSetAlwaysRun(this, run.AgentData.AlwaysRun); | 4614 | handlerSetAlwaysRun(this, run.AgentData.AlwaysRun); |
4615 | 4615 | ||
4616 | break; | 4616 | break; |
4617 | 4617 | ||
4618 | case PacketType.CompleteAgentMovement: | 4618 | case PacketType.CompleteAgentMovement: |
4619 | handlerCompleteMovementToRegion = OnCompleteMovementToRegion; | 4619 | handlerCompleteMovementToRegion = OnCompleteMovementToRegion; |
4620 | if (handlerCompleteMovementToRegion != null) | 4620 | if (handlerCompleteMovementToRegion != null) |
@@ -4624,7 +4624,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4624 | handlerCompleteMovementToRegion = null; | 4624 | handlerCompleteMovementToRegion = null; |
4625 | 4625 | ||
4626 | break; | 4626 | break; |
4627 | 4627 | ||
4628 | case PacketType.AgentUpdate: | 4628 | case PacketType.AgentUpdate: |
4629 | if (OnAgentUpdate != null) | 4629 | if (OnAgentUpdate != null) |
4630 | { | 4630 | { |
@@ -4653,7 +4653,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4653 | //agenUpdate.AgentData.ControlFlags, agenUpdate.AgentData.BodyRotationa); | 4653 | //agenUpdate.AgentData.ControlFlags, agenUpdate.AgentData.BodyRotationa); |
4654 | } | 4654 | } |
4655 | break; | 4655 | break; |
4656 | 4656 | ||
4657 | case PacketType.AgentAnimation: | 4657 | case PacketType.AgentAnimation: |
4658 | AgentAnimationPacket AgentAni = (AgentAnimationPacket)Pack; | 4658 | AgentAnimationPacket AgentAni = (AgentAnimationPacket)Pack; |
4659 | 4659 | ||
@@ -4680,7 +4680,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4680 | } | 4680 | } |
4681 | } | 4681 | } |
4682 | break; | 4682 | break; |
4683 | 4683 | ||
4684 | case PacketType.AgentRequestSit: | 4684 | case PacketType.AgentRequestSit: |
4685 | if (OnAgentRequestSit != null) | 4685 | if (OnAgentRequestSit != null) |
4686 | { | 4686 | { |
@@ -4692,7 +4692,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4692 | agentRequestSit.TargetObject.TargetID, agentRequestSit.TargetObject.Offset); | 4692 | agentRequestSit.TargetObject.TargetID, agentRequestSit.TargetObject.Offset); |
4693 | } | 4693 | } |
4694 | break; | 4694 | break; |
4695 | 4695 | ||
4696 | case PacketType.AgentSit: | 4696 | case PacketType.AgentSit: |
4697 | if (OnAgentSit != null) | 4697 | if (OnAgentSit != null) |
4698 | { | 4698 | { |
@@ -4705,7 +4705,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4705 | } | 4705 | } |
4706 | } | 4706 | } |
4707 | break; | 4707 | break; |
4708 | 4708 | ||
4709 | case PacketType.SoundTrigger: | 4709 | case PacketType.SoundTrigger: |
4710 | SoundTriggerPacket soundTriggerPacket = (SoundTriggerPacket)Pack; | 4710 | SoundTriggerPacket soundTriggerPacket = (SoundTriggerPacket)Pack; |
4711 | handlerSoundTrigger = OnSoundTrigger; | 4711 | handlerSoundTrigger = OnSoundTrigger; |
@@ -4718,7 +4718,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4718 | 4718 | ||
4719 | } | 4719 | } |
4720 | break; | 4720 | break; |
4721 | 4721 | ||
4722 | case PacketType.AvatarPickerRequest: | 4722 | case PacketType.AvatarPickerRequest: |
4723 | AvatarPickerRequestPacket avRequestQuery = (AvatarPickerRequestPacket)Pack; | 4723 | AvatarPickerRequestPacket avRequestQuery = (AvatarPickerRequestPacket)Pack; |
4724 | AvatarPickerRequestPacket.AgentDataBlock Requestdata = avRequestQuery.AgentData; | 4724 | AvatarPickerRequestPacket.AgentDataBlock Requestdata = avRequestQuery.AgentData; |
@@ -4732,7 +4732,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4732 | Utils.BytesToString(querydata.Name)); | 4732 | Utils.BytesToString(querydata.Name)); |
4733 | } | 4733 | } |
4734 | break; | 4734 | break; |
4735 | 4735 | ||
4736 | case PacketType.AgentDataUpdateRequest: | 4736 | case PacketType.AgentDataUpdateRequest: |
4737 | AgentDataUpdateRequestPacket avRequestDataUpdatePacket = (AgentDataUpdateRequestPacket)Pack; | 4737 | AgentDataUpdateRequestPacket avRequestDataUpdatePacket = (AgentDataUpdateRequestPacket)Pack; |
4738 | 4738 | ||
@@ -5108,10 +5108,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5108 | break; | 5108 | break; |
5109 | case PacketType.ObjectName: | 5109 | case PacketType.ObjectName: |
5110 | ObjectNamePacket objName = (ObjectNamePacket)Pack; | 5110 | ObjectNamePacket objName = (ObjectNamePacket)Pack; |
5111 | 5111 | ||
5112 | handlerObjectName = null; | 5112 | handlerObjectName = null; |
5113 | for (int i = 0; i < objName.ObjectData.Length; i++) | 5113 | for (int i = 0; i < objName.ObjectData.Length; i++) |
5114 | { | 5114 | { |
5115 | handlerObjectName = OnObjectName; | 5115 | handlerObjectName = OnObjectName; |
5116 | if (handlerObjectName != null) | 5116 | if (handlerObjectName != null) |
5117 | { | 5117 | { |
@@ -5243,7 +5243,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5243 | ObjectClickActionPacket ocpacket = (ObjectClickActionPacket)Pack; | 5243 | ObjectClickActionPacket ocpacket = (ObjectClickActionPacket)Pack; |
5244 | 5244 | ||
5245 | handlerObjectClickAction = OnObjectClickAction; | 5245 | handlerObjectClickAction = OnObjectClickAction; |
5246 | if (handlerObjectClickAction != null) | 5246 | if (handlerObjectClickAction != null) |
5247 | { | 5247 | { |
5248 | foreach (ObjectClickActionPacket.ObjectDataBlock odata in ocpacket.ObjectData) | 5248 | foreach (ObjectClickActionPacket.ObjectDataBlock odata in ocpacket.ObjectData) |
5249 | { | 5249 | { |
@@ -5302,7 +5302,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5302 | break; | 5302 | break; |
5303 | case PacketType.TransferRequest: | 5303 | case PacketType.TransferRequest: |
5304 | //Console.WriteLine("ClientView.ProcessPackets.cs:ProcessInPacket() - Got transfer request"); | 5304 | //Console.WriteLine("ClientView.ProcessPackets.cs:ProcessInPacket() - Got transfer request"); |
5305 | 5305 | ||
5306 | TransferRequestPacket transfer = (TransferRequestPacket)Pack; | 5306 | TransferRequestPacket transfer = (TransferRequestPacket)Pack; |
5307 | //Console.WriteLine("Transfer Request: " + transfer.ToString()); | 5307 | //Console.WriteLine("Transfer Request: " + transfer.ToString()); |
5308 | // Validate inventory transfers | 5308 | // Validate inventory transfers |
@@ -5346,12 +5346,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5346 | if (userInfo == null) | 5346 | if (userInfo == null) |
5347 | { | 5347 | { |
5348 | m_log.ErrorFormat( | 5348 | m_log.ErrorFormat( |
5349 | "[CLIENT]: Could not resolve user {0} for caps inventory update", | 5349 | "[CLIENT]: Could not resolve user {0} for caps inventory update", |
5350 | AgentId); | 5350 | AgentId); |
5351 | 5351 | ||
5352 | break; | 5352 | break; |
5353 | } | 5353 | } |
5354 | 5354 | ||
5355 | if (userInfo.RootFolder == null) | 5355 | if (userInfo.RootFolder == null) |
5356 | break; | 5356 | break; |
5357 | 5357 | ||
@@ -5881,7 +5881,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5881 | 5881 | ||
5882 | } | 5882 | } |
5883 | break; | 5883 | break; |
5884 | 5884 | ||
5885 | case PacketType.TeleportLocationRequest: | 5885 | case PacketType.TeleportLocationRequest: |
5886 | TeleportLocationRequestPacket tpLocReq = (TeleportLocationRequestPacket)Pack; | 5886 | TeleportLocationRequestPacket tpLocReq = (TeleportLocationRequestPacket)Pack; |
5887 | // Console.WriteLine(tpLocReq.ToString()); | 5887 | // Console.WriteLine(tpLocReq.ToString()); |
@@ -6693,11 +6693,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
6693 | // TODO: handle this packet | 6693 | // TODO: handle this packet |
6694 | //m_log.Warn("[CLIENT]: unhandled ObjectSpinStop packet"); | 6694 | //m_log.Warn("[CLIENT]: unhandled ObjectSpinStop packet"); |
6695 | break; | 6695 | break; |
6696 | 6696 | ||
6697 | case PacketType.InventoryDescendents: | 6697 | case PacketType.InventoryDescendents: |
6698 | // TODO: handle this packet | 6698 | // TODO: handle this packet |
6699 | //m_log.Warn("[CLIENT]: unhandled InventoryDescent packet"); | 6699 | //m_log.Warn("[CLIENT]: unhandled InventoryDescent packet"); |
6700 | 6700 | ||
6701 | break; | 6701 | break; |
6702 | case PacketType.DirPlacesQuery: | 6702 | case PacketType.DirPlacesQuery: |
6703 | DirPlacesQueryPacket dirPlacesQueryPacket = (DirPlacesQueryPacket)Pack; | 6703 | DirPlacesQueryPacket dirPlacesQueryPacket = (DirPlacesQueryPacket)Pack; |
@@ -6775,7 +6775,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
6775 | OnEventInfoRequest(this, eventInfoRequestPacket.EventData.EventID); | 6775 | OnEventInfoRequest(this, eventInfoRequestPacket.EventData.EventID); |
6776 | } | 6776 | } |
6777 | break; | 6777 | break; |
6778 | 6778 | ||
6779 | case PacketType.ParcelSetOtherCleanTime: | 6779 | case PacketType.ParcelSetOtherCleanTime: |
6780 | ParcelSetOtherCleanTimePacket parcelSetOtherCleanTimePacket = (ParcelSetOtherCleanTimePacket)Pack; | 6780 | ParcelSetOtherCleanTimePacket parcelSetOtherCleanTimePacket = (ParcelSetOtherCleanTimePacket)Pack; |
6781 | handlerParcelSetOtherCleanTime = OnParcelSetOtherCleanTime; | 6781 | handlerParcelSetOtherCleanTime = OnParcelSetOtherCleanTime; |
@@ -7516,7 +7516,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
7516 | } | 7516 | } |
7517 | 7517 | ||
7518 | public void SendAgentOnline(UUID[] agentIDs) | 7518 | public void SendAgentOnline(UUID[] agentIDs) |
7519 | { | 7519 | { |
7520 | OnlineNotificationPacket onp = new OnlineNotificationPacket(); | 7520 | OnlineNotificationPacket onp = new OnlineNotificationPacket(); |
7521 | OnlineNotificationPacket.AgentBlockBlock[] onpb = new OnlineNotificationPacket.AgentBlockBlock[agentIDs.Length]; | 7521 | OnlineNotificationPacket.AgentBlockBlock[] onpb = new OnlineNotificationPacket.AgentBlockBlock[agentIDs.Length]; |
7522 | for (int i = 0; i < agentIDs.Length; i++) | 7522 | for (int i = 0; i < agentIDs.Length; i++) |
@@ -7682,7 +7682,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
7682 | { | 7682 | { |
7683 | Transfer.TransferInfo.Params = new byte[20]; | 7683 | Transfer.TransferInfo.Params = new byte[20]; |
7684 | Array.Copy(req.RequestAssetID.GetBytes(), 0, Transfer.TransferInfo.Params, 0, 16); | 7684 | Array.Copy(req.RequestAssetID.GetBytes(), 0, Transfer.TransferInfo.Params, 0, 16); |
7685 | int assType = req.AssetInf.Type; | 7685 | int assType = req.AssetInf.Metadata.Type; |
7686 | Array.Copy(Utils.IntToBytes(assType), 0, Transfer.TransferInfo.Params, 16, 4); | 7686 | Array.Copy(Utils.IntToBytes(assType), 0, Transfer.TransferInfo.Params, 16, 4); |
7687 | } | 7687 | } |
7688 | else if (req.AssetRequestSource == 3) | 7688 | else if (req.AssetRequestSource == 3) |
@@ -7901,7 +7901,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
7901 | { | 7901 | { |
7902 | case "ReliableIsImportant": | 7902 | case "ReliableIsImportant": |
7903 | return m_PacketHandler.ReliableIsImportant.ToString(); | 7903 | return m_PacketHandler.ReliableIsImportant.ToString(); |
7904 | 7904 | ||
7905 | default: | 7905 | default: |
7906 | break; | 7906 | break; |
7907 | } | 7907 | } |
@@ -8340,7 +8340,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
8340 | dg.AgentData = new AgentDropGroupPacket.AgentDataBlock(); | 8340 | dg.AgentData = new AgentDropGroupPacket.AgentDataBlock(); |
8341 | dg.AgentData.AgentID = AgentId; | 8341 | dg.AgentData.AgentID = AgentId; |
8342 | dg.AgentData.GroupID = groupID; | 8342 | dg.AgentData.GroupID = groupID; |
8343 | 8343 | ||
8344 | OutPacket(dg, ThrottleOutPacketType.Task); | 8344 | OutPacket(dg, ThrottleOutPacketType.Task); |
8345 | } | 8345 | } |
8346 | 8346 | ||
@@ -8352,7 +8352,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
8352 | 8352 | ||
8353 | an.AgentData = new AvatarNotesReplyPacket.AgentDataBlock(); | 8353 | an.AgentData = new AvatarNotesReplyPacket.AgentDataBlock(); |
8354 | an.AgentData.AgentID = AgentId; | 8354 | an.AgentData.AgentID = AgentId; |
8355 | 8355 | ||
8356 | an.Data = new AvatarNotesReplyPacket.DataBlock(); | 8356 | an.Data = new AvatarNotesReplyPacket.DataBlock(); |
8357 | an.Data.TargetID = targetID; | 8357 | an.Data.TargetID = targetID; |
8358 | an.Data.Notes = Utils.StringToBytes(text); | 8358 | an.Data.Notes = Utils.StringToBytes(text); |
@@ -8369,7 +8369,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
8369 | ap.AgentData = new AvatarPicksReplyPacket.AgentDataBlock(); | 8369 | ap.AgentData = new AvatarPicksReplyPacket.AgentDataBlock(); |
8370 | ap.AgentData.AgentID = AgentId; | 8370 | ap.AgentData.AgentID = AgentId; |
8371 | ap.AgentData.TargetID = targetID; | 8371 | ap.AgentData.TargetID = targetID; |
8372 | 8372 | ||
8373 | ap.Data = new AvatarPicksReplyPacket.DataBlock[picks.Count]; | 8373 | ap.Data = new AvatarPicksReplyPacket.DataBlock[picks.Count]; |
8374 | 8374 | ||
8375 | int i = 0; | 8375 | int i = 0; |
@@ -8393,7 +8393,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
8393 | ac.AgentData = new AvatarClassifiedReplyPacket.AgentDataBlock(); | 8393 | ac.AgentData = new AvatarClassifiedReplyPacket.AgentDataBlock(); |
8394 | ac.AgentData.AgentID = AgentId; | 8394 | ac.AgentData.AgentID = AgentId; |
8395 | ac.AgentData.TargetID = targetID; | 8395 | ac.AgentData.TargetID = targetID; |
8396 | 8396 | ||
8397 | ac.Data = new AvatarClassifiedReplyPacket.DataBlock[classifieds.Count]; | 8397 | ac.Data = new AvatarClassifiedReplyPacket.DataBlock[classifieds.Count]; |
8398 | 8398 | ||
8399 | int i = 0; | 8399 | int i = 0; |
@@ -8416,7 +8416,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
8416 | 8416 | ||
8417 | pd.AgentData = new ParcelDwellReplyPacket.AgentDataBlock(); | 8417 | pd.AgentData = new ParcelDwellReplyPacket.AgentDataBlock(); |
8418 | pd.AgentData.AgentID = AgentId; | 8418 | pd.AgentData.AgentID = AgentId; |
8419 | 8419 | ||
8420 | pd.Data = new ParcelDwellReplyPacket.DataBlock(); | 8420 | pd.Data = new ParcelDwellReplyPacket.DataBlock(); |
8421 | pd.Data.LocalID = localID; | 8421 | pd.Data.LocalID = localID; |
8422 | pd.Data.ParcelID = parcelID; | 8422 | pd.Data.ParcelID = parcelID; |
@@ -8437,7 +8437,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
8437 | 8437 | ||
8438 | ur.AgentData = new UserInfoReplyPacket.AgentDataBlock(); | 8438 | ur.AgentData = new UserInfoReplyPacket.AgentDataBlock(); |
8439 | ur.AgentData.AgentID = AgentId; | 8439 | ur.AgentData.AgentID = AgentId; |
8440 | 8440 | ||
8441 | ur.UserData = new UserInfoReplyPacket.UserDataBlock(); | 8441 | ur.UserData = new UserInfoReplyPacket.UserDataBlock(); |
8442 | ur.UserData.IMViaEMail = imViaEmail; | 8442 | ur.UserData.IMViaEMail = imViaEmail; |
8443 | ur.UserData.DirectoryVisibility = Utils.StringToBytes(Visible); | 8443 | ur.UserData.DirectoryVisibility = Utils.StringToBytes(Visible); |
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLFileTransfer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLFileTransfer.cs index 517de34..d2d86b9 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLFileTransfer.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLFileTransfer.cs | |||
@@ -42,7 +42,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
42 | { | 42 | { |
43 | /// <summary> | 43 | /// <summary> |
44 | /// A work in progress, to contain the SL specific file transfer code that is currently in various region modules | 44 | /// A work in progress, to contain the SL specific file transfer code that is currently in various region modules |
45 | /// This file currently contains multiple classes that need to be split out into their own files. | 45 | /// This file currently contains multiple classes that need to be split out into their own files. |
46 | /// </summary> | 46 | /// </summary> |
47 | public class LLFileTransfer : IClientFileTransfer | 47 | public class LLFileTransfer : IClientFileTransfer |
48 | { | 48 | { |
@@ -206,13 +206,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
206 | private void Initialise(UUID fileID, string fileName) | 206 | private void Initialise(UUID fileID, string fileName) |
207 | { | 207 | { |
208 | m_asset = new AssetBase(); | 208 | m_asset = new AssetBase(); |
209 | m_asset.FullID = fileID; | 209 | m_asset.Metadata.FullID = fileID; |
210 | m_asset.Type = type; | 210 | m_asset.Metadata.Type = type; |
211 | m_asset.Data = new byte[0]; | 211 | m_asset.Data = new byte[0]; |
212 | m_asset.Name = fileName; | 212 | m_asset.Metadata.Name = fileName; |
213 | m_asset.Description = "empty"; | 213 | m_asset.Metadata.Description = "empty"; |
214 | m_asset.Local = true; | 214 | m_asset.Metadata.Local = true; |
215 | m_asset.Temporary = true; | 215 | m_asset.Metadata.Temporary = true; |
216 | mXferID = Util.GetNextXferID(); | 216 | mXferID = Util.GetNextXferID(); |
217 | } | 217 | } |
218 | 218 | ||
@@ -223,13 +223,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
223 | 223 | ||
224 | public void RequestStartXfer(IClientAPI pRemoteClient) | 224 | public void RequestStartXfer(IClientAPI pRemoteClient) |
225 | { | 225 | { |
226 | if (!String.IsNullOrEmpty(m_asset.Name)) | 226 | if (!String.IsNullOrEmpty(m_asset.Metadata.Name)) |
227 | { | 227 | { |
228 | pRemoteClient.SendXferRequest(mXferID, m_asset.Type, m_asset.FullID, 0, Utils.StringToBytes(m_asset.Name)); | 228 | pRemoteClient.SendXferRequest(mXferID, m_asset.Metadata.Type, m_asset.Metadata.FullID, 0, Utils.StringToBytes(m_asset.Metadata.Name)); |
229 | } | 229 | } |
230 | else | 230 | else |
231 | { | 231 | { |
232 | pRemoteClient.SendXferRequest(mXferID, m_asset.Type, m_asset.FullID, 0, new byte[0]); | 232 | pRemoteClient.SendXferRequest(mXferID, m_asset.Metadata.Type, m_asset.Metadata.FullID, 0, new byte[0]); |
233 | } | 233 | } |
234 | } | 234 | } |
235 | 235 | ||
@@ -238,7 +238,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
238 | /// </summary> | 238 | /// </summary> |
239 | /// <param name="xferID"></param> | 239 | /// <param name="xferID"></param> |
240 | /// <param name="packetID"></param> | 240 | /// <param name="packetID"></param> |
241 | /// <param name="data"></param> | 241 | /// <param name="data"></param> |
242 | public void XferReceive(IClientAPI remoteClient, ulong xferID, uint packetID, byte[] data) | 242 | public void XferReceive(IClientAPI remoteClient, ulong xferID, uint packetID, byte[] data) |
243 | { | 243 | { |
244 | if (mXferID == xferID) | 244 | if (mXferID == xferID) |
@@ -273,7 +273,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
273 | handlerUploadDone = UploadDone; | 273 | handlerUploadDone = UploadDone; |
274 | if (handlerUploadDone != null) | 274 | if (handlerUploadDone != null) |
275 | { | 275 | { |
276 | handlerUploadDone(m_asset.Name, m_asset.FullID, mXferID, m_asset.Data, remoteClient); | 276 | handlerUploadDone(m_asset.Metadata.Name, m_asset.Metadata.FullID, mXferID, m_asset.Data, remoteClient); |
277 | } | 277 | } |
278 | } | 278 | } |
279 | 279 | ||
@@ -282,7 +282,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
282 | handlerAbort = UploadAborted; | 282 | handlerAbort = UploadAborted; |
283 | if (handlerAbort != null) | 283 | if (handlerAbort != null) |
284 | { | 284 | { |
285 | handlerAbort(m_asset.Name, m_asset.FullID, mXferID, remoteClient); | 285 | handlerAbort(m_asset.Metadata.Name, m_asset.Metadata.FullID, mXferID, remoteClient); |
286 | } | 286 | } |
287 | } | 287 | } |
288 | } | 288 | } |
@@ -373,4 +373,4 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
373 | } | 373 | } |
374 | } | 374 | } |
375 | 375 | ||
376 | } \ No newline at end of file | 376 | } |
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLImageManager.cs b/OpenSim/Region/ClientStack/LindenUDP/LLImageManager.cs index 3b21c85..f903c45 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLImageManager.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLImageManager.cs | |||
@@ -47,7 +47,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
47 | /// Priority Queue for images. Contains lots of data | 47 | /// Priority Queue for images. Contains lots of data |
48 | /// </summary> | 48 | /// </summary> |
49 | private readonly IPriorityQueue<Prio<J2KImage>> pq = new IntervalHeap<Prio<J2KImage>>(); | 49 | private readonly IPriorityQueue<Prio<J2KImage>> pq = new IntervalHeap<Prio<J2KImage>>(); |
50 | 50 | ||
51 | /// <summary> | 51 | /// <summary> |
52 | /// Dictionary of PriorityQueue handles by AssetId | 52 | /// Dictionary of PriorityQueue handles by AssetId |
53 | /// </summary> | 53 | /// </summary> |
@@ -87,7 +87,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
87 | 87 | ||
88 | //if (req.RequestType == 1) // avatar body texture! | 88 | //if (req.RequestType == 1) // avatar body texture! |
89 | // return; | 89 | // return; |
90 | 90 | ||
91 | AddQueueItem(req.RequestedAssetID, (int)req.Priority + 100000); | 91 | AddQueueItem(req.RequestedAssetID, (int)req.Priority + 100000); |
92 | //if (pq[PQHandles[req.RequestedAssetID]].data.Missing) | 92 | //if (pq[PQHandles[req.RequestedAssetID]].data.Missing) |
93 | //{ | 93 | //{ |
@@ -96,9 +96,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
96 | // | 96 | // |
97 | //if (pq[PQHandles[req.RequestedAssetID]].data.HasData && pq[PQHandles[req.RequestedAssetID]].data.Layers.Length > 0) | 97 | //if (pq[PQHandles[req.RequestedAssetID]].data.HasData && pq[PQHandles[req.RequestedAssetID]].data.Layers.Length > 0) |
98 | //{ | 98 | //{ |
99 | 99 | ||
100 | //} | 100 | //} |
101 | 101 | ||
102 | pq[PQHandles[req.RequestedAssetID]].data.requestedUUID = req.RequestedAssetID; | 102 | pq[PQHandles[req.RequestedAssetID]].data.requestedUUID = req.RequestedAssetID; |
103 | pq[PQHandles[req.RequestedAssetID]].data.Priority = (int)req.Priority; | 103 | pq[PQHandles[req.RequestedAssetID]].data.Priority = (int)req.Priority; |
104 | 104 | ||
@@ -118,7 +118,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
118 | return; | 118 | return; |
119 | 119 | ||
120 | //Console.WriteLine("AssetCallback for assetId" + assetID); | 120 | //Console.WriteLine("AssetCallback for assetId" + assetID); |
121 | 121 | ||
122 | if (asset == null || asset.Data == null) | 122 | if (asset == null || asset.Data == null) |
123 | { | 123 | { |
124 | lock (pq) | 124 | lock (pq) |
@@ -132,12 +132,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
132 | 132 | ||
133 | 133 | ||
134 | pq[PQHandles[assetID]].data.asset = asset; | 134 | pq[PQHandles[assetID]].data.asset = asset; |
135 | 135 | ||
136 | //lock (pq[PQHandles[assetID]].data) | 136 | //lock (pq[PQHandles[assetID]].data) |
137 | pq[PQHandles[assetID]].data.Update((int)pq[PQHandles[assetID]].data.Priority, pq[PQHandles[assetID]].data.CurrentPacket); | 137 | pq[PQHandles[assetID]].data.Update((int)pq[PQHandles[assetID]].data.Priority, pq[PQHandles[assetID]].data.CurrentPacket); |
138 | 138 | ||
139 | 139 | ||
140 | 140 | ||
141 | } | 141 | } |
142 | 142 | ||
143 | /// <summary> | 143 | /// <summary> |
@@ -174,7 +174,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
174 | // Is the asset missing? | 174 | // Is the asset missing? |
175 | if (process.data.Missing) | 175 | if (process.data.Missing) |
176 | { | 176 | { |
177 | 177 | ||
178 | //m_client.sendtextur | 178 | //m_client.sendtextur |
179 | pq[h] -= 90000; | 179 | pq[h] -= 90000; |
180 | /* | 180 | /* |
@@ -191,7 +191,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
191 | // Substitute a blank image | 191 | // Substitute a blank image |
192 | process.data.asset = MissingSubstitute; | 192 | process.data.asset = MissingSubstitute; |
193 | process.data.Missing = false; | 193 | process.data.Missing = false; |
194 | 194 | ||
195 | // If the priority is less then -4billion, the client has forgotten about it. | 195 | // If the priority is less then -4billion, the client has forgotten about it. |
196 | if (pq[h] < -400000000) | 196 | if (pq[h] < -400000000) |
197 | { | 197 | { |
@@ -224,7 +224,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
224 | j2kDecodedCallback(process.data.AssetId, new OpenJPEG.J2KLayerInfo[0]); | 224 | j2kDecodedCallback(process.data.AssetId, new OpenJPEG.J2KLayerInfo[0]); |
225 | } | 225 | } |
226 | 226 | ||
227 | 227 | ||
228 | 228 | ||
229 | } // Are we waiting? | 229 | } // Are we waiting? |
230 | else if (!process.data.J2KDecodeWaiting) | 230 | else if (!process.data.J2KDecodeWaiting) |
@@ -259,10 +259,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
259 | 259 | ||
260 | //pq[h] = process; | 260 | //pq[h] = process; |
261 | } | 261 | } |
262 | 262 | ||
263 | // uncomment the following line to see the upper most asset and the priority | 263 | // uncomment the following line to see the upper most asset and the priority |
264 | //Console.WriteLine(process.ToString()); | 264 | //Console.WriteLine(process.ToString()); |
265 | 265 | ||
266 | // Lower priority to give the next image a chance to bubble up | 266 | // Lower priority to give the next image a chance to bubble up |
267 | pq[h] -= 50000; | 267 | pq[h] -= 50000; |
268 | } | 268 | } |
@@ -318,7 +318,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
318 | } | 318 | } |
319 | } | 319 | } |
320 | } | 320 | } |
321 | 321 | ||
322 | 322 | ||
323 | /// <summary> | 323 | /// <summary> |
324 | /// Adds an image to the queue and update priority | 324 | /// Adds an image to the queue and update priority |
@@ -336,7 +336,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
336 | { | 336 | { |
337 | h = PQHandles[AssetId]; | 337 | h = PQHandles[AssetId]; |
338 | pq[h] = pq[h].SetPriority(priority); | 338 | pq[h] = pq[h].SetPriority(priority); |
339 | 339 | ||
340 | } | 340 | } |
341 | else | 341 | else |
342 | { | 342 | { |
@@ -354,7 +354,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
354 | public void Close() | 354 | public void Close() |
355 | { | 355 | { |
356 | m_shuttingdown = true; | 356 | m_shuttingdown = true; |
357 | 357 | ||
358 | lock (pq) | 358 | lock (pq) |
359 | { | 359 | { |
360 | while (!pq.IsEmpty) | 360 | while (!pq.IsEmpty) |
@@ -362,7 +362,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
362 | pq.DeleteMin(); | 362 | pq.DeleteMin(); |
363 | } | 363 | } |
364 | } | 364 | } |
365 | 365 | ||
366 | 366 | ||
367 | lock (PQHandles) | 367 | lock (PQHandles) |
368 | PQHandles.Clear(); | 368 | PQHandles.Clear(); |
@@ -423,7 +423,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
423 | /// </summary> | 423 | /// </summary> |
424 | public UUID AssetId | 424 | public UUID AssetId |
425 | { | 425 | { |
426 | get { return m_asset_ref.FullID; } | 426 | get { return m_asset_ref.Metadata.FullID; } |
427 | } | 427 | } |
428 | 428 | ||
429 | /// <summary> | 429 | /// <summary> |
@@ -544,7 +544,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
544 | /// <returns>true if a packet was sent, false if not</returns> | 544 | /// <returns>true if a packet was sent, false if not</returns> |
545 | public bool SendPacket(LLClientView client) | 545 | public bool SendPacket(LLClientView client) |
546 | { | 546 | { |
547 | // If we've hit the end of the send or if the client set -1, return false. | 547 | // If we've hit the end of the send or if the client set -1, return false. |
548 | if (CurrentPacket > StopPacket || StopPacket == -1) | 548 | if (CurrentPacket > StopPacket || StopPacket == -1) |
549 | return false; | 549 | return false; |
550 | 550 | ||
@@ -564,7 +564,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
564 | } | 564 | } |
565 | else | 565 | else |
566 | { | 566 | { |
567 | 567 | ||
568 | // Send first packet | 568 | // Send first packet |
569 | byte[] firstImageData = new byte[FIRST_IMAGE_PACKET_SIZE]; | 569 | byte[] firstImageData = new byte[FIRST_IMAGE_PACKET_SIZE]; |
570 | try { Buffer.BlockCopy(m_asset_ref.Data, 0, firstImageData, 0, FIRST_IMAGE_PACKET_SIZE); } | 570 | try { Buffer.BlockCopy(m_asset_ref.Data, 0, firstImageData, 0, FIRST_IMAGE_PACKET_SIZE); } |
@@ -585,7 +585,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
585 | // figure out if we're on the last packet, if so, use the last packet size. If not, use 1000. | 585 | // figure out if we're on the last packet, if so, use the last packet size. If not, use 1000. |
586 | // we know that the total image size is greater then 1000 if we're here | 586 | // we know that the total image size is greater then 1000 if we're here |
587 | int imagePacketSize = (CurrentPacket == (TexturePacketCount() ) ) ? LastPacketSize() : IMAGE_PACKET_SIZE; | 587 | int imagePacketSize = (CurrentPacket == (TexturePacketCount() ) ) ? LastPacketSize() : IMAGE_PACKET_SIZE; |
588 | 588 | ||
589 | //if (imagePacketSize > 0) | 589 | //if (imagePacketSize > 0) |
590 | // imagePacketSize = IMAGE_PACKET_SIZE; | 590 | // imagePacketSize = IMAGE_PACKET_SIZE; |
591 | //if (imagePacketSize != 1000) | 591 | //if (imagePacketSize != 1000) |
@@ -611,7 +611,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
611 | try { Buffer.BlockCopy(m_asset_ref.Data, CurrentBytePosition(), imageData, 0, imagePacketSize); } | 611 | try { Buffer.BlockCopy(m_asset_ref.Data, CurrentBytePosition(), imageData, 0, imagePacketSize); } |
612 | catch (Exception e) | 612 | catch (Exception e) |
613 | { | 613 | { |
614 | Console.WriteLine(String.Format("Err: srcLen:{0}, BytePos:{1}, desLen:{2}, pktsize:{3}, currpak:{4}, stoppak:{5}, totalpak:{6}", m_asset_ref.Data.Length, CurrentBytePosition(), | 614 | Console.WriteLine(String.Format("Err: srcLen:{0}, BytePos:{1}, desLen:{2}, pktsize:{3}, currpak:{4}, stoppak:{5}, totalpak:{6}", m_asset_ref.Data.Length, CurrentBytePosition(), |
615 | imageData.Length, imagePacketSize, CurrentPacket,StopPacket,TexturePacketCount())); | 615 | imageData.Length, imagePacketSize, CurrentPacket,StopPacket,TexturePacketCount())); |
616 | Console.WriteLine(e.ToString()); | 616 | Console.WriteLine(e.ToString()); |
617 | //m_log.Error("Texture data copy failed for " + m_asset_ref.FullID.ToString()); | 617 | //m_log.Error("Texture data copy failed for " + m_asset_ref.FullID.ToString()); |
@@ -622,7 +622,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
622 | 622 | ||
623 | // Send next packet to the client | 623 | // Send next packet to the client |
624 | client.SendImageNextPart((ushort)(CurrentPacket - 1), requestedUUID, imageData); | 624 | client.SendImageNextPart((ushort)(CurrentPacket - 1), requestedUUID, imageData); |
625 | 625 | ||
626 | ++CurrentPacket; | 626 | ++CurrentPacket; |
627 | 627 | ||
628 | if (atEnd) | 628 | if (atEnd) |
@@ -630,7 +630,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
630 | 630 | ||
631 | return true; | 631 | return true; |
632 | } | 632 | } |
633 | 633 | ||
634 | } | 634 | } |
635 | 635 | ||
636 | /// <summary> | 636 | /// <summary> |
@@ -676,7 +676,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
676 | 676 | ||
677 | public static Prio<D> operator -(Prio<D> tp, int delta) | 677 | public static Prio<D> operator -(Prio<D> tp, int delta) |
678 | { | 678 | { |
679 | if (tp.priority - delta < 0) | 679 | if (tp.priority - delta < 0) |
680 | return new Prio<D>(tp.data, tp.priority - delta); | 680 | return new Prio<D>(tp.data, tp.priority - delta); |
681 | else | 681 | else |
682 | return new Prio<D>(tp.data, 0); | 682 | return new Prio<D>(tp.data, 0); |
diff --git a/OpenSim/Region/Communications/Hypergrid/HGGridServices.cs b/OpenSim/Region/Communications/Hypergrid/HGGridServices.cs index 0874676..961ecb1 100644 --- a/OpenSim/Region/Communications/Hypergrid/HGGridServices.cs +++ b/OpenSim/Region/Communications/Hypergrid/HGGridServices.cs | |||
@@ -1,29 +1,29 @@ | |||
1 | /** | 1 | /** |
2 | * Copyright (c) 2008, Contributors. All rights reserved. | 2 | * Copyright (c) 2008, Contributors. All rights reserved. |
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | 3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. |
4 | * | 4 | * |
5 | * Redistribution and use in source and binary forms, with or without modification, | 5 | * Redistribution and use in source and binary forms, with or without modification, |
6 | * are permitted provided that the following conditions are met: | 6 | * are permitted provided that the following conditions are met: |
7 | * | 7 | * |
8 | * * Redistributions of source code must retain the above copyright notice, | 8 | * * Redistributions of source code must retain the above copyright notice, |
9 | * this list of conditions and the following disclaimer. | 9 | * this list of conditions and the following disclaimer. |
10 | * * Redistributions in binary form must reproduce the above copyright notice, | 10 | * * Redistributions in binary form must reproduce the above copyright notice, |
11 | * this list of conditions and the following disclaimer in the documentation | 11 | * this list of conditions and the following disclaimer in the documentation |
12 | * and/or other materials provided with the distribution. | 12 | * and/or other materials provided with the distribution. |
13 | * * Neither the name of the Organizations nor the names of Individual | 13 | * * Neither the name of the Organizations nor the names of Individual |
14 | * Contributors may be used to endorse or promote products derived from | 14 | * Contributors may be used to endorse or promote products derived from |
15 | * this software without specific prior written permission. | 15 | * this software without specific prior written permission. |
16 | * | 16 | * |
17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND | 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND |
18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
19 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL | 19 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL |
20 | * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | 20 | * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
21 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE | 21 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE |
22 | * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED | 22 | * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
23 | * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | 23 | * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
24 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | 24 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED |
25 | * OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | 29 | ||
@@ -73,11 +73,11 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
73 | public BaseHttpServer httpServer; | 73 | public BaseHttpServer httpServer; |
74 | 74 | ||
75 | protected List<RegionInfo> m_regionsOnInstance = new List<RegionInfo>(); | 75 | protected List<RegionInfo> m_regionsOnInstance = new List<RegionInfo>(); |
76 | 76 | ||
77 | // Hyperlink regions are hyperlinks on the map | 77 | // Hyperlink regions are hyperlinks on the map |
78 | protected List<RegionInfo> m_hyperlinkRegions = new List<RegionInfo>(); | 78 | protected List<RegionInfo> m_hyperlinkRegions = new List<RegionInfo>(); |
79 | 79 | ||
80 | // Known regions are home regions of visiting foreign users. | 80 | // Known regions are home regions of visiting foreign users. |
81 | // They are not on the map as static hyperlinks. They are dynamic hyperlinks, they go away when | 81 | // They are not on the map as static hyperlinks. They are dynamic hyperlinks, they go away when |
82 | // the visitor goes away. They are mapped to X=0 on the map. | 82 | // the visitor goes away. They are mapped to X=0 on the map. |
83 | // This is key-ed on agent ID | 83 | // This is key-ed on agent ID |
@@ -326,13 +326,13 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
326 | //Console.WriteLine("Size: " + m.PhysicalDimension.Height + "-" + m.PhysicalDimension.Width); | 326 | //Console.WriteLine("Size: " + m.PhysicalDimension.Height + "-" + m.PhysicalDimension.Width); |
327 | byte[] imageData = OpenJPEG.EncodeFromImage(m, true); | 327 | byte[] imageData = OpenJPEG.EncodeFromImage(m, true); |
328 | AssetBase ass = new AssetBase(UUID.Random(), "region " + info.RegionID.ToString()); | 328 | AssetBase ass = new AssetBase(UUID.Random(), "region " + info.RegionID.ToString()); |
329 | info.RegionSettings.TerrainImageID = ass.FullID; | 329 | info.RegionSettings.TerrainImageID = ass.Metadata.FullID; |
330 | ass.Type = (int)AssetType.Texture; | 330 | ass.Metadata.Type = (int)AssetType.Texture; |
331 | ass.Temporary = false; | 331 | ass.Metadata.Temporary = false; |
332 | //imageData.CopyTo(ass.Data, 0); | 332 | //imageData.CopyTo(ass.Data, 0); |
333 | ass.Data = imageData; | 333 | ass.Data = imageData; |
334 | m_assetcache.AddAsset(ass); | 334 | m_assetcache.AddAsset(ass); |
335 | 335 | ||
336 | } | 336 | } |
337 | catch (Exception e) // LEGIT: Catching problems caused by OpenJPEG p/invoke | 337 | catch (Exception e) // LEGIT: Catching problems caused by OpenJPEG p/invoke |
338 | { | 338 | { |
@@ -342,7 +342,7 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
342 | 342 | ||
343 | // A little ugly, since this code is exactly the same as OSG1's, and we're already | 343 | // A little ugly, since this code is exactly the same as OSG1's, and we're already |
344 | // calling that for when the region in in grid mode... (for the grid regions) | 344 | // calling that for when the region in in grid mode... (for the grid regions) |
345 | // | 345 | // |
346 | public virtual LandData RequestLandData (ulong regionHandle, uint x, uint y) | 346 | public virtual LandData RequestLandData (ulong regionHandle, uint x, uint y) |
347 | { | 347 | { |
348 | m_log.DebugFormat("[HGrid]: requests land data in {0}, at {1}, {2}", | 348 | m_log.DebugFormat("[HGrid]: requests land data in {0}, at {1}, {2}", |
@@ -542,23 +542,23 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
542 | m_log.Info("[HGrid]: InformRegionOfUser: Local grid region " + regInfo.regionSecret); | 542 | m_log.Info("[HGrid]: InformRegionOfUser: Local grid region " + regInfo.regionSecret); |
543 | } | 543 | } |
544 | 544 | ||
545 | string capsPath = agentData.CapsPath; | 545 | string capsPath = agentData.CapsPath; |
546 | Hashtable loginParams = new Hashtable(); | 546 | Hashtable loginParams = new Hashtable(); |
547 | loginParams["session_id"] = agentData.SessionID.ToString(); | 547 | loginParams["session_id"] = agentData.SessionID.ToString(); |
548 | loginParams["secure_session_id"] = agentData.SecureSessionID.ToString(); | 548 | loginParams["secure_session_id"] = agentData.SecureSessionID.ToString(); |
549 | 549 | ||
550 | loginParams["firstname"] = agentData.firstname; | 550 | loginParams["firstname"] = agentData.firstname; |
551 | loginParams["lastname"] = agentData.lastname; | 551 | loginParams["lastname"] = agentData.lastname; |
552 | 552 | ||
553 | loginParams["agent_id"] = agentData.AgentID.ToString(); | 553 | loginParams["agent_id"] = agentData.AgentID.ToString(); |
554 | loginParams["circuit_code"] = agentData.circuitcode.ToString(); | 554 | loginParams["circuit_code"] = agentData.circuitcode.ToString(); |
555 | loginParams["startpos_x"] = agentData.startpos.X.ToString(); | 555 | loginParams["startpos_x"] = agentData.startpos.X.ToString(); |
556 | loginParams["startpos_y"] = agentData.startpos.Y.ToString(); | 556 | loginParams["startpos_y"] = agentData.startpos.Y.ToString(); |
557 | loginParams["startpos_z"] = agentData.startpos.Z.ToString(); | 557 | loginParams["startpos_z"] = agentData.startpos.Z.ToString(); |
558 | loginParams["caps_path"] = capsPath; | 558 | loginParams["caps_path"] = capsPath; |
559 | 559 | ||
560 | CachedUserInfo u = m_userProfileCache.GetUserDetails(agentData.AgentID); | 560 | CachedUserInfo u = m_userProfileCache.GetUserDetails(agentData.AgentID); |
561 | if (u != null && u.UserProfile != null) | 561 | if (u != null && u.UserProfile != null) |
562 | { | 562 | { |
563 | loginParams["region_uuid"] = u.UserProfile.HomeRegionID.ToString(); // This seems to be always Zero | 563 | loginParams["region_uuid"] = u.UserProfile.HomeRegionID.ToString(); // This seems to be always Zero |
564 | //Console.WriteLine(" --------- Home Region UUID -------"); | 564 | //Console.WriteLine(" --------- Home Region UUID -------"); |
@@ -691,7 +691,7 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
691 | 691 | ||
692 | userData.UserServerURI = (string)requestData["userserver_id"]; | 692 | userData.UserServerURI = (string)requestData["userserver_id"]; |
693 | userData.UserAssetURI = (string)requestData["assetserver_id"]; | 693 | userData.UserAssetURI = (string)requestData["assetserver_id"]; |
694 | userData.UserInventoryURI = (string)requestData["inventoryserver_id"]; | 694 | userData.UserInventoryURI = (string)requestData["inventoryserver_id"]; |
695 | 695 | ||
696 | UUID rootID = UUID.Zero; | 696 | UUID rootID = UUID.Zero; |
697 | UUID.TryParse((string)requestData["root_folder_id"], out rootID); | 697 | UUID.TryParse((string)requestData["root_folder_id"], out rootID); |
@@ -710,7 +710,7 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
710 | 710 | ||
711 | m_log.DebugFormat("[HGrid]: Told by user service to prepare for a connection from {0} {1} {2}", | 711 | m_log.DebugFormat("[HGrid]: Told by user service to prepare for a connection from {0} {1} {2}", |
712 | userData.FirstName, userData.SurName, userData.ID); | 712 | userData.FirstName, userData.SurName, userData.ID); |
713 | m_log.Debug("[HGrid]: home_address: " + userData.UserHomeAddress + | 713 | m_log.Debug("[HGrid]: home_address: " + userData.UserHomeAddress + |
714 | "; home_port: " + userData.UserHomePort + "; remoting: " + userData.UserHomeRemotingPort); | 714 | "; home_port: " + userData.UserHomePort + "; remoting: " + userData.UserHomeRemotingPort); |
715 | 715 | ||
716 | 716 | ||
@@ -926,7 +926,7 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
926 | return true; | 926 | return true; |
927 | } | 927 | } |
928 | 928 | ||
929 | public virtual bool InformRegionOfChildAgent(ulong regionHandle, AgentCircuitData agentData) | 929 | public virtual bool InformRegionOfChildAgent(ulong regionHandle, AgentCircuitData agentData) |
930 | { | 930 | { |
931 | // If we're here, it's because regionHandle is a remote, non-grided region | 931 | // If we're here, it's because regionHandle is a remote, non-grided region |
932 | m_log.Info("[HGrid]: InformRegionOfChildAgent for " + regionHandle); | 932 | m_log.Info("[HGrid]: InformRegionOfChildAgent for " + regionHandle); |
@@ -934,7 +934,7 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
934 | RegionInfo regInfo = GetHyperlinkRegion(regionHandle); | 934 | RegionInfo regInfo = GetHyperlinkRegion(regionHandle); |
935 | if (regInfo == null) | 935 | if (regInfo == null) |
936 | return false; | 936 | return false; |
937 | 937 | ||
938 | //ulong realHandle = regionHandle; | 938 | //ulong realHandle = regionHandle; |
939 | 939 | ||
940 | if (!SendUserInformation(regInfo, agentData)) | 940 | if (!SendUserInformation(regInfo, agentData)) |
@@ -1184,7 +1184,7 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
1184 | #region Methods triggered by calls from external instances | 1184 | #region Methods triggered by calls from external instances |
1185 | 1185 | ||
1186 | /// <summary> | 1186 | /// <summary> |
1187 | /// | 1187 | /// |
1188 | /// </summary> | 1188 | /// </summary> |
1189 | /// <param name="regionHandle"></param> | 1189 | /// <param name="regionHandle"></param> |
1190 | /// <param name="agentData"></param> | 1190 | /// <param name="agentData"></param> |
@@ -1192,7 +1192,7 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
1192 | public void AdjustUserInformation(AgentCircuitData agentData) | 1192 | public void AdjustUserInformation(AgentCircuitData agentData) |
1193 | { | 1193 | { |
1194 | CachedUserInfo uinfo = m_userProfileCache.GetUserDetails(agentData.AgentID); | 1194 | CachedUserInfo uinfo = m_userProfileCache.GetUserDetails(agentData.AgentID); |
1195 | if ((uinfo != null) && (uinfo.UserProfile != null) && | 1195 | if ((uinfo != null) && (uinfo.UserProfile != null) && |
1196 | (IsLocalUser(uinfo) || !(uinfo.UserProfile is ForeignUserProfileData))) | 1196 | (IsLocalUser(uinfo) || !(uinfo.UserProfile is ForeignUserProfileData))) |
1197 | { | 1197 | { |
1198 | //Console.WriteLine("---------------> Local User!"); | 1198 | //Console.WriteLine("---------------> Local User!"); |
@@ -1232,7 +1232,7 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
1232 | if (info.RegionHandle == ihandle) | 1232 | if (info.RegionHandle == ihandle) |
1233 | return info; | 1233 | return info; |
1234 | } | 1234 | } |
1235 | 1235 | ||
1236 | return null; | 1236 | return null; |
1237 | } | 1237 | } |
1238 | 1238 | ||
@@ -1250,7 +1250,7 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
1250 | ohandle = Convert.ToInt64(info.regionSecret); | 1250 | ohandle = Convert.ToInt64(info.regionSecret); |
1251 | m_log.Info("[HGrid] remote region " + ohandle); | 1251 | m_log.Info("[HGrid] remote region " + ohandle); |
1252 | } | 1252 | } |
1253 | catch | 1253 | catch |
1254 | { | 1254 | { |
1255 | m_log.Error("[HGrid] Could not convert secret for " + ihandle + " (" + info.regionSecret + ")"); | 1255 | m_log.Error("[HGrid] Could not convert secret for " + ihandle + " (" + info.regionSecret + ")"); |
1256 | } | 1256 | } |
diff --git a/OpenSim/Region/Environment/Modules/Agent/AssetTransaction/AgentAssetsTransactions.cs b/OpenSim/Region/Environment/Modules/Agent/AssetTransaction/AgentAssetsTransactions.cs index 689b4d5..7f4bb0b 100644 --- a/OpenSim/Region/Environment/Modules/Agent/AssetTransaction/AgentAssetsTransactions.cs +++ b/OpenSim/Region/Environment/Modules/Agent/AssetTransaction/AgentAssetsTransactions.cs | |||
@@ -72,7 +72,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.AssetTransaction | |||
72 | } | 72 | } |
73 | 73 | ||
74 | public void HandleXfer(ulong xferID, uint packetID, byte[] data) | 74 | public void HandleXfer(ulong xferID, uint packetID, byte[] data) |
75 | { | 75 | { |
76 | lock (XferUploaders) | 76 | lock (XferUploaders) |
77 | { | 77 | { |
78 | foreach (AssetXferUploader uploader in XferUploaders.Values) | 78 | foreach (AssetXferUploader uploader in XferUploaders.Values) |
@@ -97,8 +97,8 @@ namespace OpenSim.Region.Environment.Modules.Agent.AssetTransaction | |||
97 | wearableType, nextOwnerMask); | 97 | wearableType, nextOwnerMask); |
98 | } | 98 | } |
99 | } | 99 | } |
100 | 100 | ||
101 | 101 | ||
102 | 102 | ||
103 | /// <summary> | 103 | /// <summary> |
104 | /// Get an uploaded asset. If the data is successfully retrieved, the transaction will be removed. | 104 | /// Get an uploaded asset. If the data is successfully retrieved, the transaction will be removed. |
@@ -171,10 +171,10 @@ namespace OpenSim.Region.Environment.Modules.Agent.AssetTransaction | |||
171 | "[ASSET TRANSACTIONS]: Updating task item {0} in {1} with asset in transaction {2}", | 171 | "[ASSET TRANSACTIONS]: Updating task item {0} in {1} with asset in transaction {2}", |
172 | item.Name, part.Name, transactionID); | 172 | item.Name, part.Name, transactionID); |
173 | 173 | ||
174 | asset.Name = item.Name; | 174 | asset.Metadata.Name = item.Name; |
175 | asset.Description = item.Description; | 175 | asset.Metadata.Description = item.Description; |
176 | asset.Type = (sbyte)item.Type; | 176 | asset.Metadata.Type = (sbyte)item.Type; |
177 | item.AssetID = asset.FullID; | 177 | item.AssetID = asset.Metadata.FullID; |
178 | 178 | ||
179 | Manager.MyScene.CommsManager.AssetCache.AddAsset(asset); | 179 | Manager.MyScene.CommsManager.AssetCache.AddAsset(asset); |
180 | 180 | ||
@@ -206,14 +206,14 @@ namespace OpenSim.Region.Environment.Modules.Agent.AssetTransaction | |||
206 | asset = GetTransactionAsset(transactionID); | 206 | asset = GetTransactionAsset(transactionID); |
207 | } | 207 | } |
208 | 208 | ||
209 | if (asset != null && asset.FullID == assetID) | 209 | if (asset != null && asset.Metadata.FullID == assetID) |
210 | { | 210 | { |
211 | // Assets never get updated, new ones get created | 211 | // Assets never get updated, new ones get created |
212 | asset.FullID = UUID.Random(); | 212 | asset.Metadata.FullID = UUID.Random(); |
213 | asset.Name = item.Name; | 213 | asset.Metadata.Name = item.Name; |
214 | asset.Description = item.Description; | 214 | asset.Metadata.Description = item.Description; |
215 | asset.Type = (sbyte)item.AssetType; | 215 | asset.Metadata.Type = (sbyte)item.AssetType; |
216 | item.AssetID = asset.FullID; | 216 | item.AssetID = asset.Metadata.FullID; |
217 | 217 | ||
218 | Manager.MyScene.CommsManager.AssetCache.AddAsset(asset); | 218 | Manager.MyScene.CommsManager.AssetCache.AddAsset(asset); |
219 | } | 219 | } |
diff --git a/OpenSim/Region/Environment/Modules/Agent/AssetTransaction/AssetXferUploader.cs b/OpenSim/Region/Environment/Modules/Agent/AssetTransaction/AssetXferUploader.cs index 6dcbe83..5387165 100644 --- a/OpenSim/Region/Environment/Modules/Agent/AssetTransaction/AssetXferUploader.cs +++ b/OpenSim/Region/Environment/Modules/Agent/AssetTransaction/AssetXferUploader.cs | |||
@@ -113,17 +113,17 @@ namespace OpenSim.Region.Environment.Modules.Agent.AssetTransaction | |||
113 | { | 113 | { |
114 | ourClient = remoteClient; | 114 | ourClient = remoteClient; |
115 | m_asset = new AssetBase(); | 115 | m_asset = new AssetBase(); |
116 | m_asset.FullID = assetID; | 116 | m_asset.Metadata.FullID = assetID; |
117 | m_asset.Type = type; | 117 | m_asset.Metadata.Type = type; |
118 | m_asset.Data = data; | 118 | m_asset.Data = data; |
119 | m_asset.Name = "blank"; | 119 | m_asset.Metadata.Name = "blank"; |
120 | m_asset.Description = "empty"; | 120 | m_asset.Metadata.Description = "empty"; |
121 | m_asset.Local = storeLocal; | 121 | m_asset.Metadata.Local = storeLocal; |
122 | m_asset.Temporary = tempFile; | 122 | m_asset.Metadata.Temporary = tempFile; |
123 | 123 | ||
124 | TransactionID = transaction; | 124 | TransactionID = transaction; |
125 | m_storeLocal = storeLocal; | 125 | m_storeLocal = storeLocal; |
126 | 126 | ||
127 | if (m_asset.Data.Length > 2) | 127 | if (m_asset.Data.Length > 2) |
128 | { | 128 | { |
129 | SendCompleteMessage(); | 129 | SendCompleteMessage(); |
@@ -140,12 +140,12 @@ namespace OpenSim.Region.Environment.Modules.Agent.AssetTransaction | |||
140 | protected void RequestStartXfer() | 140 | protected void RequestStartXfer() |
141 | { | 141 | { |
142 | XferID = Util.GetNextXferID(); | 142 | XferID = Util.GetNextXferID(); |
143 | ourClient.SendXferRequest(XferID, m_asset.Type, m_asset.FullID, 0, new byte[0]); | 143 | ourClient.SendXferRequest(XferID, m_asset.Metadata.Type, m_asset.Metadata.FullID, 0, new byte[0]); |
144 | } | 144 | } |
145 | 145 | ||
146 | protected void SendCompleteMessage() | 146 | protected void SendCompleteMessage() |
147 | { | 147 | { |
148 | ourClient.SendAssetUploadCompleteMessage(m_asset.Type, true, m_asset.FullID); | 148 | ourClient.SendAssetUploadCompleteMessage(m_asset.Metadata.Type, true, m_asset.Metadata.FullID); |
149 | 149 | ||
150 | m_finished = true; | 150 | m_finished = true; |
151 | if (m_createItem) | 151 | if (m_createItem) |
@@ -164,7 +164,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.AssetTransaction | |||
164 | DateTime now = DateTime.Now; | 164 | DateTime now = DateTime.Now; |
165 | string filename = | 165 | string filename = |
166 | String.Format("{6}_{7}_{0:d2}{1:d2}{2:d2}_{3:d2}{4:d2}{5:d2}.dat", now.Year, now.Month, now.Day, | 166 | String.Format("{6}_{7}_{0:d2}{1:d2}{2:d2}_{3:d2}{4:d2}{5:d2}.dat", now.Year, now.Month, now.Day, |
167 | now.Hour, now.Minute, now.Second, m_asset.Name, m_asset.Type); | 167 | now.Hour, now.Minute, now.Second, m_asset.Metadata.Name, m_asset.Metadata.Type); |
168 | SaveAssetToFile(filename, m_asset.Data); | 168 | SaveAssetToFile(filename, m_asset.Data); |
169 | } | 169 | } |
170 | } | 170 | } |
@@ -196,9 +196,9 @@ namespace OpenSim.Region.Environment.Modules.Agent.AssetTransaction | |||
196 | this.invType = invType; | 196 | this.invType = invType; |
197 | this.wearableType = wearableType; | 197 | this.wearableType = wearableType; |
198 | nextPerm = nextOwnerMask; | 198 | nextPerm = nextOwnerMask; |
199 | m_asset.Name = name; | 199 | m_asset.Metadata.Name = name; |
200 | m_asset.Description = description; | 200 | m_asset.Metadata.Description = description; |
201 | m_asset.Type = type; | 201 | m_asset.Metadata.Type = type; |
202 | 202 | ||
203 | if (m_finished) | 203 | if (m_finished) |
204 | { | 204 | { |
@@ -211,7 +211,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.AssetTransaction | |||
211 | } | 211 | } |
212 | } | 212 | } |
213 | 213 | ||
214 | 214 | ||
215 | private void DoCreateItem() | 215 | private void DoCreateItem() |
216 | { | 216 | { |
217 | m_userTransactions.Manager.MyScene.CommsManager.AssetCache.AddAsset(m_asset); | 217 | m_userTransactions.Manager.MyScene.CommsManager.AssetCache.AddAsset(m_asset); |
@@ -225,7 +225,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.AssetTransaction | |||
225 | item.Owner = ourClient.AgentId; | 225 | item.Owner = ourClient.AgentId; |
226 | item.Creator = ourClient.AgentId; | 226 | item.Creator = ourClient.AgentId; |
227 | item.ID = UUID.Random(); | 227 | item.ID = UUID.Random(); |
228 | item.AssetID = m_asset.FullID; | 228 | item.AssetID = m_asset.Metadata.FullID; |
229 | item.Description = m_description; | 229 | item.Description = m_description; |
230 | item.Name = m_name; | 230 | item.Name = m_name; |
231 | item.AssetType = type; | 231 | item.AssetType = type; |
@@ -245,9 +245,9 @@ namespace OpenSim.Region.Environment.Modules.Agent.AssetTransaction | |||
245 | else | 245 | else |
246 | { | 246 | { |
247 | m_log.ErrorFormat( | 247 | m_log.ErrorFormat( |
248 | "[ASSET TRANSACTIONS]: Could not find user {0} for inventory item creation", | 248 | "[ASSET TRANSACTIONS]: Could not find user {0} for inventory item creation", |
249 | ourClient.AgentId); | 249 | ourClient.AgentId); |
250 | } | 250 | } |
251 | } | 251 | } |
252 | 252 | ||
253 | /// <summary> | 253 | /// <summary> |
@@ -260,7 +260,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.AssetTransaction | |||
260 | { | 260 | { |
261 | return m_asset; | 261 | return m_asset; |
262 | } | 262 | } |
263 | 263 | ||
264 | return null; | 264 | return null; |
265 | } | 265 | } |
266 | } | 266 | } |
diff --git a/OpenSim/Region/Environment/Modules/Agent/TextureSender/TextureSender.cs b/OpenSim/Region/Environment/Modules/Agent/TextureSender/TextureSender.cs index a6901b6..f9a10bf 100644 --- a/OpenSim/Region/Environment/Modules/Agent/TextureSender/TextureSender.cs +++ b/OpenSim/Region/Environment/Modules/Agent/TextureSender/TextureSender.cs | |||
@@ -55,7 +55,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.TextureSender | |||
55 | /// </summary> | 55 | /// </summary> |
56 | private AssetBase m_asset; | 56 | private AssetBase m_asset; |
57 | 57 | ||
58 | //public UUID assetID { get { return m_asset.FullID; } } | 58 | //public UUID assetID { get { return m_asset.Metadata.FullID; } } |
59 | 59 | ||
60 | // private bool m_cancel = false; | 60 | // private bool m_cancel = false; |
61 | 61 | ||
@@ -93,7 +93,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.TextureSender | |||
93 | get { return false; } | 93 | get { return false; } |
94 | set | 94 | set |
95 | { | 95 | { |
96 | // m_cancel = value; | 96 | // m_cancel = value; |
97 | } | 97 | } |
98 | } | 98 | } |
99 | 99 | ||
@@ -102,7 +102,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.TextureSender | |||
102 | get { return false; } | 102 | get { return false; } |
103 | set | 103 | set |
104 | { | 104 | { |
105 | // m_sending = value; | 105 | // m_sending = value; |
106 | } | 106 | } |
107 | } | 107 | } |
108 | 108 | ||
@@ -117,7 +117,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.TextureSender | |||
117 | // See ITextureSender | 117 | // See ITextureSender |
118 | public bool SendTexturePacket() | 118 | public bool SendTexturePacket() |
119 | { | 119 | { |
120 | //m_log.DebugFormat("[TEXTURE SENDER]: Sending packet for {0}", m_asset.FullID); | 120 | //m_log.DebugFormat("[TEXTURE SENDER]: Sending packet for {0}", m_asset.Metadata.FullID); |
121 | 121 | ||
122 | SendPacket(); | 122 | SendPacket(); |
123 | counter++; | 123 | counter++; |
@@ -154,7 +154,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.TextureSender | |||
154 | { | 154 | { |
155 | if (NumPackets == 0) | 155 | if (NumPackets == 0) |
156 | { | 156 | { |
157 | RequestUser.SendImageFirstPart(1, m_asset.FullID, (uint)m_asset.Data.Length, m_asset.Data, 2); | 157 | RequestUser.SendImageFirstPart(1, m_asset.Metadata.FullID, (uint)m_asset.Data.Length, m_asset.Data, 2); |
158 | PacketCounter++; | 158 | PacketCounter++; |
159 | } | 159 | } |
160 | else | 160 | else |
@@ -163,7 +163,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.TextureSender | |||
163 | Array.Copy(m_asset.Data, 0, ImageData1, 0, 600); | 163 | Array.Copy(m_asset.Data, 0, ImageData1, 0, 600); |
164 | 164 | ||
165 | RequestUser.SendImageFirstPart( | 165 | RequestUser.SendImageFirstPart( |
166 | (ushort)(NumPackets), m_asset.FullID, (uint)m_asset.Data.Length, ImageData1, 2); | 166 | (ushort)(NumPackets), m_asset.Metadata.FullID, (uint)m_asset.Data.Length, ImageData1, 2); |
167 | PacketCounter++; | 167 | PacketCounter++; |
168 | } | 168 | } |
169 | } | 169 | } |
@@ -179,11 +179,11 @@ namespace OpenSim.Region.Environment.Modules.Agent.TextureSender | |||
179 | catch (ArgumentOutOfRangeException) | 179 | catch (ArgumentOutOfRangeException) |
180 | { | 180 | { |
181 | m_log.Error("[TEXTURE SENDER]: Unable to separate texture into multiple packets: Array bounds failure on asset:" + | 181 | m_log.Error("[TEXTURE SENDER]: Unable to separate texture into multiple packets: Array bounds failure on asset:" + |
182 | m_asset.FullID.ToString()); | 182 | m_asset.Metadata.ID); |
183 | return; | 183 | return; |
184 | } | 184 | } |
185 | 185 | ||
186 | RequestUser.SendImageNextPart((ushort)PacketCounter, m_asset.FullID, imageData); | 186 | RequestUser.SendImageNextPart((ushort)PacketCounter, m_asset.Metadata.FullID, imageData); |
187 | PacketCounter++; | 187 | PacketCounter++; |
188 | } | 188 | } |
189 | } | 189 | } |
diff --git a/OpenSim/Region/Environment/Modules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs b/OpenSim/Region/Environment/Modules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs index 862caa9..dcfcba3 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs | |||
@@ -46,7 +46,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Archiver | |||
46 | public class InventoryArchiveReadRequest | 46 | public class InventoryArchiveReadRequest |
47 | { | 47 | { |
48 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 48 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
49 | 49 | ||
50 | protected Scene scene; | 50 | protected Scene scene; |
51 | protected TarArchiveReader archive; | 51 | protected TarArchiveReader archive; |
52 | private static System.Text.ASCIIEncoding m_asciiEncoding = new System.Text.ASCIIEncoding(); | 52 | private static System.Text.ASCIIEncoding m_asciiEncoding = new System.Text.ASCIIEncoding(); |
@@ -65,7 +65,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Archiver | |||
65 | InventoryItemBase item = new InventoryItemBase(); | 65 | InventoryItemBase item = new InventoryItemBase(); |
66 | StringReader sr = new StringReader(contents); | 66 | StringReader sr = new StringReader(contents); |
67 | XmlTextReader reader = new XmlTextReader(sr); | 67 | XmlTextReader reader = new XmlTextReader(sr); |
68 | 68 | ||
69 | if (contents.Equals("")) return null; | 69 | if (contents.Equals("")) return null; |
70 | 70 | ||
71 | reader.ReadStartElement("InventoryObject"); | 71 | reader.ReadStartElement("InventoryObject"); |
@@ -79,7 +79,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Archiver | |||
79 | item.InvType = System.Convert.ToInt32(reader.ReadString()); | 79 | item.InvType = System.Convert.ToInt32(reader.ReadString()); |
80 | reader.ReadEndElement(); | 80 | reader.ReadEndElement(); |
81 | reader.ReadStartElement("CreatorUUID"); | 81 | reader.ReadStartElement("CreatorUUID"); |
82 | item.Creator = UUID.Parse(reader.ReadString()); | 82 | item.Creator = UUID.Parse(reader.ReadString()); |
83 | reader.ReadEndElement(); | 83 | reader.ReadEndElement(); |
84 | reader.ReadStartElement("CreationDate"); | 84 | reader.ReadStartElement("CreationDate"); |
85 | item.CreationDate = System.Convert.ToInt32(reader.ReadString()); | 85 | item.CreationDate = System.Convert.ToInt32(reader.ReadString()); |
@@ -94,7 +94,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Archiver | |||
94 | } | 94 | } |
95 | else | 95 | else |
96 | { | 96 | { |
97 | reader.ReadStartElement("Description"); | 97 | reader.ReadStartElement("Description"); |
98 | item.Description = reader.ReadString(); | 98 | item.Description = reader.ReadString(); |
99 | reader.ReadEndElement(); | 99 | reader.ReadEndElement(); |
100 | } | 100 | } |
@@ -145,7 +145,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Archiver | |||
145 | int successfulAssetRestores = 0; | 145 | int successfulAssetRestores = 0; |
146 | int failedAssetRestores = 0; | 146 | int failedAssetRestores = 0; |
147 | int successfulItemRestores = 0; | 147 | int successfulItemRestores = 0; |
148 | 148 | ||
149 | UserProfileData userProfile = commsManager.UserService.GetUserProfile(firstName, lastName); | 149 | UserProfileData userProfile = commsManager.UserService.GetUserProfile(firstName, lastName); |
150 | if (null == userProfile) | 150 | if (null == userProfile) |
151 | { | 151 | { |
@@ -157,28 +157,28 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Archiver | |||
157 | if (null == userInfo) | 157 | if (null == userInfo) |
158 | { | 158 | { |
159 | m_log.ErrorFormat( | 159 | m_log.ErrorFormat( |
160 | "[CONSOLE]: Failed to find user info for {0} {1} {2}", | 160 | "[CONSOLE]: Failed to find user info for {0} {1} {2}", |
161 | firstName, lastName, userProfile.ID); | 161 | firstName, lastName, userProfile.ID); |
162 | 162 | ||
163 | return; | 163 | return; |
164 | } | 164 | } |
165 | 165 | ||
166 | if (!userInfo.HasReceivedInventory) | 166 | if (!userInfo.HasReceivedInventory) |
167 | { | 167 | { |
168 | m_log.ErrorFormat( | 168 | m_log.ErrorFormat( |
169 | "[CONSOLE]: Have not yet received inventory info for user {0} {1} {2}", | 169 | "[CONSOLE]: Have not yet received inventory info for user {0} {1} {2}", |
170 | firstName, lastName, userProfile.ID); | 170 | firstName, lastName, userProfile.ID); |
171 | 171 | ||
172 | return; | 172 | return; |
173 | } | 173 | } |
174 | 174 | ||
175 | InventoryFolderImpl inventoryFolder = userInfo.RootFolder.FindFolderByPath(invPath); | 175 | InventoryFolderImpl inventoryFolder = userInfo.RootFolder.FindFolderByPath(invPath); |
176 | 176 | ||
177 | if (null == inventoryFolder) | 177 | if (null == inventoryFolder) |
178 | { | 178 | { |
179 | // TODO: Later on, automatically create this folder if it does not exist | 179 | // TODO: Later on, automatically create this folder if it does not exist |
180 | m_log.ErrorFormat("[ARCHIVER]: Inventory path {0} does not exist", invPath); | 180 | m_log.ErrorFormat("[ARCHIVER]: Inventory path {0} does not exist", invPath); |
181 | 181 | ||
182 | return; | 182 | return; |
183 | } | 183 | } |
184 | 184 | ||
@@ -202,17 +202,17 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Archiver | |||
202 | else | 202 | else |
203 | { | 203 | { |
204 | InventoryItemBase item = loadInvItem(filePath, m_asciiEncoding.GetString(data)); | 204 | InventoryItemBase item = loadInvItem(filePath, m_asciiEncoding.GetString(data)); |
205 | 205 | ||
206 | if (item != null) | 206 | if (item != null) |
207 | { | 207 | { |
208 | item.Creator = userProfile.ID; | 208 | item.Creator = userProfile.ID; |
209 | item.Owner = userProfile.ID; | 209 | item.Owner = userProfile.ID; |
210 | 210 | ||
211 | // Reset folder ID to the one in which we want to load it | 211 | // Reset folder ID to the one in which we want to load it |
212 | // TODO: Properly restore entire folder structure. At the moment all items are dumped in this | 212 | // TODO: Properly restore entire folder structure. At the moment all items are dumped in this |
213 | // single folder no matter where in the saved folder structure they are. | 213 | // single folder no matter where in the saved folder structure they are. |
214 | item.Folder = inventoryFolder.ID; | 214 | item.Folder = inventoryFolder.ID; |
215 | 215 | ||
216 | userInfo.AddItem(item); | 216 | userInfo.AddItem(item); |
217 | successfulItemRestores++; | 217 | successfulItemRestores++; |
218 | } | 218 | } |
@@ -258,7 +258,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Archiver | |||
258 | 258 | ||
259 | AssetBase asset = new AssetBase(new UUID(uuid), "RandomName"); | 259 | AssetBase asset = new AssetBase(new UUID(uuid), "RandomName"); |
260 | 260 | ||
261 | asset.Type = assetType; | 261 | asset.Metadata.Type = assetType; |
262 | asset.Data = data; | 262 | asset.Data = data; |
263 | 263 | ||
264 | scene.AssetCache.AddAsset(asset); | 264 | scene.AssetCache.AddAsset(asset); |
diff --git a/OpenSim/Region/Environment/Modules/Scripting/DynamicTexture/DynamicTextureModule.cs b/OpenSim/Region/Environment/Modules/Scripting/DynamicTexture/DynamicTextureModule.cs index 0974f02..bddf10d 100644 --- a/OpenSim/Region/Environment/Modules/Scripting/DynamicTexture/DynamicTextureModule.cs +++ b/OpenSim/Region/Environment/Modules/Scripting/DynamicTexture/DynamicTextureModule.cs | |||
@@ -231,21 +231,21 @@ namespace OpenSim.Region.Environment.Modules.Scripting.DynamicTexture | |||
231 | 231 | ||
232 | // Create a new asset for user | 232 | // Create a new asset for user |
233 | AssetBase asset = new AssetBase(); | 233 | AssetBase asset = new AssetBase(); |
234 | asset.FullID = UUID.Random(); | 234 | asset.Metadata.FullID = UUID.Random(); |
235 | asset.Data = assetData; | 235 | asset.Data = assetData; |
236 | asset.Name = "DynamicImage" + Util.RandomClass.Next(1, 10000); | 236 | asset.Metadata.Name = "DynamicImage" + Util.RandomClass.Next(1, 10000); |
237 | asset.Type = 0; | 237 | asset.Metadata.Type = 0; |
238 | asset.Description = "dynamic image"; | 238 | asset.Metadata.Description = "dynamic image"; |
239 | asset.Local = false; | 239 | asset.Metadata.Local = false; |
240 | asset.Temporary = true; | 240 | asset.Metadata.Temporary = true; |
241 | scene.AssetCache.AddAsset(asset); | 241 | scene.AssetCache.AddAsset(asset); |
242 | 242 | ||
243 | LastAssetID = asset.FullID; | 243 | LastAssetID = asset.Metadata.FullID; |
244 | 244 | ||
245 | IJ2KDecoder cacheLayerDecode = scene.RequestModuleInterface<IJ2KDecoder>(); | 245 | IJ2KDecoder cacheLayerDecode = scene.RequestModuleInterface<IJ2KDecoder>(); |
246 | if (cacheLayerDecode != null) | 246 | if (cacheLayerDecode != null) |
247 | { | 247 | { |
248 | cacheLayerDecode.syncdecode(asset.FullID, asset.Data); | 248 | cacheLayerDecode.syncdecode(asset.Metadata.FullID, asset.Data); |
249 | } | 249 | } |
250 | cacheLayerDecode = null; | 250 | cacheLayerDecode = null; |
251 | 251 | ||
@@ -256,7 +256,7 @@ namespace OpenSim.Region.Environment.Modules.Scripting.DynamicTexture | |||
256 | UUID oldID = tmptex.DefaultTexture.TextureID; | 256 | UUID oldID = tmptex.DefaultTexture.TextureID; |
257 | scene.AssetCache.ExpireAsset(oldID); | 257 | scene.AssetCache.ExpireAsset(oldID); |
258 | 258 | ||
259 | tmptex.DefaultTexture.TextureID = asset.FullID; | 259 | tmptex.DefaultTexture.TextureID = asset.Metadata.FullID; |
260 | // I'm pretty sure we always want to force this to true | 260 | // I'm pretty sure we always want to force this to true |
261 | tmptex.DefaultTexture.Fullbright = true; | 261 | tmptex.DefaultTexture.Fullbright = true; |
262 | 262 | ||
@@ -287,7 +287,7 @@ namespace OpenSim.Region.Environment.Modules.Scripting.DynamicTexture | |||
287 | try | 287 | try |
288 | { | 288 | { |
289 | result = OpenJPEG.EncodeFromImage(joint, true); | 289 | result = OpenJPEG.EncodeFromImage(joint, true); |
290 | } | 290 | } |
291 | catch (Exception) | 291 | catch (Exception) |
292 | { | 292 | { |
293 | Console.WriteLine( | 293 | Console.WriteLine( |
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs index 4e9fcef..c860d01 100644 --- a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs +++ b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs | |||
@@ -66,12 +66,12 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
66 | m_loadStream = new GZipStream(GetStream(loadPath), CompressionMode.Decompress); | 66 | m_loadStream = new GZipStream(GetStream(loadPath), CompressionMode.Decompress); |
67 | m_errorMessage = String.Empty; | 67 | m_errorMessage = String.Empty; |
68 | } | 68 | } |
69 | 69 | ||
70 | public ArchiveReadRequest(Scene scene, Stream loadStream) | 70 | public ArchiveReadRequest(Scene scene, Stream loadStream) |
71 | { | 71 | { |
72 | m_scene = scene; | 72 | m_scene = scene; |
73 | m_loadStream = loadStream; | 73 | m_loadStream = loadStream; |
74 | } | 74 | } |
75 | 75 | ||
76 | /// <summary> | 76 | /// <summary> |
77 | /// Dearchive the region embodied in this request. | 77 | /// Dearchive the region embodied in this request. |
@@ -81,7 +81,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
81 | // The same code can handle dearchiving 0.1 and 0.2 OpenSim Archive versions | 81 | // The same code can handle dearchiving 0.1 and 0.2 OpenSim Archive versions |
82 | DearchiveRegion0DotStar(); | 82 | DearchiveRegion0DotStar(); |
83 | } | 83 | } |
84 | 84 | ||
85 | private void DearchiveRegion0DotStar() | 85 | private void DearchiveRegion0DotStar() |
86 | { | 86 | { |
87 | int successfulAssetRestores = 0; | 87 | int successfulAssetRestores = 0; |
@@ -98,12 +98,12 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
98 | 98 | ||
99 | byte[] data; | 99 | byte[] data; |
100 | TarArchiveReader.TarEntryType entryType; | 100 | TarArchiveReader.TarEntryType entryType; |
101 | 101 | ||
102 | while ((data = archive.ReadEntry(out filePath, out entryType)) != null) | 102 | while ((data = archive.ReadEntry(out filePath, out entryType)) != null) |
103 | { | 103 | { |
104 | //m_log.DebugFormat( | 104 | //m_log.DebugFormat( |
105 | // "[ARCHIVER]: Successfully read {0} ({1} bytes)}", filePath, data.Length); | 105 | // "[ARCHIVER]: Successfully read {0} ({1} bytes)}", filePath, data.Length); |
106 | if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY == entryType) | 106 | if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY == entryType) |
107 | { | 107 | { |
108 | m_log.WarnFormat("[ARCHIVER]: Ignoring directory entry {0}", | 108 | m_log.WarnFormat("[ARCHIVER]: Ignoring directory entry {0}", |
109 | filePath); | 109 | filePath); |
@@ -133,7 +133,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
133 | LoadRegionSettings(filePath, data); | 133 | LoadRegionSettings(filePath, data); |
134 | } | 134 | } |
135 | } | 135 | } |
136 | 136 | ||
137 | //m_log.Debug("[ARCHIVER]: Reached end of archive"); | 137 | //m_log.Debug("[ARCHIVER]: Reached end of archive"); |
138 | 138 | ||
139 | archive.Close(); | 139 | archive.Close(); |
@@ -154,10 +154,10 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
154 | m_log.ErrorFormat("[ARCHIVER]: Failed to load {0} assets", failedAssetRestores); | 154 | m_log.ErrorFormat("[ARCHIVER]: Failed to load {0} assets", failedAssetRestores); |
155 | m_errorMessage += String.Format("Failed to load {0} assets", failedAssetRestores); | 155 | m_errorMessage += String.Format("Failed to load {0} assets", failedAssetRestores); |
156 | } | 156 | } |
157 | 157 | ||
158 | m_log.Info("[ARCHIVER]: Clearing all existing scene objects"); | 158 | m_log.Info("[ARCHIVER]: Clearing all existing scene objects"); |
159 | m_scene.DeleteAllSceneObjects(); | 159 | m_scene.DeleteAllSceneObjects(); |
160 | 160 | ||
161 | // Reload serialized prims | 161 | // Reload serialized prims |
162 | m_log.InfoFormat("[ARCHIVER]: Loading {0} scene objects. Please wait.", serialisedSceneObjects.Count); | 162 | m_log.InfoFormat("[ARCHIVER]: Loading {0} scene objects. Please wait.", serialisedSceneObjects.Count); |
163 | 163 | ||
@@ -176,10 +176,10 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
176 | // Try to retain the original creator/owner/lastowner if their uuid is present on this grid | 176 | // Try to retain the original creator/owner/lastowner if their uuid is present on this grid |
177 | // otherwise, use the master avatar uuid instead | 177 | // otherwise, use the master avatar uuid instead |
178 | UUID masterAvatarId = m_scene.RegionInfo.MasterAvatarAssignedUUID; | 178 | UUID masterAvatarId = m_scene.RegionInfo.MasterAvatarAssignedUUID; |
179 | 179 | ||
180 | if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero) | 180 | if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero) |
181 | masterAvatarId = m_scene.RegionInfo.EstateSettings.EstateOwner; | 181 | masterAvatarId = m_scene.RegionInfo.EstateSettings.EstateOwner; |
182 | 182 | ||
183 | foreach (SceneObjectPart part in sceneObject.Children.Values) | 183 | foreach (SceneObjectPart part in sceneObject.Children.Values) |
184 | { | 184 | { |
185 | if (!resolveUserUuid(part.CreatorID)) | 185 | if (!resolveUserUuid(part.CreatorID)) |
@@ -233,7 +233,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
233 | { | 233 | { |
234 | sceneObject.CreateScriptInstances(0, true, m_scene.DefaultScriptEngine, 0); | 234 | sceneObject.CreateScriptInstances(0, true, m_scene.DefaultScriptEngine, 0); |
235 | } | 235 | } |
236 | 236 | ||
237 | m_scene.EventManager.TriggerOarFileLoaded(m_errorMessage); | 237 | m_scene.EventManager.TriggerOarFileLoaded(m_errorMessage); |
238 | } | 238 | } |
239 | 239 | ||
@@ -290,12 +290,12 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
290 | //m_log.DebugFormat("[ARCHIVER]: Importing asset {0}, type {1}", uuid, assetType); | 290 | //m_log.DebugFormat("[ARCHIVER]: Importing asset {0}, type {1}", uuid, assetType); |
291 | 291 | ||
292 | AssetBase asset = new AssetBase(new UUID(uuid), String.Empty); | 292 | AssetBase asset = new AssetBase(new UUID(uuid), String.Empty); |
293 | asset.Type = assetType; | 293 | asset.Metadata.Type = assetType; |
294 | asset.Data = data; | 294 | asset.Data = data; |
295 | 295 | ||
296 | m_scene.AssetCache.AddAsset(asset); | 296 | m_scene.AssetCache.AddAsset(asset); |
297 | 297 | ||
298 | /** | 298 | /** |
299 | * Create layers on decode for image assets. This is likely to significantly increase the time to load archives so | 299 | * Create layers on decode for image assets. This is likely to significantly increase the time to load archives so |
300 | * it might be best done when dearchive takes place on a separate thread | 300 | * it might be best done when dearchive takes place on a separate thread |
301 | if (asset.Type=AssetType.Texture) | 301 | if (asset.Type=AssetType.Texture) |
@@ -317,7 +317,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
317 | return false; | 317 | return false; |
318 | } | 318 | } |
319 | } | 319 | } |
320 | 320 | ||
321 | /// <summary> | 321 | /// <summary> |
322 | /// Load region settings data | 322 | /// Load region settings data |
323 | /// </summary> | 323 | /// </summary> |
@@ -329,7 +329,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
329 | private bool LoadRegionSettings(string settingsPath, byte[] data) | 329 | private bool LoadRegionSettings(string settingsPath, byte[] data) |
330 | { | 330 | { |
331 | RegionSettings loadedRegionSettings; | 331 | RegionSettings loadedRegionSettings; |
332 | 332 | ||
333 | try | 333 | try |
334 | { | 334 | { |
335 | loadedRegionSettings = RegionSettingsSerializer.Deserialize(data); | 335 | loadedRegionSettings = RegionSettingsSerializer.Deserialize(data); |
@@ -337,13 +337,13 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
337 | catch (Exception e) | 337 | catch (Exception e) |
338 | { | 338 | { |
339 | m_log.ErrorFormat( | 339 | m_log.ErrorFormat( |
340 | "[ARCHIVER]: Could not parse region settings file {0}. Ignoring. Exception was {1}", | 340 | "[ARCHIVER]: Could not parse region settings file {0}. Ignoring. Exception was {1}", |
341 | settingsPath, e); | 341 | settingsPath, e); |
342 | return false; | 342 | return false; |
343 | } | 343 | } |
344 | 344 | ||
345 | RegionSettings currentRegionSettings = m_scene.RegionInfo.RegionSettings; | 345 | RegionSettings currentRegionSettings = m_scene.RegionInfo.RegionSettings; |
346 | 346 | ||
347 | currentRegionSettings.AgentLimit = loadedRegionSettings.AgentLimit; | 347 | currentRegionSettings.AgentLimit = loadedRegionSettings.AgentLimit; |
348 | currentRegionSettings.AllowDamage = loadedRegionSettings.AllowDamage; | 348 | currentRegionSettings.AllowDamage = loadedRegionSettings.AllowDamage; |
349 | currentRegionSettings.AllowLandJoinDivide = loadedRegionSettings.AllowLandJoinDivide; | 349 | currentRegionSettings.AllowLandJoinDivide = loadedRegionSettings.AllowLandJoinDivide; |
@@ -373,10 +373,10 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
373 | currentRegionSettings.TerrainTexture4 = loadedRegionSettings.TerrainTexture4; | 373 | currentRegionSettings.TerrainTexture4 = loadedRegionSettings.TerrainTexture4; |
374 | currentRegionSettings.UseEstateSun = loadedRegionSettings.UseEstateSun; | 374 | currentRegionSettings.UseEstateSun = loadedRegionSettings.UseEstateSun; |
375 | currentRegionSettings.WaterHeight = loadedRegionSettings.WaterHeight; | 375 | currentRegionSettings.WaterHeight = loadedRegionSettings.WaterHeight; |
376 | 376 | ||
377 | IEstateModule estateModule = m_scene.RequestModuleInterface<IEstateModule>(); | 377 | IEstateModule estateModule = m_scene.RequestModuleInterface<IEstateModule>(); |
378 | estateModule.sendRegionHandshakeToAll(); | 378 | estateModule.sendRegionHandshakeToAll(); |
379 | 379 | ||
380 | return true; | 380 | return true; |
381 | } | 381 | } |
382 | 382 | ||
@@ -411,11 +411,11 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
411 | if (File.Exists(path)) | 411 | if (File.Exists(path)) |
412 | { | 412 | { |
413 | return new FileStream(path, FileMode.Open); | 413 | return new FileStream(path, FileMode.Open); |
414 | } | 414 | } |
415 | else | 415 | else |
416 | { | 416 | { |
417 | Uri uri = new Uri(path); // throw exception if not valid URI | 417 | Uri uri = new Uri(path); // throw exception if not valid URI |
418 | if (uri.Scheme == "file") | 418 | if (uri.Scheme == "file") |
419 | { | 419 | { |
420 | return new FileStream(uri.AbsolutePath, FileMode.Open); | 420 | return new FileStream(uri.AbsolutePath, FileMode.Open); |
421 | } | 421 | } |
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/AssetsArchiver.cs b/OpenSim/Region/Environment/Modules/World/Archiver/AssetsArchiver.cs index 75ae474..36a60f3 100644 --- a/OpenSim/Region/Environment/Modules/World/Archiver/AssetsArchiver.cs +++ b/OpenSim/Region/Environment/Modules/World/Archiver/AssetsArchiver.cs | |||
@@ -86,16 +86,16 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
86 | 86 | ||
87 | string extension = string.Empty; | 87 | string extension = string.Empty; |
88 | 88 | ||
89 | if (ArchiveConstants.ASSET_TYPE_TO_EXTENSION.ContainsKey(asset.Type)) | 89 | if (ArchiveConstants.ASSET_TYPE_TO_EXTENSION.ContainsKey(asset.Metadata.Type)) |
90 | { | 90 | { |
91 | extension = ArchiveConstants.ASSET_TYPE_TO_EXTENSION[asset.Type]; | 91 | extension = ArchiveConstants.ASSET_TYPE_TO_EXTENSION[asset.Metadata.Type]; |
92 | } | 92 | } |
93 | 93 | ||
94 | xtw.WriteElementString("filename", uuid.ToString() + extension); | 94 | xtw.WriteElementString("filename", uuid.ToString() + extension); |
95 | 95 | ||
96 | xtw.WriteElementString("name", asset.Name); | 96 | xtw.WriteElementString("name", asset.Metadata.Name); |
97 | xtw.WriteElementString("description", asset.Description); | 97 | xtw.WriteElementString("description", asset.Metadata.Description); |
98 | xtw.WriteElementString("asset-type", asset.Type.ToString()); | 98 | xtw.WriteElementString("asset-type", asset.Metadata.Type.ToString()); |
99 | 99 | ||
100 | xtw.WriteEndElement(); | 100 | xtw.WriteEndElement(); |
101 | } | 101 | } |
@@ -123,15 +123,15 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
123 | 123 | ||
124 | string extension = string.Empty; | 124 | string extension = string.Empty; |
125 | 125 | ||
126 | if (ArchiveConstants.ASSET_TYPE_TO_EXTENSION.ContainsKey(asset.Type)) | 126 | if (ArchiveConstants.ASSET_TYPE_TO_EXTENSION.ContainsKey(asset.Metadata.Type)) |
127 | { | 127 | { |
128 | extension = ArchiveConstants.ASSET_TYPE_TO_EXTENSION[asset.Type]; | 128 | extension = ArchiveConstants.ASSET_TYPE_TO_EXTENSION[asset.Metadata.Type]; |
129 | } | 129 | } |
130 | else | 130 | else |
131 | { | 131 | { |
132 | m_log.ErrorFormat( | 132 | m_log.ErrorFormat( |
133 | "[ARCHIVER]: Unrecognized asset type {0} with uuid {1}. This asset will be saved but not reloaded", | 133 | "[ARCHIVER]: Unrecognized asset type {0} with uuid {1}. This asset will be saved but not reloaded", |
134 | asset.Type, asset.ID); | 134 | asset.Metadata.Type, asset.Metadata.ID); |
135 | } | 135 | } |
136 | 136 | ||
137 | archive.AddFile( | 137 | archive.AddFile( |
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/AssetsDearchiver.cs b/OpenSim/Region/Environment/Modules/World/Archiver/AssetsDearchiver.cs index b26fe4c..0ef1e1d 100644 --- a/OpenSim/Region/Environment/Modules/World/Archiver/AssetsDearchiver.cs +++ b/OpenSim/Region/Environment/Modules/World/Archiver/AssetsDearchiver.cs | |||
@@ -157,8 +157,8 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
157 | m_log.DebugFormat("[ARCHIVER]: Importing asset {0}", filename); | 157 | m_log.DebugFormat("[ARCHIVER]: Importing asset {0}", filename); |
158 | 158 | ||
159 | AssetBase asset = new AssetBase(new UUID(filename), metadata.Name); | 159 | AssetBase asset = new AssetBase(new UUID(filename), metadata.Name); |
160 | asset.Description = metadata.Description; | 160 | asset.Metadata.Description = metadata.Description; |
161 | asset.Type = metadata.AssetType; | 161 | asset.Metadata.Type = metadata.AssetType; |
162 | asset.Data = data; | 162 | asset.Data = data; |
163 | 163 | ||
164 | m_cache.AddAsset(asset); | 164 | m_cache.AddAsset(asset); |
diff --git a/OpenSim/Region/Environment/Modules/World/Estate/EstateTerrainXferHandler.cs b/OpenSim/Region/Environment/Modules/World/Estate/EstateTerrainXferHandler.cs index 6d69443..2ba4e34 100644 --- a/OpenSim/Region/Environment/Modules/World/Estate/EstateTerrainXferHandler.cs +++ b/OpenSim/Region/Environment/Modules/World/Estate/EstateTerrainXferHandler.cs | |||
@@ -37,13 +37,13 @@ using OpenSim.Region.Environment.Scenes; | |||
37 | 37 | ||
38 | namespace OpenSim.Region.Environment.Modules.World.Estate | 38 | namespace OpenSim.Region.Environment.Modules.World.Estate |
39 | { | 39 | { |
40 | 40 | ||
41 | public class EstateTerrainXferHandler | 41 | public class EstateTerrainXferHandler |
42 | { | 42 | { |
43 | //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 43 | //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
44 | 44 | ||
45 | private AssetBase m_asset; | 45 | private AssetBase m_asset; |
46 | 46 | ||
47 | public delegate void TerrainUploadComplete(string name, byte[] filedata, IClientAPI remoteClient); | 47 | public delegate void TerrainUploadComplete(string name, byte[] filedata, IClientAPI remoteClient); |
48 | 48 | ||
49 | public event TerrainUploadComplete TerrainUploadDone; | 49 | public event TerrainUploadComplete TerrainUploadDone; |
@@ -52,21 +52,21 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
52 | //private string m_name = String.Empty; | 52 | //private string m_name = String.Empty; |
53 | //private UUID TransactionID = UUID.Zero; | 53 | //private UUID TransactionID = UUID.Zero; |
54 | private sbyte type = 0; | 54 | private sbyte type = 0; |
55 | 55 | ||
56 | public ulong mXferID; | 56 | public ulong mXferID; |
57 | private TerrainUploadComplete handlerTerrainUploadDone; | 57 | private TerrainUploadComplete handlerTerrainUploadDone; |
58 | 58 | ||
59 | public EstateTerrainXferHandler(IClientAPI pRemoteClient, string pClientFilename) | 59 | public EstateTerrainXferHandler(IClientAPI pRemoteClient, string pClientFilename) |
60 | { | 60 | { |
61 | 61 | ||
62 | m_asset = new AssetBase(); | 62 | m_asset = new AssetBase(); |
63 | m_asset.FullID = UUID.Zero; | 63 | m_asset.Metadata.FullID = UUID.Zero; |
64 | m_asset.Type = type; | 64 | m_asset.Metadata.Type = type; |
65 | m_asset.Data = new byte[0]; | 65 | m_asset.Data = new byte[0]; |
66 | m_asset.Name = pClientFilename; | 66 | m_asset.Metadata.Name = pClientFilename; |
67 | m_asset.Description = "empty"; | 67 | m_asset.Metadata.Description = "empty"; |
68 | m_asset.Local = true; | 68 | m_asset.Metadata.Local = true; |
69 | m_asset.Temporary = true; | 69 | m_asset.Metadata.Temporary = true; |
70 | 70 | ||
71 | } | 71 | } |
72 | 72 | ||
@@ -78,7 +78,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
78 | public void RequestStartXfer(IClientAPI pRemoteClient) | 78 | public void RequestStartXfer(IClientAPI pRemoteClient) |
79 | { | 79 | { |
80 | mXferID = Util.GetNextXferID(); | 80 | mXferID = Util.GetNextXferID(); |
81 | pRemoteClient.SendXferRequest(mXferID, m_asset.Type, m_asset.FullID, 0, Utils.StringToBytes(m_asset.Name)); | 81 | pRemoteClient.SendXferRequest(mXferID, m_asset.Metadata.Type, m_asset.Metadata.FullID, 0, Utils.StringToBytes(m_asset.Metadata.Name)); |
82 | } | 82 | } |
83 | 83 | ||
84 | /// <summary> | 84 | /// <summary> |
@@ -86,7 +86,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
86 | /// </summary> | 86 | /// </summary> |
87 | /// <param name="xferID"></param> | 87 | /// <param name="xferID"></param> |
88 | /// <param name="packetID"></param> | 88 | /// <param name="packetID"></param> |
89 | /// <param name="data"></param> | 89 | /// <param name="data"></param> |
90 | public void XferReceive(IClientAPI remoteClient, ulong xferID, uint packetID, byte[] data) | 90 | public void XferReceive(IClientAPI remoteClient, ulong xferID, uint packetID, byte[] data) |
91 | { | 91 | { |
92 | if (mXferID == xferID) | 92 | if (mXferID == xferID) |
@@ -110,7 +110,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
110 | if ((packetID & 0x80000000) != 0) | 110 | if ((packetID & 0x80000000) != 0) |
111 | { | 111 | { |
112 | SendCompleteMessage(remoteClient); | 112 | SendCompleteMessage(remoteClient); |
113 | 113 | ||
114 | } | 114 | } |
115 | } | 115 | } |
116 | } | 116 | } |
@@ -120,7 +120,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
120 | handlerTerrainUploadDone = TerrainUploadDone; | 120 | handlerTerrainUploadDone = TerrainUploadDone; |
121 | if (handlerTerrainUploadDone != null) | 121 | if (handlerTerrainUploadDone != null) |
122 | { | 122 | { |
123 | handlerTerrainUploadDone(m_asset.Name,m_asset.Data, remoteClient); | 123 | handlerTerrainUploadDone(m_asset.Metadata.Name, m_asset.Data, remoteClient); |
124 | } | 124 | } |
125 | } | 125 | } |
126 | } | 126 | } |
diff --git a/OpenSim/Region/Environment/Scenes/Hypergrid/HGAssetMapper.cs b/OpenSim/Region/Environment/Scenes/Hypergrid/HGAssetMapper.cs index 3acaa21..73a5a3a 100644 --- a/OpenSim/Region/Environment/Scenes/Hypergrid/HGAssetMapper.cs +++ b/OpenSim/Region/Environment/Scenes/Hypergrid/HGAssetMapper.cs | |||
@@ -1,29 +1,29 @@ | |||
1 | /** | 1 | /** |
2 | * Copyright (c) 2008, Contributors. All rights reserved. | 2 | * Copyright (c) 2008, Contributors. All rights reserved. |
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | 3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. |
4 | * | 4 | * |
5 | * Redistribution and use in source and binary forms, with or without modification, | 5 | * Redistribution and use in source and binary forms, with or without modification, |
6 | * are permitted provided that the following conditions are met: | 6 | * are permitted provided that the following conditions are met: |
7 | * | 7 | * |
8 | * * Redistributions of source code must retain the above copyright notice, | 8 | * * Redistributions of source code must retain the above copyright notice, |
9 | * this list of conditions and the following disclaimer. | 9 | * this list of conditions and the following disclaimer. |
10 | * * Redistributions in binary form must reproduce the above copyright notice, | 10 | * * Redistributions in binary form must reproduce the above copyright notice, |
11 | * this list of conditions and the following disclaimer in the documentation | 11 | * this list of conditions and the following disclaimer in the documentation |
12 | * and/or other materials provided with the distribution. | 12 | * and/or other materials provided with the distribution. |
13 | * * Neither the name of the Organizations nor the names of Individual | 13 | * * Neither the name of the Organizations nor the names of Individual |
14 | * Contributors may be used to endorse or promote products derived from | 14 | * Contributors may be used to endorse or promote products derived from |
15 | * this software without specific prior written permission. | 15 | * this software without specific prior written permission. |
16 | * | 16 | * |
17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND | 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND |
18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
19 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL | 19 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL |
20 | * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | 20 | * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
21 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE | 21 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE |
22 | * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED | 22 | * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
23 | * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | 23 | * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
24 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | 24 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED |
25 | * OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | 29 | using System; |
@@ -48,7 +48,7 @@ using OpenSim.Region.Environment.Scenes; | |||
48 | 48 | ||
49 | namespace OpenSim.Region.Environment.Scenes.Hypergrid | 49 | namespace OpenSim.Region.Environment.Scenes.Hypergrid |
50 | { | 50 | { |
51 | public class HGAssetMapper | 51 | public class HGAssetMapper |
52 | { | 52 | { |
53 | #region Fields | 53 | #region Fields |
54 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 54 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
@@ -128,12 +128,12 @@ namespace OpenSim.Region.Environment.Scenes.Hypergrid | |||
128 | 128 | ||
129 | if (m_scene.CommsManager.AssetCache.TryGetCachedAsset(assetID, out asset) && (asset != null)) | 129 | if (m_scene.CommsManager.AssetCache.TryGetCachedAsset(assetID, out asset) && (asset != null)) |
130 | { | 130 | { |
131 | m_log.Debug("[HGScene]: Asset made it to asset cache. " + asset.Name + " " + assetID); | 131 | m_log.Debug("[HGScene]: Asset made it to asset cache. " + asset.Metadata.Name + " " + assetID); |
132 | // I think I need to store it in the asset DB too. | 132 | // I think I need to store it in the asset DB too. |
133 | // For now, let me just do it for textures and scripts | 133 | // For now, let me just do it for textures and scripts |
134 | if (((AssetType)asset.Type == AssetType.Texture) || | 134 | if (((AssetType)asset.Metadata.Type == AssetType.Texture) || |
135 | ((AssetType)asset.Type == AssetType.LSLBytecode) || | 135 | ((AssetType)asset.Metadata.Type == AssetType.LSLBytecode) || |
136 | ((AssetType)asset.Type == AssetType.LSLText)) | 136 | ((AssetType)asset.Metadata.Type == AssetType.LSLText)) |
137 | { | 137 | { |
138 | AssetBase asset1 = new AssetBase(); | 138 | AssetBase asset1 = new AssetBase(); |
139 | Copy(asset, asset1); | 139 | Copy(asset, asset1); |
@@ -157,9 +157,9 @@ namespace OpenSim.Region.Environment.Scenes.Hypergrid | |||
157 | if (asset1 != null) | 157 | if (asset1 != null) |
158 | { | 158 | { |
159 | // See long comment in AssetCache.AddAsset | 159 | // See long comment in AssetCache.AddAsset |
160 | if (!asset1.Temporary || asset1.Local) | 160 | if (!asset1.Metadata.Temporary || asset1.Metadata.Local) |
161 | { | 161 | { |
162 | // The asset cache returns instances of subclasses of AssetBase: | 162 | // The asset cache returns instances of subclasses of AssetBase: |
163 | // TextureImage or AssetInfo. So in passing them to the remote | 163 | // TextureImage or AssetInfo. So in passing them to the remote |
164 | // server we first need to convert this to instances of AssetBase, | 164 | // server we first need to convert this to instances of AssetBase, |
165 | // which is the serializable class for assets. | 165 | // which is the serializable class for assets. |
@@ -179,14 +179,14 @@ namespace OpenSim.Region.Environment.Scenes.Hypergrid | |||
179 | private void Copy(AssetBase from, AssetBase to) | 179 | private void Copy(AssetBase from, AssetBase to) |
180 | { | 180 | { |
181 | to.Data = from.Data; | 181 | to.Data = from.Data; |
182 | to.Description = from.Description; | 182 | to.Metadata.Description = from.Metadata.Description; |
183 | to.FullID = from.FullID; | 183 | to.Metadata.FullID = from.Metadata.FullID; |
184 | to.ID = from.ID; | 184 | to.Metadata.ID = from.Metadata.ID; |
185 | to.Local = from.Local; | 185 | to.Metadata.Local = from.Metadata.Local; |
186 | to.Name = from.Name; | 186 | to.Metadata.Name = from.Metadata.Name; |
187 | to.Temporary = from.Temporary; | 187 | to.Metadata.Temporary = from.Metadata.Temporary; |
188 | to.Type = from.Type; | 188 | to.Metadata.Type = from.Metadata.Type; |
189 | 189 | ||
190 | } | 190 | } |
191 | 191 | ||
192 | private void _guardedAdd(Dictionary<UUID, bool> lst, UUID obj, bool val) | 192 | private void _guardedAdd(Dictionary<UUID, bool> lst, UUID obj, bool val) |
@@ -243,7 +243,7 @@ namespace OpenSim.Region.Environment.Scenes.Hypergrid | |||
243 | private Dictionary<UUID, bool> SniffUUIDs(AssetBase asset) | 243 | private Dictionary<UUID, bool> SniffUUIDs(AssetBase asset) |
244 | { | 244 | { |
245 | Dictionary<UUID, bool> uuids = new Dictionary<UUID, bool>(); | 245 | Dictionary<UUID, bool> uuids = new Dictionary<UUID, bool>(); |
246 | if ((asset != null) && ((AssetType)asset.Type == AssetType.Object)) | 246 | if ((asset != null) && ((AssetType)asset.Metadata.Type == AssetType.Object)) |
247 | { | 247 | { |
248 | string ass_str = Utils.BytesToString(asset.Data); | 248 | string ass_str = Utils.BytesToString(asset.Data); |
249 | SceneObjectGroup sog = new SceneObjectGroup(ass_str, true); | 249 | SceneObjectGroup sog = new SceneObjectGroup(ass_str, true); |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index 58ab058..cb9aee2 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | |||
@@ -42,12 +42,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
42 | public partial class Scene | 42 | public partial class Scene |
43 | { | 43 | { |
44 | private static readonly ILog m_log | 44 | private static readonly ILog m_log |
45 | = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 45 | = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
46 | 46 | ||
47 | /// <summary> | 47 | /// <summary> |
48 | /// Allows asynchronous derezzing of objects from the scene into a client's inventory. | 48 | /// Allows asynchronous derezzing of objects from the scene into a client's inventory. |
49 | /// </summary> | 49 | /// </summary> |
50 | protected AsyncSceneObjectGroupDeleter m_asyncSceneObjectDeleter; | 50 | protected AsyncSceneObjectGroupDeleter m_asyncSceneObjectDeleter; |
51 | 51 | ||
52 | /// <summary> | 52 | /// <summary> |
53 | /// Start all the scripts in the scene which should be started. | 53 | /// Start all the scripts in the scene which should be started. |
@@ -145,9 +145,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
145 | else | 145 | else |
146 | { | 146 | { |
147 | m_log.ErrorFormat( | 147 | m_log.ErrorFormat( |
148 | "[AGENT INVENTORY]: Could not resolve user {0} for adding an inventory item", | 148 | "[AGENT INVENTORY]: Could not resolve user {0} for adding an inventory item", |
149 | remoteClient.AgentId); | 149 | remoteClient.AgentId); |
150 | } | 150 | } |
151 | } | 151 | } |
152 | 152 | ||
153 | /// <summary> | 153 | /// <summary> |
@@ -175,7 +175,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
175 | remoteClient.SendAgentAlertMessage("Insufficient permissions to edit notecard", false); | 175 | remoteClient.SendAgentAlertMessage("Insufficient permissions to edit notecard", false); |
176 | return UUID.Zero; | 176 | return UUID.Zero; |
177 | } | 177 | } |
178 | 178 | ||
179 | remoteClient.SendAgentAlertMessage("Notecard saved", false); | 179 | remoteClient.SendAgentAlertMessage("Notecard saved", false); |
180 | } | 180 | } |
181 | else if ((InventoryType)item.InvType == InventoryType.LSL) | 181 | else if ((InventoryType)item.InvType == InventoryType.LSL) |
@@ -185,7 +185,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
185 | remoteClient.SendAgentAlertMessage("Insufficient permissions to edit script", false); | 185 | remoteClient.SendAgentAlertMessage("Insufficient permissions to edit script", false); |
186 | return UUID.Zero; | 186 | return UUID.Zero; |
187 | } | 187 | } |
188 | 188 | ||
189 | remoteClient.SendAgentAlertMessage("Script saved", false); | 189 | remoteClient.SendAgentAlertMessage("Script saved", false); |
190 | } | 190 | } |
191 | 191 | ||
@@ -193,21 +193,21 @@ namespace OpenSim.Region.Environment.Scenes | |||
193 | CreateAsset(item.Name, item.Description, (sbyte)item.AssetType, data); | 193 | CreateAsset(item.Name, item.Description, (sbyte)item.AssetType, data); |
194 | AssetCache.AddAsset(asset); | 194 | AssetCache.AddAsset(asset); |
195 | 195 | ||
196 | item.AssetID = asset.FullID; | 196 | item.AssetID = asset.Metadata.FullID; |
197 | userInfo.UpdateItem(item); | 197 | userInfo.UpdateItem(item); |
198 | 198 | ||
199 | // remoteClient.SendInventoryItemCreateUpdate(item); | 199 | // remoteClient.SendInventoryItemCreateUpdate(item); |
200 | return (asset.FullID); | 200 | return (asset.Metadata.FullID); |
201 | } | 201 | } |
202 | } | 202 | } |
203 | } | 203 | } |
204 | else | 204 | else |
205 | { | 205 | { |
206 | m_log.ErrorFormat( | 206 | m_log.ErrorFormat( |
207 | "[AGENT INVENTORY]: Could not resolve user {0} for caps inventory update", | 207 | "[AGENT INVENTORY]: Could not resolve user {0} for caps inventory update", |
208 | remoteClient.AgentId); | 208 | remoteClient.AgentId); |
209 | } | 209 | } |
210 | 210 | ||
211 | return UUID.Zero; | 211 | return UUID.Zero; |
212 | } | 212 | } |
213 | 213 | ||
@@ -283,9 +283,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
283 | { | 283 | { |
284 | part.Inventory.RemoveScriptInstance(item.ItemID); | 284 | part.Inventory.RemoveScriptInstance(item.ItemID); |
285 | } | 285 | } |
286 | 286 | ||
287 | // Update item with new asset | 287 | // Update item with new asset |
288 | item.AssetID = asset.FullID; | 288 | item.AssetID = asset.Metadata.FullID; |
289 | group.UpdateInventoryItem(item); | 289 | group.UpdateInventoryItem(item); |
290 | part.GetProperties(remoteClient); | 290 | part.GetProperties(remoteClient); |
291 | 291 | ||
@@ -406,7 +406,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
406 | /// </summary> | 406 | /// </summary> |
407 | /// <param name="recipientClient"></param> | 407 | /// <param name="recipientClient"></param> |
408 | /// <param name="senderId">ID of the sender of the item</param> | 408 | /// <param name="senderId">ID of the sender of the item</param> |
409 | /// <param name="itemId"></param> | 409 | /// <param name="itemId"></param> |
410 | public virtual void GiveInventoryItem(IClientAPI recipientClient, UUID senderId, UUID itemId) | 410 | public virtual void GiveInventoryItem(IClientAPI recipientClient, UUID senderId, UUID itemId) |
411 | { | 411 | { |
412 | InventoryItemBase itemCopy = GiveInventoryItem(recipientClient.AgentId, senderId, itemId); | 412 | InventoryItemBase itemCopy = GiveInventoryItem(recipientClient.AgentId, senderId, itemId); |
@@ -420,19 +420,19 @@ namespace OpenSim.Region.Environment.Scenes | |||
420 | /// </summary> | 420 | /// </summary> |
421 | /// <param name="recipient"></param> | 421 | /// <param name="recipient"></param> |
422 | /// <param name="senderId">ID of the sender of the item</param> | 422 | /// <param name="senderId">ID of the sender of the item</param> |
423 | /// <param name="itemId"></param> | 423 | /// <param name="itemId"></param> |
424 | /// <returns>The inventory item copy given, null if the give was unsuccessful</returns> | 424 | /// <returns>The inventory item copy given, null if the give was unsuccessful</returns> |
425 | public virtual InventoryItemBase GiveInventoryItem(UUID recipient, UUID senderId, UUID itemId) | 425 | public virtual InventoryItemBase GiveInventoryItem(UUID recipient, UUID senderId, UUID itemId) |
426 | { | 426 | { |
427 | return GiveInventoryItem(recipient, senderId, itemId, UUID.Zero); | 427 | return GiveInventoryItem(recipient, senderId, itemId, UUID.Zero); |
428 | } | 428 | } |
429 | 429 | ||
430 | /// <summary> | 430 | /// <summary> |
431 | /// Give an inventory item from one user to another | 431 | /// Give an inventory item from one user to another |
432 | /// </summary> | 432 | /// </summary> |
433 | /// <param name="recipient"></param> | 433 | /// <param name="recipient"></param> |
434 | /// <param name="senderId">ID of the sender of the item</param> | 434 | /// <param name="senderId">ID of the sender of the item</param> |
435 | /// <param name="itemId"></param> | 435 | /// <param name="itemId"></param> |
436 | /// <param name="recipientFolderId"> | 436 | /// <param name="recipientFolderId"> |
437 | /// The id of the folder in which the copy item should go. If UUID.Zero then the item is placed in the most | 437 | /// The id of the folder in which the copy item should go. If UUID.Zero then the item is placed in the most |
438 | /// appropriate default folder. | 438 | /// appropriate default folder. |
@@ -485,7 +485,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
485 | itemCopy.AssetType = item.AssetType; | 485 | itemCopy.AssetType = item.AssetType; |
486 | itemCopy.InvType = item.InvType; | 486 | itemCopy.InvType = item.InvType; |
487 | itemCopy.Folder = recipientFolderId; | 487 | itemCopy.Folder = recipientFolderId; |
488 | 488 | ||
489 | if (Permissions.PropagatePermissions()) | 489 | if (Permissions.PropagatePermissions()) |
490 | { | 490 | { |
491 | if (item.InvType == 6) | 491 | if (item.InvType == 6) |
@@ -557,19 +557,19 @@ namespace OpenSim.Region.Environment.Scenes | |||
557 | m_log.Error("[AGENT INVENTORY]: Failed to find item " + itemId.ToString() + ", no root folder"); | 557 | m_log.Error("[AGENT INVENTORY]: Failed to find item " + itemId.ToString() + ", no root folder"); |
558 | return null; | 558 | return null; |
559 | } | 559 | } |
560 | 560 | ||
561 | return null; | 561 | return null; |
562 | } | 562 | } |
563 | 563 | ||
564 | /// <summary> | 564 | /// <summary> |
565 | /// Give an entire inventory folder from one user to another. The entire contents (including all descendent | 565 | /// Give an entire inventory folder from one user to another. The entire contents (including all descendent |
566 | /// folders) is given. | 566 | /// folders) is given. |
567 | /// </summary> | 567 | /// </summary> |
568 | /// <param name="recipientId"></param> | 568 | /// <param name="recipientId"></param> |
569 | /// <param name="senderId">ID of the sender of the item</param> | 569 | /// <param name="senderId">ID of the sender of the item</param> |
570 | /// <param name="folderId"></param> | 570 | /// <param name="folderId"></param> |
571 | /// <param name="recipientParentFolderId"> | 571 | /// <param name="recipientParentFolderId"> |
572 | /// The id of the receipient folder in which the send folder should be placed. If UUID.Zero then the | 572 | /// The id of the receipient folder in which the send folder should be placed. If UUID.Zero then the |
573 | /// recipient folder is the root folder | 573 | /// recipient folder is the root folder |
574 | /// </param> | 574 | /// </param> |
575 | /// <returns> | 575 | /// <returns> |
@@ -588,24 +588,24 @@ namespace OpenSim.Region.Environment.Scenes | |||
588 | 588 | ||
589 | return null; | 589 | return null; |
590 | } | 590 | } |
591 | 591 | ||
592 | if (!senderUserInfo.HasReceivedInventory) | 592 | if (!senderUserInfo.HasReceivedInventory) |
593 | { | 593 | { |
594 | m_log.DebugFormat( | 594 | m_log.DebugFormat( |
595 | "[AGENT INVENTORY]: Could not give inventory folder - have not yet received inventory for {0}", | 595 | "[AGENT INVENTORY]: Could not give inventory folder - have not yet received inventory for {0}", |
596 | senderId); | 596 | senderId); |
597 | 597 | ||
598 | return null; | 598 | return null; |
599 | } | 599 | } |
600 | 600 | ||
601 | InventoryFolderImpl folder = senderUserInfo.RootFolder.FindFolder(folderId); | 601 | InventoryFolderImpl folder = senderUserInfo.RootFolder.FindFolder(folderId); |
602 | 602 | ||
603 | if (null == folder) | 603 | if (null == folder) |
604 | { | 604 | { |
605 | m_log.ErrorFormat( | 605 | m_log.ErrorFormat( |
606 | "[AGENT INVENTORY]: Could not find inventory folder {0} to give", folderId); | 606 | "[AGENT INVENTORY]: Could not find inventory folder {0} to give", folderId); |
607 | 607 | ||
608 | return null; | 608 | return null; |
609 | } | 609 | } |
610 | 610 | ||
611 | CachedUserInfo recipientUserInfo | 611 | CachedUserInfo recipientUserInfo |
@@ -618,30 +618,30 @@ namespace OpenSim.Region.Environment.Scenes | |||
618 | 618 | ||
619 | return null; | 619 | return null; |
620 | } | 620 | } |
621 | 621 | ||
622 | if (recipientParentFolderId == UUID.Zero) | 622 | if (recipientParentFolderId == UUID.Zero) |
623 | recipientParentFolderId = recipientUserInfo.RootFolder.ID; | 623 | recipientParentFolderId = recipientUserInfo.RootFolder.ID; |
624 | 624 | ||
625 | UUID newFolderId = UUID.Random(); | 625 | UUID newFolderId = UUID.Random(); |
626 | recipientUserInfo.CreateFolder(folder.Name, newFolderId, (ushort)folder.Type, recipientParentFolderId); | 626 | recipientUserInfo.CreateFolder(folder.Name, newFolderId, (ushort)folder.Type, recipientParentFolderId); |
627 | 627 | ||
628 | // XXX: Messy - we should really get this back in the CreateFolder call | 628 | // XXX: Messy - we should really get this back in the CreateFolder call |
629 | InventoryFolderImpl copiedFolder = recipientUserInfo.RootFolder.FindFolder(newFolderId); | 629 | InventoryFolderImpl copiedFolder = recipientUserInfo.RootFolder.FindFolder(newFolderId); |
630 | 630 | ||
631 | // Give all the subfolders | 631 | // Give all the subfolders |
632 | List<InventoryFolderImpl> subFolders = folder.RequestListOfFolderImpls(); | 632 | List<InventoryFolderImpl> subFolders = folder.RequestListOfFolderImpls(); |
633 | foreach (InventoryFolderImpl childFolder in subFolders) | 633 | foreach (InventoryFolderImpl childFolder in subFolders) |
634 | { | 634 | { |
635 | GiveInventoryFolder(recipientId, senderId, childFolder.ID, copiedFolder.ID); | 635 | GiveInventoryFolder(recipientId, senderId, childFolder.ID, copiedFolder.ID); |
636 | } | 636 | } |
637 | 637 | ||
638 | // Give all the items | 638 | // Give all the items |
639 | List<InventoryItemBase> items = folder.RequestListOfItems(); | 639 | List<InventoryItemBase> items = folder.RequestListOfItems(); |
640 | foreach (InventoryItemBase item in items) | 640 | foreach (InventoryItemBase item in items) |
641 | { | 641 | { |
642 | GiveInventoryItem(recipientId, senderId, item.ID, copiedFolder.ID); | 642 | GiveInventoryItem(recipientId, senderId, item.ID, copiedFolder.ID); |
643 | } | 643 | } |
644 | 644 | ||
645 | return copiedFolder; | 645 | return copiedFolder; |
646 | } | 646 | } |
647 | 647 | ||
@@ -688,7 +688,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
688 | { | 688 | { |
689 | if (newName != String.Empty) | 689 | if (newName != String.Empty) |
690 | { | 690 | { |
691 | asset.Name = newName; | 691 | asset.Metadata.Name = newName; |
692 | } | 692 | } |
693 | else | 693 | else |
694 | { | 694 | { |
@@ -728,10 +728,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
728 | private AssetBase CreateAsset(string name, string description, sbyte assetType, byte[] data) | 728 | private AssetBase CreateAsset(string name, string description, sbyte assetType, byte[] data) |
729 | { | 729 | { |
730 | AssetBase asset = new AssetBase(); | 730 | AssetBase asset = new AssetBase(); |
731 | asset.Name = name; | 731 | asset.Metadata.Name = name; |
732 | asset.Description = description; | 732 | asset.Metadata.Description = description; |
733 | asset.Type = assetType; | 733 | asset.Metadata.Type = assetType; |
734 | asset.FullID = UUID.Random(); | 734 | asset.Metadata.FullID = UUID.Random(); |
735 | asset.Data = (data == null) ? new byte[1] : data; | 735 | asset.Data = (data == null) ? new byte[1] : data; |
736 | 736 | ||
737 | return asset; | 737 | return asset; |
@@ -831,11 +831,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
831 | item.Owner = remoteClient.AgentId; | 831 | item.Owner = remoteClient.AgentId; |
832 | item.Creator = remoteClient.AgentId; | 832 | item.Creator = remoteClient.AgentId; |
833 | item.ID = UUID.Random(); | 833 | item.ID = UUID.Random(); |
834 | item.AssetID = asset.FullID; | 834 | item.AssetID = asset.Metadata.FullID; |
835 | item.Description = asset.Description; | 835 | item.Description = asset.Metadata.Description; |
836 | item.Name = name; | 836 | item.Name = name; |
837 | item.Flags = flags; | 837 | item.Flags = flags; |
838 | item.AssetType = asset.Type; | 838 | item.AssetType = asset.Metadata.Type; |
839 | item.InvType = invType; | 839 | item.InvType = invType; |
840 | item.Folder = folderID; | 840 | item.Folder = folderID; |
841 | item.CurrentPermissions = currentMask; | 841 | item.CurrentPermissions = currentMask; |
@@ -879,7 +879,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
879 | 879 | ||
880 | if (!Permissions.CanCreateUserInventory(invType, remoteClient.AgentId)) | 880 | if (!Permissions.CanCreateUserInventory(invType, remoteClient.AgentId)) |
881 | return; | 881 | return; |
882 | 882 | ||
883 | if (transactionID == UUID.Zero) | 883 | if (transactionID == UUID.Zero) |
884 | { | 884 | { |
885 | CachedUserInfo userInfo | 885 | CachedUserInfo userInfo |
@@ -890,7 +890,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
890 | ScenePresence presence; | 890 | ScenePresence presence; |
891 | TryGetAvatar(remoteClient.AgentId, out presence); | 891 | TryGetAvatar(remoteClient.AgentId, out presence); |
892 | byte[] data = null; | 892 | byte[] data = null; |
893 | 893 | ||
894 | if (invType == 3 && presence != null) // OpenMetaverse.asset.assettype.landmark = 3 - needs to be turned into an enum | 894 | if (invType == 3 && presence != null) // OpenMetaverse.asset.assettype.landmark = 3 - needs to be turned into an enum |
895 | { | 895 | { |
896 | Vector3 pos = presence.AbsolutePosition; | 896 | Vector3 pos = presence.AbsolutePosition; |
@@ -905,7 +905,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
905 | AssetBase asset = CreateAsset(name, description, assetType, data); | 905 | AssetBase asset = CreateAsset(name, description, assetType, data); |
906 | AssetCache.AddAsset(asset); | 906 | AssetCache.AddAsset(asset); |
907 | 907 | ||
908 | CreateNewInventoryItem(remoteClient, folderID, asset.Name, 0, callbackID, asset, invType, nextOwnerMask, creationDate); | 908 | CreateNewInventoryItem(remoteClient, folderID, asset.Metadata.Name, 0, callbackID, asset, invType, nextOwnerMask, creationDate); |
909 | } | 909 | } |
910 | else | 910 | else |
911 | { | 911 | { |
@@ -1429,7 +1429,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1429 | } | 1429 | } |
1430 | } | 1430 | } |
1431 | else // Updating existing item with new perms etc | 1431 | else // Updating existing item with new perms etc |
1432 | { | 1432 | { |
1433 | IAgentAssetTransactions agentTransactions = this.RequestModuleInterface<IAgentAssetTransactions>(); | 1433 | IAgentAssetTransactions agentTransactions = this.RequestModuleInterface<IAgentAssetTransactions>(); |
1434 | if (agentTransactions != null) | 1434 | if (agentTransactions != null) |
1435 | { | 1435 | { |
@@ -1511,7 +1511,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1511 | } | 1511 | } |
1512 | } | 1512 | } |
1513 | else // script has been rezzed directly into a prim's inventory | 1513 | else // script has been rezzed directly into a prim's inventory |
1514 | { | 1514 | { |
1515 | SceneObjectPart part = GetSceneObjectPart(itemBase.Folder); | 1515 | SceneObjectPart part = GetSceneObjectPart(itemBase.Folder); |
1516 | if (part == null) | 1516 | if (part == null) |
1517 | return; | 1517 | return; |
@@ -1521,10 +1521,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
1521 | 1521 | ||
1522 | if ((part.OwnerMask & (uint)PermissionMask.Modify) == 0) | 1522 | if ((part.OwnerMask & (uint)PermissionMask.Modify) == 0) |
1523 | return; | 1523 | return; |
1524 | 1524 | ||
1525 | if (!Permissions.CanCreateObjectInventory( | 1525 | if (!Permissions.CanCreateObjectInventory( |
1526 | itemBase.InvType, part.UUID, remoteClient.AgentId)) | 1526 | itemBase.InvType, part.UUID, remoteClient.AgentId)) |
1527 | return; | 1527 | return; |
1528 | 1528 | ||
1529 | AssetBase asset = CreateAsset(itemBase.Name, itemBase.Description, (sbyte)itemBase.AssetType, Encoding.ASCII.GetBytes("default\n{\n state_entry()\n {\n llSay(0, \"Script running\");\n }\n}")); | 1529 | AssetBase asset = CreateAsset(itemBase.Name, itemBase.Description, (sbyte)itemBase.AssetType, Encoding.ASCII.GetBytes("default\n{\n state_entry()\n {\n llSay(0, \"Script running\");\n }\n}")); |
1530 | AssetCache.AddAsset(asset); | 1530 | AssetCache.AddAsset(asset); |
@@ -1550,7 +1550,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1550 | taskItem.Flags = itemBase.Flags; | 1550 | taskItem.Flags = itemBase.Flags; |
1551 | taskItem.PermsGranter = UUID.Zero; | 1551 | taskItem.PermsGranter = UUID.Zero; |
1552 | taskItem.PermsMask = 0; | 1552 | taskItem.PermsMask = 0; |
1553 | taskItem.AssetID = asset.FullID; | 1553 | taskItem.AssetID = asset.Metadata.FullID; |
1554 | 1554 | ||
1555 | part.Inventory.AddInventoryItem(taskItem, false); | 1555 | part.Inventory.AddInventoryItem(taskItem, false); |
1556 | part.GetProperties(remoteClient); | 1556 | part.GetProperties(remoteClient); |
@@ -1737,7 +1737,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1737 | grp.UUID, | 1737 | grp.UUID, |
1738 | remoteClient.AgentId); | 1738 | remoteClient.AgentId); |
1739 | permissionToDelete = permissionToTake; | 1739 | permissionToDelete = permissionToTake; |
1740 | 1740 | ||
1741 | if (permissionToDelete) | 1741 | if (permissionToDelete) |
1742 | { | 1742 | { |
1743 | AddReturn(grp.OwnerID, grp.Name, grp.AbsolutePosition, "parcel owner return"); | 1743 | AddReturn(grp.OwnerID, grp.Name, grp.AbsolutePosition, "parcel owner return"); |
@@ -1794,8 +1794,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1794 | /// </summary> | 1794 | /// </summary> |
1795 | /// <param name="action"></param> | 1795 | /// <param name="action"></param> |
1796 | /// <param name="folderID"></param> | 1796 | /// <param name="folderID"></param> |
1797 | /// <param name="objectGroup"></param> | 1797 | /// <param name="objectGroup"></param> |
1798 | /// <param name="remoteClient"> </param> | 1798 | /// <param name="remoteClient"> </param> |
1799 | public virtual UUID DeleteToInventory(DeRezAction action, UUID folderID, | 1799 | public virtual UUID DeleteToInventory(DeRezAction action, UUID folderID, |
1800 | SceneObjectGroup objectGroup, IClientAPI remoteClient) | 1800 | SceneObjectGroup objectGroup, IClientAPI remoteClient) |
1801 | { | 1801 | { |
@@ -1807,7 +1807,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1807 | // | 1807 | // |
1808 | CachedUserInfo userInfo; | 1808 | CachedUserInfo userInfo; |
1809 | 1809 | ||
1810 | if (action == DeRezAction.Take || action == DeRezAction.TakeCopy || | 1810 | if (action == DeRezAction.Take || action == DeRezAction.TakeCopy || |
1811 | action == DeRezAction.SaveToExistingUserInventoryItem) | 1811 | action == DeRezAction.SaveToExistingUserInventoryItem) |
1812 | { | 1812 | { |
1813 | // Take or take copy require a taker | 1813 | // Take or take copy require a taker |
@@ -1850,25 +1850,25 @@ namespace OpenSim.Region.Environment.Scenes | |||
1850 | // | 1850 | // |
1851 | 1851 | ||
1852 | InventoryFolderBase folder = null; | 1852 | InventoryFolderBase folder = null; |
1853 | InventoryItemBase item = null; | 1853 | InventoryItemBase item = null; |
1854 | 1854 | ||
1855 | if (DeRezAction.SaveToExistingUserInventoryItem == action) | 1855 | if (DeRezAction.SaveToExistingUserInventoryItem == action) |
1856 | { | 1856 | { |
1857 | item = userInfo.RootFolder.FindItem( | 1857 | item = userInfo.RootFolder.FindItem( |
1858 | objectGroup.RootPart.FromUserInventoryItemID); | 1858 | objectGroup.RootPart.FromUserInventoryItemID); |
1859 | 1859 | ||
1860 | if (null == item) | 1860 | if (null == item) |
1861 | { | 1861 | { |
1862 | m_log.DebugFormat( | 1862 | m_log.DebugFormat( |
1863 | "[AGENT INVENTORY]: Object {0} {1} scheduled for save to inventory has already been deleted.", | 1863 | "[AGENT INVENTORY]: Object {0} {1} scheduled for save to inventory has already been deleted.", |
1864 | objectGroup.Name, objectGroup.UUID); | 1864 | objectGroup.Name, objectGroup.UUID); |
1865 | return UUID.Zero; | 1865 | return UUID.Zero; |
1866 | } | 1866 | } |
1867 | } | 1867 | } |
1868 | else | 1868 | else |
1869 | { | 1869 | { |
1870 | // Folder magic | 1870 | // Folder magic |
1871 | // | 1871 | // |
1872 | if (action == DeRezAction.Delete) | 1872 | if (action == DeRezAction.Delete) |
1873 | { | 1873 | { |
1874 | // Deleting someone else's item | 1874 | // Deleting someone else's item |
@@ -1940,7 +1940,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1940 | item.InvType = (int)InventoryType.Object; | 1940 | item.InvType = (int)InventoryType.Object; |
1941 | item.Folder = folder.ID; | 1941 | item.Folder = folder.ID; |
1942 | item.Owner = userInfo.UserProfile.ID; | 1942 | item.Owner = userInfo.UserProfile.ID; |
1943 | 1943 | ||
1944 | } | 1944 | } |
1945 | 1945 | ||
1946 | AssetBase asset = CreateAsset( | 1946 | AssetBase asset = CreateAsset( |
@@ -1949,16 +1949,16 @@ namespace OpenSim.Region.Environment.Scenes | |||
1949 | (sbyte)AssetType.Object, | 1949 | (sbyte)AssetType.Object, |
1950 | Utils.StringToBytes(sceneObjectXml)); | 1950 | Utils.StringToBytes(sceneObjectXml)); |
1951 | AssetCache.AddAsset(asset); | 1951 | AssetCache.AddAsset(asset); |
1952 | assetID = asset.FullID; | 1952 | assetID = asset.Metadata.FullID; |
1953 | 1953 | ||
1954 | if (DeRezAction.SaveToExistingUserInventoryItem == action) | 1954 | if (DeRezAction.SaveToExistingUserInventoryItem == action) |
1955 | { | 1955 | { |
1956 | item.AssetID = asset.FullID; | 1956 | item.AssetID = asset.Metadata.FullID; |
1957 | userInfo.UpdateItem(item); | 1957 | userInfo.UpdateItem(item); |
1958 | } | 1958 | } |
1959 | else | 1959 | else |
1960 | { | 1960 | { |
1961 | item.AssetID = asset.FullID; | 1961 | item.AssetID = asset.Metadata.FullID; |
1962 | 1962 | ||
1963 | if (remoteClient != null && (remoteClient.AgentId != objectGroup.RootPart.OwnerID) && Permissions.PropagatePermissions()) | 1963 | if (remoteClient != null && (remoteClient.AgentId != objectGroup.RootPart.OwnerID) && Permissions.PropagatePermissions()) |
1964 | { | 1964 | { |
@@ -1991,12 +1991,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
1991 | 1991 | ||
1992 | // TODO: add the new fields (Flags, Sale info, etc) | 1992 | // TODO: add the new fields (Flags, Sale info, etc) |
1993 | item.CreationDate = Util.UnixTimeSinceEpoch(); | 1993 | item.CreationDate = Util.UnixTimeSinceEpoch(); |
1994 | item.Description = asset.Description; | 1994 | item.Description = asset.Metadata.Description; |
1995 | item.Name = asset.Name; | 1995 | item.Name = asset.Metadata.Name; |
1996 | item.AssetType = asset.Type; | 1996 | item.AssetType = asset.Metadata.Type; |
1997 | 1997 | ||
1998 | userInfo.AddItem(item); | 1998 | userInfo.AddItem(item); |
1999 | 1999 | ||
2000 | if (remoteClient != null && item.Owner == remoteClient.AgentId) | 2000 | if (remoteClient != null && item.Owner == remoteClient.AgentId) |
2001 | { | 2001 | { |
2002 | remoteClient.SendInventoryItemCreateUpdate(item); | 2002 | remoteClient.SendInventoryItemCreateUpdate(item); |
@@ -2008,10 +2008,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
2008 | { | 2008 | { |
2009 | notifyUser.ControllingClient.SendInventoryItemCreateUpdate(item); | 2009 | notifyUser.ControllingClient.SendInventoryItemCreateUpdate(item); |
2010 | } | 2010 | } |
2011 | } | 2011 | } |
2012 | } | 2012 | } |
2013 | } | 2013 | } |
2014 | 2014 | ||
2015 | return assetID; | 2015 | return assetID; |
2016 | } | 2016 | } |
2017 | 2017 | ||
@@ -2025,11 +2025,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
2025 | m_log.InfoFormat("[ATTACHMENT]: Save request for {0} which is unchanged", grp.UUID); | 2025 | m_log.InfoFormat("[ATTACHMENT]: Save request for {0} which is unchanged", grp.UUID); |
2026 | return; | 2026 | return; |
2027 | } | 2027 | } |
2028 | 2028 | ||
2029 | m_log.InfoFormat( | 2029 | m_log.InfoFormat( |
2030 | "[ATTACHMENT]: Updating asset for attachment {0}, attachpoint {1}", | 2030 | "[ATTACHMENT]: Updating asset for attachment {0}, attachpoint {1}", |
2031 | grp.UUID, grp.GetAttachmentPoint()); | 2031 | grp.UUID, grp.GetAttachmentPoint()); |
2032 | 2032 | ||
2033 | string sceneObjectXml = objectGroup.ToXmlString(); | 2033 | string sceneObjectXml = objectGroup.ToXmlString(); |
2034 | 2034 | ||
2035 | CachedUserInfo userInfo = | 2035 | CachedUserInfo userInfo = |
@@ -2077,10 +2077,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
2077 | Utils.StringToBytes(sceneObjectXml)); | 2077 | Utils.StringToBytes(sceneObjectXml)); |
2078 | AssetCache.AddAsset(asset); | 2078 | AssetCache.AddAsset(asset); |
2079 | 2079 | ||
2080 | item.AssetID = asset.FullID; | 2080 | item.AssetID = asset.Metadata.FullID; |
2081 | item.Description = asset.Description; | 2081 | item.Description = asset.Metadata.Description; |
2082 | item.Name = asset.Name; | 2082 | item.Name = asset.Metadata.Name; |
2083 | item.AssetType = asset.Type; | 2083 | item.AssetType = asset.Metadata.Type; |
2084 | item.InvType = (int)InventoryType.Object; | 2084 | item.InvType = (int)InventoryType.Object; |
2085 | item.Folder = foundFolder; | 2085 | item.Folder = foundFolder; |
2086 | 2086 | ||
@@ -2118,10 +2118,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
2118 | item.Creator = grp.RootPart.CreatorID; | 2118 | item.Creator = grp.RootPart.CreatorID; |
2119 | item.Owner = remoteClient.AgentId; | 2119 | item.Owner = remoteClient.AgentId; |
2120 | item.ID = UUID.Random(); | 2120 | item.ID = UUID.Random(); |
2121 | item.AssetID = asset.FullID; | 2121 | item.AssetID = asset.Metadata.FullID; |
2122 | item.Description = asset.Description; | 2122 | item.Description = asset.Metadata.Description; |
2123 | item.Name = asset.Name; | 2123 | item.Name = asset.Metadata.Name; |
2124 | item.AssetType = asset.Type; | 2124 | item.AssetType = asset.Metadata.Type; |
2125 | item.InvType = (int)InventoryType.Object; | 2125 | item.InvType = (int)InventoryType.Object; |
2126 | 2126 | ||
2127 | item.Folder = UUID.Zero; // Objects folder! | 2127 | item.Folder = UUID.Zero; // Objects folder! |
@@ -2241,20 +2241,20 @@ namespace OpenSim.Region.Environment.Scenes | |||
2241 | if (rezAsset != null) | 2241 | if (rezAsset != null) |
2242 | { | 2242 | { |
2243 | UUID itemId = UUID.Zero; | 2243 | UUID itemId = UUID.Zero; |
2244 | 2244 | ||
2245 | // If we have permission to copy then link the rezzed object back to the user inventory | 2245 | // If we have permission to copy then link the rezzed object back to the user inventory |
2246 | // item that it came from. This allows us to enable 'save object to inventory' | 2246 | // item that it came from. This allows us to enable 'save object to inventory' |
2247 | if (!Permissions.BypassPermissions()) | 2247 | if (!Permissions.BypassPermissions()) |
2248 | { | 2248 | { |
2249 | if ((item.CurrentPermissions & (uint)PermissionMask.Copy) == (uint)PermissionMask.Copy) | 2249 | if ((item.CurrentPermissions & (uint)PermissionMask.Copy) == (uint)PermissionMask.Copy) |
2250 | { | 2250 | { |
2251 | itemId = item.ID; | 2251 | itemId = item.ID; |
2252 | } | 2252 | } |
2253 | } | 2253 | } |
2254 | 2254 | ||
2255 | string xmlData = Utils.BytesToString(rezAsset.Data); | 2255 | string xmlData = Utils.BytesToString(rezAsset.Data); |
2256 | SceneObjectGroup group = new SceneObjectGroup(itemId, xmlData, true); | 2256 | SceneObjectGroup group = new SceneObjectGroup(itemId, xmlData, true); |
2257 | 2257 | ||
2258 | if (!Permissions.CanRezObject( | 2258 | if (!Permissions.CanRezObject( |
2259 | group.Children.Count, remoteClient.AgentId, pos) | 2259 | group.Children.Count, remoteClient.AgentId, pos) |
2260 | && !attachment) | 2260 | && !attachment) |
@@ -2351,12 +2351,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
2351 | group.ClearPartAttachmentData(); | 2351 | group.ClearPartAttachmentData(); |
2352 | } | 2352 | } |
2353 | } | 2353 | } |
2354 | 2354 | ||
2355 | if (!attachment) | 2355 | if (!attachment) |
2356 | { | 2356 | { |
2357 | // Fire on_rez | 2357 | // Fire on_rez |
2358 | group.CreateScriptInstances(0, true, DefaultScriptEngine, 0); | 2358 | group.CreateScriptInstances(0, true, DefaultScriptEngine, 0); |
2359 | 2359 | ||
2360 | rootPart.ScheduleFullUpdate(); | 2360 | rootPart.ScheduleFullUpdate(); |
2361 | } | 2361 | } |
2362 | 2362 | ||
@@ -2500,7 +2500,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2500 | DeRezObject(null, grp.RootPart.LocalId, | 2500 | DeRezObject(null, grp.RootPart.LocalId, |
2501 | grp.RootPart.GroupID, DeRezAction.Return, UUID.Zero); | 2501 | grp.RootPart.GroupID, DeRezAction.Return, UUID.Zero); |
2502 | } | 2502 | } |
2503 | 2503 | ||
2504 | return true; | 2504 | return true; |
2505 | } | 2505 | } |
2506 | 2506 | ||
@@ -2632,7 +2632,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2632 | } | 2632 | } |
2633 | 2633 | ||
2634 | } | 2634 | } |
2635 | 2635 | ||
2636 | m_sceneGraph.DetachSingleAttachmentToInv(itemID, remoteClient); | 2636 | m_sceneGraph.DetachSingleAttachmentToInv(itemID, remoteClient); |
2637 | } | 2637 | } |
2638 | 2638 | ||
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 33dae66..32bd9aa 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -115,18 +115,18 @@ namespace OpenSim.Region.Environment.Scenes | |||
115 | 115 | ||
116 | /// <value> | 116 | /// <value> |
117 | /// All the region modules attached to this scene. | 117 | /// All the region modules attached to this scene. |
118 | /// </value> | 118 | /// </value> |
119 | public Dictionary<string, IRegionModule> Modules | 119 | public Dictionary<string, IRegionModule> Modules |
120 | { | 120 | { |
121 | get { return m_modules; } | 121 | get { return m_modules; } |
122 | } | 122 | } |
123 | protected Dictionary<string, IRegionModule> m_modules = new Dictionary<string, IRegionModule>(); | 123 | protected Dictionary<string, IRegionModule> m_modules = new Dictionary<string, IRegionModule>(); |
124 | 124 | ||
125 | /// <value> | 125 | /// <value> |
126 | /// The module interfaces available from this scene. | 126 | /// The module interfaces available from this scene. |
127 | /// </value> | 127 | /// </value> |
128 | protected Dictionary<Type, List<object> > ModuleInterfaces = new Dictionary<Type, List<object> >(); | 128 | protected Dictionary<Type, List<object> > ModuleInterfaces = new Dictionary<Type, List<object> >(); |
129 | 129 | ||
130 | protected Dictionary<string, object> ModuleAPIMethods = new Dictionary<string, object>(); | 130 | protected Dictionary<string, object> ModuleAPIMethods = new Dictionary<string, object>(); |
131 | protected Dictionary<string, ICommander> m_moduleCommanders = new Dictionary<string, ICommander>(); | 131 | protected Dictionary<string, ICommander> m_moduleCommanders = new Dictionary<string, ICommander>(); |
132 | 132 | ||
@@ -143,7 +143,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
143 | protected IInterregionCommsIn m_interregionCommsIn; | 143 | protected IInterregionCommsIn m_interregionCommsIn; |
144 | protected IDialogModule m_dialogModule; | 144 | protected IDialogModule m_dialogModule; |
145 | protected internal ICapabilitiesModule CapsModule; | 145 | protected internal ICapabilitiesModule CapsModule; |
146 | 146 | ||
147 | // Central Update Loop | 147 | // Central Update Loop |
148 | 148 | ||
149 | protected int m_fps = 10; | 149 | protected int m_fps = 10; |
@@ -280,10 +280,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
280 | } | 280 | } |
281 | 281 | ||
282 | public int objectCapacity = 45000; | 282 | public int objectCapacity = 45000; |
283 | 283 | ||
284 | /// <value> | 284 | /// <value> |
285 | /// Registered classes that are capable of creating entities. | 285 | /// Registered classes that are capable of creating entities. |
286 | /// </value> | 286 | /// </value> |
287 | protected Dictionary<PCode, IEntityCreator> m_entityCreators = new Dictionary<PCode, IEntityCreator>(); | 287 | protected Dictionary<PCode, IEntityCreator> m_entityCreators = new Dictionary<PCode, IEntityCreator>(); |
288 | 288 | ||
289 | #endregion | 289 | #endregion |
@@ -316,7 +316,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
316 | 316 | ||
317 | m_eventManager = new EventManager(); | 317 | m_eventManager = new EventManager(); |
318 | m_permissions = new ScenePermissions(this); | 318 | m_permissions = new ScenePermissions(this); |
319 | 319 | ||
320 | m_asyncSceneObjectDeleter = new AsyncSceneObjectGroupDeleter(this); | 320 | m_asyncSceneObjectDeleter = new AsyncSceneObjectGroupDeleter(this); |
321 | m_asyncSceneObjectDeleter.Enabled = true; | 321 | m_asyncSceneObjectDeleter.Enabled = true; |
322 | 322 | ||
@@ -421,7 +421,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
421 | protected virtual void RegisterDefaultSceneEvents() | 421 | protected virtual void RegisterDefaultSceneEvents() |
422 | { | 422 | { |
423 | IDialogModule dm = RequestModuleInterface<IDialogModule>(); | 423 | IDialogModule dm = RequestModuleInterface<IDialogModule>(); |
424 | 424 | ||
425 | if (dm != null) | 425 | if (dm != null) |
426 | m_eventManager.OnPermissionError += dm.SendAlertToUser; | 426 | m_eventManager.OnPermissionError += dm.SendAlertToUser; |
427 | } | 427 | } |
@@ -564,7 +564,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
564 | m_incrementsof15seconds = (int)seconds / 15; | 564 | m_incrementsof15seconds = (int)seconds / 15; |
565 | m_RestartTimerCounter = 0; | 565 | m_RestartTimerCounter = 0; |
566 | m_restartTimer.AutoReset = true; | 566 | m_restartTimer.AutoReset = true; |
567 | m_restartTimer.Elapsed += new ElapsedEventHandler(RestartTimer_Elapsed); | 567 | m_restartTimer.Elapsed += new ElapsedEventHandler(RestartTimer_Elapsed); |
568 | m_log.Info("[REGION]: Restarting Region in " + (seconds / 60) + " minutes"); | 568 | m_log.Info("[REGION]: Restarting Region in " + (seconds / 60) + " minutes"); |
569 | m_restartTimer.Start(); | 569 | m_restartTimer.Start(); |
570 | m_dialogModule.SendNotificationToUsersInRegion( | 570 | m_dialogModule.SendNotificationToUsersInRegion( |
@@ -583,8 +583,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
583 | { | 583 | { |
584 | if (m_RestartTimerCounter == 4 || m_RestartTimerCounter == 6 || m_RestartTimerCounter == 7) | 584 | if (m_RestartTimerCounter == 4 || m_RestartTimerCounter == 6 || m_RestartTimerCounter == 7) |
585 | m_dialogModule.SendNotificationToUsersInRegion( | 585 | m_dialogModule.SendNotificationToUsersInRegion( |
586 | UUID.Random(), | 586 | UUID.Random(), |
587 | String.Empty, | 587 | String.Empty, |
588 | RegionInfo.RegionName + ": Restarting in " + ((8 - m_RestartTimerCounter) * 15) + " seconds"); | 588 | RegionInfo.RegionName + ": Restarting in " + ((8 - m_RestartTimerCounter) * 15) + " seconds"); |
589 | } | 589 | } |
590 | else | 590 | else |
@@ -717,7 +717,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
717 | 717 | ||
718 | // Stop all client threads. | 718 | // Stop all client threads. |
719 | ForEachScenePresence(delegate(ScenePresence avatar) { avatar.ControllingClient.Close(true); }); | 719 | ForEachScenePresence(delegate(ScenePresence avatar) { avatar.ControllingClient.Close(true); }); |
720 | 720 | ||
721 | // Stop updating the scene objects and agents. | 721 | // Stop updating the scene objects and agents. |
722 | //m_heartbeatTimer.Close(); | 722 | //m_heartbeatTimer.Close(); |
723 | shuttingdown = true; | 723 | shuttingdown = true; |
@@ -733,7 +733,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
733 | } | 733 | } |
734 | 734 | ||
735 | m_sceneGraph.Close(); | 735 | m_sceneGraph.Close(); |
736 | 736 | ||
737 | // De-register with region communications (events cleanup) | 737 | // De-register with region communications (events cleanup) |
738 | UnRegisterRegionWithComms(); | 738 | UnRegisterRegionWithComms(); |
739 | 739 | ||
@@ -1400,7 +1400,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1400 | //tc = System.Environment.TickCount - tc; | 1400 | //tc = System.Environment.TickCount - tc; |
1401 | //m_log.Info("[MAPTILE]: Completed One row in " + tc + " ms"); | 1401 | //m_log.Info("[MAPTILE]: Completed One row in " + tc + " ms"); |
1402 | } | 1402 | } |
1403 | 1403 | ||
1404 | m_log.Info("[MAPTILE]: Generating Maptile Step 1: Done in " + (System.Environment.TickCount - tc) + " ms"); | 1404 | m_log.Info("[MAPTILE]: Generating Maptile Step 1: Done in " + (System.Environment.TickCount - tc) + " ms"); |
1405 | 1405 | ||
1406 | bool drawPrimVolume = true; | 1406 | bool drawPrimVolume = true; |
@@ -1644,13 +1644,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
1644 | m_regInfo.RegionSettings.TerrainImageID = TerrainImageUUID; | 1644 | m_regInfo.RegionSettings.TerrainImageID = TerrainImageUUID; |
1645 | 1645 | ||
1646 | AssetBase asset = new AssetBase(); | 1646 | AssetBase asset = new AssetBase(); |
1647 | asset.FullID = m_regInfo.RegionSettings.TerrainImageID; | 1647 | asset.Metadata.FullID = m_regInfo.RegionSettings.TerrainImageID; |
1648 | asset.Data = data; | 1648 | asset.Data = data; |
1649 | asset.Name = "terrainImage_" + m_regInfo.RegionID.ToString() + "_" + lastMapRefresh.ToString(); | 1649 | asset.Metadata.Name = "terrainImage_" + m_regInfo.RegionID.ToString() + "_" + lastMapRefresh.ToString(); |
1650 | asset.Description = RegionInfo.RegionName; | 1650 | asset.Metadata.Description = RegionInfo.RegionName; |
1651 | 1651 | ||
1652 | asset.Type = 0; | 1652 | asset.Metadata.Type = 0; |
1653 | asset.Temporary = temporary; | 1653 | asset.Metadata.Temporary = temporary; |
1654 | AssetCache.AddAsset(asset); | 1654 | AssetCache.AddAsset(asset); |
1655 | } | 1655 | } |
1656 | 1656 | ||
@@ -1699,7 +1699,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1699 | m_log.ErrorFormat("[SCENE] Found a SceneObjectGroup with m_rootPart == null and {0} children", | 1699 | m_log.ErrorFormat("[SCENE] Found a SceneObjectGroup with m_rootPart == null and {0} children", |
1700 | group.Children == null ? 0 : group.Children.Count); | 1700 | group.Children == null ? 0 : group.Children.Count); |
1701 | } | 1701 | } |
1702 | 1702 | ||
1703 | AddRestoredSceneObject(group, true, true); | 1703 | AddRestoredSceneObject(group, true, true); |
1704 | SceneObjectPart rootPart = group.GetChildPart(group.UUID); | 1704 | SceneObjectPart rootPart = group.GetChildPart(group.UUID); |
1705 | rootPart.ObjectFlags &= ~(uint)PrimFlags.Scripted; | 1705 | rootPart.ObjectFlags &= ~(uint)PrimFlags.Scripted; |
@@ -1814,7 +1814,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1814 | { | 1814 | { |
1815 | //m_log.DebugFormat( | 1815 | //m_log.DebugFormat( |
1816 | // "[SCENE]: Scene.AddNewPrim() pcode {0} called for {1} in {2}", shape.PCode, ownerID, RegionInfo.RegionName); | 1816 | // "[SCENE]: Scene.AddNewPrim() pcode {0} called for {1} in {2}", shape.PCode, ownerID, RegionInfo.RegionName); |
1817 | 1817 | ||
1818 | // If an entity creator has been registered for this prim type then use that | 1818 | // If an entity creator has been registered for this prim type then use that |
1819 | if (m_entityCreators.ContainsKey((PCode)shape.PCode)) | 1819 | if (m_entityCreators.ContainsKey((PCode)shape.PCode)) |
1820 | return m_entityCreators[(PCode)shape.PCode].CreateEntity(ownerID, groupID, pos, rot, shape); | 1820 | return m_entityCreators[(PCode)shape.PCode].CreateEntity(ownerID, groupID, pos, rot, shape); |
@@ -2094,7 +2094,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2094 | /// <returns></returns> | 2094 | /// <returns></returns> |
2095 | public bool IncomingInterRegionPrimGroup(UUID primID, string objXMLData, int XMLMethod) | 2095 | public bool IncomingInterRegionPrimGroup(UUID primID, string objXMLData, int XMLMethod) |
2096 | { | 2096 | { |
2097 | 2097 | ||
2098 | if (XMLMethod == 0) | 2098 | if (XMLMethod == 0) |
2099 | { | 2099 | { |
2100 | m_log.DebugFormat("[INTERREGION]: A new prim {0} arrived from a neighbor", primID); | 2100 | m_log.DebugFormat("[INTERREGION]: A new prim {0} arrived from a neighbor", primID); |
@@ -2308,7 +2308,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2308 | 2308 | ||
2309 | CreateAndAddScenePresence(client); | 2309 | CreateAndAddScenePresence(client); |
2310 | } | 2310 | } |
2311 | 2311 | ||
2312 | m_LastLogin = System.Environment.TickCount; | 2312 | m_LastLogin = System.Environment.TickCount; |
2313 | EventManager.TriggerOnNewClient(client); | 2313 | EventManager.TriggerOnNewClient(client); |
2314 | } | 2314 | } |
@@ -2390,7 +2390,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2390 | client.OnUnackedTerrain += TerrainUnAcked; | 2390 | client.OnUnackedTerrain += TerrainUnAcked; |
2391 | 2391 | ||
2392 | client.OnObjectOwner += ObjectOwner; | 2392 | client.OnObjectOwner += ObjectOwner; |
2393 | 2393 | ||
2394 | if (StatsReporter != null) | 2394 | if (StatsReporter != null) |
2395 | client.OnNetworkStatsUpdate += StatsReporter.AddPacketsFromClientStats; | 2395 | client.OnNetworkStatsUpdate += StatsReporter.AddPacketsFromClientStats; |
2396 | 2396 | ||
@@ -2561,7 +2561,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2561 | m_log.ErrorFormat("[APPEARANCE]: Problem fetching appearance for avatar {0}, {1}", | 2561 | m_log.ErrorFormat("[APPEARANCE]: Problem fetching appearance for avatar {0}, {1}", |
2562 | client.Name, e); | 2562 | client.Name, e); |
2563 | } | 2563 | } |
2564 | 2564 | ||
2565 | m_log.Warn("[APPEARANCE]: Appearance not found, returning default"); | 2565 | m_log.Warn("[APPEARANCE]: Appearance not found, returning default"); |
2566 | } | 2566 | } |
2567 | 2567 | ||
@@ -2770,21 +2770,21 @@ namespace OpenSim.Region.Environment.Scenes | |||
2770 | 2770 | ||
2771 | ScenePresence sp = m_sceneGraph.GetScenePresence(agent.AgentID); | 2771 | ScenePresence sp = m_sceneGraph.GetScenePresence(agent.AgentID); |
2772 | if (sp != null) | 2772 | if (sp != null) |
2773 | { | 2773 | { |
2774 | m_log.DebugFormat( | 2774 | m_log.DebugFormat( |
2775 | "[SCENE]: Adjusting known seeds for existing agent {0} in {1}", | 2775 | "[SCENE]: Adjusting known seeds for existing agent {0} in {1}", |
2776 | agent.AgentID, RegionInfo.RegionName); | 2776 | agent.AgentID, RegionInfo.RegionName); |
2777 | 2777 | ||
2778 | sp.AdjustKnownSeeds(); | 2778 | sp.AdjustKnownSeeds(); |
2779 | 2779 | ||
2780 | return; | 2780 | return; |
2781 | } | 2781 | } |
2782 | 2782 | ||
2783 | // Don't disable this log message - it's too helpful | 2783 | // Don't disable this log message - it's too helpful |
2784 | m_log.DebugFormat( | 2784 | m_log.DebugFormat( |
2785 | "[CONNECTION BEGIN]: Region {0} told of incoming client {1} {2} {3} (circuit code {4})", | 2785 | "[CONNECTION BEGIN]: Region {0} told of incoming client {1} {2} {3} (circuit code {4})", |
2786 | RegionInfo.RegionName, agent.firstname, agent.lastname, agent.AgentID, agent.circuitcode); | 2786 | RegionInfo.RegionName, agent.firstname, agent.lastname, agent.AgentID, agent.circuitcode); |
2787 | 2787 | ||
2788 | if (m_regInfo.EstateSettings.IsBanned(agent.AgentID)) | 2788 | if (m_regInfo.EstateSettings.IsBanned(agent.AgentID)) |
2789 | { | 2789 | { |
2790 | m_log.WarnFormat( | 2790 | m_log.WarnFormat( |
@@ -2808,10 +2808,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
2808 | } | 2808 | } |
2809 | 2809 | ||
2810 | m_authenticateHandler.AddNewCircuit(agent.circuitcode, agent); | 2810 | m_authenticateHandler.AddNewCircuit(agent.circuitcode, agent); |
2811 | 2811 | ||
2812 | // rewrite session_id | 2812 | // rewrite session_id |
2813 | CachedUserInfo userinfo = CommsManager.UserProfileCacheService.GetUserDetails(agent.AgentID); | 2813 | CachedUserInfo userinfo = CommsManager.UserProfileCacheService.GetUserDetails(agent.AgentID); |
2814 | 2814 | ||
2815 | if (userinfo != null) | 2815 | if (userinfo != null) |
2816 | { | 2816 | { |
2817 | userinfo.SessionID = agent.SessionID; | 2817 | userinfo.SessionID = agent.SessionID; |
@@ -2873,12 +2873,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
2873 | public virtual void AgentCrossing(UUID agentID, Vector3 position, bool isFlying) | 2873 | public virtual void AgentCrossing(UUID agentID, Vector3 position, bool isFlying) |
2874 | { | 2874 | { |
2875 | ScenePresence presence; | 2875 | ScenePresence presence; |
2876 | 2876 | ||
2877 | lock (m_scenePresences) | 2877 | lock (m_scenePresences) |
2878 | { | 2878 | { |
2879 | m_scenePresences.TryGetValue(agentID, out presence); | 2879 | m_scenePresences.TryGetValue(agentID, out presence); |
2880 | } | 2880 | } |
2881 | 2881 | ||
2882 | if (presence != null) | 2882 | if (presence != null) |
2883 | { | 2883 | { |
2884 | try | 2884 | try |
@@ -2902,14 +2902,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
2902 | { | 2902 | { |
2903 | // m_log.DebugFormat( | 2903 | // m_log.DebugFormat( |
2904 | // "[SCENE]: Incoming child agent update for {0} in {1}", cAgentData.AgentID, RegionInfo.RegionName); | 2904 | // "[SCENE]: Incoming child agent update for {0} in {1}", cAgentData.AgentID, RegionInfo.RegionName); |
2905 | 2905 | ||
2906 | ScenePresence childAgentUpdate = GetScenePresence(cAgentData.AgentID); | 2906 | ScenePresence childAgentUpdate = GetScenePresence(cAgentData.AgentID); |
2907 | if (childAgentUpdate != null) | 2907 | if (childAgentUpdate != null) |
2908 | { | 2908 | { |
2909 | childAgentUpdate.ChildAgentDataUpdate(cAgentData); | 2909 | childAgentUpdate.ChildAgentDataUpdate(cAgentData); |
2910 | return true; | 2910 | return true; |
2911 | } | 2911 | } |
2912 | 2912 | ||
2913 | return false; | 2913 | return false; |
2914 | } | 2914 | } |
2915 | 2915 | ||
@@ -2932,10 +2932,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
2932 | // Not Implemented: | 2932 | // Not Implemented: |
2933 | //TODO: Do we need to pass the message on to one of our neighbors? | 2933 | //TODO: Do we need to pass the message on to one of our neighbors? |
2934 | } | 2934 | } |
2935 | 2935 | ||
2936 | return true; | 2936 | return true; |
2937 | } | 2937 | } |
2938 | 2938 | ||
2939 | return false; | 2939 | return false; |
2940 | } | 2940 | } |
2941 | 2941 | ||
@@ -2957,7 +2957,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2957 | public bool IncomingCloseAgent(UUID agentID) | 2957 | public bool IncomingCloseAgent(UUID agentID) |
2958 | { | 2958 | { |
2959 | //m_log.DebugFormat("[SCENE]: Processing incoming close agent for {0}", agentID); | 2959 | //m_log.DebugFormat("[SCENE]: Processing incoming close agent for {0}", agentID); |
2960 | 2960 | ||
2961 | ScenePresence presence = m_sceneGraph.GetScenePresence(agentID); | 2961 | ScenePresence presence = m_sceneGraph.GetScenePresence(agentID); |
2962 | if (presence != null) | 2962 | if (presence != null) |
2963 | { | 2963 | { |
@@ -2972,7 +2972,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2972 | } | 2972 | } |
2973 | 2973 | ||
2974 | // Don't do this to root agents on logout, it's not nice for the viewer | 2974 | // Don't do this to root agents on logout, it's not nice for the viewer |
2975 | if (presence.IsChildAgent) | 2975 | if (presence.IsChildAgent) |
2976 | { | 2976 | { |
2977 | // Tell a single agent to disconnect from the region. | 2977 | // Tell a single agent to disconnect from the region. |
2978 | IEventQueue eq = RequestModuleInterface<IEventQueue>(); | 2978 | IEventQueue eq = RequestModuleInterface<IEventQueue>(); |
@@ -2984,11 +2984,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
2984 | else | 2984 | else |
2985 | presence.ControllingClient.SendShutdownConnectionNotice(); | 2985 | presence.ControllingClient.SendShutdownConnectionNotice(); |
2986 | } | 2986 | } |
2987 | 2987 | ||
2988 | presence.ControllingClient.Close(true); | 2988 | presence.ControllingClient.Close(true); |
2989 | return true; | 2989 | return true; |
2990 | } | 2990 | } |
2991 | 2991 | ||
2992 | // Agent not here | 2992 | // Agent not here |
2993 | return false; | 2993 | return false; |
2994 | } | 2994 | } |
@@ -3059,7 +3059,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
3059 | remoteClient.SendTeleportFailed("The region '" + regionName + "' could not be found."); | 3059 | remoteClient.SendTeleportFailed("The region '" + regionName + "' could not be found."); |
3060 | return; | 3060 | return; |
3061 | } | 3061 | } |
3062 | 3062 | ||
3063 | RequestTeleportLocation(remoteClient, regionInfo.RegionHandle, position, lookat, teleportFlags); | 3063 | RequestTeleportLocation(remoteClient, regionInfo.RegionHandle, position, lookat, teleportFlags); |
3064 | } | 3064 | } |
3065 | 3065 | ||
@@ -3080,7 +3080,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
3080 | if (m_scenePresences.ContainsKey(remoteClient.AgentId)) | 3080 | if (m_scenePresences.ContainsKey(remoteClient.AgentId)) |
3081 | sp = m_scenePresences[remoteClient.AgentId]; | 3081 | sp = m_scenePresences[remoteClient.AgentId]; |
3082 | } | 3082 | } |
3083 | 3083 | ||
3084 | if (sp != null) | 3084 | if (sp != null) |
3085 | { | 3085 | { |
3086 | m_sceneGridService.RequestTeleportToLocation(sp, regionHandle, | 3086 | m_sceneGridService.RequestTeleportToLocation(sp, regionHandle, |
@@ -3211,7 +3211,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
3211 | return; | 3211 | return; |
3212 | 3212 | ||
3213 | l.Add(mod); | 3213 | l.Add(mod); |
3214 | 3214 | ||
3215 | if (mod is IEntityCreator) | 3215 | if (mod is IEntityCreator) |
3216 | { | 3216 | { |
3217 | IEntityCreator entityCreator = (IEntityCreator)mod; | 3217 | IEntityCreator entityCreator = (IEntityCreator)mod; |
@@ -3220,7 +3220,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
3220 | m_entityCreators[pcode] = entityCreator; | 3220 | m_entityCreators[pcode] = entityCreator; |
3221 | } | 3221 | } |
3222 | } | 3222 | } |
3223 | 3223 | ||
3224 | ModuleInterfaces[typeof(M)] = l; | 3224 | ModuleInterfaces[typeof(M)] = l; |
3225 | } | 3225 | } |
3226 | 3226 | ||
@@ -3243,7 +3243,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
3243 | /// <summary> | 3243 | /// <summary> |
3244 | /// For the given interface, retrieve an array of region modules that implement it. | 3244 | /// For the given interface, retrieve an array of region modules that implement it. |
3245 | /// </summary> | 3245 | /// </summary> |
3246 | /// <returns>an empty array if there are no registered modules implementing that interface</returns> | 3246 | /// <returns>an empty array if there are no registered modules implementing that interface</returns> |
3247 | public override T[] RequestModuleInterfaces<T>() | 3247 | public override T[] RequestModuleInterfaces<T>() |
3248 | { | 3248 | { |
3249 | if (ModuleInterfaces.ContainsKey(typeof(T))) | 3249 | if (ModuleInterfaces.ContainsKey(typeof(T))) |
@@ -3383,7 +3383,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
3383 | else | 3383 | else |
3384 | { | 3384 | { |
3385 | m_dialogModule.SendAlertToUser(agentID, "Request for god powers denied"); | 3385 | m_dialogModule.SendAlertToUser(agentID, "Request for god powers denied"); |
3386 | } | 3386 | } |
3387 | } | 3387 | } |
3388 | } | 3388 | } |
3389 | 3389 | ||
@@ -3855,14 +3855,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
3855 | public override bool PresenceChildStatus(UUID avatarID) | 3855 | public override bool PresenceChildStatus(UUID avatarID) |
3856 | { | 3856 | { |
3857 | ScenePresence cp = GetScenePresence(avatarID); | 3857 | ScenePresence cp = GetScenePresence(avatarID); |
3858 | 3858 | ||
3859 | // FIXME: This is really crap - some logout code is relying on a NullReferenceException to halt its processing | 3859 | // FIXME: This is really crap - some logout code is relying on a NullReferenceException to halt its processing |
3860 | // This needs to be fixed properly by cleaning up the logout code. | 3860 | // This needs to be fixed properly by cleaning up the logout code. |
3861 | //if (cp != null) | 3861 | //if (cp != null) |
3862 | // return cp.IsChildAgent; | 3862 | // return cp.IsChildAgent; |
3863 | 3863 | ||
3864 | //return false; | 3864 | //return false; |
3865 | 3865 | ||
3866 | return cp.IsChildAgent; | 3866 | return cp.IsChildAgent; |
3867 | } | 3867 | } |
3868 | 3868 | ||
@@ -4140,10 +4140,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
4140 | 4140 | ||
4141 | item.ID = UUID.Random(); | 4141 | item.ID = UUID.Random(); |
4142 | item.Owner = remoteClient.AgentId; | 4142 | item.Owner = remoteClient.AgentId; |
4143 | item.AssetID = asset.FullID; | 4143 | item.AssetID = asset.Metadata.FullID; |
4144 | item.Description = asset.Description; | 4144 | item.Description = asset.Metadata.Description; |
4145 | item.Name = asset.Name; | 4145 | item.Name = asset.Metadata.Name; |
4146 | item.AssetType = asset.Type; | 4146 | item.AssetType = asset.Metadata.Type; |
4147 | item.InvType = (int)InventoryType.Object; | 4147 | item.InvType = (int)InventoryType.Object; |
4148 | item.Folder = categoryID; | 4148 | item.Folder = categoryID; |
4149 | 4149 | ||
@@ -4194,7 +4194,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
4194 | if (!okToSell) | 4194 | if (!okToSell) |
4195 | { | 4195 | { |
4196 | m_dialogModule.SendAlertToUser( | 4196 | m_dialogModule.SendAlertToUser( |
4197 | remoteClient, "This item's inventory doesn't appear to be for sale"); | 4197 | remoteClient, "This item's inventory doesn't appear to be for sale"); |
4198 | return false; | 4198 | return false; |
4199 | } | 4199 | } |
4200 | 4200 | ||
@@ -4252,7 +4252,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
4252 | 4252 | ||
4253 | // This routine is normally called from within a lock (OdeLock) from within the OdePhysicsScene | 4253 | // This routine is normally called from within a lock (OdeLock) from within the OdePhysicsScene |
4254 | // WARNING: be careful of deadlocks here if you manipulate the scene. Remember you are being called | 4254 | // WARNING: be careful of deadlocks here if you manipulate the scene. Remember you are being called |
4255 | // from within the OdePhysicsScene. | 4255 | // from within the OdePhysicsScene. |
4256 | 4256 | ||
4257 | protected internal void jointMoved(PhysicsJoint joint) | 4257 | protected internal void jointMoved(PhysicsJoint joint) |
4258 | { | 4258 | { |
@@ -4348,7 +4348,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
4348 | // FIXME: this causes a sequential lookup of all objects in the scene; use a dictionary | 4348 | // FIXME: this causes a sequential lookup of all objects in the scene; use a dictionary |
4349 | if (joint != null) | 4349 | if (joint != null) |
4350 | { | 4350 | { |
4351 | if (joint.ErrorMessageCount > PhysicsJoint.maxErrorMessages) | 4351 | if (joint.ErrorMessageCount > PhysicsJoint.maxErrorMessages) |
4352 | return; | 4352 | return; |
4353 | 4353 | ||
4354 | SceneObjectPart jointProxyObject = GetSceneObjectPart(joint.ObjectNameInScene); | 4354 | SceneObjectPart jointProxyObject = GetSceneObjectPart(joint.ObjectNameInScene); |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 3e7ffab..734b3ef 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -37,8 +37,8 @@ using OpenSim.Framework; | |||
37 | using OpenSim.Framework.Console; | 37 | using OpenSim.Framework.Console; |
38 | using OpenSim.Region.Environment.Interfaces; | 38 | using OpenSim.Region.Environment.Interfaces; |
39 | using OpenSim.Region.Environment.Scenes; | 39 | using OpenSim.Region.Environment.Scenes; |
40 | using OpenSim.Region.ScriptEngine.Shared; | 40 | using OpenSim.Region.ScriptEngine.Shared; |
41 | using OpenSim.Region.ScriptEngine.Shared.Api.Plugins; | 41 | using OpenSim.Region.ScriptEngine.Shared.Api.Plugins; |
42 | using OpenSim.Region.ScriptEngine.Shared.ScriptBase; | 42 | using OpenSim.Region.ScriptEngine.Shared.ScriptBase; |
43 | using OpenSim.Region.ScriptEngine.Interfaces; | 43 | using OpenSim.Region.ScriptEngine.Interfaces; |
44 | using OpenSim.Region.ScriptEngine.Shared.Api.Interfaces; | 44 | using OpenSim.Region.ScriptEngine.Shared.Api.Interfaces; |
@@ -117,7 +117,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
117 | m_host = host; | 117 | m_host = host; |
118 | m_localID = localID; | 118 | m_localID = localID; |
119 | m_itemID = itemID; | 119 | m_itemID = itemID; |
120 | 120 | ||
121 | if (m_ScriptEngine.Config.GetBoolean("AllowOSFunctions", false)) | 121 | if (m_ScriptEngine.Config.GetBoolean("AllowOSFunctions", false)) |
122 | m_OSFunctionsEnabled = true; | 122 | m_OSFunctionsEnabled = true; |
123 | 123 | ||
@@ -328,9 +328,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
328 | CheckThreatLevel(ThreatLevel.VeryHigh, "osRegionNotice"); | 328 | CheckThreatLevel(ThreatLevel.VeryHigh, "osRegionNotice"); |
329 | 329 | ||
330 | m_host.AddScriptLPS(1); | 330 | m_host.AddScriptLPS(1); |
331 | 331 | ||
332 | IDialogModule dm = World.RequestModuleInterface<IDialogModule>(); | 332 | IDialogModule dm = World.RequestModuleInterface<IDialogModule>(); |
333 | 333 | ||
334 | if (dm != null) | 334 | if (dm != null) |
335 | dm.SendGeneralAlert(msg); | 335 | dm.SendGeneralAlert(msg); |
336 | } | 336 | } |
@@ -776,7 +776,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
776 | return String.Empty; | 776 | return String.Empty; |
777 | } | 777 | } |
778 | } | 778 | } |
779 | 779 | ||
780 | public string osGetSimulatorVersion() | 780 | public string osGetSimulatorVersion() |
781 | { | 781 | { |
782 | // High because it can be used to target attacks to known weaknesses | 782 | // High because it can be used to target attacks to known weaknesses |
@@ -802,37 +802,37 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
802 | 802 | ||
803 | World.ParcelMediaSetTime((float)time); | 803 | World.ParcelMediaSetTime((float)time); |
804 | } | 804 | } |
805 | 805 | ||
806 | public Hashtable osParseJSON(string JSON) | 806 | public Hashtable osParseJSON(string JSON) |
807 | { | 807 | { |
808 | CheckThreatLevel(ThreatLevel.None, "osParseJSON"); | 808 | CheckThreatLevel(ThreatLevel.None, "osParseJSON"); |
809 | 809 | ||
810 | m_host.AddScriptLPS(1); | 810 | m_host.AddScriptLPS(1); |
811 | 811 | ||
812 | // see http://www.json.org/ for more details on JSON | 812 | // see http://www.json.org/ for more details on JSON |
813 | 813 | ||
814 | string currentKey=null; | 814 | string currentKey=null; |
815 | Stack objectStack = new Stack(); // objects in JSON can be nested so we need to keep a track of this | 815 | Stack objectStack = new Stack(); // objects in JSON can be nested so we need to keep a track of this |
816 | Hashtable jsondata = new Hashtable(); // the hashtable to be returned | 816 | Hashtable jsondata = new Hashtable(); // the hashtable to be returned |
817 | int i=0; | 817 | int i=0; |
818 | try | 818 | try |
819 | { | 819 | { |
820 | 820 | ||
821 | // iterate through the serialised stream of tokens and store at the right depth in the hashtable | 821 | // iterate through the serialised stream of tokens and store at the right depth in the hashtable |
822 | // the top level hashtable may contain more nested hashtables within it each containing an objects representation | 822 | // the top level hashtable may contain more nested hashtables within it each containing an objects representation |
823 | for (i=0;i<JSON.Length; i++) | 823 | for (i=0;i<JSON.Length; i++) |
824 | { | 824 | { |
825 | 825 | ||
826 | // Console.WriteLine(""+JSON[i]); | 826 | // Console.WriteLine(""+JSON[i]); |
827 | switch (JSON[i]) | 827 | switch (JSON[i]) |
828 | { | 828 | { |
829 | case '{': | 829 | case '{': |
830 | // create hashtable and add it to the stack or array if we are populating one, we can have a lot of nested objects in JSON | 830 | // create hashtable and add it to the stack or array if we are populating one, we can have a lot of nested objects in JSON |
831 | 831 | ||
832 | Hashtable currentObject = new Hashtable(); | 832 | Hashtable currentObject = new Hashtable(); |
833 | if (objectStack.Count==0) // the stack should only be empty for the first outer object | 833 | if (objectStack.Count==0) // the stack should only be empty for the first outer object |
834 | { | 834 | { |
835 | 835 | ||
836 | objectStack.Push(jsondata); | 836 | objectStack.Push(jsondata); |
837 | } | 837 | } |
838 | else if (objectStack.Peek().ToString()=="System.Collections.ArrayList") | 838 | else if (objectStack.Peek().ToString()=="System.Collections.ArrayList") |
@@ -842,12 +842,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
842 | objectStack.Push(currentObject); | 842 | objectStack.Push(currentObject); |
843 | } | 843 | } |
844 | else | 844 | else |
845 | { | 845 | { |
846 | // add it to the parent hashtable | 846 | // add it to the parent hashtable |
847 | ((Hashtable)objectStack.Peek()).Add(currentKey,currentObject); | 847 | ((Hashtable)objectStack.Peek()).Add(currentKey,currentObject); |
848 | objectStack.Push(currentObject); | 848 | objectStack.Push(currentObject); |
849 | } | 849 | } |
850 | 850 | ||
851 | // clear the key | 851 | // clear the key |
852 | currentKey=null; | 852 | currentKey=null; |
853 | break; | 853 | break; |
@@ -856,25 +856,25 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
856 | objectStack.Pop(); | 856 | objectStack.Pop(); |
857 | break; | 857 | break; |
858 | case '"':// string boundary | 858 | case '"':// string boundary |
859 | 859 | ||
860 | string tokenValue=""; | 860 | string tokenValue=""; |
861 | i++; // move to next char | 861 | i++; // move to next char |
862 | 862 | ||
863 | // just loop through until the next quote mark storing the string, ignore quotes with pre-ceding \ | 863 | // just loop through until the next quote mark storing the string, ignore quotes with pre-ceding \ |
864 | while (JSON[i]!='"') | 864 | while (JSON[i]!='"') |
865 | { | 865 | { |
866 | tokenValue+=JSON[i]; | 866 | tokenValue+=JSON[i]; |
867 | 867 | ||
868 | // handle escaped double quotes \" | 868 | // handle escaped double quotes \" |
869 | if (JSON[i]=='\\' && JSON[i+1]=='"') | 869 | if (JSON[i]=='\\' && JSON[i+1]=='"') |
870 | { | 870 | { |
871 | tokenValue+=JSON[i+1]; | 871 | tokenValue+=JSON[i+1]; |
872 | i++; | 872 | i++; |
873 | } | 873 | } |
874 | i++; | 874 | i++; |
875 | 875 | ||
876 | } | 876 | } |
877 | 877 | ||
878 | // ok we've got a string, if we've got an array on the top of the stack then we store it | 878 | // ok we've got a string, if we've got an array on the top of the stack then we store it |
879 | if (objectStack.Peek().ToString()=="System.Collections.ArrayList") | 879 | if (objectStack.Peek().ToString()=="System.Collections.ArrayList") |
880 | { | 880 | { |
@@ -884,14 +884,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
884 | { | 884 | { |
885 | currentKey = tokenValue; | 885 | currentKey = tokenValue; |
886 | } | 886 | } |
887 | else | 887 | else |
888 | { | 888 | { |
889 | // we have a key so lets store this value | 889 | // we have a key so lets store this value |
890 | ((Hashtable)objectStack.Peek()).Add(currentKey,tokenValue); | 890 | ((Hashtable)objectStack.Peek()).Add(currentKey,tokenValue); |
891 | // now lets clear the key, we're done with it and moving on | 891 | // now lets clear the key, we're done with it and moving on |
892 | currentKey=null; | 892 | currentKey=null; |
893 | } | 893 | } |
894 | 894 | ||
895 | break; | 895 | break; |
896 | case ':':// key : value separator | 896 | case ':':// key : value separator |
897 | // just ignore | 897 | // just ignore |
@@ -900,20 +900,20 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
900 | // just ignore | 900 | // just ignore |
901 | break; | 901 | break; |
902 | case '[': // array start | 902 | case '[': // array start |
903 | ArrayList currentArray = new ArrayList(); | 903 | ArrayList currentArray = new ArrayList(); |
904 | 904 | ||
905 | if (objectStack.Peek().ToString()=="System.Collections.ArrayList") | 905 | if (objectStack.Peek().ToString()=="System.Collections.ArrayList") |
906 | { | 906 | { |
907 | ((ArrayList)objectStack.Peek()).Add(currentArray); | 907 | ((ArrayList)objectStack.Peek()).Add(currentArray); |
908 | } | 908 | } |
909 | else | 909 | else |
910 | { | 910 | { |
911 | ((Hashtable)objectStack.Peek()).Add(currentKey,currentArray); | 911 | ((Hashtable)objectStack.Peek()).Add(currentKey,currentArray); |
912 | // clear the key | 912 | // clear the key |
913 | currentKey=null; | 913 | currentKey=null; |
914 | } | 914 | } |
915 | objectStack.Push(currentArray); | 915 | objectStack.Push(currentArray); |
916 | 916 | ||
917 | break; | 917 | break; |
918 | case ',':// seperator | 918 | case ',':// seperator |
919 | // just ignore | 919 | // just ignore |
@@ -923,24 +923,24 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
923 | objectStack.Pop(); | 923 | objectStack.Pop(); |
924 | break; | 924 | break; |
925 | case 't': // we've found a character start not in quotes, it must be a boolean true | 925 | case 't': // we've found a character start not in quotes, it must be a boolean true |
926 | 926 | ||
927 | if (objectStack.Peek().ToString()=="System.Collections.ArrayList") | 927 | if (objectStack.Peek().ToString()=="System.Collections.ArrayList") |
928 | { | 928 | { |
929 | ((ArrayList)objectStack.Peek()).Add(true); | 929 | ((ArrayList)objectStack.Peek()).Add(true); |
930 | } | 930 | } |
931 | else | 931 | else |
932 | { | 932 | { |
933 | ((Hashtable)objectStack.Peek()).Add(currentKey,true); | 933 | ((Hashtable)objectStack.Peek()).Add(currentKey,true); |
934 | currentKey=null; | 934 | currentKey=null; |
935 | } | 935 | } |
936 | 936 | ||
937 | //advance the counter to the letter 'e' | 937 | //advance the counter to the letter 'e' |
938 | i = i+3; | 938 | i = i+3; |
939 | break; | 939 | break; |
940 | case 'f': // we've found a character start not in quotes, it must be a boolean false | 940 | case 'f': // we've found a character start not in quotes, it must be a boolean false |
941 | 941 | ||
942 | if (objectStack.Peek().ToString()=="System.Collections.ArrayList") | 942 | if (objectStack.Peek().ToString()=="System.Collections.ArrayList") |
943 | { | 943 | { |
944 | ((ArrayList)objectStack.Peek()).Add(false); | 944 | ((ArrayList)objectStack.Peek()).Add(false); |
945 | } | 945 | } |
946 | else | 946 | else |
@@ -960,53 +960,53 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
960 | default: | 960 | default: |
961 | // ok here we're catching all numeric types int,double,long we might want to spit these up mr accurately | 961 | // ok here we're catching all numeric types int,double,long we might want to spit these up mr accurately |
962 | // but for now we'll just do them as strings | 962 | // but for now we'll just do them as strings |
963 | 963 | ||
964 | string numberValue=""; | 964 | string numberValue=""; |
965 | 965 | ||
966 | // just loop through until the next known marker quote mark storing the string | 966 | // just loop through until the next known marker quote mark storing the string |
967 | while (JSON[i] != '"' && JSON[i] != ',' && JSON[i] != ']' && JSON[i] != '}' && JSON[i] != ' ') | 967 | while (JSON[i] != '"' && JSON[i] != ',' && JSON[i] != ']' && JSON[i] != '}' && JSON[i] != ' ') |
968 | { | 968 | { |
969 | numberValue+=""+JSON[i++]; | 969 | numberValue+=""+JSON[i++]; |
970 | } | 970 | } |
971 | 971 | ||
972 | i--; // we want to process this caracter that marked the end of this string in the main loop | 972 | i--; // we want to process this caracter that marked the end of this string in the main loop |
973 | 973 | ||
974 | // ok we've got a string, if we've got an array on the top of the stack then we store it | 974 | // ok we've got a string, if we've got an array on the top of the stack then we store it |
975 | if (objectStack.Peek().ToString()=="System.Collections.ArrayList") | 975 | if (objectStack.Peek().ToString()=="System.Collections.ArrayList") |
976 | { | 976 | { |
977 | ((ArrayList)objectStack.Peek()).Add(numberValue); | 977 | ((ArrayList)objectStack.Peek()).Add(numberValue); |
978 | } | 978 | } |
979 | else | 979 | else |
980 | { | 980 | { |
981 | // we have a key so lets store this value | 981 | // we have a key so lets store this value |
982 | ((Hashtable)objectStack.Peek()).Add(currentKey,numberValue); | 982 | ((Hashtable)objectStack.Peek()).Add(currentKey,numberValue); |
983 | // now lets clear the key, we're done with it and moving on | 983 | // now lets clear the key, we're done with it and moving on |
984 | currentKey=null; | 984 | currentKey=null; |
985 | } | 985 | } |
986 | 986 | ||
987 | break; | 987 | break; |
988 | } | 988 | } |
989 | } | 989 | } |
990 | } | 990 | } |
991 | catch(Exception) | 991 | catch(Exception) |
992 | { | 992 | { |
993 | OSSLError("osParseJSON: The JSON string is not valid " + JSON) ; | 993 | OSSLError("osParseJSON: The JSON string is not valid " + JSON) ; |
994 | } | 994 | } |
995 | 995 | ||
996 | return jsondata; | 996 | return jsondata; |
997 | } | 997 | } |
998 | 998 | ||
999 | // send a message to to object identified by the given UUID, a script in the object must implement the dataserver function | 999 | // send a message to to object identified by the given UUID, a script in the object must implement the dataserver function |
1000 | // the dataserver function is passed the ID of the calling function and a string message | 1000 | // the dataserver function is passed the ID of the calling function and a string message |
1001 | public void osMessageObject(LSL_Key objectUUID, string message) | 1001 | public void osMessageObject(LSL_Key objectUUID, string message) |
1002 | { | 1002 | { |
1003 | CheckThreatLevel(ThreatLevel.Low, "osMessageObject"); | 1003 | CheckThreatLevel(ThreatLevel.Low, "osMessageObject"); |
1004 | m_host.AddScriptLPS(1); | 1004 | m_host.AddScriptLPS(1); |
1005 | 1005 | ||
1006 | object[] resobj = new object[] { new LSL_Types.LSLString(m_host.UUID.ToString()), new LSL_Types.LSLString(message) }; | 1006 | object[] resobj = new object[] { new LSL_Types.LSLString(m_host.UUID.ToString()), new LSL_Types.LSLString(message) }; |
1007 | 1007 | ||
1008 | SceneObjectPart sceneOP = World.GetSceneObjectPart(new UUID(objectUUID)); | 1008 | SceneObjectPart sceneOP = World.GetSceneObjectPart(new UUID(objectUUID)); |
1009 | 1009 | ||
1010 | m_ScriptEngine.PostObjectEvent( | 1010 | m_ScriptEngine.PostObjectEvent( |
1011 | sceneOP.LocalId, new EventParams( | 1011 | sceneOP.LocalId, new EventParams( |
1012 | "dataserver", resobj, new DetectParams[0])); | 1012 | "dataserver", resobj, new DetectParams[0])); |
@@ -1024,10 +1024,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1024 | 1024 | ||
1025 | // Create new asset | 1025 | // Create new asset |
1026 | AssetBase asset = new AssetBase(); | 1026 | AssetBase asset = new AssetBase(); |
1027 | asset.Name = notecardName; | 1027 | asset.Metadata.Name = notecardName; |
1028 | asset.Description = "Script Generated Notecard"; | 1028 | asset.Metadata.Description = "Script Generated Notecard"; |
1029 | asset.Type = 7; | 1029 | asset.Metadata.Type = 7; |
1030 | asset.FullID = UUID.Random(); | 1030 | asset.Metadata.FullID = UUID.Random(); |
1031 | string notecardData = ""; | 1031 | string notecardData = ""; |
1032 | 1032 | ||
1033 | for (int i = 0; i < contents.Length; i++) { | 1033 | for (int i = 0; i < contents.Length; i++) { |
@@ -1035,7 +1035,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1035 | } | 1035 | } |
1036 | 1036 | ||
1037 | int textLength = notecardData.Length; | 1037 | int textLength = notecardData.Length; |
1038 | notecardData = "Linden text version 2\n{\nLLEmbeddedItems version 1\n{\ncount 0\n}\nText length " | 1038 | notecardData = "Linden text version 2\n{\nLLEmbeddedItems version 1\n{\ncount 0\n}\nText length " |
1039 | + textLength.ToString() + "\n" + notecardData + "}\n"; | 1039 | + textLength.ToString() + "\n" + notecardData + "}\n"; |
1040 | 1040 | ||
1041 | asset.Data = Encoding.ASCII.GetBytes(notecardData); | 1041 | asset.Data = Encoding.ASCII.GetBytes(notecardData); |
@@ -1047,8 +1047,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1047 | taskItem.ResetIDs(m_host.UUID); | 1047 | taskItem.ResetIDs(m_host.UUID); |
1048 | taskItem.ParentID = m_host.UUID; | 1048 | taskItem.ParentID = m_host.UUID; |
1049 | taskItem.CreationDate = (uint)Util.UnixTimeSinceEpoch(); | 1049 | taskItem.CreationDate = (uint)Util.UnixTimeSinceEpoch(); |
1050 | taskItem.Name = asset.Name; | 1050 | taskItem.Name = asset.Metadata.Name; |
1051 | taskItem.Description = asset.Description; | 1051 | taskItem.Description = asset.Metadata.Description; |
1052 | taskItem.Type = 7; | 1052 | taskItem.Type = 7; |
1053 | taskItem.InvType = 7; | 1053 | taskItem.InvType = 7; |
1054 | taskItem.OwnerID = m_host.OwnerID; | 1054 | taskItem.OwnerID = m_host.OwnerID; |
@@ -1062,7 +1062,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1062 | taskItem.Flags = 0; | 1062 | taskItem.Flags = 0; |
1063 | taskItem.PermsGranter = UUID.Zero; | 1063 | taskItem.PermsGranter = UUID.Zero; |
1064 | taskItem.PermsMask = 0; | 1064 | taskItem.PermsMask = 0; |
1065 | taskItem.AssetID = asset.FullID; | 1065 | taskItem.AssetID = asset.Metadata.FullID; |
1066 | 1066 | ||
1067 | m_host.Inventory.AddInventoryItem(taskItem, false); | 1067 | m_host.Inventory.AddInventoryItem(taskItem, false); |
1068 | } | 1068 | } |