Esempio n. 1
0
        private static int BioWrite(IntPtr bio, IntPtr data, int dlen)
        {
            var wrapper = (DtlsWrapper)GCHandle.FromIntPtr(OpenSsl.BIO_get_data(bio)).Target;

            var temp = new byte[dlen];

            Marshal.Copy(data, temp, 0, dlen);
            wrapper._sendCallback(wrapper._client, temp);

            return(dlen);
        }
Esempio n. 2
0
        private static int BioRead(IntPtr bio, IntPtr data, int dlen)
        {
            var wrapper = (DtlsWrapper)GCHandle.FromIntPtr(OpenSsl.BIO_get_data(bio)).Target;

            if (!wrapper._packets.TryTake(out var packet, DTLS_TIMEOUT))
            {
                return(0);
            }

            Marshal.Copy(packet, 0, data, packet.Length);
            return(packet.Length);
        }