Beispiel #1
0
        private unsafe void SetUshortParamter(QUIC_PARAM_CONN param, ushort count)
        {
            var buffer = new QuicBuffer()
            {
                Length = sizeof(ushort),
                Buffer = (byte *)&count
            };

            SetParam(param, buffer);
        }
Beispiel #2
0
 private void SetParam(
     QUIC_PARAM_CONN param,
     QuicBuffer buf)
 {
     MsQuicStatusException.ThrowIfFailed(_api.UnsafeSetParam(
                                             _nativeObjPtr,
                                             (uint)QUIC_PARAM_LEVEL.CONNECTION,
                                             (uint)param,
                                             buf));
 }
        internal static unsafe void SetSecurityConfig(MsQuicApi api, IntPtr nativeObject, uint level, uint param, IntPtr value)
        {
            QuicBuffer buffer = new QuicBuffer()
            {
                Length = (uint)sizeof(void *),
                Buffer = (byte *)&value
            };

            MsQuicStatusException.ThrowIfFailed(api.UnsafeSetParam(nativeObject, level, param, buffer));
        }
        internal static unsafe void SetULongParam(MsQuicApi api, IntPtr nativeObject, uint level, uint param, ulong value)
        {
            QuicBuffer buffer = new QuicBuffer()
            {
                Length = sizeof(ulong),
                Buffer = (byte *)&value
            };

            MsQuicStatusException.ThrowIfFailed(api.UnsafeGetParam(nativeObject, level, param, ref buffer));
        }
Beispiel #5
0
        public unsafe void DisableBuffering()
        {
            var val    = false;
            var buffer = new QuicBuffer()
            {
                Length = sizeof(bool),
                Buffer = (byte *)&val
            };

            SetParam(QUIC_PARAM_CONN.USE_SEND_BUFFER, buffer);
        }
Beispiel #6
0
        public unsafe void SetIdleTimeout(TimeSpan timeout)
        {
            var msTime = (ulong)timeout.TotalMilliseconds;
            var buffer = new QuicBuffer()
            {
                Length = sizeof(ulong),
                Buffer = (byte *)&msTime
            };

            SetParam(QUIC_PARAM_CONN.IDLE_TIMEOUT, buffer);
        }
        internal static unsafe ulong GetULongParam(MsQuicApi api, IntPtr nativeObject, uint level, uint param)
        {
            byte *     ptr    = stackalloc byte[sizeof(ulong)];
            QuicBuffer buffer = new QuicBuffer()
            {
                Length = sizeof(ulong),
                Buffer = ptr
            };

            MsQuicStatusException.ThrowIfFailed(api.UnsafeGetParam(nativeObject, level, param, ref buffer));
            return(*(ulong *)ptr);
        }
        internal static unsafe void SetSecurityConfig(MsQuicApi api, IntPtr nativeObject, uint level, uint param, IntPtr value)
        {
            QuicBuffer buffer = new QuicBuffer()
            {
                Length = (uint)sizeof(void *),
                Buffer = (byte *)&value
            };

            QuicExceptionHelpers.ThrowIfFailed(
                api.UnsafeSetParam(nativeObject, level, param, buffer),
                "Could not set security configuration.");
        }
        internal static unsafe void SetUshortParam(MsQuicApi api, IntPtr nativeObject, uint level, uint param, ushort value)
        {
            QuicBuffer buffer = new QuicBuffer()
            {
                Length = sizeof(ushort),
                Buffer = (byte *)&value
            };

            QuicExceptionHelpers.ThrowIfFailed(
                api.UnsafeSetParam(nativeObject, level, param, buffer),
                "Could not set ushort.");
        }
        internal static unsafe SOCKADDR_INET GetINetParam(MsQuicApi api, IntPtr nativeObject, uint level, uint param)
        {
            byte *     ptr    = stackalloc byte[sizeof(SOCKADDR_INET)];
            QuicBuffer buffer = new QuicBuffer
            {
                Length = (uint)sizeof(SOCKADDR_INET),
                Buffer = ptr
            };

            MsQuicStatusException.ThrowIfFailed(api.UnsafeGetParam(nativeObject, level, param, ref buffer));

            return(*(SOCKADDR_INET *)ptr);
        }
        internal static unsafe ushort GetUShortParam(MsQuicApi api, IntPtr nativeObject, uint level, uint param)
        {
            byte *     ptr    = stackalloc byte[sizeof(ushort)];
            QuicBuffer buffer = new QuicBuffer()
            {
                Length = sizeof(ushort),
                Buffer = ptr
            };

            QuicExceptionHelpers.ThrowIfFailed(
                api.UnsafeGetParam(nativeObject, level, param, ref buffer),
                "Could not get ushort.");

            return(*(ushort *)ptr);
        }