internal void SendToRecordLayer(DtlsRecordLayer recordLayer)
        {
            byte[] buffer = GetBuffer();
            int    len    = (int)Length;

            recordLayer.Send(buffer, 0, len);
            Platform.Dispose(this);
        }
 public virtual void Send(byte[] buf, int off, int len)
 {
     try
     {
         mRecordLayer.Send(buf, off, len);
     }
     catch (TlsFatalAlert tlsFatalAlert)
     {
         mRecordLayer.Fail(tlsFatalAlert.AlertDescription);
         throw tlsFatalAlert;
     }
     catch (IOException ex)
     {
         mRecordLayer.Fail(80);
         throw ex;
     }
     catch (Exception alertCause)
     {
         mRecordLayer.Fail(80);
         throw new TlsFatalAlert(80, alertCause);
     }
 }