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); }
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); }