| 654 | } |
| 655 | |
| 656 | static void AckComplete(const TNetSocket& s, const sockaddr_in6& toAddress, int transferId, const TGUID& packetGuid, int packetId) { |
| 657 | char buf[100], *pktData = buf + UDP_LOW_LEVEL_HEADER_SIZE; |
| 658 | Write(&pktData, transferId); |
| 659 | Write(&pktData, (char)ACK_COMPLETE); |
| 660 | Write(&pktData, packetGuid); |
| 661 | Write(&pktData, packetId); // we need packetId to update RTT |
| 662 | s.SendTo(buf, (int)(pktData - buf), toAddress, FF_ALLOW_FRAG); |
| 663 | } |
| 664 | |
| 665 | static void SendPing(TNetSocket& s, const sockaddr_in6& toAddress, int selfNetworkOrderPort) { |
| 666 | char pktBuf[UDP_PACKET_SIZE_FULL]; |