aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Communications/Cache
diff options
context:
space:
mode:
authorlbsa712009-04-08 19:59:37 +0000
committerlbsa712009-04-08 19:59:37 +0000
commite93b782f9d86e4049a28d7f90c691dc5d242f234 (patch)
tree892fcce074d5e5a817c0b14d2a5e4fefe1b692a9 /OpenSim/Framework/Communications/Cache
parent* Make it possible to store creator strings in user inventory items as well a... (diff)
downloadopensim-SC_OLD-e93b782f9d86e4049a28d7f90c691dc5d242f234.zip
opensim-SC_OLD-e93b782f9d86e4049a28d7f90c691dc5d242f234.tar.gz
opensim-SC_OLD-e93b782f9d86e4049a28d7f90c691dc5d242f234.tar.bz2
opensim-SC_OLD-e93b782f9d86e4049a28d7f90c691dc5d242f234.tar.xz
* Introduced some experimental code with regards to asset data substitution
Diffstat (limited to 'OpenSim/Framework/Communications/Cache')
-rw-r--r--OpenSim/Framework/Communications/Cache/AssetCache.cs43
1 files changed, 43 insertions, 0 deletions
diff --git a/OpenSim/Framework/Communications/Cache/AssetCache.cs b/OpenSim/Framework/Communications/Cache/AssetCache.cs
index e0d0bd7..b571c0b 100644
--- a/OpenSim/Framework/Communications/Cache/AssetCache.cs
+++ b/OpenSim/Framework/Communications/Cache/AssetCache.cs
@@ -28,6 +28,7 @@
28using System; 28using System;
29using System.Collections.Generic; 29using System.Collections.Generic;
30using System.Reflection; 30using System.Reflection;
31using System.Text.RegularExpressions;
31using System.Threading; 32using System.Threading;
32using GlynnTucker.Cache; 33using GlynnTucker.Cache;
33using log4net; 34using log4net;
@@ -547,9 +548,49 @@ namespace OpenSim.Framework.Communications.Cache
547 req.RequestUser.SendAsset(req2); 548 req.RequestUser.SendAsset(req2);
548 549
549 } 550 }
551 }
552
553 public byte[] ProcessAssetData(byte[] assetData)
554 {
555 string data = Encoding.ASCII.GetString(assetData);
556
557 data = ProcessAssetDataString(data);
558
559 return Encoding.ASCII.GetBytes( data );
560 }
561
562 public string ProcessAssetDataString(string data)
563 {
564 Regex regex = new Regex("(creator_url|owner_url)\\s+(\\S+)");
565
566 data = regex.Replace(data, delegate(Match m)
567 {
568 string result = String.Empty;
550 569
570 string key = m.Groups[1].Captures[0].Value;
571
572 string value = m.Groups[2].Captures[0].Value;
573
574 Guid id = Util.GetHashGuid(value, AssetInfo.Secret);
575
576 switch (key)
577 {
578 case "creator_url":
579 result = "creator_id " + id;
580 break;
581
582 case "owner_url":
583 result = "owner_id " + id;
584 break;
585 }
586
587 return result;
588 });
589
590 return data;
551 } 591 }
552 592
593
553 public class AssetRequest 594 public class AssetRequest
554 { 595 {
555 public IClientAPI RequestUser; 596 public IClientAPI RequestUser;
@@ -578,6 +619,8 @@ namespace OpenSim.Framework.Communications.Cache
578 Name = aBase.Name; 619 Name = aBase.Name;
579 Description = aBase.Description; 620 Description = aBase.Description;
580 } 621 }
622
623 public const string Secret = "secret";
581 } 624 }
582 625
583 public class TextureImage : AssetBase 626 public class TextureImage : AssetBase