still a few more changes to lludp Xfer download for lost udp case
parent
238efad690
commit
da90da220e
|
@ -233,7 +233,6 @@ namespace OpenSim.Region.CoreModules.Agent.Xfer
|
||||||
public void transfersTimeTick(double now)
|
public void transfersTimeTick(double now)
|
||||||
{
|
{
|
||||||
XferDownLoad[] xfrs;
|
XferDownLoad[] xfrs;
|
||||||
int inow = (int)now;
|
|
||||||
lock(Transfers)
|
lock(Transfers)
|
||||||
{
|
{
|
||||||
if(Transfers.Count == 0)
|
if(Transfers.Count == 0)
|
||||||
|
@ -244,7 +243,7 @@ namespace OpenSim.Region.CoreModules.Agent.Xfer
|
||||||
}
|
}
|
||||||
foreach(XferDownLoad xfr in xfrs)
|
foreach(XferDownLoad xfr in xfrs)
|
||||||
{
|
{
|
||||||
if(xfr.checkTime(inow))
|
if(xfr.checkTime(now))
|
||||||
{
|
{
|
||||||
ulong xfrID = xfr.XferID;
|
ulong xfrID = xfr.XferID;
|
||||||
lock(Transfers)
|
lock(Transfers)
|
||||||
|
@ -328,7 +327,7 @@ namespace OpenSim.Region.CoreModules.Agent.Xfer
|
||||||
public bool isDeleted = false;
|
public bool isDeleted = false;
|
||||||
|
|
||||||
private object myLock = new object();
|
private object myLock = new object();
|
||||||
private int lastACKTimeMS;
|
private double lastACKTimeMS;
|
||||||
private int LastPacket;
|
private int LastPacket;
|
||||||
private int lastBytes;
|
private int lastBytes;
|
||||||
private int lastSentPacket;
|
private int lastSentPacket;
|
||||||
|
@ -389,6 +388,7 @@ namespace OpenSim.Region.CoreModules.Agent.Xfer
|
||||||
lastSentPacket = -1;
|
lastSentPacket = -1;
|
||||||
|
|
||||||
double now = Util.GetTimeStampMS();
|
double now = Util.GetTimeStampMS();
|
||||||
|
retries = 0;
|
||||||
|
|
||||||
SendBurst(now);
|
SendBurst(now);
|
||||||
return;
|
return;
|
||||||
|
@ -428,7 +428,6 @@ namespace OpenSim.Region.CoreModules.Agent.Xfer
|
||||||
|
|
||||||
remoteClient.SendXferPacket(XferID, pktid, Data, pkt << 10, pktsize, true);
|
remoteClient.SendXferPacket(XferID, pktid, Data, pkt << 10, pktsize, true);
|
||||||
|
|
||||||
retries = 0;
|
|
||||||
lastSentPacket = pkt;
|
lastSentPacket = pkt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -445,8 +444,10 @@ namespace OpenSim.Region.CoreModules.Agent.Xfer
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
packet &= 0x7fffffff;
|
packet &= 0x7fffffff;
|
||||||
if(lastAckPacket < packet)
|
if(lastAckPacket >= packet)
|
||||||
lastAckPacket = (int)packet;
|
return false;
|
||||||
|
|
||||||
|
lastAckPacket = (int)packet;
|
||||||
|
|
||||||
if(lastAckPacket == LastPacket)
|
if(lastAckPacket == LastPacket)
|
||||||
{
|
{
|
||||||
|
@ -463,15 +464,15 @@ namespace OpenSim.Region.CoreModules.Agent.Xfer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool checkTime(int now)
|
public bool checkTime(double now)
|
||||||
{
|
{
|
||||||
if (Monitor.TryEnter(myLock))
|
if (Monitor.TryEnter(myLock))
|
||||||
{
|
{
|
||||||
if (!isDeleted && !inBurst)
|
if (!isDeleted && !inBurst)
|
||||||
{
|
{
|
||||||
int timeMS = now - lastACKTimeMS;
|
double timeMS = now - lastACKTimeMS;
|
||||||
|
|
||||||
int tout = 5 * remoteClient.PingTimeMS;
|
double tout = 5 * remoteClient.PingTimeMS;
|
||||||
if(tout > 10000)
|
if(tout > 10000)
|
||||||
tout = 10000;
|
tout = 10000;
|
||||||
else if (tout < 500)
|
else if (tout < 500)
|
||||||
|
|
Loading…
Reference in New Issue