Another temporary bug fix attempt, this time for the packet overflow problem, changed it so for now, packets are ACKed straight away in one PacketAck Packet for each ACK.

0.1-prestable
MW 2007-04-03 18:47:10 +00:00
parent 73380ed52b
commit 6d8dcd1d1d
1 changed files with 11 additions and 7 deletions

View File

@ -183,14 +183,18 @@ namespace OpenSim
private void ack_pack(Packet Pack) private void ack_pack(Packet Pack)
{ {
//libsecondlife.Packets.PacketAckPacket ack_it = new PacketAckPacket(); if (Pack.Header.Reliable)
//ack_it.Packets = new PacketAckPacket.PacketsBlock[1]; {
//ack_it.Packets[0] = new PacketAckPacket.PacketsBlock(); libsecondlife.Packets.PacketAckPacket ack_it = new PacketAckPacket();
//ack_it.Packets[0].ID = Pack.Header.ID; ack_it.Packets = new PacketAckPacket.PacketsBlock[1];
//ack_it.Header.Reliable = false; ack_it.Packets[0] = new PacketAckPacket.PacketsBlock();
ack_it.Packets[0].ID = Pack.Header.Sequence;
ack_it.Header.Reliable = false;
//OutPacket(ack_it); OutPacket(ack_it);
}
/*
if (Pack.Header.Reliable) if (Pack.Header.Reliable)
{ {
lock (PendingAcks) lock (PendingAcks)
@ -198,7 +202,7 @@ namespace OpenSim
uint sequence = (uint)Pack.Header.Sequence; uint sequence = (uint)Pack.Header.Sequence;
if (!PendingAcks.ContainsKey(sequence)) { PendingAcks[sequence] = sequence; } if (!PendingAcks.ContainsKey(sequence)) { PendingAcks[sequence] = sequence; }
} }
} }*/
} }
protected virtual void ProcessInPacket(Packet Pack) protected virtual void ProcessInPacket(Packet Pack)