diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/LindenUDP')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 48 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLPacketQueue.cs | 36 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | 11 |
3 files changed, 61 insertions, 34 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 06bea3d..6969a3d 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -6633,9 +6633,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
6633 | } | 6633 | } |
6634 | else // Agent | 6634 | else // Agent |
6635 | { | 6635 | { |
6636 | //InventoryItemBase assetRequestItem = userInfo.RootFolder.FindItem(itemID); | ||
6637 | IInventoryService invService = m_scene.RequestModuleInterface<IInventoryService>(); | 6636 | IInventoryService invService = m_scene.RequestModuleInterface<IInventoryService>(); |
6638 | InventoryItemBase assetRequestItem = invService.GetItem(new InventoryItemBase(itemID)); | 6637 | InventoryItemBase assetRequestItem = new InventoryItemBase(itemID, AgentId); |
6638 | assetRequestItem = invService.GetItem(assetRequestItem); | ||
6639 | if (assetRequestItem == null) | 6639 | if (assetRequestItem == null) |
6640 | { | 6640 | { |
6641 | assetRequestItem = ((Scene)m_scene).CommsManager.UserProfileCacheService.LibraryRoot.FindItem(itemID); | 6641 | assetRequestItem = ((Scene)m_scene).CommsManager.UserProfileCacheService.LibraryRoot.FindItem(itemID); |
@@ -7027,14 +7027,21 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
7027 | if (OnMoveInventoryItem != null) | 7027 | if (OnMoveInventoryItem != null) |
7028 | { | 7028 | { |
7029 | handlerMoveInventoryItem = null; | 7029 | handlerMoveInventoryItem = null; |
7030 | InventoryItemBase itm = null; | ||
7031 | List<InventoryItemBase> items = new List<InventoryItemBase>(); | ||
7030 | foreach (MoveInventoryItemPacket.InventoryDataBlock datablock in moveitem.InventoryData) | 7032 | foreach (MoveInventoryItemPacket.InventoryDataBlock datablock in moveitem.InventoryData) |
7031 | { | 7033 | { |
7032 | handlerMoveInventoryItem = OnMoveInventoryItem; | 7034 | itm = new InventoryItemBase(datablock.ItemID, AgentId); |
7033 | if (handlerMoveInventoryItem != null) | 7035 | itm.Folder = datablock.FolderID; |
7034 | { | 7036 | itm.Name = Util.FieldToString(datablock.NewName); |
7035 | handlerMoveInventoryItem(this, datablock.FolderID, datablock.ItemID, datablock.Length, | 7037 | // weird, comes out as empty string |
7036 | Util.FieldToString(datablock.NewName)); | 7038 | //m_log.DebugFormat("[XXX] new name: {0}", itm.Name); |
7037 | } | 7039 | items.Add(itm); |
7040 | } | ||
7041 | handlerMoveInventoryItem = OnMoveInventoryItem; | ||
7042 | if (handlerMoveInventoryItem != null) | ||
7043 | { | ||
7044 | handlerMoveInventoryItem(this, items); | ||
7038 | } | 7045 | } |
7039 | } | 7046 | } |
7040 | break; | 7047 | break; |
@@ -7053,14 +7060,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
7053 | if (OnRemoveInventoryItem != null) | 7060 | if (OnRemoveInventoryItem != null) |
7054 | { | 7061 | { |
7055 | handlerRemoveInventoryItem = null; | 7062 | handlerRemoveInventoryItem = null; |
7063 | List<UUID> uuids = new List<UUID>(); | ||
7056 | foreach (RemoveInventoryItemPacket.InventoryDataBlock datablock in removeItem.InventoryData) | 7064 | foreach (RemoveInventoryItemPacket.InventoryDataBlock datablock in removeItem.InventoryData) |
7057 | { | 7065 | { |
7058 | handlerRemoveInventoryItem = OnRemoveInventoryItem; | 7066 | uuids.Add(datablock.ItemID); |
7059 | if (handlerRemoveInventoryItem != null) | ||
7060 | { | ||
7061 | handlerRemoveInventoryItem(this, datablock.ItemID); | ||
7062 | } | ||
7063 | } | 7067 | } |
7068 | handlerRemoveInventoryItem = OnRemoveInventoryItem; | ||
7069 | if (handlerRemoveInventoryItem != null) | ||
7070 | { | ||
7071 | handlerRemoveInventoryItem(this, uuids); | ||
7072 | } | ||
7073 | |||
7064 | } | 7074 | } |
7065 | break; | 7075 | break; |
7066 | case PacketType.RemoveInventoryFolder: | 7076 | case PacketType.RemoveInventoryFolder: |
@@ -7116,13 +7126,15 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
7116 | if (OnRemoveInventoryItem != null) | 7126 | if (OnRemoveInventoryItem != null) |
7117 | { | 7127 | { |
7118 | handlerRemoveInventoryItem = null; | 7128 | handlerRemoveInventoryItem = null; |
7129 | List<UUID> uuids = new List<UUID>(); | ||
7119 | foreach (RemoveInventoryObjectsPacket.ItemDataBlock datablock in removeObject.ItemData) | 7130 | foreach (RemoveInventoryObjectsPacket.ItemDataBlock datablock in removeObject.ItemData) |
7120 | { | 7131 | { |
7121 | handlerRemoveInventoryItem = OnRemoveInventoryItem; | 7132 | uuids.Add(datablock.ItemID); |
7122 | if (handlerRemoveInventoryItem != null) | 7133 | } |
7123 | { | 7134 | handlerRemoveInventoryItem = OnRemoveInventoryItem; |
7124 | handlerRemoveInventoryItem(this, datablock.ItemID); | 7135 | if (handlerRemoveInventoryItem != null) |
7125 | } | 7136 | { |
7137 | handlerRemoveInventoryItem(this, uuids); | ||
7126 | } | 7138 | } |
7127 | } | 7139 | } |
7128 | break; | 7140 | break; |
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLPacketQueue.cs b/OpenSim/Region/ClientStack/LindenUDP/LLPacketQueue.cs index bf0b06d..798c1e7 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLPacketQueue.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLPacketQueue.cs | |||
@@ -128,28 +128,36 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
128 | // Store the throttle multiplier for posterity. | 128 | // Store the throttle multiplier for posterity. |
129 | throttleMultiplier = userSettings.ClientThrottleMultipler; | 129 | throttleMultiplier = userSettings.ClientThrottleMultipler; |
130 | 130 | ||
131 | |||
132 | int throttleMaxBPS = 1500000; | ||
133 | if (userSettings.TotalThrottleSettings != null) | ||
134 | throttleMaxBPS = userSettings.TotalThrottleSettings.Max; | ||
135 | |||
131 | // Set up the throttle classes (min, max, current) in bits per second | 136 | // Set up the throttle classes (min, max, current) in bits per second |
132 | ResendThrottle = new LLPacketThrottle(5000, 100000, 16000, userSettings.ClientThrottleMultipler); | 137 | ResendThrottle = new LLPacketThrottle(5000, throttleMaxBPS / 15, 16000, userSettings.ClientThrottleMultipler); |
133 | LandThrottle = new LLPacketThrottle(1000, 100000, 2000, userSettings.ClientThrottleMultipler); | 138 | LandThrottle = new LLPacketThrottle(1000, throttleMaxBPS / 15, 2000, userSettings.ClientThrottleMultipler); |
134 | WindThrottle = new LLPacketThrottle(0, 100000, 0, userSettings.ClientThrottleMultipler); | 139 | WindThrottle = new LLPacketThrottle(0, throttleMaxBPS / 15, 0, userSettings.ClientThrottleMultipler); |
135 | CloudThrottle = new LLPacketThrottle(0, 100000, 0, userSettings.ClientThrottleMultipler); | 140 | CloudThrottle = new LLPacketThrottle(0, throttleMaxBPS / 15, 0, userSettings.ClientThrottleMultipler); |
136 | TaskThrottle = new LLPacketThrottle(1000, 800000, 3000, userSettings.ClientThrottleMultipler); | 141 | TaskThrottle = new LLPacketThrottle(1000, throttleMaxBPS / 2, 3000, userSettings.ClientThrottleMultipler); |
137 | AssetThrottle = new LLPacketThrottle(1000, 800000, 1000, userSettings.ClientThrottleMultipler); | 142 | AssetThrottle = new LLPacketThrottle(1000, throttleMaxBPS / 2, 1000, userSettings.ClientThrottleMultipler); |
138 | TextureThrottle = new LLPacketThrottle(1000, 800000, 4000, userSettings.ClientThrottleMultipler); | 143 | TextureThrottle = new LLPacketThrottle(1000, throttleMaxBPS / 2, 4000, userSettings.ClientThrottleMultipler); |
139 | 144 | ||
140 | // Total Throttle trumps all - it is the number of bits in total that are allowed to go out per second. | 145 | |
146 | // Total Throttle trumps all - it is the number of bits in total that are allowed to go out per second. | ||
147 | |||
148 | |||
141 | ThrottleSettings totalThrottleSettings = userSettings.TotalThrottleSettings; | 149 | ThrottleSettings totalThrottleSettings = userSettings.TotalThrottleSettings; |
142 | if (null == totalThrottleSettings) | 150 | if (null == totalThrottleSettings) |
143 | { | 151 | { |
144 | totalThrottleSettings = new ThrottleSettings(0, 1500000, 28000); | 152 | totalThrottleSettings = new ThrottleSettings(0, throttleMaxBPS, 28000); |
145 | } | 153 | } |
146 | 154 | ||
147 | TotalThrottle | 155 | TotalThrottle |
148 | = new LLPacketThrottle( | 156 | = new LLPacketThrottle( |
149 | totalThrottleSettings.Min, totalThrottleSettings.Max, totalThrottleSettings.Current, | 157 | totalThrottleSettings.Min, totalThrottleSettings.Max, totalThrottleSettings.Current, |
150 | userSettings.ClientThrottleMultipler); | 158 | userSettings.ClientThrottleMultipler); |
151 | 159 | ||
152 | throttleTimer = new Timer((int) (throttletimems/throttleTimeDivisor)); | 160 | throttleTimer = new Timer((int)(throttletimems / throttleTimeDivisor)); |
153 | throttleTimer.Elapsed += ThrottleTimerElapsed; | 161 | throttleTimer.Elapsed += ThrottleTimerElapsed; |
154 | throttleTimer.Start(); | 162 | throttleTimer.Start(); |
155 | 163 | ||
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs index 5184e35..9ee8df5 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | |||
@@ -152,11 +152,18 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
152 | ClientStackUserSettings userSettings = new ClientStackUserSettings(); | 152 | ClientStackUserSettings userSettings = new ClientStackUserSettings(); |
153 | 153 | ||
154 | IConfig config = configSource.Configs["ClientStack.LindenUDP"]; | 154 | IConfig config = configSource.Configs["ClientStack.LindenUDP"]; |
155 | 155 | ||
156 | if (config != null) | 156 | if (config != null) |
157 | { | 157 | { |
158 | if (config.Contains("client_throttle_max_bps")) | ||
159 | { | ||
160 | int maxBPS = config.GetInt("client_throttle_max_bps", 1500000); | ||
161 | userSettings.TotalThrottleSettings = new ThrottleSettings(0, maxBPS, | ||
162 | maxBPS > 28000 ? maxBPS : 28000); | ||
163 | } | ||
164 | |||
158 | if (config.Contains("client_throttle_multiplier")) | 165 | if (config.Contains("client_throttle_multiplier")) |
159 | userSettings.ClientThrottleMultipler = config.GetFloat("client_throttle_multiplier"); | 166 | userSettings.ClientThrottleMultipler = config.GetFloat("client_throttle_multiplier"); |
160 | if (config.Contains("client_socket_rcvbuf_size")) | 167 | if (config.Contains("client_socket_rcvbuf_size")) |
161 | m_clientSocketReceiveBuffer = config.GetInt("client_socket_rcvbuf_size"); | 168 | m_clientSocketReceiveBuffer = config.GetInt("client_socket_rcvbuf_size"); |
162 | } | 169 | } |