| 608 | } |
| 609 | |
| 610 | static void ReadAcks(TUdpOutTransfer* p, const int* acks, int ackCount, float deltaT) { |
| 611 | for (int i = 0; i < ackCount; ++i) { |
| 612 | int pkt = *acks++; |
| 613 | int bitMask = *acks++; |
| 614 | bool updateRTT = i == ackCount - 1; // update RTT using only last packet in the pack |
| 615 | AckPacket(p, pkt, deltaT, updateRTT); |
| 616 | for (int k = 0; k < 32; ++k) { |
| 617 | if (bitMask & (1 << k)) |
| 618 | AckPacket(p, pkt - k - 1, deltaT, false); |
| 619 | } |
| 620 | } |
| 621 | } |
| 622 | |
| 623 | using namespace NNetlibaSocket::NNetliba; |
| 624 |