Lidgren.Network.NetConnection.SendExpandMTU C# (CSharp) Method

SendExpandMTU() private method

private SendExpandMTU ( double now, int size ) : void
now double
size int
return void
        private void SendExpandMTU(double now, int size)
        {
            NetOutgoingMessage om = m_peer.CreateMessage(size);
            byte[] tmp = new byte[size];
            om.Write(tmp);
            om.m_messageType = NetMessageType.ExpandMTURequest;
            int len = om.Encode(m_peer.m_sendBuffer, 0, 0);

            bool ok = m_peer.SendMTUPacket(len, m_remoteEndPoint);
            if (ok == false)
            {
                //m_peer.LogDebug("Send MTU failed for size " + size);

                // failure
                if (m_smallestFailedMTU == -1 || size < m_smallestFailedMTU)
                {
                    m_smallestFailedMTU = size;
                    m_mtuAttemptFails++;
                    if (m_mtuAttemptFails >= m_peerConfiguration.ExpandMTUFailAttempts)
                    {
                        FinalizeMTU(m_largestSuccessfulMTU);
                        return;
                    }
                }
                ExpandMTU(now);
                return;
            }

            m_lastSentMTUAttemptSize = size;
            m_lastSentMTUAttemptTime = now;

            m_statistics.PacketSent(len, 1);
        }