diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/ClientView.cs')
-rw-r--r-- | OpenSim/Region/ClientStack/ClientView.cs | 80 |
1 files changed, 40 insertions, 40 deletions
diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs index fbe66db..28692bb 100644 --- a/OpenSim/Region/ClientStack/ClientView.cs +++ b/OpenSim/Region/ClientStack/ClientView.cs | |||
@@ -90,7 +90,7 @@ namespace OpenSim.Region.ClientStack | |||
90 | // 1536000 | 90 | // 1536000 |
91 | private int throttleOutboundMax = 1536000; // Number of bytes allowed to go out per second. (256kbps per client) | 91 | private int throttleOutboundMax = 1536000; // Number of bytes allowed to go out per second. (256kbps per client) |
92 | // TODO: Make this variable. Lower throttle on un-ack. Raise over time? | 92 | // TODO: Make this variable. Lower throttle on un-ack. Raise over time? |
93 | private int throttleSentPeriod = 0; // Number of bytes sent this period | 93 | private int bytesSent = 0; // Number of bytes sent this period |
94 | 94 | ||
95 | private int throttleOutbound = 162144; // Number of bytes allowed to go out per second. (256kbps per client) | 95 | private int throttleOutbound = 162144; // Number of bytes allowed to go out per second. (256kbps per client) |
96 | // TODO: Make this variable. Lower throttle on un-ack. Raise over time | 96 | // TODO: Make this variable. Lower throttle on un-ack. Raise over time |
@@ -123,19 +123,19 @@ namespace OpenSim.Region.ClientStack | |||
123 | 123 | ||
124 | // Sim default per-client settings. | 124 | // Sim default per-client settings. |
125 | private int ResendthrottleOutbound = 50000; | 125 | private int ResendthrottleOutbound = 50000; |
126 | private int ResendthrottleSentPeriod = 0; | 126 | private int ResendBytesSent = 0; |
127 | private int LandthrottleOutbound = 100000; | 127 | private int LandthrottleOutbound = 100000; |
128 | private int LandthrottleSentPeriod = 0; | 128 | private int LandBytesSent = 0; |
129 | private int WindthrottleOutbound = 10000; | 129 | private int WindthrottleOutbound = 10000; |
130 | private int WindthrottleSentPeriod = 0; | 130 | private int WindBytesSent = 0; |
131 | private int CloudthrottleOutbound = 5000; | 131 | private int CloudthrottleOutbound = 5000; |
132 | private int CloudthrottleSentPeriod = 0; | 132 | private int CloudBytesSent = 0; |
133 | private int TaskthrottleOutbound = 100000; | 133 | private int TaskthrottleOutbound = 100000; |
134 | private int TaskthrottleSentPeriod = 0; | 134 | private int TaskBytesSent = 0; |
135 | private int AssetthrottleOutbound = 80000; | 135 | private int AssetthrottleOutbound = 80000; |
136 | private int AssetthrottleSentPeriod = 0; | 136 | private int AssetBytesSent = 0; |
137 | private int TexturethrottleOutbound = 100000; | 137 | private int TexturethrottleOutbound = 100000; |
138 | private int TexturethrottleSentPeriod = 0; | 138 | private int TextureBytesSent = 0; |
139 | 139 | ||
140 | private Timer throttleTimer; | 140 | private Timer throttleTimer; |
141 | 141 | ||
@@ -196,14 +196,14 @@ namespace OpenSim.Region.ClientStack | |||
196 | 196 | ||
197 | void throttleTimer_Elapsed(object sender, ElapsedEventArgs e) | 197 | void throttleTimer_Elapsed(object sender, ElapsedEventArgs e) |
198 | { | 198 | { |
199 | throttleSentPeriod = 0; | 199 | bytesSent = 0; |
200 | ResendthrottleSentPeriod = 0; | 200 | ResendBytesSent = 0; |
201 | LandthrottleSentPeriod = 0; | 201 | LandBytesSent = 0; |
202 | WindthrottleSentPeriod = 0; | 202 | WindBytesSent = 0; |
203 | CloudthrottleSentPeriod = 0; | 203 | CloudBytesSent = 0; |
204 | TaskthrottleSentPeriod = 0; | 204 | TaskBytesSent = 0; |
205 | AssetthrottleSentPeriod = 0; | 205 | AssetBytesSent = 0; |
206 | TexturethrottleSentPeriod = 0; | 206 | TextureBytesSent = 0; |
207 | 207 | ||
208 | // I was considering this.. Will an event fire if the thread it's on is blocked? | 208 | // I was considering this.. Will an event fire if the thread it's on is blocked? |
209 | 209 | ||
@@ -216,7 +216,7 @@ namespace OpenSim.Region.ClientStack | |||
216 | 216 | ||
217 | // We're going to dequeue all of the saved up packets until | 217 | // We're going to dequeue all of the saved up packets until |
218 | // we've hit the throttle limit or there's no more packets to send | 218 | // we've hit the throttle limit or there's no more packets to send |
219 | while ((throttleSentPeriod <= ((int)(throttleOutbound/throttleTimeDivisor)) && | 219 | while ((bytesSent <= ((int)(throttleOutbound/throttleTimeDivisor)) && |
220 | (ResendOutgoingPacketQueue.Count > 0 || | 220 | (ResendOutgoingPacketQueue.Count > 0 || |
221 | LandOutgoingPacketQueue.Count > 0 || | 221 | LandOutgoingPacketQueue.Count > 0 || |
222 | WindOutgoingPacketQueue.Count > 0 || | 222 | WindOutgoingPacketQueue.Count > 0 || |
@@ -227,61 +227,61 @@ namespace OpenSim.Region.ClientStack | |||
227 | { | 227 | { |
228 | throttleLoops++; | 228 | throttleLoops++; |
229 | //Now comes the fun part.. we dump all our elements into PacketQueue that we've saved up. | 229 | //Now comes the fun part.. we dump all our elements into PacketQueue that we've saved up. |
230 | if (ResendthrottleSentPeriod <= ((int)(ResendthrottleOutbound/throttleTimeDivisor)) && ResendOutgoingPacketQueue.Count > 0) | 230 | if (ResendBytesSent <= ((int)(ResendthrottleOutbound/throttleTimeDivisor)) && ResendOutgoingPacketQueue.Count > 0) |
231 | { | 231 | { |
232 | QueItem qpack = ResendOutgoingPacketQueue.Dequeue(); | 232 | QueItem qpack = ResendOutgoingPacketQueue.Dequeue(); |
233 | 233 | ||
234 | PacketQueue.Enqueue(qpack); | 234 | PacketQueue.Enqueue(qpack); |
235 | throttleSentPeriod += qpack.Packet.ToBytes().Length; | 235 | bytesSent += qpack.Packet.ToBytes().Length; |
236 | ResendthrottleSentPeriod += qpack.Packet.ToBytes().Length; | 236 | ResendBytesSent += qpack.Packet.ToBytes().Length; |
237 | } | 237 | } |
238 | if (LandthrottleSentPeriod <= ((int)(LandthrottleOutbound/throttleTimeDivisor)) && LandOutgoingPacketQueue.Count > 0) | 238 | if (LandBytesSent <= ((int)(LandthrottleOutbound/throttleTimeDivisor)) && LandOutgoingPacketQueue.Count > 0) |
239 | { | 239 | { |
240 | QueItem qpack = LandOutgoingPacketQueue.Dequeue(); | 240 | QueItem qpack = LandOutgoingPacketQueue.Dequeue(); |
241 | 241 | ||
242 | PacketQueue.Enqueue(qpack); | 242 | PacketQueue.Enqueue(qpack); |
243 | throttleSentPeriod += qpack.Packet.ToBytes().Length; | 243 | bytesSent += qpack.Packet.ToBytes().Length; |
244 | LandthrottleSentPeriod += qpack.Packet.ToBytes().Length; | 244 | LandBytesSent += qpack.Packet.ToBytes().Length; |
245 | } | 245 | } |
246 | if (WindthrottleSentPeriod <= ((int)(WindthrottleOutbound/throttleTimeDivisor)) && WindOutgoingPacketQueue.Count > 0) | 246 | if (WindBytesSent <= ((int)(WindthrottleOutbound/throttleTimeDivisor)) && WindOutgoingPacketQueue.Count > 0) |
247 | { | 247 | { |
248 | QueItem qpack = WindOutgoingPacketQueue.Dequeue(); | 248 | QueItem qpack = WindOutgoingPacketQueue.Dequeue(); |
249 | 249 | ||
250 | PacketQueue.Enqueue(qpack); | 250 | PacketQueue.Enqueue(qpack); |
251 | throttleSentPeriod += qpack.Packet.ToBytes().Length; | 251 | bytesSent += qpack.Packet.ToBytes().Length; |
252 | WindthrottleSentPeriod += qpack.Packet.ToBytes().Length; | 252 | WindBytesSent += qpack.Packet.ToBytes().Length; |
253 | } | 253 | } |
254 | if (CloudthrottleSentPeriod <= ((int)(CloudthrottleOutbound/throttleTimeDivisor)) && CloudOutgoingPacketQueue.Count > 0) | 254 | if (CloudBytesSent <= ((int)(CloudthrottleOutbound/throttleTimeDivisor)) && CloudOutgoingPacketQueue.Count > 0) |
255 | { | 255 | { |
256 | QueItem qpack = CloudOutgoingPacketQueue.Dequeue(); | 256 | QueItem qpack = CloudOutgoingPacketQueue.Dequeue(); |
257 | 257 | ||
258 | PacketQueue.Enqueue(qpack); | 258 | PacketQueue.Enqueue(qpack); |
259 | throttleSentPeriod += qpack.Packet.ToBytes().Length; | 259 | bytesSent += qpack.Packet.ToBytes().Length; |
260 | CloudthrottleSentPeriod += qpack.Packet.ToBytes().Length; | 260 | CloudBytesSent += qpack.Packet.ToBytes().Length; |
261 | } | 261 | } |
262 | if (TaskthrottleSentPeriod <= ((int)(TaskthrottleOutbound/throttleTimeDivisor)) && TaskOutgoingPacketQueue.Count > 0) | 262 | if (TaskBytesSent <= ((int)(TaskthrottleOutbound/throttleTimeDivisor)) && TaskOutgoingPacketQueue.Count > 0) |
263 | { | 263 | { |
264 | QueItem qpack = TaskOutgoingPacketQueue.Dequeue(); | 264 | QueItem qpack = TaskOutgoingPacketQueue.Dequeue(); |
265 | 265 | ||
266 | PacketQueue.Enqueue(qpack); | 266 | PacketQueue.Enqueue(qpack); |
267 | throttleSentPeriod += qpack.Packet.ToBytes().Length; | 267 | bytesSent += qpack.Packet.ToBytes().Length; |
268 | TaskthrottleSentPeriod += qpack.Packet.ToBytes().Length; | 268 | TaskBytesSent += qpack.Packet.ToBytes().Length; |
269 | } | 269 | } |
270 | if (TexturethrottleSentPeriod <= ((int)(TexturethrottleOutbound/throttleTimeDivisor)) && TextureOutgoingPacketQueue.Count > 0) | 270 | if (TextureBytesSent <= ((int)(TexturethrottleOutbound/throttleTimeDivisor)) && TextureOutgoingPacketQueue.Count > 0) |
271 | { | 271 | { |
272 | QueItem qpack = TextureOutgoingPacketQueue.Dequeue(); | 272 | QueItem qpack = TextureOutgoingPacketQueue.Dequeue(); |
273 | 273 | ||
274 | PacketQueue.Enqueue(qpack); | 274 | PacketQueue.Enqueue(qpack); |
275 | throttleSentPeriod += qpack.Packet.ToBytes().Length; | 275 | bytesSent += qpack.Packet.ToBytes().Length; |
276 | TexturethrottleSentPeriod += qpack.Packet.ToBytes().Length; | 276 | TextureBytesSent += qpack.Packet.ToBytes().Length; |
277 | } | 277 | } |
278 | if (AssetthrottleSentPeriod <= ((int)(AssetthrottleOutbound/throttleTimeDivisor)) && AssetOutgoingPacketQueue.Count > 0) | 278 | if (AssetBytesSent <= ((int)(AssetthrottleOutbound/throttleTimeDivisor)) && AssetOutgoingPacketQueue.Count > 0) |
279 | { | 279 | { |
280 | QueItem qpack = AssetOutgoingPacketQueue.Dequeue(); | 280 | QueItem qpack = AssetOutgoingPacketQueue.Dequeue(); |
281 | 281 | ||
282 | PacketQueue.Enqueue(qpack); | 282 | PacketQueue.Enqueue(qpack); |
283 | throttleSentPeriod += qpack.Packet.ToBytes().Length; | 283 | bytesSent += qpack.Packet.ToBytes().Length; |
284 | AssetthrottleSentPeriod += qpack.Packet.ToBytes().Length; | 284 | AssetBytesSent += qpack.Packet.ToBytes().Length; |
285 | } | 285 | } |
286 | 286 | ||
287 | } | 287 | } |
@@ -441,7 +441,7 @@ namespace OpenSim.Region.ClientStack | |||
441 | else | 441 | else |
442 | { | 442 | { |
443 | // Throw it back on the queue if it's going to cause us to flood the client | 443 | // Throw it back on the queue if it's going to cause us to flood the client |
444 | if (throttleSentPeriod > throttleOutboundMax) | 444 | if (bytesSent > throttleOutboundMax) |
445 | { | 445 | { |
446 | PacketQueue.Enqueue(nextPacket); | 446 | PacketQueue.Enqueue(nextPacket); |
447 | MainLog.Instance.Verbose("Client over throttle limit, requeuing packet"); | 447 | MainLog.Instance.Verbose("Client over throttle limit, requeuing packet"); |
@@ -462,7 +462,7 @@ namespace OpenSim.Region.ClientStack | |||
462 | 462 | ||
463 | //Don't throttle AvatarPickerReplies!, they return a null .ToBytes()! | 463 | //Don't throttle AvatarPickerReplies!, they return a null .ToBytes()! |
464 | if (nextPacket.Packet.Type != PacketType.AvatarPickerReply) | 464 | if (nextPacket.Packet.Type != PacketType.AvatarPickerReply) |
465 | throttleSentPeriod += nextPacket.Packet.ToBytes().Length; | 465 | bytesSent += nextPacket.Packet.ToBytes().Length; |
466 | 466 | ||
467 | 467 | ||
468 | //is a out going packet | 468 | //is a out going packet |