diff options
Diffstat (limited to 'OpenSim/Region/Environment/Modules/World/Archiver/AssetsRequest.cs')
-rw-r--r-- | OpenSim/Region/Environment/Modules/World/Archiver/AssetsRequest.cs | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/AssetsRequest.cs b/OpenSim/Region/Environment/Modules/World/Archiver/AssetsRequest.cs index ebcbcc7..2fd79b1 100644 --- a/OpenSim/Region/Environment/Modules/World/Archiver/AssetsRequest.cs +++ b/OpenSim/Region/Environment/Modules/World/Archiver/AssetsRequest.cs | |||
@@ -54,6 +54,11 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
54 | /// Assets retrieved in this request | 54 | /// Assets retrieved in this request |
55 | /// </summary> | 55 | /// </summary> |
56 | protected Dictionary<LLUUID, AssetBase> m_assets = new Dictionary<LLUUID, AssetBase>(); | 56 | protected Dictionary<LLUUID, AssetBase> m_assets = new Dictionary<LLUUID, AssetBase>(); |
57 | |||
58 | /// <summary> | ||
59 | /// Maintain a list of assets that could not be found. This will be passed back to the requester. | ||
60 | /// </summary> | ||
61 | protected List<LLUUID> m_notFoundAssetUuids = new List<LLUUID>(); | ||
57 | 62 | ||
58 | /// <summary> | 63 | /// <summary> |
59 | /// Record the number of asset replies required so we know when we've finished | 64 | /// Record the number of asset replies required so we know when we've finished |
@@ -77,7 +82,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
77 | { | 82 | { |
78 | // We can stop here if there are no assets to fetch | 83 | // We can stop here if there are no assets to fetch |
79 | if (m_repliesRequired == 0) | 84 | if (m_repliesRequired == 0) |
80 | m_assetsRequestCallback(m_assets); | 85 | m_assetsRequestCallback(m_assets, m_notFoundAssetUuids); |
81 | 86 | ||
82 | foreach (LLUUID uuid in m_uuids) | 87 | foreach (LLUUID uuid in m_uuids) |
83 | { | 88 | { |
@@ -92,7 +97,10 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
92 | /// <param name="asset"></param> | 97 | /// <param name="asset"></param> |
93 | public void AssetRequestCallback(LLUUID assetID, AssetBase asset) | 98 | public void AssetRequestCallback(LLUUID assetID, AssetBase asset) |
94 | { | 99 | { |
95 | m_assets[assetID] = asset; | 100 | if (asset != null) |
101 | m_assets[assetID] = asset; | ||
102 | else | ||
103 | m_notFoundAssetUuids.Add(assetID); | ||
96 | 104 | ||
97 | if (m_assets.Count == m_repliesRequired) | 105 | if (m_assets.Count == m_repliesRequired) |
98 | { | 106 | { |
@@ -108,7 +116,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
108 | /// </summary> | 116 | /// </summary> |
109 | protected void PerformAssetsRequestCallback() | 117 | protected void PerformAssetsRequestCallback() |
110 | { | 118 | { |
111 | m_assetsRequestCallback(m_assets); | 119 | m_assetsRequestCallback(m_assets, m_notFoundAssetUuids); |
112 | } | 120 | } |
113 | } | 121 | } |
114 | } | 122 | } |